state

package
v0.3.7 Latest Latest
Warning

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

Go to latest
Published: Jan 15, 2026 License: Apache-2.0 Imports: 17 Imported by: 0

Documentation

Index

Constants

View Source
const (
	ErrMsgPortalAPINotConfigured              = "Portal API client not configured"
	ErrMsgAPIAPINotConfigured                 = "API client not configured"
	ErrMsgAuthStrategyAPINotConfigured        = "app auth API client not configured"
	ErrMsgAPIVersionAPINotConfigured          = "API version client not configured"
	ErrMsgAPIPublicationAPINotConfigured      = "API publication client not configured"
	ErrMsgAPIImplementationAPINotConfigured   = "API implementation client not configured"
	ErrMsgAPIDocumentAPINotConfigured         = "API document client not configured"
	ErrMsgPortalPageAPINotConfigured          = "portal page API not configured"
	ErrMsgPortalSnippetAPINotConfigured       = "portal snippet API not configured"
	ErrMsgPortalCustomizationAPINotConfigured = "portal customization API not configured"
	ErrMsgPortalCustomDomainAPINotConfigured  = "portal custom domain API not configured"
	ErrMsgPortalEmailsAPINotConfigured        = "portal emails API not configured"
)

Standard error messages for common scenarios

Variables

This section is empty.

Functions

func IsAPIClientError

func IsAPIClientError(err error) bool

IsAPIClientError checks if an error is an API client not configured error

func IsResponseValidationError

func IsResponseValidationError(err error) bool

IsResponseValidationError checks if an error is a response validation error

func NewAPIClientNotConfiguredError

func NewAPIClientNotConfiguredError(clientType string) error

NewAPIClientNotConfiguredError creates a standard "client not configured" error

func NewResponseValidationError

func NewResponseValidationError(operation, expectedType string) error

NewResponseValidationError creates a standard response validation error

func PaginateAll

func PaginateAll[T any](ctx context.Context, lister PaginatedLister[T]) ([]T, error)

PaginateAll fetches all pages from a paginated API endpoint

func PaginateAllFiltered

func PaginateAllFiltered[T any](
	ctx context.Context, lister FilteredPaginatedLister[T], filter func(T) bool,
) ([]T, error)

PaginateAllFiltered fetches all pages from a paginated API endpoint with filtering

func ValidateAPIClient

func ValidateAPIClient(client any, clientType string) error

ValidateAPIClient checks if an API client interface is configured (not nil)

func ValidateResponse

func ValidateResponse[T any](response *T, operation string) error

ValidateResponse checks if a response pointer contains non-nil data

func WrapAPIError

func WrapAPIError(err error, operation string, opts *ErrorWrapperOptions) error

WrapAPIError wraps an API error with consistent formatting and optional enhancement

Types

type API

type API struct {
	kkComps.APIResponseSchema
	NormalizedLabels map[string]string // Non-pointer labels
}

API represents a normalized API for internal use

type APIClientError

type APIClientError struct {
	ClientType string
}

APIClientError represents an error when an API client is not configured

func (*APIClientError) Error

func (e *APIClientError) Error() string

type APIDocument

type APIDocument struct {
	ID               string
	Content          string
	Title            string
	Slug             string
	Status           string
	ParentDocumentID string
}

APIDocument represents an API document for internal use

type APIImplementation

type APIImplementation struct {
	ID                string
	ImplementationURL string
	Service           *struct {
		ID             string
		ControlPlaneID string
	}
}

APIImplementation represents an API implementation for internal use

type APIPublication

type APIPublication struct {
	ID                       string
	PortalID                 string
	AuthStrategyIDs          []string
	AutoApproveRegistrations bool
	Visibility               string
}

APIPublication represents an API publication for internal use

type APIVersion

type APIVersion struct {
	ID            string
	Version       string
	PublishStatus string
	Deprecated    bool
	SunsetDate    string
	Spec          string // API version spec content for content comparison
}

APIVersion represents an API version for internal use

type ApplicationAuthStrategy

type ApplicationAuthStrategy struct {
	ID               string
	Name             string
	DisplayName      string
	StrategyType     string
	Configs          map[string]any
	NormalizedLabels map[string]string // Non-pointer labels
}

ApplicationAuthStrategy represents a normalized auth strategy for internal use

type Cache

type Cache struct {
	// Top-level resources
	Portals                   map[string]*CachedPortal            // portalID -> portal with children
	APIs                      map[string]*CachedAPI               // apiID -> api with children
	ApplicationAuthStrategies map[string]*ApplicationAuthStrategy // strategyID -> strategy
}

Cache represents cached Konnect state with hierarchical structure

func NewCache

func NewCache() *Cache

NewCache creates an initialized cache

type CachedAPI

type CachedAPI struct {
	API

	// Child resources
	Versions        map[string]*APIVersion        // versionID -> version
	Publications    map[string]*APIPublication    // portalID -> publication (one per portal)
	Implementations map[string]*APIImplementation // implementationID -> implementation
	Documents       map[string]*CachedAPIDocument // documentID -> document (with nested children)
}

CachedAPI represents an API with all its child resources

type CachedAPIDocument

type CachedAPIDocument struct {
	APIDocument

	// Child documents indexed by ID
	Children map[string]*CachedAPIDocument // documentID -> child document
}

CachedAPIDocument represents a document with its children

type CachedPortal

type CachedPortal struct {
	Portal

	// Child resources
	Pages         map[string]*CachedPortalPage // pageID -> page (with nested children)
	Customization *PortalCustomization         // singleton
	CustomDomain  *PortalCustomDomain          // singleton
	Snippets      map[string]*PortalSnippet    // snippetID -> snippet
	Teams         map[string]*PortalTeam       // teamID -> team
	TeamRoles     map[string]*PortalTeamRole   // roleAssignmentID -> role
}

CachedPortal represents a portal with all its child resources

func (*CachedPortal) FindPageBySlugPath

func (p *CachedPortal) FindPageBySlugPath(slugPath string) *CachedPortalPage

FindPageBySlugPath finds a page by its full slug path

func (*CachedPortal) GetPortalPage

func (p *CachedPortal) GetPortalPage(pageID string) *CachedPortalPage

GetPortalPage finds a page anywhere in the portal hierarchy

type CachedPortalPage

type CachedPortalPage struct {
	PortalPage

	// Child pages indexed by ID
	Children map[string]*CachedPortalPage // pageID -> child page
}

CachedPortalPage represents a page with its children

func (*CachedPortalPage) GetDescendant

func (p *CachedPortalPage) GetDescendant(pageID string) *CachedPortalPage

GetDescendant finds a descendant page by ID

type CatalogService added in v0.3.6

type CatalogService struct {
	kkComps.CatalogService
	NormalizedLabels map[string]string
}

CatalogService represents a catalog service for internal use.

type Client

type Client struct {
	// contains filtered or unexported fields
}

Client wraps Konnect SDK for state management

func NewClient

func NewClient(config ClientConfig) *Client

NewClient creates a new state client with the provided configuration

func (*Client) AssignPortalTeamRole added in v0.3.4

func (c *Client) AssignPortalTeamRole(
	ctx context.Context,
	portalID string,
	teamID string,
	req kkComps.PortalAssignRoleRequest,
	namespace string,
) (string, error)

AssignPortalTeamRole assigns a role to a portal team

func (*Client) CreateAPI

func (c *Client) CreateAPI(
	ctx context.Context,
	api kkComps.CreateAPIRequest,
	namespace string,
) (*kkComps.APIResponseSchema, error)

CreateAPI creates a new API with management labels

func (*Client) CreateAPIDocument

func (c *Client) CreateAPIDocument(
	ctx context.Context, apiID string, document kkComps.CreateAPIDocumentRequest,
) (*kkComps.APIDocumentResponse, error)

CreateAPIDocument creates a new API document

func (*Client) CreateAPIImplementation

func (c *Client) CreateAPIImplementation(
	ctx context.Context, apiID string, implementation kkComps.APIImplementation,
) (*kkComps.APIImplementationResponse, error)

CreateAPIImplementation creates a new API implementation

func (*Client) CreateAPIPublication

func (c *Client) CreateAPIPublication(
	ctx context.Context, apiID string, portalID string, publication kkComps.APIPublication,
) (*kkComps.APIPublicationResponse, error)

CreateAPIPublication creates a new API publication

func (*Client) CreateAPIVersion

func (c *Client) CreateAPIVersion(
	ctx context.Context, apiID string, version kkComps.CreateAPIVersionRequest,
) (*kkComps.APIVersionResponse, error)

CreateAPIVersion creates a new API version

func (*Client) CreateApplicationAuthStrategy

func (c *Client) CreateApplicationAuthStrategy(
	ctx context.Context,
	authStrategy kkComps.CreateAppAuthStrategyRequest,
	_ string,
) (*kkOps.CreateAppAuthStrategyResponse, error)

CreateApplicationAuthStrategy creates a new application auth strategy with management labels

func (*Client) CreateCatalogService added in v0.3.6

func (c *Client) CreateCatalogService(
	ctx context.Context,
	req kkComps.CreateCatalogService,
	namespace string,
) (*kkComps.CatalogService, error)

CreateCatalogService creates a new catalog service with management labels.

func (*Client) CreateControlPlane added in v0.1.6

func (c *Client) CreateControlPlane(
	ctx context.Context,
	controlPlane kkComps.CreateControlPlaneRequest,
	namespace string,
) (*kkComps.ControlPlane, error)

CreateControlPlane creates a new control plane with management labels

func (*Client) CreateEventGatewayControlPlane added in v0.3.7

func (c *Client) CreateEventGatewayControlPlane(
	ctx context.Context,
	req kkComps.CreateGatewayRequest,
	namespace string,
) (string, error)

func (*Client) CreatePortal

func (c *Client) CreatePortal(
	ctx context.Context,
	portal kkComps.CreatePortal,
	namespace string,
) (*kkComps.PortalResponse, error)

CreatePortal creates a new portal with management labels

func (*Client) CreatePortalCustomDomain

func (c *Client) CreatePortalCustomDomain(
	ctx context.Context,
	portalID string,
	req kkComps.CreatePortalCustomDomainRequest,
) error

CreatePortalCustomDomain creates a custom domain for a portal

func (*Client) CreatePortalEmailConfig added in v0.3.5

func (c *Client) CreatePortalEmailConfig(
	ctx context.Context,
	portalID string,
	body kkComps.PostPortalEmailConfig,
) (string, error)

CreatePortalEmailConfig creates a new email configuration for a portal.

func (*Client) CreatePortalPage

func (c *Client) CreatePortalPage(
	ctx context.Context,
	portalID string,
	req kkComps.CreatePortalPageRequest,
) (string, error)

CreatePortalPage creates a new page in a portal

func (*Client) CreatePortalSnippet

func (c *Client) CreatePortalSnippet(
	ctx context.Context,
	portalID string,
	req kkComps.CreatePortalSnippetRequest,
) (string, error)

CreatePortalSnippet creates a new snippet in a portal

func (*Client) CreatePortalTeam added in v0.3.3

func (c *Client) CreatePortalTeam(
	ctx context.Context,
	portalID string,
	req kkComps.PortalCreateTeamRequest,
	namespace string,
) (string, error)

CreatePortalTeam creates a new portal team

func (*Client) DeleteAPI

func (c *Client) DeleteAPI(ctx context.Context, id string) error

DeleteAPI deletes an API by ID

func (*Client) DeleteAPIDocument

func (c *Client) DeleteAPIDocument(ctx context.Context, apiID, documentID string) error

DeleteAPIDocument deletes an API document

func (*Client) DeleteAPIImplementation

func (c *Client) DeleteAPIImplementation(ctx context.Context, apiID, implementationID string) error

DeleteAPIImplementation deletes an API implementation

func (*Client) DeleteAPIPublication

func (c *Client) DeleteAPIPublication(ctx context.Context, apiID, portalID string) error

DeleteAPIPublication deletes an API publication

func (*Client) DeleteAPIVersion

func (c *Client) DeleteAPIVersion(ctx context.Context, apiID string, versionID string) error

DeleteAPIVersion deletes an API version

func (*Client) DeleteApplicationAuthStrategy

func (c *Client) DeleteApplicationAuthStrategy(ctx context.Context, id string) error

DeleteApplicationAuthStrategy deletes an auth strategy by ID

func (*Client) DeleteCatalogService added in v0.3.6

func (c *Client) DeleteCatalogService(ctx context.Context, id string) error

DeleteCatalogService deletes a catalog service by ID.

func (*Client) DeleteControlPlane added in v0.1.6

func (c *Client) DeleteControlPlane(ctx context.Context, id string) error

DeleteControlPlane deletes a control plane by ID

func (*Client) DeleteEventGatewayControlPlane added in v0.3.7

func (c *Client) DeleteEventGatewayControlPlane(ctx context.Context, id string) error

func (*Client) DeletePortal

func (c *Client) DeletePortal(ctx context.Context, id string, force bool) error

DeletePortal deletes a portal by ID

func (*Client) DeletePortalCustomDomain

func (c *Client) DeletePortalCustomDomain(ctx context.Context, portalID string) error

DeletePortalCustomDomain deletes a portal custom domain

func (*Client) DeletePortalEmailConfig added in v0.3.5

func (c *Client) DeletePortalEmailConfig(ctx context.Context, portalID string) error

DeletePortalEmailConfig deletes the email configuration for a portal.

func (*Client) DeletePortalEmailTemplate added in v0.3.5

func (c *Client) DeletePortalEmailTemplate(
	ctx context.Context,
	portalID string,
	name kkComps.EmailTemplateName,
) error

DeletePortalEmailTemplate deletes a customized email template.

func (*Client) DeletePortalPage

func (c *Client) DeletePortalPage(ctx context.Context, portalID string, pageID string) error

DeletePortalPage deletes a page from a portal

func (*Client) DeletePortalSnippet

func (c *Client) DeletePortalSnippet(ctx context.Context, portalID string, snippetID string) error

DeletePortalSnippet deletes a snippet from a portal

func (*Client) DeletePortalTeam added in v0.3.3

func (c *Client) DeletePortalTeam(ctx context.Context, portalID string, teamID string) error

DeletePortalTeam deletes a portal team

func (*Client) FetchAPIVersion added in v0.1.4

func (c *Client) FetchAPIVersion(ctx context.Context, apiID, versionID string) (*APIVersion, error)

FetchAPIVersion retrieves a single API version with full content

func (*Client) GetAPIByFilter

func (c *Client) GetAPIByFilter(ctx context.Context, filter string) (*API, error)

GetAPIByFilter finds a managed API using a filter expression

func (*Client) GetAPIByID

func (c *Client) GetAPIByID(ctx context.Context, id string) (*API, error)

GetAPIByID finds an API by ID (for fallback during protection changes)

func (*Client) GetAPIByName

func (c *Client) GetAPIByName(ctx context.Context, name string) (*API, error)

GetAPIByName finds a managed API by name

func (*Client) GetAPIByRef

func (c *Client) GetAPIByRef(ctx context.Context, ref string) (*API, error)

GetAPIByRef finds a managed API by declarative ref (stored in labels) TODO: This will be replaced by filtered lookup in Phase 2

func (*Client) GetAPIDocument

func (c *Client) GetAPIDocument(ctx context.Context, apiID, documentID string) (*APIDocument, error)

GetAPIDocument retrieves a single API document with full content

func (*Client) GetAuthStrategyByFilter

func (c *Client) GetAuthStrategyByFilter(ctx context.Context, filter string) (*ApplicationAuthStrategy, error)

GetAuthStrategyByFilter finds a managed auth strategy using a filter expression

func (*Client) GetAuthStrategyByName

func (c *Client) GetAuthStrategyByName(ctx context.Context, name string) (*ApplicationAuthStrategy, error)

GetAuthStrategyByName finds a managed auth strategy by name

func (*Client) GetCatalogServiceByID added in v0.3.6

func (c *Client) GetCatalogServiceByID(ctx context.Context, id string) (*CatalogService, error)

GetCatalogServiceByID fetches a catalog service by ID.

func (*Client) GetCatalogServiceByName added in v0.3.6

func (c *Client) GetCatalogServiceByName(ctx context.Context, name string) (*CatalogService, error)

GetCatalogServiceByName finds a managed catalog service by name.

func (*Client) GetControlPlaneByFilter added in v0.1.6

func (c *Client) GetControlPlaneByFilter(ctx context.Context, filter string) (*ControlPlane, error)

GetControlPlaneByFilter finds a managed control plane using a filter expression

func (*Client) GetControlPlaneByID added in v0.1.6

func (c *Client) GetControlPlaneByID(ctx context.Context, id string) (*ControlPlane, error)

GetControlPlaneByID finds a control plane by ID (used for fallback during protection changes)

func (*Client) GetControlPlaneByName added in v0.1.6

func (c *Client) GetControlPlaneByName(ctx context.Context, name string) (*ControlPlane, error)

GetControlPlaneByName finds a managed control plane by name

func (*Client) GetEventGatewayControlPlaneByID added in v0.3.7

func (c *Client) GetEventGatewayControlPlaneByID(ctx context.Context, id string) (*EventGatewayControlPlane, error)

func (*Client) GetPortalAssetFavicon added in v0.3.5

func (c *Client) GetPortalAssetFavicon(ctx context.Context, portalID string) (string, error)

GetPortalAssetFavicon fetches the favicon for a portal as a data URL

func (c *Client) GetPortalAssetLogo(ctx context.Context, portalID string) (string, error)

GetPortalAssetLogo fetches the logo for a portal as a data URL

func (*Client) GetPortalAuthSettings added in v0.3.4

func (c *Client) GetPortalAuthSettings(
	ctx context.Context,
	portalID string,
) (*kkComps.PortalAuthenticationSettingsResponse, error)

GetPortalAuthSettings fetches current auth settings for a portal.

func (*Client) GetPortalByFilter

func (c *Client) GetPortalByFilter(ctx context.Context, filter string) (*Portal, error)

GetPortalByFilter finds a managed portal using a filter expression

func (*Client) GetPortalByName

func (c *Client) GetPortalByName(ctx context.Context, name string) (*Portal, error)

GetPortalByName finds a managed portal by name

func (*Client) GetPortalCustomDomain added in v0.3.3

func (c *Client) GetPortalCustomDomain(ctx context.Context, portalID string) (*PortalCustomDomain, error)

GetPortalCustomDomain fetches the current custom domain for a portal.

func (*Client) GetPortalCustomEmailTemplate added in v0.3.5

func (c *Client) GetPortalCustomEmailTemplate(
	ctx context.Context,
	portalID string,
	name kkComps.EmailTemplateName,
) (*PortalEmailTemplate, error)

GetPortalCustomEmailTemplate fetches a single customized email template.

func (*Client) GetPortalCustomization

func (c *Client) GetPortalCustomization(
	ctx context.Context,
	portalID string,
) (*kkComps.PortalCustomization, error)

GetPortalCustomization fetches the current customization for a portal

func (*Client) GetPortalEmailConfig added in v0.3.5

func (c *Client) GetPortalEmailConfig(ctx context.Context, portalID string) (*kkComps.PortalEmailConfig, error)

GetPortalEmailConfig fetches the current email configuration for a portal.

func (*Client) GetPortalPage

func (c *Client) GetPortalPage(ctx context.Context, portalID string, pageID string) (*PortalPage, error)

GetPortalPage fetches a single portal page with full details including content

func (*Client) GetPortalSnippet

func (c *Client) GetPortalSnippet(ctx context.Context, portalID string, snippetID string) (*PortalSnippet, error)

GetPortalSnippet fetches a single portal snippet with full details including content

func (*Client) ListAPIDocuments

func (c *Client) ListAPIDocuments(ctx context.Context, apiID string) ([]APIDocument, error)

ListAPIDocuments returns all documents for an API

func (*Client) ListAPIImplementations

func (c *Client) ListAPIImplementations(ctx context.Context, apiID string) ([]APIImplementation, error)

ListAPIImplementations returns all implementations for an API

func (*Client) ListAPIPublications

func (c *Client) ListAPIPublications(ctx context.Context, apiID string) ([]APIPublication, error)

ListAPIPublications returns all publications for an API

func (*Client) ListAPIVersions

func (c *Client) ListAPIVersions(ctx context.Context, apiID string) ([]APIVersion, error)

ListAPIVersions returns all versions for an API

func (*Client) ListAllAPIs

func (c *Client) ListAllAPIs(ctx context.Context) ([]API, error)

ListAllAPIs returns all APIs without managed filtering (for fallback lookups)

func (*Client) ListAllControlPlanes added in v0.1.6

func (c *Client) ListAllControlPlanes(ctx context.Context) ([]ControlPlane, error)

ListAllControlPlanes returns all control planes, including non-managed ones

func (*Client) ListAllPortals added in v0.1.5

func (c *Client) ListAllPortals(ctx context.Context) ([]Portal, error)

ListAllPortals returns all portals, including non-managed ones

func (*Client) ListControlPlaneGroupMemberships added in v0.3.0

func (c *Client) ListControlPlaneGroupMemberships(ctx context.Context, groupID string) ([]string, error)

ListControlPlaneGroupMemberships returns all child control plane IDs for a control plane group.

func (*Client) ListGatewayServices added in v0.2.0

func (c *Client) ListGatewayServices(ctx context.Context, controlPlaneID string) ([]GatewayService, error)

ListGatewayServices returns all gateway services for the provided control plane.

func (*Client) ListManagedAPIs

func (c *Client) ListManagedAPIs(ctx context.Context, namespaces []string) ([]API, error)

ListManagedAPIs returns all KONGCTL-managed APIs in the specified namespaces If namespaces is empty, no resources are returned (breaking change from previous behavior) To get all managed resources across all namespaces, pass []string{"*"}

func (*Client) ListManagedAuthStrategies

func (c *Client) ListManagedAuthStrategies(
	ctx context.Context, namespaces []string,
) ([]ApplicationAuthStrategy, error)

ListManagedAuthStrategies returns all KONGCTL-managed auth strategies in the specified namespaces If namespaces is empty, no resources are returned (breaking change from previous behavior) To get all managed resources across all namespaces, pass []string{"*"}

func (*Client) ListManagedCatalogServices added in v0.3.6

func (c *Client) ListManagedCatalogServices(ctx context.Context, namespaces []string) ([]CatalogService, error)

ListManagedCatalogServices returns all KONGCTL-managed catalog services in the specified namespaces. If namespaces is empty, no resources are returned. To get all managed resources, pass []string{"*"}.

func (*Client) ListManagedControlPlanes added in v0.1.6

func (c *Client) ListManagedControlPlanes(ctx context.Context, namespaces []string) ([]ControlPlane, error)

ListManagedControlPlanes returns all KONGCTL-managed control planes in the specified namespaces If namespaces is empty, no resources are returned (breaking change from previous behavior) To get all managed resources across all namespaces, pass []string{"*"}

func (*Client) ListManagedEventGatewayControlPlanes added in v0.3.7

func (c *Client) ListManagedEventGatewayControlPlanes(
	ctx context.Context,
	namespaces []string,
) ([]EventGatewayControlPlane, error)

func (*Client) ListManagedPortalPages

func (c *Client) ListManagedPortalPages(ctx context.Context, portalID string) ([]PortalPage, error)

ListManagedPortalPages returns all KONGCTL-managed portal pages for a portal

func (*Client) ListManagedPortals

func (c *Client) ListManagedPortals(ctx context.Context, namespaces []string) ([]Portal, error)

ListManagedPortals returns all KONGCTL-managed portals in the specified namespaces If namespaces is empty, no resources are returned (breaking change from previous behavior) To get all managed resources across all namespaces, pass []string{"*"}

func (*Client) ListPortalCustomEmailTemplates added in v0.3.5

func (c *Client) ListPortalCustomEmailTemplates(ctx context.Context, portalID string) ([]PortalEmailTemplate, error)

ListPortalCustomEmailTemplates returns customized templates for a portal.

func (*Client) ListPortalSnippets

func (c *Client) ListPortalSnippets(ctx context.Context, portalID string) ([]PortalSnippet, error)

ListPortalSnippets returns all snippets for a portal

func (*Client) ListPortalTeamRoles added in v0.3.4

func (c *Client) ListPortalTeamRoles(ctx context.Context, portalID string, teamID string) ([]PortalTeamRole, error)

ListPortalTeamRoles returns all assigned roles for a portal team

func (*Client) ListPortalTeams added in v0.3.3

func (c *Client) ListPortalTeams(ctx context.Context, portalID string) ([]PortalTeam, error)

ListPortalTeams returns all teams for a portal

func (*Client) RemovePortalTeamRole added in v0.3.4

func (c *Client) RemovePortalTeamRole(ctx context.Context, portalID string, teamID string, roleID string) error

RemovePortalTeamRole removes an assigned role from a portal team

func (*Client) ReplacePortalAssetFavicon added in v0.3.5

func (c *Client) ReplacePortalAssetFavicon(ctx context.Context, portalID, dataURL string) error

ReplacePortalAssetFavicon uploads a new favicon for a portal

func (c *Client) ReplacePortalAssetLogo(ctx context.Context, portalID, dataURL string) error

ReplacePortalAssetLogo uploads a new logo for a portal

func (*Client) UpdateAPI

UpdateAPI updates an existing API with new management labels

func (*Client) UpdateAPIDocument

func (c *Client) UpdateAPIDocument(
	ctx context.Context, apiID, documentID string, document kkComps.APIDocument,
) (*kkComps.APIDocumentResponse, error)

UpdateAPIDocument updates an existing API document

func (*Client) UpdateAPIVersion added in v0.1.4

func (c *Client) UpdateAPIVersion(
	ctx context.Context, apiID, versionID string, version kkComps.APIVersion,
) (*kkComps.APIVersionResponse, error)

UpdateAPIVersion updates an existing API version

func (*Client) UpdateApplicationAuthStrategy

func (c *Client) UpdateApplicationAuthStrategy(
	ctx context.Context,
	id string,
	authStrategy kkComps.UpdateAppAuthStrategyRequest,
	_ string,
) (*kkOps.UpdateAppAuthStrategyResponse, error)

UpdateApplicationAuthStrategy updates an existing auth strategy with new management labels

func (*Client) UpdateCatalogService added in v0.3.6

func (c *Client) UpdateCatalogService(
	ctx context.Context,
	id string,
	req kkComps.UpdateCatalogService,
	namespace string,
) (*kkComps.CatalogService, error)

UpdateCatalogService updates an existing catalog service.

func (*Client) UpdateControlPlane added in v0.1.6

func (c *Client) UpdateControlPlane(
	ctx context.Context,
	id string,
	controlPlane kkComps.UpdateControlPlaneRequest,
	namespace string,
) (*kkComps.ControlPlane, error)

UpdateControlPlane updates an existing control plane

func (*Client) UpdateEventGatewayControlPlane added in v0.3.7

func (c *Client) UpdateEventGatewayControlPlane(
	ctx context.Context,
	id string,
	req kkComps.UpdateGatewayRequest,
	namespace string,
) (string, error)

func (*Client) UpdatePortal

func (c *Client) UpdatePortal(
	ctx context.Context,
	id string,
	portal kkComps.UpdatePortal,
	_ string,
) (*kkComps.PortalResponse, error)

UpdatePortal updates an existing portal with new management labels

func (*Client) UpdatePortalAuthSettings added in v0.3.4

func (c *Client) UpdatePortalAuthSettings(
	ctx context.Context,
	portalID string,
	settings kkComps.PortalAuthenticationSettingsUpdateRequest,
) error

UpdatePortalAuthSettings updates portal authentication settings.

func (*Client) UpdatePortalCustomDomain

func (c *Client) UpdatePortalCustomDomain(
	ctx context.Context,
	portalID string,
	req kkComps.UpdatePortalCustomDomainRequest,
) error

UpdatePortalCustomDomain updates a portal custom domain

func (*Client) UpdatePortalCustomization

func (c *Client) UpdatePortalCustomization(
	ctx context.Context,
	portalID string,
	customization kkComps.PortalCustomization,
) error

UpdatePortalCustomization updates portal customization settings

func (*Client) UpdatePortalEmailConfig added in v0.3.5

func (c *Client) UpdatePortalEmailConfig(
	ctx context.Context,
	portalID string,
	body *kkComps.PatchPortalEmailConfig,
) (string, error)

UpdatePortalEmailConfig updates the email configuration for a portal.

func (*Client) UpdatePortalEmailTemplate added in v0.3.5

func (c *Client) UpdatePortalEmailTemplate(
	ctx context.Context,
	portalID string,
	name kkComps.EmailTemplateName,
	payload kkComps.PatchCustomPortalEmailTemplatePayload,
) (string, error)

UpdatePortalEmailTemplate creates or updates a customized email template.

func (*Client) UpdatePortalPage

func (c *Client) UpdatePortalPage(
	ctx context.Context,
	portalID string,
	pageID string,
	req kkComps.UpdatePortalPageRequest,
) error

UpdatePortalPage updates an existing page in a portal

func (*Client) UpdatePortalSnippet

func (c *Client) UpdatePortalSnippet(
	ctx context.Context,
	portalID string,
	snippetID string,
	req kkComps.UpdatePortalSnippetRequest,
) error

UpdatePortalSnippet updates an existing snippet in a portal

func (*Client) UpdatePortalTeam added in v0.3.3

func (c *Client) UpdatePortalTeam(
	ctx context.Context,
	portalID string,
	teamID string,
	req kkComps.PortalUpdateTeamRequest,
	namespace string,
) error

UpdatePortalTeam updates a portal team

func (*Client) UpsertControlPlaneGroupMemberships added in v0.3.0

func (c *Client) UpsertControlPlaneGroupMemberships(ctx context.Context, groupID string, memberIDs []string) error

UpsertControlPlaneGroupMemberships replaces the members of a control plane group.

type ClientConfig

type ClientConfig struct {
	// Core APIs
	PortalAPI             helpers.PortalAPI
	APIAPI                helpers.APIAPI
	AppAuthAPI            helpers.AppAuthStrategiesAPI
	ControlPlaneAPI       helpers.ControlPlaneAPI
	GatewayServiceAPI     helpers.GatewayServiceAPI
	ControlPlaneGroupsAPI helpers.ControlPlaneGroupsAPI
	CatalogServiceAPI     helpers.CatalogServicesAPI

	// Portal child resource APIs
	PortalPageAPI          helpers.PortalPageAPI
	PortalAuthSettingsAPI  helpers.PortalAuthSettingsAPI
	PortalCustomizationAPI helpers.PortalCustomizationAPI
	PortalCustomDomainAPI  helpers.PortalCustomDomainAPI
	PortalSnippetAPI       helpers.PortalSnippetAPI
	PortalTeamAPI          helpers.PortalTeamAPI
	PortalTeamRolesAPI     helpers.PortalTeamRolesAPI
	PortalEmailsAPI        helpers.PortalEmailsAPI
	AssetsAPI              helpers.AssetsAPI

	// API child resource APIs
	APIVersionAPI        helpers.APIVersionAPI
	APIPublicationAPI    helpers.APIPublicationAPI
	APIImplementationAPI helpers.APIImplementationAPI
	APIDocumentAPI       helpers.APIDocumentAPI

	// Event Gateway Control Plane API
	EGWControlPlaneAPI helpers.EGWControlPlaneAPI
}

ClientConfig contains all the API interfaces needed by the state client

type ControlPlane added in v0.1.6

type ControlPlane struct {
	kkComps.ControlPlane
	NormalizedLabels map[string]string // Non-pointer labels
	GroupMembers     []string
}

ControlPlane represents a normalized control plane for internal use

type ErrorWrapperOptions

type ErrorWrapperOptions struct {
	ResourceType string
	ResourceName string
	Namespace    string
	StatusCode   int
	UseEnhanced  bool // Whether to use enhanced error with context
}

ErrorWrapperOptions configures how API errors are wrapped

type EventGatewayControlPlane added in v0.3.7

type EventGatewayControlPlane struct {
	kkComps.EventGatewayInfo
	NormalizedLabels map[string]string // Non-pointer labels
}

type FilteredPaginatedLister

type FilteredPaginatedLister[T any] func(
	ctx context.Context, pageSize, pageNumber int64, filter func(T) bool,
) ([]T, *PageMeta, error)

FilteredPaginatedLister wraps a PaginatedLister with additional filtering logic

type GatewayService added in v0.2.0

type GatewayService struct {
	ID             string
	Name           string
	ControlPlaneID string
	Service        kkComps.ServiceOutput
}

GatewayService represents a gateway service for internal use.

type PageMeta

type PageMeta struct {
	Total float64
}

PageMeta contains pagination metadata from API responses

type PaginatedLister

type PaginatedLister[T any] func(ctx context.Context, pageSize, pageNumber int64) ([]T, *PageMeta, error)

PaginatedLister is a function type that can fetch a page of results

type Portal

type Portal struct {
	kkComps.ListPortalsResponsePortal
	NormalizedLabels map[string]string // Non-pointer labels
}

Portal represents a normalized portal for internal use

type PortalCustomDomain

type PortalCustomDomain struct {
	ID                       string
	PortalID                 string
	Hostname                 string
	Enabled                  bool
	DomainVerificationMethod string
	VerificationStatus       string
	ValidationErrors         []string
	SkipCACheck              *bool
	UploadedAt               *time.Time
	ExpiresAt                *time.Time
	CnameStatus              string
	CreatedAt                time.Time
	UpdatedAt                time.Time
}

PortalCustomDomain represents portal custom domain (placeholder for missing type)

type PortalCustomization

type PortalCustomization struct {
}

PortalCustomization represents portal customization (placeholder for missing type)

type PortalEmailTemplate added in v0.3.5

type PortalEmailTemplate struct {
	ID        string
	Name      string
	Label     string
	Enabled   bool
	Content   *PortalEmailTemplateContent
	Variables []kkComps.EmailTemplateVariableName
}

PortalEmailTemplate represents a customized email template for a portal.

type PortalEmailTemplateContent added in v0.3.5

type PortalEmailTemplateContent struct {
	Subject     *string
	Title       *string
	Body        *string
	ButtonLabel *string
}

PortalEmailTemplateContent captures the mutable email content fields.

type PortalPage

type PortalPage struct {
	ID               string
	Slug             string
	Title            string
	Content          string // Will be empty from list, populated from fetch
	Description      string
	Visibility       string
	Status           string
	ParentPageID     string
	NormalizedLabels map[string]string
}

PortalPage represents a portal page for internal use

type PortalSnippet

type PortalSnippet struct {
	ID               string
	Name             string
	Title            string
	Content          string // Will be empty from list, populated from fetch
	Description      string
	Visibility       string
	Status           string
	NormalizedLabels map[string]string
}

PortalSnippet represents portal snippet

type PortalTeam added in v0.3.3

type PortalTeam struct {
	ID          string
	Name        string
	Description string
}

PortalTeam represents a portal team (developer team)

type PortalTeamRole added in v0.3.4

type PortalTeamRole struct {
	ID             string
	RoleName       string
	EntityID       string
	EntityTypeName string
	EntityRegion   string
	TeamID         string
	PortalID       string
}

PortalTeamRole represents an assigned role for a portal team

type ResponseValidationError

type ResponseValidationError struct {
	Operation    string
	ExpectedType string
}

ResponseValidationError represents an error when API response is missing expected data

func (*ResponseValidationError) Error

func (e *ResponseValidationError) Error() string

Jump to

Keyboard shortcuts

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