Skip to content

Commit e3313a4

Browse files
committed
go: Add map that can create the enum value from the underlying literal
This also lets me know what are the valid options for the enum. (because I can check the map keys)
1 parent 4a3f5e5 commit e3313a4

16 files changed

+158
-0
lines changed

go/models/background_task_status.go

+6
Original file line numberDiff line numberDiff line change
@@ -35,3 +35,9 @@ func (v *BackgroundTaskStatus) UnmarshalJSON(src []byte) error {
3535
return fmt.Errorf("`%+v` is not a valid BackgroundTaskStatus", value)
3636

3737
}
38+
39+
var BackgroundTaskStatusFromString = map[string]BackgroundTaskStatus{
40+
"running": BACKGROUNDTASKSTATUS_RUNNING,
41+
"finished": BACKGROUNDTASKSTATUS_FINISHED,
42+
"failed": BACKGROUNDTASKSTATUS_FAILED,
43+
}

go/models/background_task_type.go

+10
Original file line numberDiff line numberDiff line change
@@ -43,3 +43,13 @@ func (v *BackgroundTaskType) UnmarshalJSON(src []byte) error {
4343
return fmt.Errorf("`%+v` is not a valid BackgroundTaskType", value)
4444

4545
}
46+
47+
var BackgroundTaskTypeFromString = map[string]BackgroundTaskType{
48+
"endpoint.replay": BACKGROUNDTASKTYPE_ENDPOINT_REPLAY,
49+
"endpoint.recover": BACKGROUNDTASKTYPE_ENDPOINT_RECOVER,
50+
"application.stats": BACKGROUNDTASKTYPE_APPLICATION_STATS,
51+
"message.broadcast": BACKGROUNDTASKTYPE_MESSAGE_BROADCAST,
52+
"sdk.generate": BACKGROUNDTASKTYPE_SDK_GENERATE,
53+
"event-type.aggregate": BACKGROUNDTASKTYPE_EVENT_TYPE_AGGREGATE,
54+
"application.purge_content": BACKGROUNDTASKTYPE_APPLICATION_PURGE_CONTENT,
55+
}

go/models/border_radius_enum.go

+8
Original file line numberDiff line numberDiff line change
@@ -39,3 +39,11 @@ func (v *BorderRadiusEnum) UnmarshalJSON(src []byte) error {
3939
return fmt.Errorf("`%+v` is not a valid BorderRadiusEnum", value)
4040

4141
}
42+
43+
var BorderRadiusEnumFromString = map[string]BorderRadiusEnum{
44+
"none": BORDERRADIUSENUM_NONE,
45+
"lg": BORDERRADIUSENUM_LG,
46+
"md": BORDERRADIUSENUM_MD,
47+
"sm": BORDERRADIUSENUM_SM,
48+
"full": BORDERRADIUSENUM_FULL,
49+
}

go/models/connector_kind.go

+15
Original file line numberDiff line numberDiff line change
@@ -53,3 +53,18 @@ func (v *ConnectorKind) UnmarshalJSON(src []byte) error {
5353
return fmt.Errorf("`%+v` is not a valid ConnectorKind", value)
5454

5555
}
56+
57+
var ConnectorKindFromString = map[string]ConnectorKind{
58+
"Custom": CONNECTORKIND_CUSTOM,
59+
"CustomerIO": CONNECTORKIND_CUSTOMER_IO,
60+
"Discord": CONNECTORKIND_DISCORD,
61+
"Hubspot": CONNECTORKIND_HUBSPOT,
62+
"Inngest": CONNECTORKIND_INNGEST,
63+
"Salesforce": CONNECTORKIND_SALESFORCE,
64+
"Segment": CONNECTORKIND_SEGMENT,
65+
"Slack": CONNECTORKIND_SLACK,
66+
"Teams": CONNECTORKIND_TEAMS,
67+
"TriggerDev": CONNECTORKIND_TRIGGER_DEV,
68+
"Windmill": CONNECTORKIND_WINDMILL,
69+
"Zapier": CONNECTORKIND_ZAPIER,
70+
}

go/models/endpoint_disabled_trigger.go

+5
Original file line numberDiff line numberDiff line change
@@ -33,3 +33,8 @@ func (v *EndpointDisabledTrigger) UnmarshalJSON(src []byte) error {
3333
return fmt.Errorf("`%+v` is not a valid EndpointDisabledTrigger", value)
3434

3535
}
36+
37+
var EndpointDisabledTriggerFromString = map[string]EndpointDisabledTrigger{
38+
"manual": ENDPOINTDISABLEDTRIGGER_MANUAL,
39+
"automatic": ENDPOINTDISABLEDTRIGGER_AUTOMATIC,
40+
}

go/models/environment_region.go

+9
Original file line numberDiff line numberDiff line change
@@ -41,3 +41,12 @@ func (v *EnvironmentRegion) UnmarshalJSON(src []byte) error {
4141
return fmt.Errorf("`%+v` is not a valid EnvironmentRegion", value)
4242

4343
}
44+
45+
var EnvironmentRegionFromString = map[string]EnvironmentRegion{
46+
"eu": ENVIRONMENTREGION_EU,
47+
"us": ENVIRONMENTREGION_US,
48+
"in": ENVIRONMENTREGION_IN,
49+
"au": ENVIRONMENTREGION_AU,
50+
"ca": ENVIRONMENTREGION_CA,
51+
"self-hosted": ENVIRONMENTREGION_SELF_HOSTED,
52+
}

go/models/environment_type.go

+5
Original file line numberDiff line numberDiff line change
@@ -33,3 +33,8 @@ func (v *EnvironmentType) UnmarshalJSON(src []byte) error {
3333
return fmt.Errorf("`%+v` is not a valid EnvironmentType", value)
3434

3535
}
36+
37+
var EnvironmentTypeFromString = map[string]EnvironmentType{
38+
"development": ENVIRONMENTTYPE_DEVELOPMENT,
39+
"production": ENVIRONMENTTYPE_PRODUCTION,
40+
}

go/models/ingest_source_in.go

+28
Original file line numberDiff line numberDiff line change
@@ -149,3 +149,31 @@ func (i IngestSourceIn) MarshalJSON() ([]byte, error) {
149149
}
150150
return json.Marshal(&struct{ Alias }{Alias: (Alias)(i)})
151151
}
152+
153+
var IngestSourceInTypeFromString = map[string]IngestSourceInType{
154+
"generic-webhook": IngestSourceInTypeGenericWebhook,
155+
"cron": IngestSourceInTypeCron,
156+
"adobe-sign": IngestSourceInTypeAdobeSign,
157+
"beehiiv": IngestSourceInTypeBeehiiv,
158+
"brex": IngestSourceInTypeBrex,
159+
"clerk": IngestSourceInTypeClerk,
160+
"docusign": IngestSourceInTypeDocusign,
161+
"github": IngestSourceInTypeGithub,
162+
"guesty": IngestSourceInTypeGuesty,
163+
"hubspot": IngestSourceInTypeHubspot,
164+
"incident-io": IngestSourceInTypeIncidentIo,
165+
"lithic": IngestSourceInTypeLithic,
166+
"nash": IngestSourceInTypeNash,
167+
"pleo": IngestSourceInTypePleo,
168+
"replicate": IngestSourceInTypeReplicate,
169+
"resend": IngestSourceInTypeResend,
170+
"safebase": IngestSourceInTypeSafebase,
171+
"sardine": IngestSourceInTypeSardine,
172+
"segment": IngestSourceInTypeSegment,
173+
"shopify": IngestSourceInTypeShopify,
174+
"slack": IngestSourceInTypeSlack,
175+
"stripe": IngestSourceInTypeStripe,
176+
"stych": IngestSourceInTypeStych,
177+
"svix": IngestSourceInTypeSvix,
178+
"zoom": IngestSourceInTypeZoom,
179+
}

go/models/ingest_source_out.go

+28
Original file line numberDiff line numberDiff line change
@@ -154,3 +154,31 @@ func (i IngestSourceOut) MarshalJSON() ([]byte, error) {
154154
}
155155
return json.Marshal(&struct{ Alias }{Alias: (Alias)(i)})
156156
}
157+
158+
var IngestSourceOutTypeFromString = map[string]IngestSourceOutType{
159+
"generic-webhook": IngestSourceOutTypeGenericWebhook,
160+
"cron": IngestSourceOutTypeCron,
161+
"adobe-sign": IngestSourceOutTypeAdobeSign,
162+
"beehiiv": IngestSourceOutTypeBeehiiv,
163+
"brex": IngestSourceOutTypeBrex,
164+
"clerk": IngestSourceOutTypeClerk,
165+
"docusign": IngestSourceOutTypeDocusign,
166+
"github": IngestSourceOutTypeGithub,
167+
"guesty": IngestSourceOutTypeGuesty,
168+
"hubspot": IngestSourceOutTypeHubspot,
169+
"incident-io": IngestSourceOutTypeIncidentIo,
170+
"lithic": IngestSourceOutTypeLithic,
171+
"nash": IngestSourceOutTypeNash,
172+
"pleo": IngestSourceOutTypePleo,
173+
"replicate": IngestSourceOutTypeReplicate,
174+
"resend": IngestSourceOutTypeResend,
175+
"safebase": IngestSourceOutTypeSafebase,
176+
"sardine": IngestSourceOutTypeSardine,
177+
"segment": IngestSourceOutTypeSegment,
178+
"shopify": IngestSourceOutTypeShopify,
179+
"slack": IngestSourceOutTypeSlack,
180+
"stripe": IngestSourceOutTypeStripe,
181+
"stych": IngestSourceOutTypeStych,
182+
"svix": IngestSourceOutTypeSvix,
183+
"zoom": IngestSourceOutTypeZoom,
184+
}

go/models/message_attempt_trigger_type.go

+5
Original file line numberDiff line numberDiff line change
@@ -36,3 +36,8 @@ func (v *MessageAttemptTriggerType) UnmarshalJSON(src []byte) error {
3636
return fmt.Errorf("`%+v` is not a valid MessageAttemptTriggerType", value)
3737

3838
}
39+
40+
var MessageAttemptTriggerTypeFromInt64 = map[int64]MessageAttemptTriggerType{
41+
0: MESSAGEATTEMPTTRIGGERTYPE_SCHEDULED,
42+
1: MESSAGEATTEMPTTRIGGERTYPE_MANUAL,
43+
}

go/models/message_status.go

+7
Original file line numberDiff line numberDiff line change
@@ -42,3 +42,10 @@ func (v *MessageStatus) UnmarshalJSON(src []byte) error {
4242
return fmt.Errorf("`%+v` is not a valid MessageStatus", value)
4343

4444
}
45+
46+
var MessageStatusFromInt64 = map[int64]MessageStatus{
47+
0: MESSAGESTATUS_SUCCESS,
48+
1: MESSAGESTATUS_PENDING,
49+
2: MESSAGESTATUS_FAIL,
50+
3: MESSAGESTATUS_SENDING,
51+
}

go/models/ordering.go

+5
Original file line numberDiff line numberDiff line change
@@ -34,3 +34,8 @@ func (v *Ordering) UnmarshalJSON(src []byte) error {
3434
return fmt.Errorf("`%+v` is not a valid Ordering", value)
3535

3636
}
37+
38+
var OrderingFromString = map[string]Ordering{
39+
"ascending": ORDERING_ASCENDING,
40+
"descending": ORDERING_DESCENDING,
41+
}

go/models/status_code_class.go

+9
Original file line numberDiff line numberDiff line change
@@ -48,3 +48,12 @@ func (v *StatusCodeClass) UnmarshalJSON(src []byte) error {
4848
return fmt.Errorf("`%+v` is not a valid StatusCodeClass", value)
4949

5050
}
51+
52+
var StatusCodeClassFromInt64 = map[int64]StatusCodeClass{
53+
0: STATUSCODECLASS_CODE_NONE,
54+
100: STATUSCODECLASS_CODE1XX,
55+
200: STATUSCODECLASS_CODE2XX,
56+
300: STATUSCODECLASS_CODE3XX,
57+
400: STATUSCODECLASS_CODE4XX,
58+
500: STATUSCODECLASS_CODE5XX,
59+
}

openapi-templates/go/types/integer_enum.go.jinja

+6
Original file line numberDiff line numberDiff line change
@@ -40,3 +40,9 @@ func (v *{{ ty_name }}) UnmarshalJSON(src []byte) error {
4040
return fmt.Errorf("`%+v` is not a valid {{ ty_name }}", value)
4141

4242
}
43+
44+
var {{ ty_name }}FromInt64 = map[int64]{{ ty_name }}{
45+
{% for varname, val in type.variants -%}
46+
{{ val }} : {{ type.name | to_upper_snake_case | replace("_", "") }}_{{ varname | to_upper_snake_case }},
47+
{% endfor -%}
48+
}

openapi-templates/go/types/string_enum.go.jinja

+6
Original file line numberDiff line numberDiff line change
@@ -40,3 +40,9 @@ func (v *{{ ty_name }}) UnmarshalJSON(src []byte) error {
4040
return fmt.Errorf("`%+v` is not a valid {{ ty_name }}", value)
4141

4242
}
43+
44+
var {{ ty_name }}FromString = map[string]{{ ty_name }}{
45+
{% for value in type.values -%}
46+
"{{ value }}" : {{ type.name | to_upper_snake_case | replace("_", "") }}_{{ value | to_upper_snake_case }},
47+
{% endfor -%}
48+
}

openapi-templates/go/types/struct_enum.go.jinja

+6
Original file line numberDiff line numberDiff line change
@@ -98,3 +98,9 @@ func (i {{ ty_name }}) MarshalJSON() ([]byte, error) {
9898
{% endif -%}
9999
return json.Marshal(&struct {Alias}{Alias: (Alias)(i)})
100100
}
101+
102+
var {{ ty_name }}{{ discriminator_field }}FromString = map[string]{{ ty_name }}{{ discriminator_field }}{
103+
{% for v in type.variants -%}
104+
"{{ v.name }}" : {{ ty_name }}{{ discriminator_field }}{{ v.name | to_upper_camel_case }},
105+
{% endfor -%}
106+
}

0 commit comments

Comments
 (0)