-
Notifications
You must be signed in to change notification settings - Fork 79
/
base_tag_definition_validator.go
131 lines (111 loc) · 5.72 KB
/
base_tag_definition_validator.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
// Copyright (c) 2016, 2018, 2024, Oracle and/or its affiliates. All rights reserved.
// 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.
// Code generated. DO NOT EDIT.
// Identity and Access Management Service API
//
// Use the Identity and Access Management Service API to manage users, groups, identity domains, compartments, policies, tagging, and limits. For information about managing users, groups, compartments, and policies, see Identity and Access Management (without identity domains) (https://docs.cloud.oracle.com/iaas/Content/Identity/Concepts/overview.htm). For information about tagging and service limits, see Tagging (https://docs.cloud.oracle.com/iaas/Content/Tagging/Concepts/taggingoverview.htm) and Service Limits (https://docs.cloud.oracle.com/iaas/Content/General/Concepts/servicelimits.htm). For information about creating, modifying, and deleting identity domains, see Identity and Access Management (with identity domains) (https://docs.cloud.oracle.com/iaas/Content/Identity/home.htm).
//
package identity
import (
"encoding/json"
"fmt"
"github.com/oracle/oci-go-sdk/v65/common"
"strings"
)
// BaseTagDefinitionValidator Validates a definedTag value. Each validator performs validation steps in addition to the standard
// validation for definedTag values. For more information, see
// Limits on Tags (https://docs.cloud.oracle.com/Content/Tagging/Concepts/taggingoverview.htm#limits).
// If you define a validator after a value has been set for a defined tag, then any updates that
// attempt to change the value must pass the additional validation defined by the current rule.
// Previously set values (even those that would fail the current validation) are not updated. You can
// still update other attributes to resources that contain a non-valid defined tag.
// To clear the validator call UpdateTag with
// DefaultTagDefinitionValidator (https://docs.cloud.oracle.com/api/#/en/identity/latest/datatypes/DefaultTagDefinitionValidator).
type BaseTagDefinitionValidator interface {
}
type basetagdefinitionvalidator struct {
JsonData []byte
ValidatorType string `json:"validatorType"`
}
// UnmarshalJSON unmarshals json
func (m *basetagdefinitionvalidator) UnmarshalJSON(data []byte) error {
m.JsonData = data
type Unmarshalerbasetagdefinitionvalidator basetagdefinitionvalidator
s := struct {
Model Unmarshalerbasetagdefinitionvalidator
}{}
err := json.Unmarshal(data, &s.Model)
if err != nil {
return err
}
m.ValidatorType = s.Model.ValidatorType
return err
}
// UnmarshalPolymorphicJSON unmarshals polymorphic json
func (m *basetagdefinitionvalidator) UnmarshalPolymorphicJSON(data []byte) (interface{}, error) {
if data == nil || string(data) == "null" {
return nil, nil
}
var err error
switch m.ValidatorType {
case "DEFAULT":
mm := DefaultTagDefinitionValidator{}
err = json.Unmarshal(data, &mm)
return mm, err
case "ENUM":
mm := EnumTagDefinitionValidator{}
err = json.Unmarshal(data, &mm)
return mm, err
default:
common.Logf("Recieved unsupported enum value for BaseTagDefinitionValidator: %s.", m.ValidatorType)
return *m, nil
}
}
func (m basetagdefinitionvalidator) String() string {
return common.PointerString(m)
}
// ValidateEnumValue returns an error when providing an unsupported enum value
// This function is being called during constructing API request process
// Not recommended for calling this function directly
func (m basetagdefinitionvalidator) ValidateEnumValue() (bool, error) {
errMessage := []string{}
if len(errMessage) > 0 {
return true, fmt.Errorf(strings.Join(errMessage, "\n"))
}
return false, nil
}
// BaseTagDefinitionValidatorValidatorTypeEnum Enum with underlying type: string
type BaseTagDefinitionValidatorValidatorTypeEnum string
// Set of constants representing the allowable values for BaseTagDefinitionValidatorValidatorTypeEnum
const (
BaseTagDefinitionValidatorValidatorTypeEnumvalue BaseTagDefinitionValidatorValidatorTypeEnum = "ENUM"
BaseTagDefinitionValidatorValidatorTypeDefault BaseTagDefinitionValidatorValidatorTypeEnum = "DEFAULT"
)
var mappingBaseTagDefinitionValidatorValidatorTypeEnum = map[string]BaseTagDefinitionValidatorValidatorTypeEnum{
"ENUM": BaseTagDefinitionValidatorValidatorTypeEnumvalue,
"DEFAULT": BaseTagDefinitionValidatorValidatorTypeDefault,
}
var mappingBaseTagDefinitionValidatorValidatorTypeEnumLowerCase = map[string]BaseTagDefinitionValidatorValidatorTypeEnum{
"enum": BaseTagDefinitionValidatorValidatorTypeEnumvalue,
"default": BaseTagDefinitionValidatorValidatorTypeDefault,
}
// GetBaseTagDefinitionValidatorValidatorTypeEnumValues Enumerates the set of values for BaseTagDefinitionValidatorValidatorTypeEnum
func GetBaseTagDefinitionValidatorValidatorTypeEnumValues() []BaseTagDefinitionValidatorValidatorTypeEnum {
values := make([]BaseTagDefinitionValidatorValidatorTypeEnum, 0)
for _, v := range mappingBaseTagDefinitionValidatorValidatorTypeEnum {
values = append(values, v)
}
return values
}
// GetBaseTagDefinitionValidatorValidatorTypeEnumStringValues Enumerates the set of values in String for BaseTagDefinitionValidatorValidatorTypeEnum
func GetBaseTagDefinitionValidatorValidatorTypeEnumStringValues() []string {
return []string{
"ENUM",
"DEFAULT",
}
}
// GetMappingBaseTagDefinitionValidatorValidatorTypeEnum performs case Insensitive comparison on enum value and return the desired enum
func GetMappingBaseTagDefinitionValidatorValidatorTypeEnum(val string) (BaseTagDefinitionValidatorValidatorTypeEnum, bool) {
enum, ok := mappingBaseTagDefinitionValidatorValidatorTypeEnumLowerCase[strings.ToLower(val)]
return enum, ok
}