diff --git a/rest_model_zrok/share_request.go b/rest_model_zrok/share_request.go index c440d6bc..0b15f10e 100644 --- a/rest_model_zrok/share_request.go +++ b/rest_model_zrok/share_request.go @@ -25,6 +25,7 @@ type ShareRequest struct { AccessGrants []string `json:"accessGrants"` // auth scheme + // Enum: [none basic oidc] AuthScheme string `json:"authScheme,omitempty"` // auth users @@ -72,6 +73,10 @@ type ShareRequest struct { func (m *ShareRequest) Validate(formats strfmt.Registry) error { var res []error + if err := m.validateAuthScheme(formats); err != nil { + res = append(res, err) + } + if err := m.validateAuthUsers(formats); err != nil { res = append(res, err) } @@ -98,6 +103,51 @@ func (m *ShareRequest) Validate(formats strfmt.Registry) error { return nil } +var shareRequestTypeAuthSchemePropEnum []interface{} + +func init() { + var res []string + if err := json.Unmarshal([]byte(`["none","basic","oidc"]`), &res); err != nil { + panic(err) + } + for _, v := range res { + shareRequestTypeAuthSchemePropEnum = append(shareRequestTypeAuthSchemePropEnum, v) + } +} + +const ( + + // ShareRequestAuthSchemeNone captures enum value "none" + ShareRequestAuthSchemeNone string = "none" + + // ShareRequestAuthSchemeBasic captures enum value "basic" + ShareRequestAuthSchemeBasic string = "basic" + + // ShareRequestAuthSchemeOidc captures enum value "oidc" + ShareRequestAuthSchemeOidc string = "oidc" +) + +// prop value enum +func (m *ShareRequest) validateAuthSchemeEnum(path, location string, value string) error { + if err := validate.EnumCase(path, location, value, shareRequestTypeAuthSchemePropEnum, true); err != nil { + return err + } + return nil +} + +func (m *ShareRequest) validateAuthScheme(formats strfmt.Registry) error { + if swag.IsZero(m.AuthScheme) { // not required + return nil + } + + // value enum + if err := m.validateAuthSchemeEnum("authScheme", "body", m.AuthScheme); err != nil { + return err + } + + return nil +} + func (m *ShareRequest) validateAuthUsers(formats strfmt.Registry) error { if swag.IsZero(m.AuthUsers) { // not required return nil diff --git a/rest_server_zrok/embedded_spec.go b/rest_server_zrok/embedded_spec.go index dea7a027..759882a8 100644 --- a/rest_server_zrok/embedded_spec.go +++ b/rest_server_zrok/embedded_spec.go @@ -2840,7 +2840,12 @@ func init() { } }, "authScheme": { - "type": "string" + "type": "string", + "enum": [ + "none", + "basic", + "oidc" + ] }, "authUsers": { "type": "array", @@ -5794,7 +5799,12 @@ func init() { } }, "authScheme": { - "type": "string" + "type": "string", + "enum": [ + "none", + "basic", + "oidc" + ] }, "authUsers": { "type": "array", diff --git a/sdk/nodejs/sdk/src/api/models/ShareRequest.ts b/sdk/nodejs/sdk/src/api/models/ShareRequest.ts index 142e5997..2ed36d8a 100644 --- a/sdk/nodejs/sdk/src/api/models/ShareRequest.ts +++ b/sdk/nodejs/sdk/src/api/models/ShareRequest.ts @@ -62,7 +62,7 @@ export interface ShareRequest { * @type {string} * @memberof ShareRequest */ - authScheme?: string; + authScheme?: ShareRequestAuthSchemeEnum; /** * * @type {Array} @@ -138,6 +138,16 @@ export const ShareRequestBackendModeEnum = { } as const; export type ShareRequestBackendModeEnum = typeof ShareRequestBackendModeEnum[keyof typeof ShareRequestBackendModeEnum]; +/** + * @export + */ +export const ShareRequestAuthSchemeEnum = { + None: 'none', + Basic: 'basic', + Oidc: 'oidc' +} as const; +export type ShareRequestAuthSchemeEnum = typeof ShareRequestAuthSchemeEnum[keyof typeof ShareRequestAuthSchemeEnum]; + /** * @export */ diff --git a/sdk/python/src/test/test_share_request.py b/sdk/python/src/test/test_share_request.py index c543ae26..49311a01 100644 --- a/sdk/python/src/test/test_share_request.py +++ b/sdk/python/src/test/test_share_request.py @@ -42,7 +42,7 @@ class TestShareRequest(unittest.TestCase): ], backend_mode = 'proxy', backend_proxy_endpoint = '', - auth_scheme = '', + auth_scheme = 'none', auth_users = [ zrok_api.models.auth_user.authUser( username = '', diff --git a/sdk/python/src/zrok_api/models/share_request.py b/sdk/python/src/zrok_api/models/share_request.py index 7ea8d828..b7e925f5 100644 --- a/sdk/python/src/zrok_api/models/share_request.py +++ b/sdk/python/src/zrok_api/models/share_request.py @@ -63,6 +63,16 @@ class ShareRequest(BaseModel): raise ValueError("must be one of enum values ('proxy', 'web', 'tcpTunnel', 'udpTunnel', 'caddy', 'drive', 'socks', 'vpn')") return value + @field_validator('auth_scheme') + def auth_scheme_validate_enum(cls, value): + """Validates the enum""" + if value is None: + return value + + if value not in set(['none', 'basic', 'oidc']): + raise ValueError("must be one of enum values ('none', 'basic', 'oidc')") + return value + @field_validator('oauth_provider') def oauth_provider_validate_enum(cls, value): """Validates the enum""" diff --git a/ui/src/api/models/ShareRequest.ts b/ui/src/api/models/ShareRequest.ts index 142e5997..2ed36d8a 100644 --- a/ui/src/api/models/ShareRequest.ts +++ b/ui/src/api/models/ShareRequest.ts @@ -62,7 +62,7 @@ export interface ShareRequest { * @type {string} * @memberof ShareRequest */ - authScheme?: string; + authScheme?: ShareRequestAuthSchemeEnum; /** * * @type {Array} @@ -138,6 +138,16 @@ export const ShareRequestBackendModeEnum = { } as const; export type ShareRequestBackendModeEnum = typeof ShareRequestBackendModeEnum[keyof typeof ShareRequestBackendModeEnum]; +/** + * @export + */ +export const ShareRequestAuthSchemeEnum = { + None: 'none', + Basic: 'basic', + Oidc: 'oidc' +} as const; +export type ShareRequestAuthSchemeEnum = typeof ShareRequestAuthSchemeEnum[keyof typeof ShareRequestAuthSchemeEnum]; + /** * @export */