1 // Copyright (c) 2016, 2018, 2025, Oracle and/or its affiliates. All rights reserved.
2 // This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license.
3 // Code generated. DO NOT EDIT.
4 5 // DNS API
6 //
7 // API for the DNS service. Use this API to manage DNS zones, records, and other DNS resources.
8 // For more information, see Overview of the DNS Service (https://docs.oracle.com/iaas/Content/DNS/Concepts/dnszonemanagement.htm).
9 //
10 11 package dns
12 13 import (
14 "encoding/json"
15 "fmt"
16 "strings"
17 18 "github.com/nrdcg/oci-go-sdk/common/v1065"
19 )
20 21 // CreateResolverEndpointDetails The body for defining a new resolver endpoint.
22 // **Warning:** Oracle recommends that you avoid using any confidential information when you supply string values using the API.
23 type CreateResolverEndpointDetails interface {
24 25 // The name of the resolver endpoint. Must be unique, case-insensitive, within the resolver.
26 GetName() *string
27 28 // A Boolean flag indicating whether or not the resolver endpoint is for forwarding.
29 GetIsForwarding() *bool
30 31 // A Boolean flag indicating whether or not the resolver endpoint is for listening.
32 GetIsListening() *bool
33 34 // An IP address from which forwarded queries may be sent. For VNIC endpoints, this IP address must be part
35 // of the subnet and will be assigned by the system if unspecified when isForwarding is true.
36 GetForwardingAddress() *string
37 38 // An IP address to listen to queries on. For VNIC endpoints this IP address must be part of the
39 // subnet and will be assigned by the system if unspecified when isListening is true.
40 GetListeningAddress() *string
41 }
42 43 type createresolverendpointdetails struct {
44 JsonData []byte
45 ForwardingAddress *string `mandatory:"false" json:"forwardingAddress"`
46 ListeningAddress *string `mandatory:"false" json:"listeningAddress"`
47 Name *string `mandatory:"true" json:"name"`
48 IsForwarding *bool `mandatory:"true" json:"isForwarding"`
49 IsListening *bool `mandatory:"true" json:"isListening"`
50 EndpointType string `json:"endpointType"`
51 }
52 53 // UnmarshalJSON unmarshals json
54 func (m *createresolverendpointdetails) UnmarshalJSON(data []byte) error {
55 m.JsonData = data
56 type Unmarshalercreateresolverendpointdetails createresolverendpointdetails
57 s := struct {
58 Model Unmarshalercreateresolverendpointdetails
59 }{}
60 err := json.Unmarshal(data, &s.Model)
61 if err != nil {
62 return err
63 }
64 m.Name = s.Model.Name
65 m.IsForwarding = s.Model.IsForwarding
66 m.IsListening = s.Model.IsListening
67 m.ForwardingAddress = s.Model.ForwardingAddress
68 m.ListeningAddress = s.Model.ListeningAddress
69 m.EndpointType = s.Model.EndpointType
70 71 return err
72 }
73 74 // UnmarshalPolymorphicJSON unmarshals polymorphic json
75 func (m *createresolverendpointdetails) UnmarshalPolymorphicJSON(data []byte) (interface{}, error) {
76 77 if data == nil || string(data) == "null" {
78 return nil, nil
79 }
80 81 var err error
82 switch m.EndpointType {
83 case "VNIC":
84 mm := CreateResolverVnicEndpointDetails{}
85 err = json.Unmarshal(data, &mm)
86 return mm, err
87 default:
88 common.Logf("Received unsupported enum value for CreateResolverEndpointDetails: %s.", m.EndpointType)
89 return *m, nil
90 }
91 }
92 93 // GetForwardingAddress returns ForwardingAddress
94 func (m createresolverendpointdetails) GetForwardingAddress() *string {
95 return m.ForwardingAddress
96 }
97 98 // GetListeningAddress returns ListeningAddress
99 func (m createresolverendpointdetails) GetListeningAddress() *string {
100 return m.ListeningAddress
101 }
102 103 // GetName returns Name
104 func (m createresolverendpointdetails) GetName() *string {
105 return m.Name
106 }
107 108 // GetIsForwarding returns IsForwarding
109 func (m createresolverendpointdetails) GetIsForwarding() *bool {
110 return m.IsForwarding
111 }
112 113 // GetIsListening returns IsListening
114 func (m createresolverendpointdetails) GetIsListening() *bool {
115 return m.IsListening
116 }
117 118 func (m createresolverendpointdetails) String() string {
119 return common.PointerString(m)
120 }
121 122 // ValidateEnumValue returns an error when providing an unsupported enum value
123 // This function is being called during constructing API request process
124 // Not recommended for calling this function directly
125 func (m createresolverendpointdetails) ValidateEnumValue() (bool, error) {
126 errMessage := []string{}
127 128 if len(errMessage) > 0 {
129 return true, fmt.Errorf("%s", strings.Join(errMessage, "\n"))
130 }
131 return false, nil
132 }
133 134 // CreateResolverEndpointDetailsEndpointTypeEnum Enum with underlying type: string
135 type CreateResolverEndpointDetailsEndpointTypeEnum string
136 137 // Set of constants representing the allowable values for CreateResolverEndpointDetailsEndpointTypeEnum
138 const (
139 CreateResolverEndpointDetailsEndpointTypeVnic CreateResolverEndpointDetailsEndpointTypeEnum = "VNIC"
140 )
141 142 var mappingCreateResolverEndpointDetailsEndpointTypeEnum = map[string]CreateResolverEndpointDetailsEndpointTypeEnum{
143 "VNIC": CreateResolverEndpointDetailsEndpointTypeVnic,
144 }
145 146 var mappingCreateResolverEndpointDetailsEndpointTypeEnumLowerCase = map[string]CreateResolverEndpointDetailsEndpointTypeEnum{
147 "vnic": CreateResolverEndpointDetailsEndpointTypeVnic,
148 }
149 150 // GetCreateResolverEndpointDetailsEndpointTypeEnumValues Enumerates the set of values for CreateResolverEndpointDetailsEndpointTypeEnum
151 func GetCreateResolverEndpointDetailsEndpointTypeEnumValues() []CreateResolverEndpointDetailsEndpointTypeEnum {
152 values := make([]CreateResolverEndpointDetailsEndpointTypeEnum, 0)
153 for _, v := range mappingCreateResolverEndpointDetailsEndpointTypeEnum {
154 values = append(values, v)
155 }
156 return values
157 }
158 159 // GetCreateResolverEndpointDetailsEndpointTypeEnumStringValues Enumerates the set of values in String for CreateResolverEndpointDetailsEndpointTypeEnum
160 func GetCreateResolverEndpointDetailsEndpointTypeEnumStringValues() []string {
161 return []string{
162 "VNIC",
163 }
164 }
165 166 // GetMappingCreateResolverEndpointDetailsEndpointTypeEnum performs case Insensitive comparison on enum value and return the desired enum
167 func GetMappingCreateResolverEndpointDetailsEndpointTypeEnum(val string) (CreateResolverEndpointDetailsEndpointTypeEnum, bool) {
168 enum, ok := mappingCreateResolverEndpointDetailsEndpointTypeEnumLowerCase[strings.ToLower(val)]
169 return enum, ok
170 }
171