create_resolver_endpoint_details.go raw

   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