1// Copyright (c) 2016, 2018, 2019, Oracle and/or its affiliates. All rights reserved.
2// Code generated. DO NOT EDIT.
3
4// Core Services API
5//
6// API covering the Networking (https://docs.cloud.oracle.com/iaas/Content/Network/Concepts/overview.htm),
7// Compute (https://docs.cloud.oracle.com/iaas/Content/Compute/Concepts/computeoverview.htm), and
8// Block Volume (https://docs.cloud.oracle.com/iaas/Content/Block/Concepts/overview.htm) services. Use this API
9// to manage resources such as virtual cloud networks (VCNs), compute instances, and
10// block storage volumes.
11//
12
13package core
14
15import (
16	"encoding/json"
17	"github.com/oracle/oci-go-sdk/common"
18)
19
20// ComputeInstanceDetails Compute Instance Configuration instance details.
21type ComputeInstanceDetails struct {
22	BlockVolumes []InstanceConfigurationBlockVolumeDetails `mandatory:"false" json:"blockVolumes"`
23
24	LaunchDetails *InstanceConfigurationLaunchInstanceDetails `mandatory:"false" json:"launchDetails"`
25
26	SecondaryVnics []InstanceConfigurationAttachVnicDetails `mandatory:"false" json:"secondaryVnics"`
27}
28
29func (m ComputeInstanceDetails) String() string {
30	return common.PointerString(m)
31}
32
33// MarshalJSON marshals to json representation
34func (m ComputeInstanceDetails) MarshalJSON() (buff []byte, e error) {
35	type MarshalTypeComputeInstanceDetails ComputeInstanceDetails
36	s := struct {
37		DiscriminatorParam string `json:"instanceType"`
38		MarshalTypeComputeInstanceDetails
39	}{
40		"compute",
41		(MarshalTypeComputeInstanceDetails)(m),
42	}
43
44	return json.Marshal(&s)
45}
46