Documentation
¶
Index ¶
- type API
- type APIDeploymentYAML
- type APIListResponse
- type APIYAMLData
- type ArtifactExistenceInfo
- type ArtifactImportConfig
- type ArtifactImportMetadata
- type ArtifactsExistRequest
- type ArtifactsExistResponse
- type BaseResponse
- type Channel
- type ChannelRequest
- type CommonResponse
- type Components
- type ConnectionAckDTO
- type Contact
- type CreateSecretRequest
- type DeployAPIRequest
- type DeploymentListResponse
- type DeploymentMetadata
- type DeploymentResponse
- type DeploymentsBatchFetchRequest
- type ExpirationDuration
- type GatewayDeploymentInfo
- type GatewayDeploymentsResponse
- type GatewayEventDTO
- type GatewayHmacSecretInfo
- type GatewayHmacSecretsResponse
- type GatewaySubscriptionInfo
- type GatewaySubscriptionPlanInfo
- type ImportGatewayArtifactRequest
- type ImportGatewayArtifactResponse
- type ImportGatewayArtifactsResponse
- type Info
- type LLMProviderDeploymentSpec
- type LLMProviderDeploymentYAML
- type LLMProxyDeploymentProvider
- type LLMProxyDeploymentSpec
- type LLMProxyDeploymentYAML
- type LLMUpstreamYAML
- type License
- type MediaType
- type OpenAPI
- type OpenAPIOperation
- type Operation
- type OperationRequest
- type Pagination
- type Parameter
- type PathItem
- type Policy
- type RequestBody
- type Response
- type Schema
- type SecretDeleteConflictResponse
- type SecretListResponse
- type SecretReferenceDTO
- type SecretResponse
- type SecretSummary
- type SecretSyncItem
- type SecretSyncListResponse
- type SecurityRequirement
- type SecurityScheme
- type Server
- type ServerVariable
- type Tag
- type TimeUnit
- type UpdateSecretRequest
- type UpstreamAuth
- type UpstreamConfig
- type UpstreamEndpoint
- type UpstreamTarget
- type UpstreamYAML
- type Vhosts
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 ¶
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 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 ¶
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 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 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 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 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 SecurityScheme ¶
type Server ¶
type Server struct {
URL string `json:"url"`
Description string `json:"description,omitempty"`
Variables map[string]ServerVariable `json:"variables,omitempty"`
}
type ServerVariable ¶
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 ¶
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