Documentation
      ¶
    
    
  
    
  
    Index ¶
- Variables
 - type AdminCreateArgs
 - type EmailLinkCreateArgs
 - type EmailLinkCreateRequest
 - type EmailLinkCreateResponse
 - type EmailLinkCreateResults
 - type Error
 - type JWTCreateArgs
 - type JWTCreateRequest
 - type JWTCreateResponse
 - type JWTCreateResults
 - type JWTValidateArgs
 - type JWTValidateRequest
 - type JWTValidateResponse
 - type JWTValidateResults
 - type LinkCreateArgs
 - type LinkCreateRequest
 - type LinkCreateResponse
 - type LinkCreateResults
 - type RequestMetadata
 - type ServiceAccount
 - type ServiceAccountCreateArgs
 - type ServiceAccountCreateRequest
 - type ServiceAccountCreateResponse
 - type ServiceAccountCreateResults
 - type ValidAdminCreateArgs
 - type ValidEmailLinkCreateArgs
 - type ValidEmailLinkCreateRequest
 - type ValidJWTCreateArgs
 - type ValidJWTCreateRequest
 - type ValidJWTValidateArgs
 - type ValidJWTValidateRequest
 - type ValidLinkCreateArgs
 - type ValidLinkCreateRequest
 - type ValidServiceAccountCreateArgs
 - type ValidServiceAccountCreateRequest
 - type Validation
 
Constants ¶
This section is empty.
Variables ¶
var ErrInvalidModel = errors.New("invalid model")
    ErrInvalidModel is returned when a model is invalid.
Functions ¶
This section is empty.
Types ¶
type AdminCreateArgs ¶
type AdminCreateArgs struct {
	APIKey                   uuid.UUID                `json:"apiKey"`
	Aud                      uuid.UUID                `json:"aud"`
	UUID                     uuid.UUID                `json:"uuid"`
	ServiceAccountCreateArgs ServiceAccountCreateArgs `json:"serviceAccountCreateArgs"`
}
    AdminCreateArgs are the unvalidated arguments for creating an admin.
func (AdminCreateArgs) Validate ¶
func (a AdminCreateArgs) Validate(config Validation) (ValidAdminCreateArgs, error)
Validate validates the admin create arguments.
type EmailLinkCreateArgs ¶
type EmailLinkCreateArgs struct {
	ButtonText   string `json:"buttonText"`
	Greeting     string `json:"greeting"`
	LogoClickURL string `json:"logoClickURL"`
	LogoImageURL string `json:"logoImageURL"`
	ServiceName  string `json:"serviceName"`
	Subject      string `json:"subject"`
	SubTitle     string `json:"subTitle"`
	Title        string `json:"title"`
	ToEmail      string `json:"toEmail"`
	ToName       string `json:"toName"`
}
    EmailLinkCreateArgs are the unvalidated arguments for creating an email link.
func (EmailLinkCreateArgs) Validate ¶
func (p EmailLinkCreateArgs) Validate(config Validation) (ValidEmailLinkCreateArgs, error)
Validate implements the Validatable interface.
type EmailLinkCreateRequest ¶
type EmailLinkCreateRequest struct {
	EmailArgs EmailLinkCreateArgs `json:"emailArgs"`
	LinkArgs  LinkCreateArgs      `json:"linkArgs"`
}
    EmailLinkCreateRequest is the unvalidated request to create an email link.
func (EmailLinkCreateRequest) Validate ¶
func (b EmailLinkCreateRequest) Validate(config Validation) (ValidEmailLinkCreateRequest, error)
Validate implements the Validatable interface.
type EmailLinkCreateResponse ¶
type EmailLinkCreateResponse struct {
	EmailLinkCreateResults EmailLinkCreateResults `json:"emailLinkCreateResults"`
	RequestMetadata        RequestMetadata        `json:"requestMetadata"`
}
    EmailLinkCreateResponse is the response to creating an email link.
type EmailLinkCreateResults ¶
type EmailLinkCreateResults struct {
	LinkCreateResults LinkCreateResults `json:"linkCreateResults"`
}
    EmailLinkCreateResults are the results of creating an email link.
type Error ¶
type Error struct {
	Code            int             `json:"code"`
	Message         string          `json:"message"`
	RequestMetadata RequestMetadata `json:"requestMetadata"`
}
    Error is the model for an error.
type JWTCreateArgs ¶
type JWTCreateArgs struct {
	JWTAlg             string `json:"jwtAlg"`
	JWTClaims          any    `json:"jwtClaims"`
	JWTLifespanSeconds int    `json:"jwtLifespanSeconds"`
}
    JWTCreateArgs are the unvalidated arguments for creating a JWT.
func (JWTCreateArgs) Validate ¶
func (j JWTCreateArgs) Validate(config Validation) (ValidJWTCreateArgs, error)
Validate implements the Validatable interface.
type JWTCreateRequest ¶
type JWTCreateRequest struct {
	JWTCreateArgs JWTCreateArgs `json:"jwtCreateArgs"`
}
    JWTCreateRequest is the unvalidated request to create a JWT.
func (JWTCreateRequest) Validate ¶
func (j JWTCreateRequest) Validate(config Validation) (ValidJWTCreateRequest, error)
Validate implements the Validatable interface.
type JWTCreateResponse ¶
type JWTCreateResponse struct {
	JWTCreateResults JWTCreateResults `json:"jwtCreateResults"`
	RequestMetadata  RequestMetadata  `json:"requestMetadata"`
}
    JWTCreateResponse is the response to creating a JWT.
type JWTCreateResults ¶
type JWTCreateResults struct {
	JWT string `json:"jwt"`
}
    JWTCreateResults are the results of creating a JWT.
type JWTValidateArgs ¶
type JWTValidateArgs struct {
	JWT string `json:"jwt"`
}
    JWTValidateArgs are the unvalidated arguments for validating a JWT.
func (JWTValidateArgs) Validate ¶
func (j JWTValidateArgs) Validate(_ Validation) (ValidJWTValidateArgs, error)
Validate implements the Validatable interface.
type JWTValidateRequest ¶
type JWTValidateRequest struct {
	JWTValidateArgs JWTValidateArgs `json:"jwtValidateArgs"`
}
    JWTValidateRequest is the unvalidated request to validate a JWT.
func (JWTValidateRequest) Validate ¶
func (j JWTValidateRequest) Validate(config Validation) (ValidJWTValidateRequest, error)
Validate implements the Validatable interface.
type JWTValidateResponse ¶
type JWTValidateResponse struct {
	JWTValidateResults JWTValidateResults `json:"jwtValidateResults"`
	RequestMetadata    RequestMetadata    `json:"requestMetadata"`
}
    JWTValidateResponse is the response to validating a JWT.
type JWTValidateResults ¶
type JWTValidateResults struct {
	JWTClaims json.RawMessage `json:"claims"`
}
    JWTValidateResults are the results of validating a JWT.
type LinkCreateArgs ¶
type LinkCreateArgs struct {
	JWTCreateArgs    JWTCreateArgs `json:"jwtCreateArgs"`
	LinkLifespan     int           `json:"linkLifespan"`
	RedirectQueryKey string        `json:"redirectQueryKey"`
	RedirectURL      string        `json:"redirectUrl"`
}
    LinkCreateArgs are the unvalidated arguments for creating a link.
func (LinkCreateArgs) Validate ¶
func (p LinkCreateArgs) Validate(config Validation) (ValidLinkCreateArgs, error)
Validate validates the link create arguments.
type LinkCreateRequest ¶
type LinkCreateRequest struct {
	LinkArgs LinkCreateArgs `json:"linkArgs"`
}
    LinkCreateRequest is the request to create a link.
func (LinkCreateRequest) Validate ¶
func (b LinkCreateRequest) Validate(config Validation) (ValidLinkCreateRequest, error)
Validate validates the link create request.
type LinkCreateResponse ¶
type LinkCreateResponse struct {
	LinkCreateResults LinkCreateResults `json:"linkCreateResults"`
	RequestMetadata   RequestMetadata   `json:"requestMetadata"`
}
    LinkCreateResponse is the response to creating a link.
type LinkCreateResults ¶
LinkCreateResults are the results of creating a link.
type RequestMetadata ¶
RequestMetadata is the model for request metadata.
type ServiceAccount ¶
type ServiceAccount struct {
	UUID   uuid.UUID `json:"uuid"`
	APIKey uuid.UUID `json:"apiKey"`
	Aud    uuid.UUID `json:"aud"`
	Admin  bool      `json:"admin"`
}
    ServiceAccount is the model for a service account and its metadata.
type ServiceAccountCreateArgs ¶
type ServiceAccountCreateArgs struct{}
    ServiceAccountCreateArgs are the unvalidated arguments to create a service account.
func (ServiceAccountCreateArgs) Validate ¶
func (n ServiceAccountCreateArgs) Validate(_ Validation) (ValidServiceAccountCreateArgs, error)
Validate implements the Validatable interface.
type ServiceAccountCreateRequest ¶
type ServiceAccountCreateRequest struct {
	CreateServiceAccountArgs ServiceAccountCreateArgs `json:"createServiceAccountArgs"`
}
    ServiceAccountCreateRequest is the unvalidated request to create a service account.
func (ServiceAccountCreateRequest) Validate ¶
func (b ServiceAccountCreateRequest) Validate(config Validation) (ValidServiceAccountCreateRequest, error)
Validate implements the Validatable interface.
type ServiceAccountCreateResponse ¶
type ServiceAccountCreateResponse struct {
	CreateServiceAccountResults ServiceAccountCreateResults `json:"createServiceAccountResults"`
	RequestMetadata             RequestMetadata             `json:"requestMetadata"`
}
    ServiceAccountCreateResponse is the response to creating a service account.
type ServiceAccountCreateResults ¶
type ServiceAccountCreateResults struct {
	ServiceAccount ServiceAccount `json:"serviceAccount"`
}
    ServiceAccountCreateResults are the results of creating a service account.
type ValidAdminCreateArgs ¶
type ValidAdminCreateArgs struct {
	APIKey                        uuid.UUID
	Aud                           uuid.UUID
	UUID                          uuid.UUID
	ValidServiceAccountCreateArgs ValidServiceAccountCreateArgs
}
    ValidAdminCreateArgs are the validated arguments for creating an admin.
type ValidEmailLinkCreateArgs ¶
type ValidEmailLinkCreateArgs struct {
	ButtonText   string
	Greeting     string
	LogoClickURL string
	LogoImageURL string
	ServiceName  string
	Subject      string
	SubTitle     string
	Title        string
	ToEmail      *mail.Address
}
    ValidEmailLinkCreateArgs are the validated arguments for creating an email link.
type ValidEmailLinkCreateRequest ¶
type ValidEmailLinkCreateRequest struct {
	EmailArgs ValidEmailLinkCreateArgs
	LinkArgs  ValidLinkCreateArgs
}
    ValidEmailLinkCreateRequest is the validated request to create an email link.
type ValidJWTCreateArgs ¶
type ValidJWTCreateArgs struct {
	JWTAlg      string
	JWTClaims   json.RawMessage
	JWTLifespan time.Duration
}
    ValidJWTCreateArgs are the validated arguments for creating a JWT.
type ValidJWTCreateRequest ¶
type ValidJWTCreateRequest struct {
	JWTCreateArgs ValidJWTCreateArgs
}
    ValidJWTCreateRequest is the validated request to create a JWT.
type ValidJWTValidateArgs ¶
type ValidJWTValidateArgs struct {
	JWT string
}
    ValidJWTValidateArgs are the validated arguments for validating a JWT.
type ValidJWTValidateRequest ¶
type ValidJWTValidateRequest struct {
	JWTValidateArgs ValidJWTValidateArgs
}
    ValidJWTValidateRequest is the validated request to validate a JWT.
type ValidLinkCreateArgs ¶
type ValidLinkCreateArgs struct {
	LinkLifespan     time.Duration
	JWTCreateArgs    ValidJWTCreateArgs
	RedirectQueryKey string
	RedirectURL      *url.URL
}
    ValidLinkCreateArgs are the validated arguments for creating a link.
type ValidLinkCreateRequest ¶
type ValidLinkCreateRequest struct {
	LinkArgs ValidLinkCreateArgs
}
    ValidLinkCreateRequest is the validated request to create a link.
type ValidServiceAccountCreateArgs ¶
type ValidServiceAccountCreateArgs struct{}
    ValidServiceAccountCreateArgs are the validated arguments to create a service account.
type ValidServiceAccountCreateRequest ¶
type ValidServiceAccountCreateRequest struct {
	CreateServiceAccountArgs ValidServiceAccountCreateArgs
}
    ValidServiceAccountCreateRequest is the validated request to create a service account.
type Validation ¶
type Validation struct {
	LinkLifespanDefault *jt.JSONType[time.Duration] `json:"linkLifespanDefault"`
	LinkLifespanMax     *jt.JSONType[time.Duration] `json:"maxLinkLifespan"`
	JWTClaimsMaxBytes   uint                        `json:"maxJWTClaimsBytes"`
	JWTLifespanDefault  *jt.JSONType[time.Duration] `json:"jwtLifespanDefault"`
	JWTLifespanMax      *jt.JSONType[time.Duration] `json:"maxJWTLifespan"`
	ServiceNameMinUTF8  uint                        `json:"serviceNameMinUTF8"`
	ServiceNameMaxUTF8  uint                        `json:"serviceNameMaxUTF8"`
	URLMaxLength        uint                        `json:"urlMaxLength"`
}
    Validation contains information on how to validate models.
func (Validation) DefaultsAndValidate ¶
func (v Validation) DefaultsAndValidate() (Validation, error)
DefaultsAndValidate implements the jsontype.Config interface.