File: model_type_name.go

package info (click to toggle)
golang-github-openfga-go-sdk 0.6.5-1
  • links: PTS, VCS
  • area: main
  • in suites: experimental, forky, sid, trixie
  • size: 1,960 kB
  • sloc: makefile: 13
file content (131 lines) | stat: -rw-r--r-- 3,158 bytes parent folder | download
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
/**
 * Go SDK for OpenFGA
 *
 * API version: 1.x
 * Website: https://openfga.dev
 * Documentation: https://openfga.dev/docs
 * Support: https://openfga.dev/community
 * License: [Apache-2.0](https://github.com/openfga/go-sdk/blob/main/LICENSE)
 *
 * NOTE: This file was auto generated by OpenAPI Generator (https://openapi-generator.tech). DO NOT EDIT.
 */

package openfga

import (
	"encoding/json"
	"fmt"
)

// TypeName the model 'TypeName'
type TypeName string

// List of TypeName
const (
	TYPENAME_UNSPECIFIED TypeName = "TYPE_NAME_UNSPECIFIED"
	TYPENAME_ANY         TypeName = "TYPE_NAME_ANY"
	TYPENAME_BOOL        TypeName = "TYPE_NAME_BOOL"
	TYPENAME_STRING      TypeName = "TYPE_NAME_STRING"
	TYPENAME_INT         TypeName = "TYPE_NAME_INT"
	TYPENAME_UINT        TypeName = "TYPE_NAME_UINT"
	TYPENAME_DOUBLE      TypeName = "TYPE_NAME_DOUBLE"
	TYPENAME_DURATION    TypeName = "TYPE_NAME_DURATION"
	TYPENAME_TIMESTAMP   TypeName = "TYPE_NAME_TIMESTAMP"
	TYPENAME_MAP         TypeName = "TYPE_NAME_MAP"
	TYPENAME_LIST        TypeName = "TYPE_NAME_LIST"
	TYPENAME_IPADDRESS   TypeName = "TYPE_NAME_IPADDRESS"
)

var allowedTypeNameEnumValues = []TypeName{
	"TYPE_NAME_UNSPECIFIED",
	"TYPE_NAME_ANY",
	"TYPE_NAME_BOOL",
	"TYPE_NAME_STRING",
	"TYPE_NAME_INT",
	"TYPE_NAME_UINT",
	"TYPE_NAME_DOUBLE",
	"TYPE_NAME_DURATION",
	"TYPE_NAME_TIMESTAMP",
	"TYPE_NAME_MAP",
	"TYPE_NAME_LIST",
	"TYPE_NAME_IPADDRESS",
}

func (v *TypeName) UnmarshalJSON(src []byte) error {
	var value string
	err := json.Unmarshal(src, &value)
	if err != nil {
		return err
	}
	enumTypeValue := TypeName(value)
	for _, existing := range allowedTypeNameEnumValues {
		if existing == enumTypeValue {
			*v = enumTypeValue
			return nil
		}
	}

	return fmt.Errorf("%+v is not a valid TypeName", value)
}

// NewTypeNameFromValue returns a pointer to a valid TypeName
// for the value passed as argument, or an error if the value passed is not allowed by the enum
func NewTypeNameFromValue(v string) (*TypeName, error) {
	ev := TypeName(v)
	if ev.IsValid() {
		return &ev, nil
	} else {
		return nil, fmt.Errorf("invalid value '%v' for TypeName: valid values are %v", v, allowedTypeNameEnumValues)
	}
}

// IsValid return true if the value is valid for the enum, false otherwise
func (v TypeName) IsValid() bool {
	for _, existing := range allowedTypeNameEnumValues {
		if existing == v {
			return true
		}
	}
	return false
}

// Ptr returns reference to TypeName value
func (v TypeName) Ptr() *TypeName {
	return &v
}

type NullableTypeName struct {
	value *TypeName
	isSet bool
}

func (v NullableTypeName) Get() *TypeName {
	return v.value
}

func (v *NullableTypeName) Set(val *TypeName) {
	v.value = val
	v.isSet = true
}

func (v NullableTypeName) IsSet() bool {
	return v.isSet
}

func (v *NullableTypeName) Unset() {
	v.value = nil
	v.isSet = false
}

func NewNullableTypeName(val *TypeName) *NullableTypeName {
	return &NullableTypeName{value: val, isSet: true}
}

func (v NullableTypeName) MarshalJSON() ([]byte, error) {
	return json.Marshal(v.value)
}

func (v *NullableTypeName) UnmarshalJSON(src []byte) error {
	v.isSet = true
	return json.Unmarshal(src, &v.value)
}