kotsclient

package
v0.30.0 Latest Latest
Warning

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

Go to latest
Published: Aug 14, 2020 License: MIT Imports: 13 Imported by: 3

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ArchiveChannel

func ArchiveChannel(appID string, channelID string) error

Types

type AppOptions

type AppOptions struct {
	Name string
}

type ChannelOptions

type ChannelOptions struct {
	Name        string
	Description string
}

type CreateCustomerRequest added in v0.29.0

type CreateCustomerRequest struct {
	Name      string `json:"name"`
	ChannelID string `json:"channel_id"`
	AppID     string `json:"app_id"`
	Type      string `json:"type"`
	ExpiresAt string `json:"expires_at"`
}

type CreateCustomerResponse added in v0.29.0

type CreateCustomerResponse struct {
	Customer *types.Customer `json:"customer"`
}

type CreateInstallerDataWrapper added in v0.21.0

type CreateInstallerDataWrapper struct {
	Installer *types.InstallerSpec `json:"createKotsAppInstaller"`
}

type CustomerListResponse added in v0.29.0

type CustomerListResponse struct {
	Customers []types.Customer `json:"customers"`
}

type ErrCustomerNotFound added in v0.29.0

type ErrCustomerNotFound struct {
	Name string
}

func (ErrCustomerNotFound) Error added in v0.29.0

func (e ErrCustomerNotFound) Error() string

type GraphQLClient

type GraphQLClient struct {
	GraphQLClient    *graphql.Client
	KurlDotSHAddress string
}

Client communicates with the Replicated Vendor GraphQL API.

func NewGraphQLClient

func NewGraphQLClient(origin string, apiKey string, kurlDotSHAddress string) *GraphQLClient

func (*GraphQLClient) CreateChannel

func (c *GraphQLClient) CreateChannel(appID string, name string, description string) (*types.Channel, error)

func (*GraphQLClient) CreateInstaller added in v0.21.0

func (c *GraphQLClient) CreateInstaller(appId string, yaml string) (*types.InstallerSpec, error)

func (*GraphQLClient) CreateRelease

func (c *GraphQLClient) CreateRelease(appID string, multiyaml string) (*types.ReleaseInfo, error)

func (*GraphQLClient) CreateVendorInstaller added in v0.21.0

func (c *GraphQLClient) CreateVendorInstaller(appID string, yaml string) (*types.InstallerSpec, error)

func (*GraphQLClient) ExecuteRequest

func (c *GraphQLClient) ExecuteRequest(requestObj graphql.Request, deserializeTarget interface{}) error

func (*GraphQLClient) GetApp

func (c *GraphQLClient) GetApp(appID string) (*types.App, error)

func (*GraphQLClient) GetChannel added in v0.16.0

func (c *GraphQLClient) GetChannel(appID string, channelID string) (*channels.AppChannel, []channels.ChannelRelease, error)

func (*GraphQLClient) GetChannelByName added in v0.18.0

func (c *GraphQLClient) GetChannelByName(appID string, name string, description string, create bool) (*types.Channel, error)

func (*GraphQLClient) LintRelease added in v0.19.0

func (c *GraphQLClient) LintRelease(data []byte) ([]types.LintMessage, error)

this is part of the gql client with plans to rename gql client to kotsclient and have endpoints for multiple release services included

func (*GraphQLClient) ListApps

func (c *GraphQLClient) ListApps() ([]types.AppAndChannels, error)

func (*GraphQLClient) ListChannels

func (c *GraphQLClient) ListChannels(appID string) ([]types.Channel, error)

func (*GraphQLClient) ListInstallers added in v0.21.0

func (c *GraphQLClient) ListInstallers(appID string) ([]types.InstallerSpec, error)

func (*GraphQLClient) ListReleases

func (c *GraphQLClient) ListReleases(appID string) ([]types.ReleaseInfo, error)

func (*GraphQLClient) PromoteInstaller added in v0.21.0

func (c *GraphQLClient) PromoteInstaller(appID string, sequence int64, channelID string, versionLabel string) error

func (*GraphQLClient) PromoteRelease

func (c *GraphQLClient) PromoteRelease(appID string, sequence int64, label string, notes string, channelIDs ...string) error

func (*GraphQLClient) UpdateRelease

func (c *GraphQLClient) UpdateRelease(appID string, sequence int64, multiyaml string) error

type GraphQLResponseCreateChannel added in v0.17.0

type GraphQLResponseCreateChannel struct {
	Data   *KotsCreateChannelData `json:"data,omitempty"`
	Errors []graphql.GQLError     `json:"errors,omitempty"`
}

type GraphQLResponseCreateInstaller added in v0.21.0

type GraphQLResponseCreateInstaller struct {
	Data   *CreateInstallerDataWrapper `json:"data,omitempty"`
	Errors []graphql.GQLError          `json:"errors,omitempty"`
}

type GraphQLResponseGetChannel added in v0.16.0

type GraphQLResponseGetChannel struct {
	Data   *KotsGetChannelData `json:"data,omitempty"`
	Errors []graphql.GQLError  `json:"errors,omitempty"`
}

type GraphQLResponseKotsCreateRelease

type GraphQLResponseKotsCreateRelease struct {
	Data   KotsCreateReleaseData `json:"data,omitempty"`
	Errors []graphql.GQLError    `json:"errors,omitempty"`
}

type GraphQLResponseKotsUpdateRelease

type GraphQLResponseKotsUpdateRelease struct {
	Data   KotsUpdateReleaseData `json:"data,omitempty"`
	Errors []graphql.GQLError    `json:"errors,omitempty"`
}

type GraphQLResponseListApps

type GraphQLResponseListApps struct {
	Data   *KotsData          `json:"data,omitempty"`
	Errors []graphql.GQLError `json:"errors,omitempty"`
}

type GraphQLResponseListChannels

type GraphQLResponseListChannels struct {
	Data   *KotsChannelData   `json:"data,omitempty"`
	Errors []graphql.GQLError `json:"errors,omitempty"`
}

type GraphQLResponseListInstallers added in v0.21.0

type GraphQLResponseListInstallers struct {
	Data   *InstallersDataWrapper `json:"data,omitempty"`
	Errors []graphql.GQLError     `json:"errors,omitempty"`
}

type GraphQLResponseListReleases

type GraphQLResponseListReleases struct {
	Data   *KotsReleasesData  `json:"data,omitempty"`
	Errors []graphql.GQLError `json:"errors,omitempty"`
}

type GraphQLResponseUpdateKotsRelease

type GraphQLResponseUpdateKotsRelease struct {
	Data *KotsReleaseUpdateData `json:"data,omitempty"`
}

type HTTPClient added in v0.29.0

type HTTPClient struct {
	platformclient.HTTPClient
}

Putting a wrapper in the kotsclient package for kots-specific methods but don't want to re-invent or duplicate all that logic for initialization, instantiation, and the DoJSON method

we should think more about how we want to organize these going forward, but I'm inclined to wait until after everything has been moved off of GQL before deciding

func (*HTTPClient) CreateCustomer added in v0.29.0

func (c *HTTPClient) CreateCustomer(name string, appID string, channelID string, expiresIn time.Duration) (*types.Customer, error)

func (*HTTPClient) DownloadLicense added in v0.29.0

func (c *HTTPClient) DownloadLicense(appID string, customerID string) ([]byte, error)

func (*HTTPClient) GetCustomerByName added in v0.29.0

func (c *HTTPClient) GetCustomerByName(appID string, name string) (*types.Customer, error)

func (*HTTPClient) ListCustomers added in v0.29.0

func (c *HTTPClient) ListCustomers(appID string) ([]types.Customer, error)

type InstallersDataWrapper added in v0.21.0

type InstallersDataWrapper struct {
	Installers []types.InstallerSpec `json:"allKotsAppInstallers"`
}

type KotsApp

type KotsApp struct {
	ID       string                `json:"id"`
	Name     string                `json:"name"`
	Slug     string                `json:"slug"`
	Channels []*KotsAppChannelData `json:"channels"`
}

type KotsAppChannelData

type KotsAppChannelData struct {
	ID              string `json:"id"`
	Name            string `json:"name"`
	Description     string `json:"description"`
	CurrentSequence int64  `json:"currentSequence"`
	CurrentVersion  string `json:"currentVersion"`
}

type KotsAppsData

type KotsAppsData struct {
	KotsApps []*KotsApp `json:"apps"`
}

type KotsChannel

type KotsChannel struct {
	ID              string `json:"id"`
	Name            string `json:"name"`
	Description     string `json:"description"`
	ChannelSequence int64  `json:"channelSequence"`
	ReleaseSequence int64  `json:"releaseSequence"`
	CurrentVersion  string `json:"currentVersion"`
}

type KotsChannelData

type KotsChannelData struct {
	KotsChannels []*KotsChannel `json:"getKotsAppChannels"`
}

type KotsCreateChannelData added in v0.17.0

type KotsCreateChannelData struct {
	KotsChannel *KotsChannel `json:"createKotsChannel"`
}

type KotsCreateReleaseData

type KotsCreateReleaseData struct {
	KotsReleaseData KotsReleaseSequence `json:"createKotsRelease"`
}

type KotsData

type KotsData struct {
	Kots *KotsAppsData `json:"kots"`
}

type KotsGetChannelData added in v0.16.0

type KotsGetChannelData struct {
	KotsChannel *KotsChannel `json:"getKotsChannel"`
}

type KotsRelease

type KotsRelease struct {
	ID           string         `json:"id"`
	Sequence     int64          `json:"sequence"`
	CreatedAt    string         `json:"created"`
	ReleaseNotes string         `json:"releaseNotes"`
	Channels     []*KotsChannel `json:"channels"`
}

type KotsReleaseSequence

type KotsReleaseSequence struct {
	Sequence int64 `json:"sequence"`
}

type KotsReleaseUpdateData

type KotsReleaseUpdateData struct {
	UpdateKotsRelease *UpdateKotsRelease `json:"updateKotsRelease"`
}

type KotsReleasesData

type KotsReleasesData struct {
	KotsReleases []*KotsRelease `json:"allKotsReleases"`
}

type KotsUpdateReleaseData

type KotsUpdateReleaseData struct {
	KotsReleaseData KotsReleaseSequence `json:"updateKotsRelease"`
}

type UpdateKotsRelease

type UpdateKotsRelease struct {
	ID     string `json:"id"`
	Config string `json:"spec,omitempty"`
}

Jump to

Keyboard shortcuts

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