api

package
v0.0.0-...-6b35f24 Latest Latest
Warning

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

Go to latest
Published: Sep 25, 2025 License: Apache-2.0 Imports: 4 Imported by: 1

Documentation

Overview

Package api provides data structures for the Drycc Controller API.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewAutodeploy

func NewAutodeploy() *bool

NewAutodeploy returns a default value for the AppSettings.NewAutodeploy field.

func NewAutorollback

func NewAutorollback() *bool

NewAutorollback returns a default value for the AppSettings.Autorollback field.

func NewRoutable

func NewRoutable() *bool

NewRoutable returns a default value for the AppSettings.Routable field.

Types

type Address

type Address struct {
	Type  string `json:"type,omitempty"`
	Value string `json:"value,omitempty"`
}

Address represents a gateway address configuration.

type Allowlist

type Allowlist struct {
	Addresses []string `json:"addresses"`
}

Allowlist is the structure of POST /v2/app/<app id>/allowlist/.

type App

type App struct {
	Created string `json:"created"`
	ID      string `json:"id"`
	Owner   string `json:"owner"`
	Updated string `json:"updated"`
	UUID    string `json:"uuid"`
}

App is the definition of the app object.

type AppCreateRequest

type AppCreateRequest struct {
	ID string `json:"id,omitempty"`
}

AppCreateRequest is the definition of POST /v2/apps/.

type AppEvent

type AppEvent struct {
	Reason  string `json:"reason"`
	Message string `json:"message"`
	Created string `json:"created"`
}

AppEvent represents an event in the system.

type AppEvents

type AppEvents []AppEvent

AppEvents is a collection of AppEvent.

type AppLogsRequest

type AppLogsRequest struct {
	Lines   int  `json:"lines"`
	Follow  bool `json:"follow"`
	Timeout int  `json:"timeout"`
}

AppLogsRequest is the definition of websocket /v2/apps/<app id>/logs

type AppRunRequest

type AppRunRequest struct {
	Command string                 `json:"command"`
	Volumes map[string]interface{} `json:"volumes,omitempty"`
	Timeout uint32                 `json:"timeout,omitempty"`
	Expires uint32                 `json:"expires,omitempty"`
}

AppRunRequest is the definition of POST /v2/apps/<app id>/run.

type AppSettings

type AppSettings struct {
	// Owner is the app owner. It cannot be updated with AppSettings.Set(). See app.Transfer().
	Owner string `json:"owner,omitempty"`
	// App is the app name. It cannot be updated at all right now.
	App string `json:"app,omitempty"`
	// Created is the time that the application settings was created and cannot be updated.
	Created string `json:"created,omitempty"`
	// Updated is the last time the application settings was changed and cannot be updated.
	Updated string `json:"updated,omitempty"`
	// UUID is a unique string reflecting the application settings in its current state.
	// It changes every time the application settings is changed and cannot be updated.
	UUID string `json:"uuid,omitempty"`
	// Routable determines if the application should be exposed by the router.
	Routable     *bool                 `json:"routable,omitempty"`
	Allowlist    []string              `json:"allowlist,omitempty"`
	Autodeploy   *bool                 `json:"autodeploy,omitempty"`
	Autorollback *bool                 `json:"autorollback,omitempty"`
	Autoscale    map[string]*Autoscale `json:"autoscale,omitempty"`
	Label        Labels                `json:"label,omitempty"`
}

AppSettings is the structure of an app's settings.

type AppUpdateRequest

type AppUpdateRequest struct {
	Owner string `json:"owner,omitempty"`
}

AppUpdateRequest is the definition of POST /v2/apps/<app id>/.

type Apps

type Apps []App

Apps defines a collection of app objects.

func (Apps) Len

func (a Apps) Len() int

func (Apps) Less

func (a Apps) Less(i, j int) bool

func (Apps) Swap

func (a Apps) Swap(i, j int)

type AuthLoginRequest

type AuthLoginRequest struct {
	Username string `json:"username,omitempty"`
	Password string `json:"password,omitempty"`
}

AuthLoginRequest represents the request structure for authentication login.

type AuthLoginResponse

type AuthLoginResponse struct {
	Key string `json:"key,omitempty"`
}

AuthLoginResponse represents the response structure for authentication login.

type AuthTokenResponse

type AuthTokenResponse struct {
	Token    string `json:"token"`
	Username string `json:"username,omitempty"`
}

AuthTokenResponse is the definition of /v2/auth/login/.

type Autoscale

type Autoscale struct {
	Min        int `json:"min"`
	Max        int `json:"max"`
	CPUPercent int `json:"cpu_percent"`
}

Autoscale is a per proc type scaling information

func (Autoscale) String

func (a Autoscale) String() string

String displays the Autoscale rule in a readable format.

type Autoscales

type Autoscales map[string]*Autoscale

Autoscales contains a hash of process types and the autoscale rules

type BackendRefRequest

type BackendRefRequest struct {
	Kind   string `json:"kind,omitempty"`
	Name   string `json:"name,omitempty"`
	Port   int32  `json:"port,omitempty"`
	Weight int32  `json:"weight,omitempty"`
}

BackendRefRequest represents a backend reference in a route request.

type Build

type Build struct {
	App        string                 `json:"app"`
	Created    string                 `json:"created"`
	Dockerfile string                 `json:"dockerfile,omitempty"`
	Image      string                 `json:"image,omitempty"`
	Stack      string                 `json:"stack,omitempty"`
	Owner      string                 `json:"owner"`
	Procfile   map[string]string      `json:"procfile"`
	Dryccfile  map[string]interface{} `json:"dryccfile"`
	Sha        string                 `json:"sha,omitempty"`
	Updated    string                 `json:"updated"`
	UUID       string                 `json:"uuid"`
}

Build is the structure of the build object.

type BuildHookRequest

type BuildHookRequest struct {
	Sha        string                 `json:"sha"`
	User       string                 `json:"receive_user"`
	App        string                 `json:"receive_repo"`
	Image      string                 `json:"image"`
	Stack      string                 `json:"stack"`
	Procfile   ProcessType            `json:"procfile"`
	Dockerfile string                 `json:"dockerfile"`
	Dryccfile  map[string]interface{} `json:"dryccfile"`
}

BuildHookRequest is a hook request to create a new build.

type Cert

type Cert struct {
	Updated        string    `json:"updated,omitempty"`
	Created        string    `json:"created,omitempty"`
	App            string    `json:"app"`
	Name           string    `json:"name"`
	CommonName     string    `json:"common_name"`
	Expires        time.Time `json:"expires"`
	Starts         time.Time `json:"starts"`
	Fingerprint    string    `json:"fingerprint"`
	Issuer         string    `json:"issuer"`
	Subject        string    `json:"subject"`
	SubjectAltName []string  `json:"san,omitempty"`
	Domains        []string  `json:"domains,omitempty"`
	Owner          string    `json:"owner,omitempty"`
	ID             int       `json:"id,omitempty"`
}

Cert is the definition of the cert object. Some fields are omtempty because they are only returned when creating or getting a cert.

type CertAttachRequest

type CertAttachRequest struct {
	Domain string `json:"domain"`
}

CertAttachRequest is the definition of POST to /v2/certs/<cert>/domain

type CertCreateRequest

type CertCreateRequest struct {
	Certificate string `json:"certificate"`
	Key         string `json:"key"`
	Name        string `json:"name"`
}

CertCreateRequest is the definition of POST and PUT to /v2/certs/

type Command

type Command struct {
	Tty     bool     `json:"tty"`
	Stdin   bool     `json:"stdin"`
	Command []string `json:"command"`
}

Command defines a command of app exec.

type Condition

type Condition struct {
	State     string   `json:"state"`
	Action    string   `json:"action"`
	Ptypes    []string `json:"ptypes"`
	Exception string   `json:"exception"`
	Created   string   `json:"created"`
}

Condition represents a condition in a release.

type Config

type Config struct {
	// Owner is the app owner. It cannot be updated with config.Set(). See app.Transfer().
	Owner string `json:"owner,omitempty"`
	// App is the app name. It cannot be updated at all right now.
	App string `json:"app,omitempty"`
	// Values are exposed as environment variables to the app.
	Values []ConfigValue `json:"values,omitempty"`
	// Typed values are exposed as environment variables to the app.
	ValuesRefs ValuesRefs `json:"values_refs,omitempty"`
	// Limits is used to set process resources limits. The key is the process name
	// and the value is a limit plan. Ex: std1.xlarge.c1m1
	Limits map[string]interface{} `json:"limits,omitempty"`
	// Timeout is used to set termination grace period. The key is the process name
	// and the value is a number in seconds, e.g. 30
	Timeout map[string]interface{} `json:"termination_grace_period,omitempty"`
	// Healthcheck is map of healthchecks for each process that the application uses.
	Healthcheck map[string]*Healthchecks `json:"healthcheck,omitempty"`
	// Tags restrict applications to run on k8s nodes with that label.
	Tags map[string]ConfigTags `json:"tags,omitempty"`
	// Registry is a key-value pair to provide authentication for container registries.
	// The key is the username and the value is the password.
	Registry map[string]map[string]interface{} `json:"registry,omitempty"`
	// Created is the time that the application was created and cannot be updated.
	Created string `json:"created,omitempty"`
	// Updated is the last time the configuration was changed and cannot be updated.
	Updated string `json:"updated,omitempty"`
	// UUID is a unique string reflecting the configuration in its current state.
	// It changes every time the configuration is changed and cannot be updated.
	UUID string `json:"uuid,omitempty"`
}

Config is the structure of an app's config.

type ConfigHookRequest

type ConfigHookRequest struct {
	User string `json:"receive_user"`
	App  string `json:"receive_repo"`
}

ConfigHookRequest defines the request for configuration from the config hook.

type ConfigInfo

type ConfigInfo struct {
	Ptype map[string]PtypeValue  `json:"ptype,omitempty"`
	Group map[string][]ConfigVar `json:"group,omitempty"`
}

ConfigInfo represents the complete configuration information for an app.

type ConfigSet

type ConfigSet struct {
	Values []ConfigValue `json:"values"`
}

ConfigSet is the definition of POST /v2/apps/<app id>/config/.

type ConfigTags

type ConfigTags map[string]interface{}

ConfigTags is the key, value for tag

type ConfigUnset

type ConfigUnset struct {
	Values []ConfigValue `json:"values"`
}

ConfigUnset is the definition of POST /v2/apps/<app id>/config/.

type ConfigValue

type ConfigValue struct {
	Ptype string `json:"ptype,omitempty"`
	Group string `json:"group,omitempty"`
	ConfigVar
}

ConfigValue represents a configuration value with its type and group.

type ConfigVar

type ConfigVar struct {
	Name  string      `json:"name"`
	Value interface{} `json:"value"`
}

ConfigVar represents a configuration variable for an app.

type ContainerState

type ContainerState struct {
	Container    string                            `json:"container"`
	Image        string                            `json:"image"`
	Command      []string                          `json:"command"`
	Args         []string                          `json:"args"`
	State        map[string]map[string]interface{} `json:"state"`
	LastState    map[string]map[string]interface{} `json:"lastState"`
	Ready        bool                              `json:"ready"`
	RestartCount int                               `json:"restartCount"`
	Status       string                            `json:"status"`
	Reason       string                            `json:"reason"`
	Message      string                            `json:"message"`
}

ContainerState defines a container state.

type CreateBuildRequest

type CreateBuildRequest struct {
	Image     string                 `json:"image"`
	Stack     string                 `json:"stack,omitempty"`
	Procfile  map[string]string      `json:"procfile,omitempty"`
	Dryccfile map[string]interface{} `json:"dryccfile,omitempty"`
}

CreateBuildRequest is the structure of POST /v2/apps/<app id>/builds/.

type Domain

type Domain struct {
	App     string `json:"app"`
	Created string `json:"created"`
	Domain  string `json:"domain"`
	Owner   string `json:"owner"`
	Ptype   string `json:"ptype"`
	Updated string `json:"updated"`
}

Domain is the structure of the domain object.

type DomainCreateRequest

type DomainCreateRequest struct {
	Domain string `json:"domain"`
	Ptype  string `json:"ptype"`
}

DomainCreateRequest is the structure of POST /v2/app/<app id>/domains/.

type Domains

type Domains []Domain

Domains defines a collection of domain objects.

func (Domains) Len

func (d Domains) Len() int

func (Domains) Less

func (d Domains) Less(i, j int) bool

func (Domains) Swap

func (d Domains) Swap(i, j int)

type Event

type Event = map[string]string

Event represents a TLS event as a map of string key-value pairs.

type ExecProbe

type ExecProbe struct {
	Command []string `json:"command"`
}

ExecProbe executes a command within a Pod.

func (ExecProbe) String

func (e ExecProbe) String() string

String displays the ExecProbe in a readable format.

type FilerDirEntries

type FilerDirEntries []FilerDirEntry

FilerDirEntries is a collection of FilerDirEntry.

type FilerDirEntry

type FilerDirEntry struct {
	Name      string `json:"name,omitempty"`
	Path      string `json:"path,omitempty"`
	Size      string `json:"size,omitempty"`
	Type      string `json:"type,omitempty"`
	Timestamp string `json:"timestamp,omitempty"`
}

FilerDirEntry represents a directory entry in the file system.

type Gateway

type Gateway struct {
	// Owner is the app owner. It cannot be updated with AppSettings.Set(). See app.Transfer().
	Owner string `json:"owner,omitempty"`
	// App is the app name. It cannot be updated at all right now.
	App string `json:"app,omitempty"`
	// Created is the time that the application settings was created and cannot be updated.
	Created string `json:"created,omitempty"`
	// Updated is the last time the application settings was changed and cannot be updated.
	Updated string `json:"updated,omitempty"`
	// UUID is a unique string reflecting the application settings in its current state.
	// It changes every time the application settings is changed and cannot be updated.
	UUID      string     `json:"uuid,omitempty"`
	Name      string     `json:"name,omitempty"`
	Listeners []Listener `json:"listeners,omitempty"`
	Addresses []Address  `json:"addresses,omitempty"`
}

Gateway is the structure of an app's gateways.

type GatewayCreateRequest

type GatewayCreateRequest struct {
	Name     string `json:"name,omitempty"`
	Port     int    `json:"port,omitempty"`
	Protocol string `json:"protocol,omitempty"`
}

GatewayCreateRequest is the structure of POST /v2/app/<app id>/gateways/.

type GatewayRemoveRequest

type GatewayRemoveRequest struct {
	Name     string `json:"name,omitempty"`
	Port     int    `json:"port,omitempty"`
	Protocol string `json:"protocol,omitempty"`
}

GatewayRemoveRequest is the structure of Delete /v2/app/<app id>/gateways/.

type Gateways

type Gateways []Gateway

Gateways defines a collection of gateway objects.

type HTTPGetProbe

type HTTPGetProbe struct {
	Path        string    `json:"path,omitempty"`
	Port        int       `json:"port"`
	HTTPHeaders []*KVPair `json:"httpHeaders,omitempty"`
}

HTTPGetProbe performs an HTTP GET request to the Pod with the given path, port and headers.

func (HTTPGetProbe) String

func (h HTTPGetProbe) String() string

String displays the HTTPGetProbe in a readable format.

type Healthcheck

type Healthcheck struct {
	InitialDelaySeconds int             `json:"initialDelaySeconds"`
	TimeoutSeconds      int             `json:"timeoutSeconds"`
	PeriodSeconds       int             `json:"periodSeconds"`
	SuccessThreshold    int             `json:"successThreshold"`
	FailureThreshold    int             `json:"failureThreshold"`
	Exec                *ExecProbe      `json:"exec,omitempty"`
	HTTPGet             *HTTPGetProbe   `json:"httpGet,omitempty"`
	TCPSocket           *TCPSocketProbe `json:"tcpSocket,omitempty"`
}

Healthcheck is the structure for an application healthcheck. Healthchecks only need to provide information about themselves. All the information is pushed to the server and handled by kubernetes.

func (Healthcheck) String

func (h Healthcheck) String() string

String displays the HealthcheckHTTPGetProbe in a readable format.

type Healthchecks

type Healthchecks map[string]*Healthcheck

Healthchecks is a map of healthcheck probes. The valid values are "startupProbe" "livenessProbe" and "readinessProbe".

type Issuer

type Issuer struct {
	Email     string `json:"email"`
	Server    string `json:"server"`
	KeyID     string `json:"key_id"`
	KeySecret string `json:"key_secret"`
}

Issuer is the structure of POST /v2/app/<app id>/tls/.

type KVPair

type KVPair struct {
	Name  string `json:"name"`
	Value string `json:"value"`
}

KVPair is a key/value pair used to parse values from strings into a formal structure.

func (KVPair) String

func (k KVPair) String() string

type Key

type Key struct {
	Created string `json:"created"`
	ID      string `json:"id"`
	Owner   string `json:"owner"`
	Public  string `json:"public"`
	Updated string `json:"updated"`
	UUID    string `json:"uuid"`
}

Key is the definition of the key object.

type KeyCreateRequest

type KeyCreateRequest struct {
	ID     string `json:"id"`
	Public string `json:"public"`
	Name   string `json:"name,omitempty"`
}

KeyCreateRequest is the definition of POST /v2/keys/.

type Keys

type Keys []Key

Keys defines a collection of key objects.

func (Keys) Len

func (k Keys) Len() int

func (Keys) Less

func (k Keys) Less(i, j int) bool

func (Keys) Swap

func (k Keys) Swap(i, j int)

type Labels

type Labels map[string]interface{}

Labels can contain any user-defined key value

type LimitPlan

type LimitPlan struct {
	ID       string                 `json:"id"`
	Spec     LimitSpec              `json:"spec"`
	CPU      int                    `json:"cpu"`
	Memory   int                    `json:"memory"`
	Features map[string]interface{} `json:"features"`
	Disabled bool                   `json:"disabled"`
}

LimitPlan is the definition of GET /v2/limits/plans/

type LimitSpec

type LimitSpec struct {
	ID       string                 `json:"id"`
	CPU      map[string]interface{} `json:"cpu"`
	Memory   map[string]interface{} `json:"memory"`
	Features map[string]interface{} `json:"features"`
	Keywords []string               `json:"keywords"`
	Disabled bool                   `json:"disabled"`
}

LimitSpec is the definition of GET /v2/limits/specs/

type Listener

type Listener struct {
	Name          string      `json:"name,omitempty"`
	Port          int         `json:"port,omitempty"`
	Protocol      string      `json:"protocol,omitempty"`
	AllowedRoutes interface{} `json:"allowedRoutes,omitempty"`
}

Listener represents a gateway listener configuration.

type Mount

type Mount struct {
	Values map[string]string `json:"values"`
}

Mount is the definition of PATCH /v2/apps/<app_id>/volumes/<name>/path/.

type ParentRef

type ParentRef struct {
	Name string `json:"name,omitempty"`
	Port int    `json:"port,omitempty"`
}

ParentRef represents a reference to a parent gateway.

type PodIDs

type PodIDs struct {
	PodIDs string `json:"pod_ids"`
}

PodIDs represents a list of pod IDs.

type PodLogsRequest

type PodLogsRequest struct {
	Lines     int    `json:"lines"`
	Follow    bool   `json:"follow"`
	Container string `json:"container"`
	Previous  bool   `json:"previous"`
}

PodLogsRequest is the definition of websocket /v2/apps/<app id>/logs

type PodState

type PodState []ContainerState

PodState defines a collection of container state.

type PodType

type PodType struct {
	Ptype    string
	PodsList PodsList
}

PodType holds pods of the same type.

type PodTypes

type PodTypes []PodType

PodTypes holds groups of pods organized by type.

func (PodTypes) Len

func (p PodTypes) Len() int

func (PodTypes) Less

func (p PodTypes) Less(i, j int) bool

func (PodTypes) Swap

func (p PodTypes) Swap(i, j int)

type Pods

type Pods struct {
	Release  string `json:"release"`
	Type     string `json:"type"`
	Name     string `json:"name"`
	State    string `json:"state"`
	Ready    string `json:"ready"`
	Restarts int    `json:"restarts"`
	Started  string `json:"started"`
}

Pods defines the structure of a process.

type PodsList

type PodsList []Pods

PodsList defines a collection of app pods.

func (PodsList) Len

func (p PodsList) Len() int

func (PodsList) Less

func (p PodsList) Less(i, j int) bool

func (PodsList) Swap

func (p PodsList) Swap(i, j int)

type Port

type Port struct {
	Name       string `json:"name"`
	Port       int    `json:"port"`
	Protocol   string `json:"protocol"`
	TargetPort int    `json:"targetPort"`
}

Port represents a port configuration in a service.

type ProcessType

type ProcessType map[string]string

ProcessType represents the key/value mappings of a process type to a process inside a Heroku Procfile.

See https://devcenter.heroku.com/articles/procfile

type Ptype

type Ptype struct {
	Name              string `json:"name"`
	Release           string `json:"release"`
	Ready             string `json:"ready"`
	UpToDate          int    `json:"up_to_date"`
	AvailableReplicas int    `json:"available_replicas"`
	Started           string `json:"started"`
	Garbage           bool   `json:"garbage"`
}

Ptype defines the structure of ptype deployment.

type PtypeState

type PtypeState struct {
	Container      string            `json:"container"`
	Image          string            `json:"image"`
	Command        []string          `json:"command,omitempty"`
	Args           []string          `json:"args,omitempty"`
	StartupProbe   Healthcheck       `json:"startup_probe,omitempty"`
	LivenessProbe  Healthcheck       `json:"liveness_probe,omitempty"`
	ReadinessProbe Healthcheck       `json:"readiness_probe,omitempty"`
	Limits         map[string]string `json:"limits,omitempty"`
	VolumeMounts   []VolumeMount     `json:"volume_mounts,omitempty"`
	NodeSelector   map[string]string `json:"node_selector,omitempty"`
}

PtypeState defines a ptype deployment state.

type PtypeStates

type PtypeStates []PtypeState

PtypeStates defines a collection of container state.

type PtypeValue

type PtypeValue struct {
	Env []ConfigVar `json:"env,omitempty"`
	Ref []string    `json:"ref,omitempty"`
}

PtypeValue represents values for a specific process type.

type Ptypes

type Ptypes []Ptype

Ptypes defines a collection of app Ptypes.

func (Ptypes) Len

func (d Ptypes) Len() int

func (Ptypes) Less

func (d Ptypes) Less(i, j int) bool

func (Ptypes) Swap

func (d Ptypes) Swap(i, j int)

type Release

type Release struct {
	App        string      `json:"app"`
	State      string      `json:"state"`
	Build      string      `json:"build,omitempty"`
	Config     string      `json:"config"`
	Created    string      `json:"created"`
	Owner      string      `json:"owner"`
	Summary    string      `json:"summary"`
	Exception  string      `json:"exception"`
	Conditions []Condition `json:"conditions"`
	Updated    string      `json:"updated"`
	UUID       string      `json:"uuid"`
	Version    int         `json:"version"`
}

Release is the definition of the release object.

type ReleaseRollback

type ReleaseRollback struct {
	Version int    `json:"version"`
	Ptypes  string `json:"ptypes"`
}

ReleaseRollback is the defenition of POST /v2/apps/<app id>/releases/.

type RequestRouteRule

type RequestRouteRule struct {
	BackendRefs []BackendRefRequest `json:"backendRefs,omitempty"`
}

RequestRouteRule represents a route rule in a request.

type Resource

type Resource struct {
	// Owner is the app owner.
	Owner string `json:"owner,omitempty"`
	// App is the app the tls settings apply to and cannot be updated.
	App string `json:"app,omitempty"`
	// Created is the time that the resource was created and cannot be updated.
	Created string `json:"created,omitempty"`
	// Updated is the last time the TLS settings was changed and cannot be updated.
	Updated string `json:"updated,omitempty"`
	// UUID is a unique string reflecting the resource in its current state.
	// It changes every time the resource is changed and cannot be updated.
	UUID string `json:"uuid,omitempty"`
	// Resource's name
	Name string `json:"name,omitempty"`
	// Resource's Plan
	Plan string `json:"plan,omitempty"`
	// Resource connet info
	Data map[string]interface{} `json:"data,omitempty"`
	// Resource's status
	Status string `json:"status,omitempty"`
	// Resource's binding status
	Binding string `json:"binding,omitempty"`
	// Resource Options
	Options map[string]interface{} `json:"options,omitempty"`
	// Resource instance message
	Message string `json:"message,omitempty"`
}

Resource is the structure of an app's resource.

type ResourceBinding

type ResourceBinding struct {
	BindAction string `json:"bind_action,omitempty"`
}

ResourceBinding is the definition of PATCH /v2/apps/<app_id>/resources/<name>/binding/.

type ResourcePlan

type ResourcePlan struct {
	// ID is a unique string for resource plan.
	ID string `json:"id,omitempty"`
	// Name is a unique string for resource plan.
	Name string `json:"name,omitempty"`
	// Description is a detailed description of the resource plan
	Description string `json:"description,omitempty"`
}

ResourcePlan is the structure of an app's resource plan.

type ResourcePlans

type ResourcePlans []ResourcePlan

ResourcePlans is a collection of ResourcePlan.

type ResourceService

type ResourceService struct {
	// ID is a unique string for resource service.
	ID string `json:"id,omitempty"`
	// Name is a unique string for resource service.
	Name string `json:"name,omitempty"`
	// Updatable is the plans of the current resource can be upgraded
	Updateable bool `json:"updateable,omitempty"`
}

ResourceService is the structure of an app's resource service.

type ResourceServices

type ResourceServices []ResourceService

ResourceServices is a collection of ResourceService.

type Resources

type Resources []Resource

Resources is a collection of Resource.

type Route

type Route struct {
	// Owner is the app owner. It cannot be updated with AppSettings.Set(). See app.Transfer().
	Owner string `json:"owner,omitempty"`
	// App is the app name. It cannot be updated at all right now.
	App string `json:"app,omitempty"`
	// Created is the time that the application settings was created and cannot be updated.
	Created string `json:"created,omitempty"`
	// Updated is the last time the application settings was changed and cannot be updated.
	Updated string `json:"updated,omitempty"`
	// UUID is a unique string reflecting the application settings in its current state.
	// It changes every time the application settings is changed and cannot be updated.
	UUID       string      `json:"uuid,omitempty"`
	Name       string      `json:"name,omitempty"`
	Kind       string      `json:"kind,omitempty"`
	ParentRefs []ParentRef `json:"parent_refs,omitempty"`
	Rules      []RouteRule `json:"rules,omitempty"`
}

Route is the structure of an app's route.

type RouteAttachRequest

type RouteAttachRequest struct {
	Port    int    `json:"port,omitempty"`
	Gateway string `json:"gateway,omitempty"`
}

RouteAttachRequest is the structure of PATCH /v2/apps/(?P<id>{})/routes/(?P<name>{})/attach/?$.

type RouteCreateRequest

type RouteCreateRequest struct {
	Name  string             `json:"name,omitempty"`
	Kind  string             `json:"kind,omitempty"`
	Rules []RequestRouteRule `json:"rules,omitempty"`
}

RouteCreateRequest is the structure of POST /v2/app/<app_id>/routes/.

type RouteDetachRequest

type RouteDetachRequest struct {
	Port    int    `json:"port,omitempty"`
	Gateway string `json:"gateway,omitempty"`
}

RouteDetachRequest is the structure of PATCH /v2/apps/(?P<id>{})/routes/(?P<name>{})/detach/?$.

type RouteRule

type RouteRule map[string]interface{}

RouteRule represents a rule in a route configuration.

type Routes

type Routes []Route

Routes defines a collection of Route objects.

type Service

type Service struct {
	Name   string `json:"name"`
	Domain string `json:"domain"`
	Ptype  string `json:"ptype"`
	Ports  []Port `json:"ports"`
}

Service is the structure of the service object.

type ServiceCreateUpdateRequest

type ServiceCreateUpdateRequest struct {
	Ptype      string `json:"ptype"`
	Port       int    `json:"port"`
	Protocol   string `json:"protocol"`
	TargetPort int    `json:"target_port"`
}

ServiceCreateUpdateRequest is the structure of POST /v2/app/<app id>/services/.

type ServiceDeleteRequest

type ServiceDeleteRequest struct {
	Ptype    string `json:"ptype"`
	Port     int    `json:"port"`
	Protocol string `json:"protocol"`
}

ServiceDeleteRequest is the structure of DELETE /v2/app/<app id>/services/.

type Services

type Services []Service

Services defines a collection of service objects.

func (Services) Len

func (s Services) Len() int

func (Services) Less

func (s Services) Less(i, j int) bool

func (Services) Swap

func (s Services) Swap(i, j int)

type TCPSocketProbe

type TCPSocketProbe struct {
	Port int `json:"port"`
}

TCPSocketProbe attempts to open a socket connection to the Pod on the given port.

func (TCPSocketProbe) String

func (t TCPSocketProbe) String() string

String displays the TCPSocketProbe in a readable format.

type TLS

type TLS struct {
	// Owner is the app owner. It cannot be updated with TLS.Set(). See app.Transfer().
	Owner string `json:"owner,omitempty"`
	// App is the app the tls settings apply to and cannot be updated.
	App string `json:"app,omitempty"`
	// Created is the time that the TLS settings was created and cannot be updated.
	Created string `json:"created,omitempty"`
	// Updated is the last time the TLS settings was changed and cannot be updated.
	Updated string `json:"updated,omitempty"`
	// UUID is a unique string reflecting the TLS settings in its current state.
	// It changes every time the TLS settings is changed and cannot be updated.
	UUID string `json:"uuid,omitempty"`
	// HTTPSEnforced determines if the router should enable or disable https-only requests.
	HTTPSEnforced *bool `json:"https_enforced,omitempty"`
	// Use ACME to automatically generate certificates if CertsAuto enable
	CertsAutoEnabled *bool   `json:"certs_auto_enabled,omitempty"`
	Issuer           *Issuer `json:"issuer,omitempty"`
	Events           []Event `json:"events,omitempty"`
}

TLS is the structure of an app's TLS settings.

func NewTLS

func NewTLS() *TLS

NewTLS creates a new TLS object with fields properly zeroed

func (TLS) String

func (t TLS) String() string

type Token

type Token struct {
	UUID    string `json:"uuid"`
	Owner   string `json:"owner"`
	Alias   string `json:"alias"`
	Key     string `json:"fuzzy_key"`
	Created string `json:"created"`
	Updated string `json:"updated"`
}

Token is the structure of the token object.

type Types

type Types struct {
	Types []string `json:"types,omitempty"`
}

Types is the definition of POST /v2/apps/<app_id>/stop or POST /v2/apps/<app_id>/start.

type Unmount

type Unmount struct {
	Values map[string]interface{} `json:"values"`
}

Unmount is the definition of PATCH /v2/apps/<app_id>/volumes/<name>/path/.

type User

type User struct {
	ID          int    `json:"id"`
	LastLogin   string `json:"last_login"`
	IsSuperuser bool   `json:"is_superuser"`
	Username    string `json:"username"`
	FirstName   string `json:"first_name"`
	LastName    string `json:"last_name"`
	Email       string `json:"email"`
	IsStaff     bool   `json:"is_staff"`
	IsActive    bool   `json:"is_active"`
	DateJoined  string `json:"date_joined"`
}

User is the definition of the user object.

func (User) String

func (u User) String() string

type UserApps

type UserApps struct {
	Username string   `json:"username"`
	Apps     []string `json:"apps"`
}

UserApps is a definition of the UserFromKey Hook response.

type UserPermRequest

type UserPermRequest struct {
	Username    string `json:"username"`
	Permissions string `json:"permissions"`
}

UserPermRequest is the definition of a requst on /v2/perms/rules/.

type UserPermResponse

type UserPermResponse struct {
	App         string   `json:"app"`
	Username    string   `json:"username"`
	Permissions []string `json:"permissions"`
}

UserPermResponse is the definition of GET /v2/perms/rules/.

type Users

type Users []User

Users holds a collection of user objects.

func (Users) Len

func (u Users) Len() int

func (Users) Less

func (u Users) Less(i, j int) bool

func (Users) Swap

func (u Users) Swap(i, j int)

type ValuesRefs

type ValuesRefs map[string][]string

ValuesRefs is the key, value for refs

type Volume

type Volume struct {
	// Owner is the app owner.
	Owner string `json:"owner,omitempty"`
	// App is the app the tls settings apply to and cannot be updated.
	App string `json:"app,omitempty"`
	// Created is the time that the volume was created and cannot be updated.
	Created string `json:"created,omitempty"`
	// Updated is the last time the TLS settings was changed and cannot be updated.
	Updated string `json:"updated,omitempty"`
	// UUID is a unique string reflecting the volume in its current state.
	// It changes every time the volume is changed and cannot be updated.
	UUID string `json:"uuid,omitempty"`
	// Volume's name
	Name string `json:"name,omitempty"`
	// Volume's size
	Size string `json:"size,omitempty"`
	// Volume's mount path
	Path map[string]interface{} `json:"path,omitempty"`
	// Volume's type
	Type string `json:"type,omitempty"`
	// Volume's parameters
	Parameters map[string]interface{} `json:"parameters,omitempty"`
}

Volume is the structure of an app's volume.

type VolumeMount

type VolumeMount struct {
	Name      string `json:"name"`
	MountPath string `json:"mountPath"`
}

VolumeMount represents a volume mount in a container.

type Volumes

type Volumes []Volume

Volumes is a collection of Volume.

Jump to

Keyboard shortcuts

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