peridot/vendor/github.com/ory/hydra-client-go/models/o_auth2_client.go
2022-07-07 22:13:21 +02:00

528 lines
16 KiB
Go

// Code generated by go-swagger; DO NOT EDIT.
package models
// This file was generated by the swagger tool.
// Editing this file might prove futile when you re-run the swagger generate command
import (
"context"
"github.com/go-openapi/errors"
"github.com/go-openapi/strfmt"
"github.com/go-openapi/swag"
"github.com/go-openapi/validate"
)
// OAuth2Client Client represents an OAuth 2.0 Client.
//
// swagger:model oAuth2Client
type OAuth2Client struct {
// allowed cors origins
AllowedCorsOrigins StringSlicePipeDelimiter `json:"allowed_cors_origins,omitempty"`
// audience
Audience StringSlicePipeDelimiter `json:"audience,omitempty"`
// Boolean value specifying whether the RP requires that a sid (session ID) Claim be included in the Logout
// Token to identify the RP session with the OP when the backchannel_logout_uri is used.
// If omitted, the default value is false.
BackchannelLogoutSessionRequired bool `json:"backchannel_logout_session_required,omitempty"`
// RP URL that will cause the RP to log itself out when sent a Logout Token by the OP.
BackchannelLogoutURI string `json:"backchannel_logout_uri,omitempty"`
// ID is the id for this client.
ClientID string `json:"client_id,omitempty"`
// Name is the human-readable string name of the client to be presented to the
// end-user during authorization.
ClientName string `json:"client_name,omitempty"`
// Secret is the client's secret. The secret will be included in the create request as cleartext, and then
// never again. The secret is stored using BCrypt so it is impossible to recover it. Tell your users
// that they need to write the secret down as it will not be made available again.
ClientSecret string `json:"client_secret,omitempty"`
// SecretExpiresAt is an integer holding the time at which the client
// secret will expire or 0 if it will not expire. The time is
// represented as the number of seconds from 1970-01-01T00:00:00Z as
// measured in UTC until the date/time of expiration.
//
// This feature is currently not supported and it's value will always
// be set to 0.
ClientSecretExpiresAt int64 `json:"client_secret_expires_at,omitempty"`
// ClientURI is an URL string of a web page providing information about the client.
// If present, the server SHOULD display this URL to the end-user in
// a clickable fashion.
ClientURI string `json:"client_uri,omitempty"`
// contacts
Contacts StringSlicePipeDelimiter `json:"contacts,omitempty"`
// CreatedAt returns the timestamp of the client's creation.
// Format: date-time
CreatedAt strfmt.DateTime `json:"created_at,omitempty"`
// Boolean value specifying whether the RP requires that iss (issuer) and sid (session ID) query parameters be
// included to identify the RP session with the OP when the frontchannel_logout_uri is used.
// If omitted, the default value is false.
FrontchannelLogoutSessionRequired bool `json:"frontchannel_logout_session_required,omitempty"`
// RP URL that will cause the RP to log itself out when rendered in an iframe by the OP. An iss (issuer) query
// parameter and a sid (session ID) query parameter MAY be included by the OP to enable the RP to validate the
// request and to determine which of the potentially multiple sessions is to be logged out; if either is
// included, both MUST be.
FrontchannelLogoutURI string `json:"frontchannel_logout_uri,omitempty"`
// grant types
GrantTypes StringSlicePipeDelimiter `json:"grant_types,omitempty"`
// jwks
Jwks JoseJSONWebKeySet `json:"jwks,omitempty"`
// URL for the Client's JSON Web Key Set [JWK] document. If the Client signs requests to the Server, it contains
// the signing key(s) the Server uses to validate signatures from the Client. The JWK Set MAY also contain the
// Client's encryption keys(s), which are used by the Server to encrypt responses to the Client. When both signing
// and encryption keys are made available, a use (Key Use) parameter value is REQUIRED for all keys in the referenced
// JWK Set to indicate each key's intended usage. Although some algorithms allow the same key to be used for both
// signatures and encryption, doing so is NOT RECOMMENDED, as it is less secure. The JWK x5c parameter MAY be used
// to provide X.509 representations of keys provided. When used, the bare key values MUST still be present and MUST
// match those in the certificate.
JwksURI string `json:"jwks_uri,omitempty"`
// LogoURI is an URL string that references a logo for the client.
LogoURI string `json:"logo_uri,omitempty"`
// metadata
Metadata JSONRawMessage `json:"metadata,omitempty"`
// Owner is a string identifying the owner of the OAuth 2.0 Client.
Owner string `json:"owner,omitempty"`
// PolicyURI is a URL string that points to a human-readable privacy policy document
// that describes how the deployment organization collects, uses,
// retains, and discloses personal data.
PolicyURI string `json:"policy_uri,omitempty"`
// post logout redirect uris
PostLogoutRedirectUris StringSlicePipeDelimiter `json:"post_logout_redirect_uris,omitempty"`
// redirect uris
RedirectUris StringSlicePipeDelimiter `json:"redirect_uris,omitempty"`
// JWS [JWS] alg algorithm [JWA] that MUST be used for signing Request Objects sent to the OP. All Request Objects
// from this Client MUST be rejected, if not signed with this algorithm.
RequestObjectSigningAlg string `json:"request_object_signing_alg,omitempty"`
// request uris
RequestUris StringSlicePipeDelimiter `json:"request_uris,omitempty"`
// response types
ResponseTypes StringSlicePipeDelimiter `json:"response_types,omitempty"`
// Scope is a string containing a space-separated list of scope values (as
// described in Section 3.3 of OAuth 2.0 [RFC6749]) that the client
// can use when requesting access tokens.
// Pattern: ([a-zA-Z0-9\.\*]+\s?)+
Scope string `json:"scope,omitempty"`
// URL using the https scheme to be used in calculating Pseudonymous Identifiers by the OP. The URL references a
// file with a single JSON array of redirect_uri values.
SectorIdentifierURI string `json:"sector_identifier_uri,omitempty"`
// SubjectType requested for responses to this Client. The subject_types_supported Discovery parameter contains a
// list of the supported subject_type values for this server. Valid types include `pairwise` and `public`.
SubjectType string `json:"subject_type,omitempty"`
// Requested Client Authentication method for the Token Endpoint. The options are client_secret_post,
// client_secret_basic, private_key_jwt, and none.
TokenEndpointAuthMethod string `json:"token_endpoint_auth_method,omitempty"`
// Requested Client Authentication signing algorithm for the Token Endpoint.
TokenEndpointAuthSigningAlg string `json:"token_endpoint_auth_signing_alg,omitempty"`
// TermsOfServiceURI is a URL string that points to a human-readable terms of service
// document for the client that describes a contractual relationship
// between the end-user and the client that the end-user accepts when
// authorizing the client.
TosURI string `json:"tos_uri,omitempty"`
// UpdatedAt returns the timestamp of the last update.
// Format: date-time
UpdatedAt strfmt.DateTime `json:"updated_at,omitempty"`
// JWS alg algorithm [JWA] REQUIRED for signing UserInfo Responses. If this is specified, the response will be JWT
// [JWT] serialized, and signed using JWS. The default, if omitted, is for the UserInfo Response to return the Claims
// as a UTF-8 encoded JSON object using the application/json content-type.
UserinfoSignedResponseAlg string `json:"userinfo_signed_response_alg,omitempty"`
}
// Validate validates this o auth2 client
func (m *OAuth2Client) Validate(formats strfmt.Registry) error {
var res []error
if err := m.validateAllowedCorsOrigins(formats); err != nil {
res = append(res, err)
}
if err := m.validateAudience(formats); err != nil {
res = append(res, err)
}
if err := m.validateContacts(formats); err != nil {
res = append(res, err)
}
if err := m.validateCreatedAt(formats); err != nil {
res = append(res, err)
}
if err := m.validateGrantTypes(formats); err != nil {
res = append(res, err)
}
if err := m.validatePostLogoutRedirectUris(formats); err != nil {
res = append(res, err)
}
if err := m.validateRedirectUris(formats); err != nil {
res = append(res, err)
}
if err := m.validateRequestUris(formats); err != nil {
res = append(res, err)
}
if err := m.validateResponseTypes(formats); err != nil {
res = append(res, err)
}
if err := m.validateScope(formats); err != nil {
res = append(res, err)
}
if err := m.validateUpdatedAt(formats); err != nil {
res = append(res, err)
}
if len(res) > 0 {
return errors.CompositeValidationError(res...)
}
return nil
}
func (m *OAuth2Client) validateAllowedCorsOrigins(formats strfmt.Registry) error {
if swag.IsZero(m.AllowedCorsOrigins) { // not required
return nil
}
if err := m.AllowedCorsOrigins.Validate(formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
return ve.ValidateName("allowed_cors_origins")
}
return err
}
return nil
}
func (m *OAuth2Client) validateAudience(formats strfmt.Registry) error {
if swag.IsZero(m.Audience) { // not required
return nil
}
if err := m.Audience.Validate(formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
return ve.ValidateName("audience")
}
return err
}
return nil
}
func (m *OAuth2Client) validateContacts(formats strfmt.Registry) error {
if swag.IsZero(m.Contacts) { // not required
return nil
}
if err := m.Contacts.Validate(formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
return ve.ValidateName("contacts")
}
return err
}
return nil
}
func (m *OAuth2Client) validateCreatedAt(formats strfmt.Registry) error {
if swag.IsZero(m.CreatedAt) { // not required
return nil
}
if err := validate.FormatOf("created_at", "body", "date-time", m.CreatedAt.String(), formats); err != nil {
return err
}
return nil
}
func (m *OAuth2Client) validateGrantTypes(formats strfmt.Registry) error {
if swag.IsZero(m.GrantTypes) { // not required
return nil
}
if err := m.GrantTypes.Validate(formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
return ve.ValidateName("grant_types")
}
return err
}
return nil
}
func (m *OAuth2Client) validatePostLogoutRedirectUris(formats strfmt.Registry) error {
if swag.IsZero(m.PostLogoutRedirectUris) { // not required
return nil
}
if err := m.PostLogoutRedirectUris.Validate(formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
return ve.ValidateName("post_logout_redirect_uris")
}
return err
}
return nil
}
func (m *OAuth2Client) validateRedirectUris(formats strfmt.Registry) error {
if swag.IsZero(m.RedirectUris) { // not required
return nil
}
if err := m.RedirectUris.Validate(formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
return ve.ValidateName("redirect_uris")
}
return err
}
return nil
}
func (m *OAuth2Client) validateRequestUris(formats strfmt.Registry) error {
if swag.IsZero(m.RequestUris) { // not required
return nil
}
if err := m.RequestUris.Validate(formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
return ve.ValidateName("request_uris")
}
return err
}
return nil
}
func (m *OAuth2Client) validateResponseTypes(formats strfmt.Registry) error {
if swag.IsZero(m.ResponseTypes) { // not required
return nil
}
if err := m.ResponseTypes.Validate(formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
return ve.ValidateName("response_types")
}
return err
}
return nil
}
func (m *OAuth2Client) validateScope(formats strfmt.Registry) error {
if swag.IsZero(m.Scope) { // not required
return nil
}
if err := validate.Pattern("scope", "body", m.Scope, `([a-zA-Z0-9\.\*]+\s?)+`); err != nil {
return err
}
return nil
}
func (m *OAuth2Client) validateUpdatedAt(formats strfmt.Registry) error {
if swag.IsZero(m.UpdatedAt) { // not required
return nil
}
if err := validate.FormatOf("updated_at", "body", "date-time", m.UpdatedAt.String(), formats); err != nil {
return err
}
return nil
}
// ContextValidate validate this o auth2 client based on the context it is used
func (m *OAuth2Client) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
var res []error
if err := m.contextValidateAllowedCorsOrigins(ctx, formats); err != nil {
res = append(res, err)
}
if err := m.contextValidateAudience(ctx, formats); err != nil {
res = append(res, err)
}
if err := m.contextValidateContacts(ctx, formats); err != nil {
res = append(res, err)
}
if err := m.contextValidateGrantTypes(ctx, formats); err != nil {
res = append(res, err)
}
if err := m.contextValidatePostLogoutRedirectUris(ctx, formats); err != nil {
res = append(res, err)
}
if err := m.contextValidateRedirectUris(ctx, formats); err != nil {
res = append(res, err)
}
if err := m.contextValidateRequestUris(ctx, formats); err != nil {
res = append(res, err)
}
if err := m.contextValidateResponseTypes(ctx, formats); err != nil {
res = append(res, err)
}
if len(res) > 0 {
return errors.CompositeValidationError(res...)
}
return nil
}
func (m *OAuth2Client) contextValidateAllowedCorsOrigins(ctx context.Context, formats strfmt.Registry) error {
if err := m.AllowedCorsOrigins.ContextValidate(ctx, formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
return ve.ValidateName("allowed_cors_origins")
}
return err
}
return nil
}
func (m *OAuth2Client) contextValidateAudience(ctx context.Context, formats strfmt.Registry) error {
if err := m.Audience.ContextValidate(ctx, formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
return ve.ValidateName("audience")
}
return err
}
return nil
}
func (m *OAuth2Client) contextValidateContacts(ctx context.Context, formats strfmt.Registry) error {
if err := m.Contacts.ContextValidate(ctx, formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
return ve.ValidateName("contacts")
}
return err
}
return nil
}
func (m *OAuth2Client) contextValidateGrantTypes(ctx context.Context, formats strfmt.Registry) error {
if err := m.GrantTypes.ContextValidate(ctx, formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
return ve.ValidateName("grant_types")
}
return err
}
return nil
}
func (m *OAuth2Client) contextValidatePostLogoutRedirectUris(ctx context.Context, formats strfmt.Registry) error {
if err := m.PostLogoutRedirectUris.ContextValidate(ctx, formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
return ve.ValidateName("post_logout_redirect_uris")
}
return err
}
return nil
}
func (m *OAuth2Client) contextValidateRedirectUris(ctx context.Context, formats strfmt.Registry) error {
if err := m.RedirectUris.ContextValidate(ctx, formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
return ve.ValidateName("redirect_uris")
}
return err
}
return nil
}
func (m *OAuth2Client) contextValidateRequestUris(ctx context.Context, formats strfmt.Registry) error {
if err := m.RequestUris.ContextValidate(ctx, formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
return ve.ValidateName("request_uris")
}
return err
}
return nil
}
func (m *OAuth2Client) contextValidateResponseTypes(ctx context.Context, formats strfmt.Registry) error {
if err := m.ResponseTypes.ContextValidate(ctx, formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
return ve.ValidateName("response_types")
}
return err
}
return nil
}
// MarshalBinary interface implementation
func (m *OAuth2Client) MarshalBinary() ([]byte, error) {
if m == nil {
return nil, nil
}
return swag.WriteJSON(m)
}
// UnmarshalBinary interface implementation
func (m *OAuth2Client) UnmarshalBinary(b []byte) error {
var res OAuth2Client
if err := swag.ReadJSON(b, &res); err != nil {
return err
}
*m = res
return nil
}