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// ImageSourceDetails The representation of ImageSourceDetails 21type ImageSourceDetails interface { 22 GetOperatingSystem() *string 23 24 GetOperatingSystemVersion() *string 25 26 // The format of the image to be imported. Only monolithic 27 // images are supported. This attribute is not used for exported Oracle images with the OCI image format. 28 GetSourceImageType() ImageSourceDetailsSourceImageTypeEnum 29} 30 31type imagesourcedetails struct { 32 JsonData []byte 33 OperatingSystem *string `mandatory:"false" json:"operatingSystem"` 34 OperatingSystemVersion *string `mandatory:"false" json:"operatingSystemVersion"` 35 SourceImageType ImageSourceDetailsSourceImageTypeEnum `mandatory:"false" json:"sourceImageType,omitempty"` 36 SourceType string `json:"sourceType"` 37} 38 39// UnmarshalJSON unmarshals json 40func (m *imagesourcedetails) UnmarshalJSON(data []byte) error { 41 m.JsonData = data 42 type Unmarshalerimagesourcedetails imagesourcedetails 43 s := struct { 44 Model Unmarshalerimagesourcedetails 45 }{} 46 err := json.Unmarshal(data, &s.Model) 47 if err != nil { 48 return err 49 } 50 m.OperatingSystem = s.Model.OperatingSystem 51 m.OperatingSystemVersion = s.Model.OperatingSystemVersion 52 m.SourceImageType = s.Model.SourceImageType 53 m.SourceType = s.Model.SourceType 54 55 return err 56} 57 58// UnmarshalPolymorphicJSON unmarshals polymorphic json 59func (m *imagesourcedetails) UnmarshalPolymorphicJSON(data []byte) (interface{}, error) { 60 61 if data == nil || string(data) == "null" { 62 return nil, nil 63 } 64 65 var err error 66 switch m.SourceType { 67 case "objectStorageTuple": 68 mm := ImageSourceViaObjectStorageTupleDetails{} 69 err = json.Unmarshal(data, &mm) 70 return mm, err 71 case "objectStorageUri": 72 mm := ImageSourceViaObjectStorageUriDetails{} 73 err = json.Unmarshal(data, &mm) 74 return mm, err 75 default: 76 return *m, nil 77 } 78} 79 80//GetOperatingSystem returns OperatingSystem 81func (m imagesourcedetails) GetOperatingSystem() *string { 82 return m.OperatingSystem 83} 84 85//GetOperatingSystemVersion returns OperatingSystemVersion 86func (m imagesourcedetails) GetOperatingSystemVersion() *string { 87 return m.OperatingSystemVersion 88} 89 90//GetSourceImageType returns SourceImageType 91func (m imagesourcedetails) GetSourceImageType() ImageSourceDetailsSourceImageTypeEnum { 92 return m.SourceImageType 93} 94 95func (m imagesourcedetails) String() string { 96 return common.PointerString(m) 97} 98 99// ImageSourceDetailsSourceImageTypeEnum Enum with underlying type: string 100type ImageSourceDetailsSourceImageTypeEnum string 101 102// Set of constants representing the allowable values for ImageSourceDetailsSourceImageTypeEnum 103const ( 104 ImageSourceDetailsSourceImageTypeQcow2 ImageSourceDetailsSourceImageTypeEnum = "QCOW2" 105 ImageSourceDetailsSourceImageTypeVmdk ImageSourceDetailsSourceImageTypeEnum = "VMDK" 106) 107 108var mappingImageSourceDetailsSourceImageType = map[string]ImageSourceDetailsSourceImageTypeEnum{ 109 "QCOW2": ImageSourceDetailsSourceImageTypeQcow2, 110 "VMDK": ImageSourceDetailsSourceImageTypeVmdk, 111} 112 113// GetImageSourceDetailsSourceImageTypeEnumValues Enumerates the set of values for ImageSourceDetailsSourceImageTypeEnum 114func GetImageSourceDetailsSourceImageTypeEnumValues() []ImageSourceDetailsSourceImageTypeEnum { 115 values := make([]ImageSourceDetailsSourceImageTypeEnum, 0) 116 for _, v := range mappingImageSourceDetailsSourceImageType { 117 values = append(values, v) 118 } 119 return values 120} 121