1// Copyright (c) 2016, 2018, 2019, Oracle and/or its affiliates. All rights reserved. 2// Code generated. DO NOT EDIT. 3 4// Resource Manager API 5// 6// API for the Resource Manager service. Use this API to install, configure, and manage resources via the "infrastructure-as-code" model. For more information, see Overview of Resource Manager (https://docs.cloud.oracle.com/iaas/Content/ResourceManager/Concepts/resourcemanager.htm). 7// 8 9package resourcemanager 10 11import ( 12 "encoding/json" 13 "github.com/oracle/oci-go-sdk/common" 14) 15 16// ConfigSource Location of the Terraform configuration. 17type ConfigSource interface { 18 19 // File path to the directory from which Terraform runs. 20 // If not specified, we use the root directory. 21 GetWorkingDirectory() *string 22} 23 24type configsource struct { 25 JsonData []byte 26 WorkingDirectory *string `mandatory:"false" json:"workingDirectory"` 27 ConfigSourceType string `json:"configSourceType"` 28} 29 30// UnmarshalJSON unmarshals json 31func (m *configsource) UnmarshalJSON(data []byte) error { 32 m.JsonData = data 33 type Unmarshalerconfigsource configsource 34 s := struct { 35 Model Unmarshalerconfigsource 36 }{} 37 err := json.Unmarshal(data, &s.Model) 38 if err != nil { 39 return err 40 } 41 m.WorkingDirectory = s.Model.WorkingDirectory 42 m.ConfigSourceType = s.Model.ConfigSourceType 43 44 return err 45} 46 47// UnmarshalPolymorphicJSON unmarshals polymorphic json 48func (m *configsource) UnmarshalPolymorphicJSON(data []byte) (interface{}, error) { 49 50 if data == nil || string(data) == "null" { 51 return nil, nil 52 } 53 54 var err error 55 switch m.ConfigSourceType { 56 case "ZIP_UPLOAD": 57 mm := ZipUploadConfigSource{} 58 err = json.Unmarshal(data, &mm) 59 return mm, err 60 default: 61 return *m, nil 62 } 63} 64 65//GetWorkingDirectory returns WorkingDirectory 66func (m configsource) GetWorkingDirectory() *string { 67 return m.WorkingDirectory 68} 69 70func (m configsource) String() string { 71 return common.PointerString(m) 72} 73 74// ConfigSourceConfigSourceTypeEnum Enum with underlying type: string 75type ConfigSourceConfigSourceTypeEnum string 76 77// Set of constants representing the allowable values for ConfigSourceConfigSourceTypeEnum 78const ( 79 ConfigSourceConfigSourceTypeZipUpload ConfigSourceConfigSourceTypeEnum = "ZIP_UPLOAD" 80) 81 82var mappingConfigSourceConfigSourceType = map[string]ConfigSourceConfigSourceTypeEnum{ 83 "ZIP_UPLOAD": ConfigSourceConfigSourceTypeZipUpload, 84} 85 86// GetConfigSourceConfigSourceTypeEnumValues Enumerates the set of values for ConfigSourceConfigSourceTypeEnum 87func GetConfigSourceConfigSourceTypeEnumValues() []ConfigSourceConfigSourceTypeEnum { 88 values := make([]ConfigSourceConfigSourceTypeEnum, 0) 89 for _, v := range mappingConfigSourceConfigSourceType { 90 values = append(values, v) 91 } 92 return values 93} 94