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// InstanceConfigurationInstanceSourceViaImageDetails The representation of InstanceConfigurationInstanceSourceViaImageDetails
21type InstanceConfigurationInstanceSourceViaImageDetails struct {
22
23	// The size of the boot volume in GBs. The minimum value is 50 GB and the maximum value is 16384 GB (16TB).
24	BootVolumeSizeInGBs *int64 `mandatory:"false" json:"bootVolumeSizeInGBs"`
25
26	// The OCID of the image used to boot the instance.
27	ImageId *string `mandatory:"false" json:"imageId"`
28}
29
30func (m InstanceConfigurationInstanceSourceViaImageDetails) String() string {
31	return common.PointerString(m)
32}
33
34// MarshalJSON marshals to json representation
35func (m InstanceConfigurationInstanceSourceViaImageDetails) MarshalJSON() (buff []byte, e error) {
36	type MarshalTypeInstanceConfigurationInstanceSourceViaImageDetails InstanceConfigurationInstanceSourceViaImageDetails
37	s := struct {
38		DiscriminatorParam string `json:"sourceType"`
39		MarshalTypeInstanceConfigurationInstanceSourceViaImageDetails
40	}{
41		"image",
42		(MarshalTypeInstanceConfigurationInstanceSourceViaImageDetails)(m),
43	}
44
45	return json.Marshal(&s)
46}
47