dto

package
v0.11.0-cloud1 Latest Latest
Warning

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

Go to latest
Published: Jul 8, 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

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 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.

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"`
	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.

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 SecretDeleteConflictResponse

type SecretDeleteConflictResponse struct {
	Error      string               `json:"error"`
	References []SecretReferenceDTO `json:"references"`
}

SecretDeleteConflictResponse is returned with 409 when a secret has active references.

type SecretListResponse

type SecretListResponse struct {
	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.

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