dto

package
v0.12.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 16, 2026 License: Apache-2.0 Imports: 3 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type API

type API struct {
	ID              string          `json:"id,omitempty" yaml:"id,omitempty"`
	Name            string          `json:"name" yaml:"name"`
	Kind            string          `json:"kind" yaml:"kind"`
	Description     string          `json:"description,omitempty" yaml:"description,omitempty"`
	Context         string          `json:"context" yaml:"context"`
	Version         string          `json:"version" yaml:"version"`
	CreatedBy       string          `json:"createdBy,omitempty" yaml:"createdBy,omitempty"`
	ProjectID       string          `json:"projectId" yaml:"projectId"`
	OrganizationID  string          `json:"organizationId" yaml:"organizationId"`
	CreatedAt       time.Time       `json:"createdAt,omitempty" yaml:"createdAt,omitempty"`
	UpdatedAt       time.Time       `json:"updatedAt,omitempty" yaml:"updatedAt,omitempty"`
	LifeCycleStatus string          `json:"lifeCycleStatus,omitempty" yaml:"lifeCycleStatus,omitempty"`
	Transport       []string        `json:"transport,omitempty" yaml:"transport,omitempty"`
	Policies        []Policy        `json:"policies,omitempty" yaml:"policies,omitempty"`
	Operations      []Operation     `json:"operations,omitempty" yaml:"operations,omitempty"`
	Channels        []Channel       `json:"channels,omitempty" yaml:"channels,omitempty"`
	Upstream        *UpstreamConfig `json:"upstream,omitempty" yaml:"upstream,omitempty"`
}

API represents an API entity in the platform

type APIDeploymentYAML

type APIDeploymentYAML struct {
	ApiVersion string             `yaml:"apiVersion" binding:"required"`
	Kind       string             `yaml:"kind" binding:"required"`
	Metadata   DeploymentMetadata `yaml:"metadata" binding:"required"`
	Spec       APIYAMLData        `yaml:"spec" binding:"required"`
}

APIDeploymentYAML represents the API deployment YAML structure

func (*APIDeploymentYAML) GetApiVersion added in v0.12.0

func (d *APIDeploymentYAML) GetApiVersion() string

GetApiVersion returns the artifact's CRD apiVersion.

func (*APIDeploymentYAML) SetApiVersion added in v0.12.0

func (d *APIDeploymentYAML) SetApiVersion(v string)

SetApiVersion sets the artifact's CRD apiVersion.

type APIListResponse

type APIListResponse struct {
	Count      int        `json:"count" yaml:"count"`           // Number of items in current response
	List       []*API     `json:"list" yaml:"list"`             // Array of API objects
	Pagination Pagination `json:"pagination" yaml:"pagination"` // Pagination metadata
}

APIListResponse represents a paginated list of APIs (constitution-compliant)

type APIYAMLData

type APIYAMLData struct {
	DisplayName       string                 `yaml:"displayName"`
	Version           string                 `yaml:"version"`
	Context           string                 `yaml:"context"`
	SubscriptionPlans []string               `yaml:"subscriptionPlans,omitempty"`
	Vhosts            *Vhosts                `yaml:"vhosts,omitempty"`
	Upstream          *UpstreamYAML          `yaml:"upstream,omitempty"`
	Policies          []Policy               `yaml:"policies,omitempty"`
	Operations        []api.OperationRequest `yaml:"operations,omitempty"`
	Channels          []api.ChannelRequest   `yaml:"channels,omitempty"`
}

APIYAMLData represents a basic spec section of the API deployment YAML

type ArtifactExistenceInfo

type ArtifactExistenceInfo struct {
	ArtifactID string `json:"artifactId"`
	Exists     bool   `json:"exists"`
}

ArtifactExistenceInfo represents the existence status of a single artifact

type ArtifactImportConfig

type ArtifactImportConfig struct {
	APIVersion string                 `json:"apiVersion" yaml:"apiVersion"`
	Kind       string                 `json:"kind" yaml:"kind" binding:"required"`
	Metadata   ArtifactImportMetadata `json:"metadata" yaml:"metadata" binding:"required"`
	Spec       map[string]interface{} `json:"spec" yaml:"spec"`
}

ArtifactImportConfig is the gateway artifact custom resource (CR) exactly as it is deployed to the gateway: a k8s-shaped descriptor with apiVersion/kind/metadata/spec. The concrete shape of Spec is determined by Kind (RestApi, LlmProvider, LlmProviderTemplate, LlmProxy, Mcp, ... — extensible to future kinds); the matching importer in the registry interprets it. It is kept generic at this layer so the endpoint stays decoupled from each kind's spec schema.

type ArtifactImportMetadata

type ArtifactImportMetadata struct {
	Name        string            `json:"name" yaml:"name" binding:"required"`
	Labels      map[string]string `json:"labels,omitempty" yaml:"labels,omitempty"`
	Annotations map[string]string `json:"annotations,omitempty" yaml:"annotations,omitempty"`
}

ArtifactImportMetadata carries the artifact's identity in a k8s-shaped form (name + labels/annotations). The project is conveyed via labels/annotations (the "project-id" label or the "gateway.api-platform.wso2.com/project-id" annotation) so the descriptor maps cleanly onto a Kubernetes custom resource. The project is required for project-scoped kinds (REST API, LLM Proxy, MCP Proxy) and ignored for organization-level kinds (LLM Provider, LLM Provider Template).

type ArtifactsExistRequest

type ArtifactsExistRequest struct {
	ArtifactIDs []string `json:"artifactIds" binding:"required,min=1"`
}

ArtifactsExistRequest represents the request body for checking artifact existence

type ArtifactsExistResponse

type ArtifactsExistResponse struct {
	Artifacts []ArtifactExistenceInfo `json:"artifacts"`
}

ArtifactsExistResponse represents the response for checking artifact existence

type BaseResponse

type BaseResponse struct {
	Message   string    `json:"message"`
	Timestamp time.Time `json:"timestamp"`
}

BaseResponse provides common fields for API responses

type Channel

type Channel struct {
	Name        string          `json:"name,omitempty" yaml:"name,omitempty"`
	Description string          `json:"description,omitempty" yaml:"description,omitempty"`
	Request     *ChannelRequest `json:"request" yaml:"request" binding:"required"`
}

Channel represents an API channel

type ChannelRequest

type ChannelRequest struct {
	Method   string   `json:"method" yaml:"method" binding:"required"`
	Name     string   `json:"name" yaml:"name" binding:"required"`
	Policies []Policy `json:"policies,omitempty" yaml:"policies,omitempty"`
}

ChannelRequest represents channel request details Deprecated: Use api.ChannelRequest from generated models instead

type CommonResponse

type CommonResponse struct {
	Success   bool        `json:"success"`
	Message   string      `json:"message"`
	Data      interface{} `json:"data,omitempty"`
	Timestamp time.Time   `json:"timestamp"`
}

CommonResponse provides a standardized response structure for API operations

type Components

type Components struct {
	SecuritySchemes map[string]SecurityScheme `json:"securitySchemes,omitempty"`
}

type ConnectionAckDTO

type ConnectionAckDTO struct {
	// Type is always "connection.ack"
	Type string `json:"type"`

	// GatewayID confirms the authenticated gateway identity
	GatewayID string `json:"gatewayId"`

	// ConnectionID provides a unique identifier for this connection instance
	ConnectionID string `json:"connectionId"`

	// Timestamp records when the connection was established
	Timestamp string `json:"timestamp"`
}

ConnectionAckDTO represents the acknowledgment message sent when a gateway connects.

type Contact

type Contact struct {
	Name string `json:"name,omitempty"`
}

type CreateSecretRequest

type CreateSecretRequest struct {
	Handle      string `form:"id"          binding:"required"`
	DisplayName string `form:"displayName" binding:"required"`
	Description string `form:"description"`
	Value       string `form:"value"       binding:"required"`
	Type        string `form:"type"`
}

CreateSecretRequest is the request body for POST /api/v1/secrets. Accepts multipart/form-data to support file-based secret values in future.

type DeployAPIRequest

type DeployAPIRequest struct {
	Name      string                 `json:"name" yaml:"name"`                             // Deployment name
	Base      string                 `json:"base" yaml:"base"`                             // "current" or a deploymentId
	GatewayID string                 `json:"gatewayId" yaml:"gatewayId"`                   // Target gateway ID
	Metadata  map[string]interface{} `json:"metadata,omitempty" yaml:"metadata,omitempty"` // Flexible key-value metadata
}

DeployAPIRequest represents a request to deploy an API

type DeploymentListResponse

type DeploymentListResponse struct {
	Count int                   `json:"count" yaml:"count"`
	List  []*DeploymentResponse `json:"list" yaml:"list"`
}

DeploymentListResponse represents a list of deployments

type DeploymentMetadata

type DeploymentMetadata struct {
	Name        string            `yaml:"name" binding:"required"`
	Labels      map[string]string `yaml:"labels,omitempty"`
	Annotations map[string]string `yaml:"annotations,omitempty"`
}

DeploymentMetadata represents the metadata section of the API deployment YAML

type DeploymentResponse

type DeploymentResponse struct {
	DeploymentID     string                 `json:"deploymentId" yaml:"deploymentId"`
	Name             string                 `json:"name" yaml:"name"`
	GatewayID        string                 `json:"gatewayId" yaml:"gatewayId"`
	Status           string                 `json:"status" yaml:"status"` // DEPLOYED, UNDEPLOYED, or ARCHIVED
	BaseDeploymentID *string                `json:"baseDeploymentId,omitempty" yaml:"baseDeploymentId,omitempty"`
	Metadata         map[string]interface{} `json:"metadata,omitempty" yaml:"metadata,omitempty"`
	CreatedAt        time.Time              `json:"createdAt" yaml:"createdAt"`
	UpdatedAt        *time.Time             `json:"updatedAt,omitempty" yaml:"updatedAt,omitempty"` // When status last changed (nil for ARCHIVED)
}

DeploymentResponse represents a deployment artifact

type DeploymentsBatchFetchRequest

type DeploymentsBatchFetchRequest struct {
	DeploymentIDs []string `json:"deploymentIds" binding:"required,min=1"`
}

DeploymentsBatchFetchRequest represents the request body for batch fetching deployments

type ExpirationDuration

type ExpirationDuration struct {
	Duration int      `json:"duration" yaml:"duration"`
	Unit     TimeUnit `json:"unit" yaml:"unit"`
}

ExpirationDuration represents a time duration for API key expiration

func (*ExpirationDuration) Validate

func (e *ExpirationDuration) Validate() error

Validate checks that Duration is positive and Unit is valid.

type GatewayDeploymentInfo

type GatewayDeploymentInfo struct {
	ArtifactID   string    `json:"artifactId"`   // Artifact identifier (handle) - REST API, LLM Provider, or LLM Proxy
	DeploymentID string    `json:"deploymentId"` // Unique deployment artifact ID
	Kind         string    `json:"kind"`         // Artifact type: RestAPI, LLMProvider, LLMProxy
	State        string    `json:"state"`        // Deployment state: DEPLOYED or UNDEPLOYED
	DeployedAt   time.Time `json:"deployedAt"`   // Timestamp when the deployment action was performed
	Etag         string    `json:"etag"`         // Deterministic UUIDv7 derived from deploymentId + deployedAt
}

GatewayDeploymentInfo represents a single deployment for a gateway Used to compare local gateway state with platform-api state

type GatewayDeploymentsResponse

type GatewayDeploymentsResponse struct {
	Deployments []GatewayDeploymentInfo `json:"deployments"`
}

GatewayDeploymentsResponse represents the response for listing gateway deployments

type GatewayEventDTO

type GatewayEventDTO struct {
	// Type identifies the event category
	Type string `json:"type"`

	// Payload contains event-specific data (structure varies by type)
	Payload interface{} `json:"payload"`

	// Timestamp records when the event was created (ISO 8601 format)
	Timestamp string `json:"timestamp"`

	// CorrelationID provides request tracing identifier
	CorrelationID string `json:"correlationId"`

	// UserId is the raw resolved actor identity (token "sub", falling back to
	// the configured claim / user_id), or constants.DeletedUser if the actor's
	// internal UUID has no mapping. Never the internal UUID — see
	// service.IdentityService.SubForUUID.
	UserId string `json:"userId,omitempty"`
}

GatewayEventDTO represents the wire format for events sent to gateways. This DTO separates the internal model from the JSON structure sent over WebSocket.

type GatewayHmacSecretInfo

type GatewayHmacSecretInfo struct {
	Name   string `json:"name"`
	Secret string `json:"secret"`
}

GatewayHmacSecretInfo represents a single HMAC secret returned to the gateway-controller. The Secret field contains the plaintext value — this is only exposed on the internal endpoint.

type GatewayHmacSecretsResponse

type GatewayHmacSecretsResponse struct {
	ArtifactID string                  `json:"artifactId"`
	Secrets    []GatewayHmacSecretInfo `json:"secrets"`
}

GatewayHmacSecretsResponse is the response for GET /api/internal/v1/websub-apis/:apiId/secrets.

type GatewaySubscriptionInfo

type GatewaySubscriptionInfo struct {
	ID                 string    `json:"id"`
	APIID              string    `json:"apiId"`
	ApplicationID      *string   `json:"applicationId,omitempty"`
	SubscriptionToken  string    `json:"subscriptionToken"`
	SubscriptionPlanID *string   `json:"subscriptionPlanId,omitempty"`
	Status             string    `json:"status"`
	CreatedAt          time.Time `json:"createdAt"`
	UpdatedAt          time.Time `json:"updatedAt"`
	Etag               string    `json:"etag"` // Deterministic UUIDv7 derived from id + updatedAt
}

GatewaySubscriptionInfo represents a subscription in internal gateway responses.

type GatewaySubscriptionPlanInfo

type GatewaySubscriptionPlanInfo struct {
	ID                 string     `json:"id"`
	Handle             string     `json:"handle"`
	PlanName           string     `json:"planName"`
	StopOnQuotaReach   bool       `json:"stopOnQuotaReach"`
	ThrottleLimitCount *int       `json:"throttleLimitCount,omitempty"`
	ThrottleLimitUnit  string     `json:"throttleLimitUnit,omitempty"`
	ExpiryTime         *time.Time `json:"expiryTime,omitempty"`
	Status             string     `json:"status"`
	CreatedAt          time.Time  `json:"createdAt"`
	UpdatedAt          time.Time  `json:"updatedAt"`
	Etag               string     `json:"etag"` // Deterministic UUIDv7 derived from id + updatedAt
}

GatewaySubscriptionPlanInfo represents a subscription plan in internal gateway responses.

StopOnQuotaReach is exposed as a boolean to match the gateway-controller's model; the platform-api stores it as a SMALLINT (0/1) and converts at this boundary.

type ImportGatewayArtifactRequest

type ImportGatewayArtifactRequest struct {
	// DPID is the data-plane (gateway) artifact UUID. The control plane does NOT reuse it
	// as the CP artifact UUID — it mints its own and returns it in the response. It is the
	// key under which this artifact's result is returned in the bulk response; artifacts are
	// matched in the CP by handle.
	DPID string `json:"dpid" binding:"required"`
	// Configuration is the artifact descriptor (apiVersion/kind/metadata/spec).
	Configuration ArtifactImportConfig `json:"configuration" binding:"required"`
	// Status is the artifact's status on the gateway: deployed|pending|failed|undeployed.
	Status     string     `json:"status" binding:"required"`
	CreatedAt  time.Time  `json:"createdAt"`
	UpdatedAt  time.Time  `json:"updatedAt"`
	DeployedAt *time.Time `json:"deployedAt,omitempty"`
	// Properties is an open-ended bag for future extensions.
	Properties map[string]interface{} `json:"properties,omitempty"`
}

ImportGatewayArtifactRequest is the generic request body used by a data-plane gateway to push (create/update) an artifact to the control plane. The flow is kind-agnostic; the artifact type is identified by Configuration.Kind and routed to the matching importer in the control plane's artifact-type registry.

type ImportGatewayArtifactResponse

type ImportGatewayArtifactResponse struct {
	// ID is the control-plane artifact UUID (minted by the CP, reused on subsequent
	// pushes matched by handle). The gateway stores this as its cp_artifact_id.
	ID              string     `json:"id,omitempty"`
	Status          string     `json:"status"`
	Origin          string     `json:"origin"` // always "gateway_api" for imported artifacts
	CreatedAt       time.Time  `json:"createdAt"`
	UpdatedAt       time.Time  `json:"updatedAt"`
	DeployedAt      *time.Time `json:"deployedAt,omitempty"`
	DeployedVersion string     `json:"deployedVersion,omitempty"`
	// Error is the failure reason when this artifact could not be imported; empty on success.
	Error string `json:"error,omitempty"`
}

ImportGatewayArtifactResponse is the generic per-artifact result for an imported artifact.

type ImportGatewayArtifactsResponse

type ImportGatewayArtifactsResponse struct {
	Total     int                                      `json:"total"`
	Success   int                                      `json:"success"`
	Failed    int                                      `json:"failed"`
	Artifacts map[string]ImportGatewayArtifactResponse `json:"artifacts"`
}

ImportGatewayArtifactsResponse is the response to a bulk gateway-artifact import. Artifacts maps each pushed artifact's data-plane UUID (dpid) to its per-artifact result; Total/Success/ Failed are the aggregate counts. A failed artifact's result carries a non-empty Error.

type Info

type Info struct {
	Title       string   `json:"title"`
	Version     string   `json:"version"`
	Description string   `json:"description,omitempty"`
	Contact     *Contact `json:"contact,omitempty"`
	License     *License `json:"license,omitempty"`
}

type InternalErrorResponse added in v0.12.0

type InternalErrorResponse struct {
	Code        int    `json:"code"`
	Message     string `json:"message"`
	Description string `json:"description,omitempty"`
}

InternalErrorResponse is the error body of the Gateway Internal API (/api/internal/v1/*), as declared by the ErrorResponse schema in resources/gateway-internal-api.yaml: an integer HTTP status in Code, a short reason phrase in Message, and the specific detail in Description.

It is deliberately NOT apperror.ErrorResponse. The public API (resources/openapi.yaml) returns {status, code, message} where code is a stable machine-readable catalog string; the gateway data plane consumes this older {code, message, description} contract instead. Keeping the two shapes in separate types is what stops a change to one from silently rewriting the wire format of the other — which is exactly what happened when both surfaces shared a single ErrorResponse struct.

func NewInternalErrorResponse added in v0.12.0

func NewInternalErrorResponse(code int, message string, description ...string) InternalErrorResponse

NewInternalErrorResponse builds a Gateway Internal API error body. code is the HTTP status, message the reason phrase ("Not Found"), and the optional description the specific detail ("API not found").

type LLMProviderDeploymentSpec

type LLMProviderDeploymentSpec struct {
	DisplayName       string                `yaml:"displayName"`
	Version           string                `yaml:"version"`
	Context           string                `yaml:"context,omitempty"`
	VHost             string                `yaml:"vhost,omitempty"`
	Template          string                `yaml:"template"`
	Upstream          LLMUpstreamYAML       `yaml:"upstream"`
	AccessControl     api.LLMAccessControl  `yaml:"accessControl"`
	GlobalPolicies    []api.Policy          `yaml:"globalPolicies,omitempty"`
	OperationPolicies []api.OperationPolicy `yaml:"operationPolicies,omitempty"`
	Policies          []api.LLMPolicy       `yaml:"policies,omitempty"`
}

LLMProviderDeploymentSpec represents the spec section for LLM provider deployments

type LLMProviderDeploymentYAML

type LLMProviderDeploymentYAML struct {
	ApiVersion string                    `yaml:"apiVersion"`
	Kind       string                    `yaml:"kind"`
	Metadata   DeploymentMetadata        `yaml:"metadata"`
	Spec       LLMProviderDeploymentSpec `yaml:"spec"`
}

LLMProviderDeploymentYAML represents the LLM provider deployment YAML structure This format aligns with the gateway controller LLMProviderConfiguration schema.

func (*LLMProviderDeploymentYAML) GetApiVersion added in v0.12.0

func (d *LLMProviderDeploymentYAML) GetApiVersion() string

GetApiVersion returns the artifact's CRD apiVersion.

func (*LLMProviderDeploymentYAML) SetApiVersion added in v0.12.0

func (d *LLMProviderDeploymentYAML) SetApiVersion(v string)

SetApiVersion sets the artifact's CRD apiVersion.

type LLMProxyDeploymentAdditionalProvider added in v0.12.0

type LLMProxyDeploymentAdditionalProvider struct {
	ID          string                   `yaml:"id"`
	As          string                   `yaml:"as,omitempty"`
	Transformer *api.LLMProxyTransformer `yaml:"transformer,omitempty"`
}

type LLMProxyDeploymentProvider

type LLMProxyDeploymentProvider struct {
	ID   string            `yaml:"id"`
	Auth *api.UpstreamAuth `yaml:"auth,omitempty"`
}

type LLMProxyDeploymentSpec

type LLMProxyDeploymentSpec struct {
	DisplayName         string                                 `yaml:"displayName"`
	Version             string                                 `yaml:"version"`
	Context             string                                 `yaml:"context,omitempty"`
	VHost               string                                 `yaml:"vhost,omitempty"`
	Provider            LLMProxyDeploymentProvider             `yaml:"provider"`
	AdditionalProviders []LLMProxyDeploymentAdditionalProvider `yaml:"additionalProviders,omitempty"`
	GlobalPolicies      []api.Policy                           `yaml:"globalPolicies,omitempty"`
	OperationPolicies   []api.OperationPolicy                  `yaml:"operationPolicies,omitempty"`
	Policies            []api.LLMPolicy                        `yaml:"policies,omitempty"`
}

LLMProxyDeploymentSpec represents the spec section for LLM proxy deployments

type LLMProxyDeploymentYAML

type LLMProxyDeploymentYAML struct {
	ApiVersion string                 `yaml:"apiVersion"`
	Kind       string                 `yaml:"kind"`
	Metadata   DeploymentMetadata     `yaml:"metadata"`
	Spec       LLMProxyDeploymentSpec `yaml:"spec"`
}

LLMProxyDeploymentYAML represents the LLM proxy deployment YAML structure This format aligns with the gateway controller LLMProxyConfiguration schema.

func (*LLMProxyDeploymentYAML) GetApiVersion added in v0.12.0

func (d *LLMProxyDeploymentYAML) GetApiVersion() string

GetApiVersion returns the artifact's CRD apiVersion.

func (*LLMProxyDeploymentYAML) SetApiVersion added in v0.12.0

func (d *LLMProxyDeploymentYAML) SetApiVersion(v string)

SetApiVersion sets the artifact's CRD apiVersion.

type LLMUpstreamYAML

type LLMUpstreamYAML struct {
	URL         string            `yaml:"url,omitempty"`
	Ref         string            `yaml:"ref,omitempty"`
	HostRewrite *string           `yaml:"hostRewrite,omitempty"`
	Auth        *api.UpstreamAuth `yaml:"auth,omitempty"`
}

LLMUpstreamYAML represents the upstream configuration for LLM provider deployments

type License

type License struct {
	Name string `json:"name"`
	URL  string `json:"url,omitempty"`
}

type MediaType

type MediaType struct {
	Schema Schema `json:"schema"`
}

type OpenAPI

type OpenAPI struct {
	OpenAPI    string                `json:"openapi"`
	Info       Info                  `json:"info"`
	Servers    []Server              `json:"servers,omitempty"`
	Paths      map[string]PathItem   `json:"paths"`
	Components *Components           `json:"components,omitempty"`
	Security   []SecurityRequirement `json:"security,omitempty"`
	Tags       []Tag                 `json:"tags,omitempty"`
}

OpenAPI 3.0 specification structs

type OpenAPIOperation

type OpenAPIOperation struct {
	Summary     string                `json:"summary,omitempty"`
	Description string                `json:"description,omitempty"`
	OperationID string                `json:"operationId,omitempty"`
	Tags        []string              `json:"tags,omitempty"`
	Parameters  []Parameter           `json:"parameters,omitempty"`
	RequestBody *RequestBody          `json:"requestBody,omitempty"`
	Responses   map[string]Response   `json:"responses"`
	Security    []SecurityRequirement `json:"security,omitempty"`
}

type Operation

type Operation struct {
	Name        string            `json:"name,omitempty" yaml:"name,omitempty"`
	Description string            `json:"description,omitempty" yaml:"description,omitempty"`
	Request     *OperationRequest `json:"request" yaml:"request" binding:"required"`
}

Operation represents an API operation

type OperationRequest

type OperationRequest struct {
	Method   string   `json:"method" yaml:"method" binding:"required"`
	Path     string   `json:"path" yaml:"path" binding:"required"`
	Policies []Policy `json:"policies,omitempty" yaml:"policies,omitempty"`
}

OperationRequest represents operation request details Deprecated: Use api.OperationRequest from generated models instead

type Pagination

type Pagination struct {
	Total  int `json:"total" yaml:"total"`   // Total number of items available across all pages
	Offset int `json:"offset" yaml:"offset"` // Zero-based index of first item in current response
	Limit  int `json:"limit" yaml:"limit"`   // Maximum number of items returned per page
}

Pagination contains pagination metadata for list responses

type Parameter

type Parameter struct {
	Name        string `json:"name"`
	In          string `json:"in"` // path, query, header, cookie
	Description string `json:"description,omitempty"`
	Required    bool   `json:"required,omitempty"`
	Schema      Schema `json:"schema"`
}

type PathItem

type PathItem struct {
	Get     *OpenAPIOperation `json:"get,omitempty"`
	Post    *OpenAPIOperation `json:"post,omitempty"`
	Put     *OpenAPIOperation `json:"put,omitempty"`
	Delete  *OpenAPIOperation `json:"delete,omitempty"`
	Options *OpenAPIOperation `json:"options,omitempty"`
	Head    *OpenAPIOperation `json:"head,omitempty"`
	Patch   *OpenAPIOperation `json:"patch,omitempty"`
	Trace   *OpenAPIOperation `json:"trace,omitempty"`
}

type Policy

type Policy struct {
	ExecutionCondition *string                 `json:"executionCondition,omitempty" yaml:"executionCondition,omitempty"`
	Name               string                  `json:"name" yaml:"name"`
	Params             *map[string]interface{} `json:"params,omitempty" yaml:"params,omitempty"`
	Version            string                  `json:"version" yaml:"version"`
}

Policy represents a request or response policy

type RequestBody

type RequestBody struct {
	Required bool                 `json:"required,omitempty"`
	Content  map[string]MediaType `json:"content"`
}

type Response

type Response struct {
	Description string               `json:"description"`
	Content     map[string]MediaType `json:"content,omitempty"`
}

type Schema

type Schema struct {
	Type        string            `json:"type,omitempty"`
	Properties  map[string]Schema `json:"properties,omitempty"`
	Description string            `json:"description,omitempty"`
}

type SecretInUseDetails added in v0.11.2

type SecretInUseDetails struct {
	References []SecretReferenceDTO `json:"references"`
}

SecretInUseDetails is the `details` payload for a SECRET_IN_USE error.

type SecretListResponse

type SecretListResponse struct {
	Count      int              `json:"count"`
	List       []*SecretSummary `json:"list"`
	Pagination Pagination       `json:"pagination"`
}

SecretListResponse wraps the paginated list of secrets.

type SecretReferenceDTO

type SecretReferenceDTO struct {
	Type   string `json:"type"`
	Handle string `json:"handle"`
	Name   string `json:"name"`
}

SecretReferenceDTO identifies a resource that references a secret. Carried in the standard error response's `details.references` when a delete is blocked by SECRET_IN_USE (see apperror.ErrorResponse.Details).

type SecretResponse

type SecretResponse struct {
	Handle      string    `json:"id"`
	DisplayName string    `json:"displayName"`
	CreatedBy   string    `json:"createdBy,omitempty"`
	UpdatedBy   string    `json:"updatedBy,omitempty"`
	CreatedAt   time.Time `json:"createdAt"`
	UpdatedAt   time.Time `json:"updatedAt"`
}

SecretResponse is returned on POST and PUT.

type SecretSummary

type SecretSummary struct {
	Handle      string    `json:"id"`
	DisplayName string    `json:"displayName"`
	Description string    `json:"description,omitempty"`
	Type        string    `json:"type"`
	Provider    string    `json:"provider"`
	Status      string    `json:"status"`
	Hash        string    `json:"hash"`
	CreatedBy   string    `json:"createdBy,omitempty"`
	CreatedAt   time.Time `json:"createdAt"`
	UpdatedAt   time.Time `json:"updatedAt"`
}

SecretSummary is returned on GET list and GET by ID — no value field.

type SecretSyncItem

type SecretSyncItem struct {
	ID          string    `json:"uuid"`
	Handle      string    `json:"handle"`
	DisplayName string    `json:"name"`
	Type        string    `json:"type"`
	Provider    string    `json:"provider"`
	Status      string    `json:"status"`
	Hash        string    `json:"hash"`
	CreatedAt   time.Time `json:"createdAt"`
	UpdatedAt   time.Time `json:"updatedAt"`
	Value       *string   `json:"value,omitempty"`
}

SecretSyncItem is returned by the internal GW sync endpoint. Value is only populated when the caller requests includeValues=true (startup bulk fetch).

type SecretSyncListResponse

type SecretSyncListResponse struct {
	List  []SecretSyncItem `json:"list"`
	Count int              `json:"count"`
}

SecretSyncListResponse is the response body for GET /api/internal/v1/secrets.

type SecurityRequirement

type SecurityRequirement map[string][]string

type SecurityScheme

type SecurityScheme struct {
	Type  string      `json:"type"`
	In    string      `json:"in,omitempty"`
	Name  string      `json:"name,omitempty"`
	Flows interface{} `json:"flows,omitempty"` // For OAuth2
}

type Server

type Server struct {
	URL         string                    `json:"url"`
	Description string                    `json:"description,omitempty"`
	Variables   map[string]ServerVariable `json:"variables,omitempty"`
}

type ServerVariable

type ServerVariable struct {
	Default     string   `json:"default"`
	Description string   `json:"description,omitempty"`
	Enum        []string `json:"enum,omitempty"`
}

type Tag

type Tag struct {
	Name        string `json:"name"`
	Description string `json:"description,omitempty"`
}

type TimeUnit

type TimeUnit string

TimeUnit represents allowed time units for expiration duration

const (
	TimeUnitSeconds TimeUnit = "seconds"
	TimeUnitMinutes TimeUnit = "minutes"
	TimeUnitHours   TimeUnit = "hours"
	TimeUnitDays    TimeUnit = "days"
	TimeUnitWeeks   TimeUnit = "weeks"
	TimeUnitMonths  TimeUnit = "months"
)

func (TimeUnit) Validate

func (t TimeUnit) Validate() error

Validate checks that the TimeUnit has one of the allowed values (case-insensitive).

type UpdateSecretRequest

type UpdateSecretRequest struct {
	DisplayName string `form:"displayName"`
	Description string `form:"description"`
	Value       string `form:"value" binding:"required"`
}

UpdateSecretRequest is the request body for PUT /api/v1/secrets/:id. Accepts multipart/form-data to support file-based secret values in future.

type UpstreamAuth

type UpstreamAuth struct {
	Type   string `json:"type" yaml:"type" binding:"required"`
	Header string `json:"header,omitempty" yaml:"header,omitempty"`
	Value  string `json:"value,omitempty" yaml:"value,omitempty"`
}

UpstreamAuth represents authentication configuration for upstream

type UpstreamConfig

type UpstreamConfig struct {
	Main    *UpstreamEndpoint `json:"main,omitempty" yaml:"main,omitempty" binding:"required"`
	Sandbox *UpstreamEndpoint `json:"sandbox,omitempty" yaml:"sandbox,omitempty"`
}

UpstreamConfig represents the upstream configuration with main and sandbox endpoints

type UpstreamEndpoint

type UpstreamEndpoint struct {
	URL  string        `json:"url,omitempty" yaml:"url,omitempty"`
	Ref  string        `json:"ref,omitempty" yaml:"ref,omitempty"`
	Auth *UpstreamAuth `json:"auth,omitempty" yaml:"auth,omitempty"`
}

UpstreamEndpoint represents an upstream endpoint configuration

type UpstreamTarget

type UpstreamTarget struct {
	URL string `yaml:"url,omitempty"`
	Ref string `yaml:"ref,omitempty"`
}

UpstreamTarget represents a single upstream target (url or ref)

type UpstreamYAML

type UpstreamYAML struct {
	Main    *UpstreamTarget `yaml:"main,omitempty"`
	Sandbox *UpstreamTarget `yaml:"sandbox,omitempty"`
}

UpstreamYAML represents the upstream configuration for API deployment YAML

type Vhosts

type Vhosts struct {
	Main    *string `yaml:"main,omitempty"`
	Sandbox *string `yaml:"sandbox,omitempty"`
}

Vhosts represents per-API virtual host overrides in the deployment YAML

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL