pivnet

package module
v4.0.0 Latest Latest
Warning

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

Go to latest
Published: Jan 16, 2020 License: Apache-2.0 Imports: 16 Imported by: 0

README

GoDoc

go-pivnet API library

A golang library for Pivotal Network.

NOTE This library is intended to be used by pivnet-cli and pivnet-resource. If you are using this library on its own, be aware of possible breaking changes following new releases of pivnet-cli/resource.

See also: pivnet-cli and pivnet-resource.

Usage

See example for an executable example.

import github.com/pivotal-cf/pivnet/v3

[...]

config := pivnet.ClientConfig{
  Host:      pivnet.DefaultHost,
  Token:     "token-from-pivnet",
  UserAgent: "user-agent",
}

stdoutLogger := log.New(os.Stdout, "", log.LstdFlags)
stderrLogger := log.New(os.Stderr, "", log.LstdFlags)

verbose := false
logger := logshim.NewLogShim(stdoutLogger, stderrLogger, verbose)

client := pivnet.NewClient(config, logger)

products, _ := client.Products.List()

fmt.Printf("products: %v", products)
Running the tests

Install the ginkgo executable with:

go get -u github.com/onsi/ginkgo/ginkgo

The tests require a valid Pivotal Network API token and host.

Refer to the official docs for more details on obtaining a Pivotal Network API token.

It is advised to run the acceptance tests against the Pivotal Network integration environment endpoint i.e. HOST='https://pivnet-integration.cfapps.io'.

Run the tests with the following command:

API_TOKEN=my-token \
HOST='https://pivnet-integration.cfapps.io' \
./bin/test_all

NOTE

  • If dependencies are not correct, the tests may not run correctly. You will have to run GO111MODULE=on go mod vendor first in this case.
Contributing

Please make all pull requests to the develop branch, and ensure the tests pass locally.

Project management

The CI for this project can be found here and the scripts can be found in the pivnet-resource-ci repo.

The roadmap is captured in Pivotal Tracker.

Documentation

Index

Constants

View Source
const (
	FileTypeSoftware          = "Software"
	FileTypeDocumentation     = "Documentation"
	FileTypeOpenSourceLicense = "Open Source License"
)
View Source
const (
	DefaultHost = "https://network.pivotal.io"
)

Variables

This section is empty.

Functions

func AuthorizationHeader

func AuthorizationHeader(accessToken string) (string, error)

Types

type AccessTokenOrLegacyToken

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

func NewAccessTokenOrLegacyToken

func NewAccessTokenOrLegacyToken(token string, host string, skipSSLValidation bool, userAgentOptional ...string) AccessTokenOrLegacyToken

func (AccessTokenOrLegacyToken) AccessToken

func (o AccessTokenOrLegacyToken) AccessToken() (string, error)

type AccessTokenService

type AccessTokenService interface {
	AccessToken() (string, error)
}

type AuthBody

type AuthBody struct {
	RefreshToken string `json:"refresh_token"`
}

type AuthResp

type AuthResp struct {
	Token string `json:"access_token"`
}

type AuthService

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

func (AuthService) Check

func (e AuthService) Check() (bool, error)

Check returns: true,nil if the auth attempt was succesful, false,nil if the auth attempt failed for 401 or 403, false,err if the auth attempt failed for any other reason. It is guaranteed never to return true,err.

func (AuthService) FetchUAAToken

func (e AuthService) FetchUAAToken(refresh_token string) (UAATokenResponse, error)

type Client

type Client struct {
	HTTP *http.Client

	Auth                  *AuthService
	EULA                  *EULAsService
	ProductFiles          *ProductFilesService
	ImageReferences       *ImageReferencesService
	HelmChartReferences   *HelmChartReferencesService
	FederationToken       *FederationTokenService
	FileGroups            *FileGroupsService
	Releases              *ReleasesService
	Products              *ProductsService
	UserGroups            *UserGroupsService
	SubscriptionGroups    *SubscriptionGroupsService
	ReleaseTypes          *ReleaseTypesService
	ReleaseDependencies   *ReleaseDependenciesService
	DependencySpecifiers  *DependencySpecifiersService
	ReleaseUpgradePaths   *ReleaseUpgradePathsService
	UpgradePathSpecifiers *UpgradePathSpecifiersService
	PivnetVersions        *PivnetVersionsService
	// contains filtered or unexported fields
}

func NewClient

func NewClient(
	token AccessTokenService,
	config ClientConfig,
	logger logger.Logger,
) Client

func (Client) CreateRequest

func (c Client) CreateRequest(
	requestType string,
	endpoint string,
	body io.Reader,
) (*http.Request, error)

func (Client) MakeRequest

func (c Client) MakeRequest(
	requestType string,
	endpoint string,
	expectedStatusCode int,
	body io.Reader,
) (*http.Response, error)

func (Client) MakeRequestWithParams

func (c Client) MakeRequestWithParams(
	requestType string,
	endpoint string,
	expectedStatusCode int,
	params []QueryParameter,
	body io.Reader,
) (*http.Response, error)

type ClientConfig

type ClientConfig struct {
	Host              string
	UserAgent         string
	SkipSSLValidation bool
}

type CreateFileGroupConfig

type CreateFileGroupConfig struct {
	ProductSlug string
	Name        string
}

type CreateHelmChartReferenceConfig

type CreateHelmChartReferenceConfig struct {
	ProductSlug        string
	Description        string
	DocsURL            string
	Name               string
	Version            string
	SystemRequirements []string
}

type CreateImageReferenceConfig

type CreateImageReferenceConfig struct {
	ProductSlug        string
	Description        string
	DocsURL            string
	Digest             string
	Name               string
	ImagePath          string
	SystemRequirements []string
}

type CreateProductFileConfig

type CreateProductFileConfig struct {
	ProductSlug        string
	AWSObjectKey       string
	Description        string
	DocsURL            string
	FileType           string
	FileVersion        string
	IncludedFiles      []string
	SHA256             string
	MD5                string
	Name               string
	Platforms          []string
	ReleasedAt         string
	SystemRequirements []string
}

type CreateReleaseConfig

type CreateReleaseConfig struct {
	ProductSlug           string
	Version               string
	ReleaseType           string
	ReleaseDate           string
	EULASlug              string
	Description           string
	ReleaseNotesURL       string
	Controlled            bool
	ECCN                  string
	LicenseException      string
	EndOfSupportDate      string
	EndOfGuidanceDate     string
	EndOfAvailabilityDate string
	CopyMetadata          bool
}

type CreateReleaseResponse

type CreateReleaseResponse struct {
	Release Release `json:"release,omitempty"`
}

type DependencySpecifier

type DependencySpecifier struct {
	ID        int     `json:"id,omitempty" yaml:"id,omitempty"`
	Product   Product `json:"product,omitempty" yaml:"product,omitempty"`
	Specifier string  `json:"specifier,omitempty" yaml:"specifier,omitempty"`
}

type DependencySpecifierResponse

type DependencySpecifierResponse struct {
	DependencySpecifier DependencySpecifier `json:"dependency_specifier,omitempty"`
}

type DependencySpecifiersResponse

type DependencySpecifiersResponse struct {
	DependencySpecifiers []DependencySpecifier `json:"dependency_specifiers,omitempty"`
}

type DependencySpecifiersService

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

func (DependencySpecifiersService) Create

func (r DependencySpecifiersService) Create(
	productSlug string,
	releaseID int,
	dependentProductSlug string,
	specifier string,
) (DependencySpecifier, error)

func (DependencySpecifiersService) Delete

func (r DependencySpecifiersService) Delete(
	productSlug string,
	releaseID int,
	dependencySpecifierID int,
) error

func (DependencySpecifiersService) Get

func (r DependencySpecifiersService) Get(productSlug string, releaseID int, dependencySpecifierID int) (DependencySpecifier, error)

func (DependencySpecifiersService) List

func (r DependencySpecifiersService) List(productSlug string, releaseID int) ([]DependencySpecifier, error)

type DependentRelease

type DependentRelease struct {
	ID      int     `json:"id,omitempty" yaml:"id,omitempty"`
	Version string  `json:"version,omitempty" yaml:"version,omitempty"`
	Product Product `json:"product,omitempty" yaml:"product,omitempty"`
}

type EULA

type EULA struct {
	Slug    string `json:"slug,omitempty" yaml:"slug,omitempty"`
	ID      int    `json:"id,omitempty" yaml:"id,omitempty"`
	Name    string `json:"name,omitempty" yaml:"name,omitempty"`
	Content string `json:"content,omitempty" yaml:"content,omitempty"`
	Links   *Links `json:"_links,omitempty" yaml:"_links,omitempty"`
}

type EULAAcceptanceResponse

type EULAAcceptanceResponse struct {
	AcceptedAt string `json:"accepted_at,omitempty"`
	Links      *Links `json:"_links,omitempty"`
}

type EULAsResponse

type EULAsResponse struct {
	EULAs []EULA `json:"eulas,omitempty"`
	Links *Links `json:"_links,omitempty"`
}

type EULAsService

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

func (EULAsService) Accept

func (e EULAsService) Accept(productSlug string, releaseID int) error

func (EULAsService) Get

func (e EULAsService) Get(eulaSlug string) (EULA, error)

func (EULAsService) List

func (e EULAsService) List() ([]EULA, error)

type ErrNotFound

type ErrNotFound struct {
	ResponseCode int    `json:"response_code" yaml:"response_code"`
	Message      string `json:"message" yaml:"message"`
}

func (ErrNotFound) Error

func (e ErrNotFound) Error() string

type ErrPivnetOther

type ErrPivnetOther struct {
	ResponseCode int      `json:"response_code" yaml:"response_code"`
	Message      string   `json:"message" yaml:"message"`
	Errors       []string `json:"errors" yaml:"errors"`
}

func (ErrPivnetOther) Error

func (e ErrPivnetOther) Error() string

type ErrTooManyRequests

type ErrTooManyRequests struct {
	ResponseCode int    `json:"response_code" yaml:"response_code"`
	Message      string `json:"message" yaml:"message"`
}

func (ErrTooManyRequests) Error

func (e ErrTooManyRequests) Error() string

type ErrUnauthorized

type ErrUnauthorized struct {
	ResponseCode int    `json:"response_code" yaml:"response_code"`
	Message      string `json:"message" yaml:"message"`
}

func (ErrUnauthorized) Error

func (e ErrUnauthorized) Error() string

type ErrUnavailableForLegalReasons

type ErrUnavailableForLegalReasons struct {
	ResponseCode int    `json:"response_code" yaml:"response_code"`
	Message      string `json:"message" yaml:"message"`
}

func (ErrUnavailableForLegalReasons) Error

type FederationToken

type FederationToken struct {
	AccessKeyID     string `json:"access_key_id,omitempty" yaml:"access_key_id,omitempty"`
	SecretAccessKey string `json:"secret_access_key,omitempty" yaml:"secret_access_key,omitempty"`
	SessionToken    string `json:"session_token,omitempty" yaml:"session_token,omitempty"`
	Bucket          string `json:"bucket,omitempty" yaml:"bucket,omitempty"`
	Region          string `json:"region,omitempty" yaml:"region,omitempty"`
}

type FederationTokenService

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

func (FederationTokenService) GenerateFederationToken

func (f FederationTokenService) GenerateFederationToken(productSlug string) (FederationToken, error)

type FileGroup

type FileGroup struct {
	ID           int              `json:"id,omitempty" yaml:"id,omitempty"`
	Name         string           `json:"name,omitempty" yaml:"name,omitempty"`
	Product      FileGroupProduct `json:"product,omitempty" yaml:"product,omitempty"`
	ProductFiles []ProductFile    `json:"product_files,omitempty" yaml:"product_files,omitempty"`
}

type FileGroupProduct

type FileGroupProduct struct {
	ID   int    `json:"id,omitempty" yaml:"id,omitempty"`
	Name string `json:"name,omitempty" yaml:"name,omitempty"`
}

type FileGroupsResponse

type FileGroupsResponse struct {
	FileGroups []FileGroup `json:"file_groups,omitempty"`
}

type FileGroupsService

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

func (FileGroupsService) AddToRelease

func (r FileGroupsService) AddToRelease(
	productSlug string,
	releaseID int,
	fileGroupID int,
) error

func (FileGroupsService) Create

func (FileGroupsService) Delete

func (p FileGroupsService) Delete(productSlug string, id int) (FileGroup, error)

func (FileGroupsService) Get

func (p FileGroupsService) Get(productSlug string, fileGroupID int) (FileGroup, error)

func (FileGroupsService) List

func (e FileGroupsService) List(productSlug string) ([]FileGroup, error)

func (FileGroupsService) ListForRelease

func (p FileGroupsService) ListForRelease(productSlug string, releaseID int) ([]FileGroup, error)

func (FileGroupsService) RemoveFromRelease

func (r FileGroupsService) RemoveFromRelease(
	productSlug string,
	releaseID int,
	fileGroupID int,
) error

func (FileGroupsService) Update

func (p FileGroupsService) Update(productSlug string, fileGroup FileGroup) (FileGroup, error)

type HelmChartReference

type HelmChartReference struct {
	ID                 int      `json:"id,omitempty" yaml:"id,omitempty"`
	Description        string   `json:"description,omitempty" yaml:"description,omitempty"`
	DocsURL            string   `json:"docs_url,omitempty" yaml:"docs_url,omitempty"`
	Name               string   `json:"name,omitempty" yaml:"name,omitempty"`
	Version            string   `json:"version,omitempty" yaml:"version,omitempty"`
	SystemRequirements []string `json:"system_requirements,omitempty" yaml:"system_requirements,omitempty"`
}

type HelmChartReferenceResponse

type HelmChartReferenceResponse struct {
	HelmChartReference HelmChartReference `json:"helm_chart_reference,omitempty"`
}

type HelmChartReferencesResponse

type HelmChartReferencesResponse struct {
	HelmChartReferences []HelmChartReference `json:"helm_chart_references,omitempty"`
}

type HelmChartReferencesService

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

func (HelmChartReferencesService) AddToRelease

func (p HelmChartReferencesService) AddToRelease(
	productSlug string,
	releaseID int,
	helmChartReferenceID int,
) error

func (HelmChartReferencesService) Create

func (HelmChartReferencesService) Delete

func (p HelmChartReferencesService) Delete(productSlug string, id int) (HelmChartReference, error)

func (HelmChartReferencesService) Get

func (p HelmChartReferencesService) Get(productSlug string, helmChartReferenceID int) (HelmChartReference, error)

func (HelmChartReferencesService) GetForRelease

func (p HelmChartReferencesService) GetForRelease(productSlug string, releaseID int, helmChartReferenceID int) (HelmChartReference, error)

func (HelmChartReferencesService) List

func (p HelmChartReferencesService) List(productSlug string) ([]HelmChartReference, error)

func (HelmChartReferencesService) ListForRelease

func (p HelmChartReferencesService) ListForRelease(productSlug string, releaseID int) ([]HelmChartReference, error)

func (HelmChartReferencesService) RemoveFromRelease

func (p HelmChartReferencesService) RemoveFromRelease(
	productSlug string,
	releaseID int,
	helmChartReferenceID int,
) error

func (HelmChartReferencesService) Update

func (p HelmChartReferencesService) Update(productSlug string, helmChartReference HelmChartReference) (HelmChartReference, error)

type ImageReference

type ImageReference struct {
	ID                 int      `json:"id,omitempty" yaml:"id,omitempty"`
	ImagePath          string   `json:"image_path,omitempty" yaml:"image_path,omitempty"`
	Description        string   `json:"description,omitempty" yaml:"description,omitempty"`
	Digest             string   `json:"digest,omitempty" yaml:"digest,omitempty"`
	DocsURL            string   `json:"docs_url,omitempty" yaml:"docs_url,omitempty"`
	Name               string   `json:"name,omitempty" yaml:"name,omitempty"`
	SystemRequirements []string `json:"system_requirements,omitempty" yaml:"system_requirements,omitempty"`
	ReleaseVersions    []string `json:"release_versions,omitempty" yaml:"release_versions,omitempty"`
}

type ImageReferenceResponse

type ImageReferenceResponse struct {
	ImageReference ImageReference `json:"image_reference,omitempty"`
}

type ImageReferencesResponse

type ImageReferencesResponse struct {
	ImageReferences []ImageReference `json:"image_references,omitempty"`
}

type ImageReferencesService

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

func (ImageReferencesService) AddToRelease

func (p ImageReferencesService) AddToRelease(
	productSlug string,
	releaseID int,
	imageReferenceID int,
) error

func (ImageReferencesService) Create

func (ImageReferencesService) Delete

func (p ImageReferencesService) Delete(productSlug string, id int) (ImageReference, error)

func (ImageReferencesService) Get

func (p ImageReferencesService) Get(productSlug string, imageReferenceID int) (ImageReference, error)

func (ImageReferencesService) GetForRelease

func (p ImageReferencesService) GetForRelease(productSlug string, releaseID int, imageReferenceID int) (ImageReference, error)

func (ImageReferencesService) List

func (p ImageReferencesService) List(productSlug string) ([]ImageReference, error)

func (ImageReferencesService) ListForDigest

func (p ImageReferencesService) ListForDigest(productSlug string, digest string) ([]ImageReference, error)

func (ImageReferencesService) ListForRelease

func (p ImageReferencesService) ListForRelease(productSlug string, releaseID int) ([]ImageReference, error)

func (ImageReferencesService) RemoveFromRelease

func (p ImageReferencesService) RemoveFromRelease(
	productSlug string,
	releaseID int,
	imageReferenceID int,
) error

func (ImageReferencesService) Update

func (p ImageReferencesService) Update(productSlug string, imageReference ImageReference) (ImageReference, error)
type Links struct {
	EULA           map[string]string `json:"eula,omitempty" yaml:"eula,omitempty"`
	Download       map[string]string `json:"download,omitempty" yaml:"download,omitempty"`
	ProductFiles   map[string]string `json:"product_files,omitempty" yaml:"product_files,omitempty"`
	EULAAcceptance map[string]string `json:"eula_acceptance,omitempty" yaml:"eula_acceptance,omitempty"`
}

type PivnetVersions

type PivnetVersions struct {
	PivnetCliVersion      string `json:"pivnet_cli,omitempty"`
	PivnetResourceVersion string `json:"pivnet_resource,omitempty"`
}

type PivnetVersionsService

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

func (PivnetVersionsService) List

type Product

type Product struct {
	ID            int          `json:"id,omitempty" yaml:"id,omitempty"`
	Slug          string       `json:"slug,omitempty" yaml:"slug,omitempty"`
	Name          string       `json:"name,omitempty" yaml:"name,omitempty"`
	S3Directory   *S3Directory `json:"s3_directory,omitempty" yaml:"s3_directory,omitempty"`
	InstallsOnPks bool         `json:"installs_on_pks,omitempty" yaml:"installs_on_pks,omitempty"`
}

type ProductFile

type ProductFile struct {
	ID                 int      `json:"id,omitempty" yaml:"id,omitempty"`
	AWSObjectKey       string   `json:"aws_object_key,omitempty" yaml:"aws_object_key,omitempty"`
	Description        string   `json:"description,omitempty" yaml:"description,omitempty"`
	DocsURL            string   `json:"docs_url,omitempty" yaml:"docs_url,omitempty"`
	FileTransferStatus string   `json:"file_transfer_status,omitempty" yaml:"file_transfer_status,omitempty"`
	FileType           string   `json:"file_type,omitempty" yaml:"file_type,omitempty"`
	FileVersion        string   `json:"file_version,omitempty" yaml:"file_version,omitempty"`
	HasSignatureFile   bool     `json:"has_signature_file,omitempty" yaml:"has_signature_file,omitempty"`
	IncludedFiles      []string `json:"included_files,omitempty" yaml:"included_files,omitempty"`
	SHA256             string   `json:"sha256,omitempty" yaml:"sha256,omitempty"`
	MD5                string   `json:"md5,omitempty" yaml:"md5,omitempty"`
	Name               string   `json:"name,omitempty" yaml:"name,omitempty"`
	Platforms          []string `json:"platforms,omitempty" yaml:"platforms,omitempty"`
	ReadyToServe       bool     `json:"ready_to_serve,omitempty" yaml:"ready_to_serve,omitempty"`
	ReleasedAt         string   `json:"released_at,omitempty" yaml:"released_at,omitempty"`
	Size               int      `json:"size,omitempty" yaml:"size,omitempty"`
	SystemRequirements []string `json:"system_requirements,omitempty" yaml:"system_requirements,omitempty"`
	Links              *Links   `json:"_links,omitempty" yaml:"_links,omitempty"`
}
func (p ProductFile) DownloadLink() (string, error)

type ProductFileLinkFetcher

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

func NewProductFileLinkFetcher

func NewProductFileLinkFetcher(downloadLink string, client Client) ProductFileLinkFetcher
func (p ProductFileLinkFetcher) NewDownloadLink() (string, error)

type ProductFileResponse

type ProductFileResponse struct {
	ProductFile ProductFile `json:"product_file,omitempty"`
}

type ProductFilesResponse

type ProductFilesResponse struct {
	ProductFiles []ProductFile `json:"product_files,omitempty"`
}

type ProductFilesService

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

func (ProductFilesService) AddToFileGroup

func (p ProductFilesService) AddToFileGroup(
	productSlug string,
	fileGroupID int,
	productFileID int,
) error

func (ProductFilesService) AddToRelease

func (p ProductFilesService) AddToRelease(
	productSlug string,
	releaseID int,
	productFileID int,
) error

func (ProductFilesService) Create

func (ProductFilesService) Delete

func (p ProductFilesService) Delete(productSlug string, id int) (ProductFile, error)

func (ProductFilesService) DownloadForRelease

func (p ProductFilesService) DownloadForRelease(
	location *download.FileInfo,
	productSlug string,
	releaseID int,
	productFileID int,
	progressWriter io.Writer,
) error

func (ProductFilesService) Get

func (p ProductFilesService) Get(productSlug string, productFileID int) (ProductFile, error)

func (ProductFilesService) GetForRelease

func (p ProductFilesService) GetForRelease(productSlug string, releaseID int, productFileID int) (ProductFile, error)

func (ProductFilesService) List

func (p ProductFilesService) List(productSlug string) ([]ProductFile, error)

func (ProductFilesService) ListForRelease

func (p ProductFilesService) ListForRelease(productSlug string, releaseID int) ([]ProductFile, error)

func (ProductFilesService) RemoveFromFileGroup

func (p ProductFilesService) RemoveFromFileGroup(
	productSlug string,
	fileGroupID int,
	productFileID int,
) error

func (ProductFilesService) RemoveFromRelease

func (p ProductFilesService) RemoveFromRelease(
	productSlug string,
	releaseID int,
	productFileID int,
) error

func (ProductFilesService) Update

func (p ProductFilesService) Update(productSlug string, productFile ProductFile) (ProductFile, error)

type ProductsResponse

type ProductsResponse struct {
	Products []Product `json:"products,omitempty"`
}

type ProductsService

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

func (ProductsService) Get

func (p ProductsService) Get(slug string) (Product, error)

func (ProductsService) List

func (p ProductsService) List() ([]Product, error)

func (ProductsService) SlugAlias

func (p ProductsService) SlugAlias(slug string) (SlugAliasResponse, error)

type QueryParameter

type QueryParameter struct {
	Key   string
	Value string
}

type Release

type Release struct {
	ID                     int         `json:"id,omitempty" yaml:"id,omitempty"`
	Availability           string      `json:"availability,omitempty" yaml:"availability,omitempty"`
	EULA                   *EULA       `json:"eula,omitempty" yaml:"eula,omitempty"`
	OSSCompliant           string      `json:"oss_compliant,omitempty" yaml:"oss_compliant,omitempty"`
	ReleaseDate            string      `json:"release_date,omitempty" yaml:"release_date,omitempty"`
	ReleaseType            ReleaseType `json:"release_type,omitempty" yaml:"release_type,omitempty"`
	Version                string      `json:"version,omitempty" yaml:"version,omitempty"`
	Links                  *Links      `json:"_links,omitempty" yaml:"_links,omitempty"`
	Description            string      `json:"description,omitempty" yaml:"description,omitempty"`
	ReleaseNotesURL        string      `json:"release_notes_url,omitempty" yaml:"release_notes_url,omitempty"`
	Controlled             bool        `json:"controlled,omitempty" yaml:"controlled,omitempty"`
	ECCN                   string      `json:"eccn,omitempty" yaml:"eccn,omitempty"`
	LicenseException       string      `json:"license_exception,omitempty" yaml:"license_exception,omitempty"`
	EndOfSupportDate       string      `json:"end_of_support_date,omitempty" yaml:"end_of_support_date,omitempty"`
	EndOfGuidanceDate      string      `json:"end_of_guidance_date,omitempty" yaml:"end_of_guidance_date,omitempty"`
	EndOfAvailabilityDate  string      `json:"end_of_availability_date,omitempty" yaml:"end_of_availability_date,omitempty"`
	UpdatedAt              string      `json:"updated_at,omitempty" yaml:"updated_at,omitempty"`
	SoftwareFilesUpdatedAt string      `json:"software_files_updated_at,omitempty" yaml:"software_files_updated_at,omitempty"`
	UserGroupsUpdatedAt    string      `json:"user_groups_updated_at,omitempty" yaml:"user_groups_updated_at,omitempty"`
}

type ReleaseDependenciesResponse

type ReleaseDependenciesResponse struct {
	ReleaseDependencies []ReleaseDependency `json:"dependencies,omitempty"`
}

type ReleaseDependenciesService

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

func (ReleaseDependenciesService) Add

func (r ReleaseDependenciesService) Add(
	productSlug string,
	releaseID int,
	dependentReleaseID int,
) error

func (ReleaseDependenciesService) List

func (r ReleaseDependenciesService) List(productSlug string, releaseID int) ([]ReleaseDependency, error)

func (ReleaseDependenciesService) Remove

func (r ReleaseDependenciesService) Remove(
	productSlug string,
	releaseID int,
	dependentReleaseID int,
) error

type ReleaseDependency

type ReleaseDependency struct {
	Release DependentRelease `json:"release,omitempty" yaml:"release,omitempty"`
}

type ReleaseType

type ReleaseType string

type ReleaseTypesResponse

type ReleaseTypesResponse struct {
	ReleaseTypes []ReleaseType `json:"release_types" yaml:"release_types"`
}

type ReleaseTypesService

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

func (ReleaseTypesService) Get

func (r ReleaseTypesService) Get() ([]ReleaseType, error)

type ReleaseUpgradePath

type ReleaseUpgradePath struct {
	Release UpgradePathRelease `json:"release,omitempty" yaml:"release,omitempty"`
}

type ReleaseUpgradePathsResponse

type ReleaseUpgradePathsResponse struct {
	ReleaseUpgradePaths []ReleaseUpgradePath `json:"upgrade_paths,omitempty"`
}

type ReleaseUpgradePathsService

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

func (ReleaseUpgradePathsService) Add

func (r ReleaseUpgradePathsService) Add(
	productSlug string,
	releaseID int,
	previousReleaseID int,
) error

func (ReleaseUpgradePathsService) Get

func (r ReleaseUpgradePathsService) Get(productSlug string, releaseID int) ([]ReleaseUpgradePath, error)

func (ReleaseUpgradePathsService) Remove

func (r ReleaseUpgradePathsService) Remove(
	productSlug string,
	releaseID int,
	previousReleaseID int,
) error

type ReleasesResponse

type ReleasesResponse struct {
	Releases []Release `json:"releases,omitempty"`
}

type ReleasesService

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

func (ReleasesService) Create

func (r ReleasesService) Create(config CreateReleaseConfig) (Release, error)

func (ReleasesService) Delete

func (r ReleasesService) Delete(productSlug string, release Release) error

func (ReleasesService) Get

func (r ReleasesService) Get(productSlug string, releaseID int) (Release, error)

func (ReleasesService) List

func (r ReleasesService) List(productSlug string, params ...QueryParameter) ([]Release, error)

func (ReleasesService) Update

func (r ReleasesService) Update(productSlug string, release Release) (Release, error)

type S3Directory

type S3Directory struct {
	Path string `json:"path,omitempty" yaml:"path,omitempty"`
}

type SlugAliasResponse

type SlugAliasResponse struct {
	Slugs       []string `json:"slugs" yaml:"slugs"`
	CurrentSlug string   `json:"current_slug" yaml:"current_slug"`
}

type SubscriptionGroup

type SubscriptionGroup struct {
	ID                 int                            `json:"id,omitempty" yaml:"id,omitempty"`
	Name               string                         `json:"name,omitempty" yaml:"name,omitempty"`
	Members            []SubscriptionGroupMember      `json:"members" yaml:"members"`
	PendingInvitations []string                       `json:"pending_invitations" yaml:"pending_invitations"`
	Entitlements       []SubscriptionGroupEntitlement `json:"entitlements" yaml:"entitlements"`
}

type SubscriptionGroupEntitlement

type SubscriptionGroupEntitlement struct {
	ID   int    `json:"id,omitempty" yaml:"id,omitempty"`
	Name string `json:"name,omitempty" yaml:"name,omitempty"`
}

type SubscriptionGroupMember

type SubscriptionGroupMember struct {
	ID      int    `json:"id,omitempty" yaml:"id,omitempty"`
	Name    string `json:"name,omitempty" yaml:"name,omitempty"`
	Email   string `json:"email,omitempty" yaml:"email,omitempty"`
	IsAdmin bool   `json:"admin" yaml:"admin"`
}

type SubscriptionGroupMemberEmail

type SubscriptionGroupMemberEmail struct {
	Email string `json:"email,omitempty" yaml:"email,omitempty"`
}

type SubscriptionGroupMemberNoAdmin

type SubscriptionGroupMemberNoAdmin struct {
	ID    int    `json:"id,omitempty" yaml:"id,omitempty"`
	Name  string `json:"name,omitempty" yaml:"name,omitempty"`
	Email string `json:"email,omitempty" yaml:"email,omitempty"`
}

type SubscriptionGroupsResponse

type SubscriptionGroupsResponse struct {
	SubscriptionGroups []SubscriptionGroup `json:"subscription_groups,omitempty"`
}

type SubscriptionGroupsService

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

func (SubscriptionGroupsService) AddMember

func (c SubscriptionGroupsService) AddMember(
	subscriptionGroupID int,
	memberEmailAddress string,
	isAdmin string,
) (SubscriptionGroup, error)

func (SubscriptionGroupsService) Get

func (c SubscriptionGroupsService) Get(subscriptionGroupID int) (SubscriptionGroup, error)

func (SubscriptionGroupsService) List

func (SubscriptionGroupsService) RemoveMember

func (c SubscriptionGroupsService) RemoveMember(
	subscriptionGroupID int,
	memberEmailAddress string,
) (SubscriptionGroup, error)

type TokenFetcher

type TokenFetcher struct {
	Endpoint          string
	RefreshToken      string
	SkipSSLValidation bool
	UserAgent         string
}

func NewTokenFetcher

func NewTokenFetcher(endpoint, refreshToken string, skipSSLValidation bool, userAgent string) *TokenFetcher

func (TokenFetcher) GetToken

func (t TokenFetcher) GetToken() (string, error)

type UAATokenResponse

type UAATokenResponse struct {
	Token string `json:"access_token"`
}

type UpdateUserGroupResponse

type UpdateUserGroupResponse struct {
	UserGroup UserGroup `json:"user_group,omitempty"`
}

type UpgradePathRelease

type UpgradePathRelease struct {
	ID      int    `json:"id,omitempty" yaml:"id,omitempty"`
	Version string `json:"version,omitempty" yaml:"version,omitempty"`
}

type UpgradePathSpecifier

type UpgradePathSpecifier struct {
	ID        int    `json:"id,omitempty" yaml:"id,omitempty"`
	Specifier string `json:"specifier,omitempty" yaml:"specifier,omitempty"`
}

type UpgradePathSpecifierResponse

type UpgradePathSpecifierResponse struct {
	UpgradePathSpecifier UpgradePathSpecifier `json:"upgrade_path_specifier,omitempty"`
}

type UpgradePathSpecifiersResponse

type UpgradePathSpecifiersResponse struct {
	UpgradePathSpecifiers []UpgradePathSpecifier `json:"upgrade_path_specifiers,omitempty"`
}

type UpgradePathSpecifiersService

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

func (UpgradePathSpecifiersService) Create

func (r UpgradePathSpecifiersService) Create(productSlug string, releaseID int, specifier string) (UpgradePathSpecifier, error)

func (UpgradePathSpecifiersService) Delete

func (r UpgradePathSpecifiersService) Delete(
	productSlug string,
	releaseID int,
	upgradePathSpecifierID int,
) error

func (UpgradePathSpecifiersService) Get

func (r UpgradePathSpecifiersService) Get(productSlug string, releaseID int, upgradePathSpecifierID int) (UpgradePathSpecifier, error)

func (UpgradePathSpecifiersService) List

func (r UpgradePathSpecifiersService) List(productSlug string, releaseID int) ([]UpgradePathSpecifier, error)

type UserGroup

type UserGroup struct {
	ID          int      `json:"id,omitempty" yaml:"id,omitempty"`
	Name        string   `json:"name,omitempty" yaml:"name,omitempty"`
	Description string   `json:"description,omitempty" yaml:"description,omitempty"`
	Members     []string `json:"members,omitempty" yaml:"members,omitempty"`
	Admins      []string `json:"admins,omitempty" yaml:"admins,omitempty"`
}

type UserGroupsResponse

type UserGroupsResponse struct {
	UserGroups []UserGroup `json:"user_groups,omitempty"`
}

type UserGroupsService

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

func (UserGroupsService) AddMemberToGroup

func (r UserGroupsService) AddMemberToGroup(
	userGroupID int,
	memberEmailAddress string,
	admin bool,
) (UserGroup, error)

func (UserGroupsService) AddToRelease

func (u UserGroupsService) AddToRelease(productSlug string, releaseID int, userGroupID int) error

func (UserGroupsService) Create

func (u UserGroupsService) Create(name string, description string, members []string) (UserGroup, error)

func (UserGroupsService) Delete

func (r UserGroupsService) Delete(userGroupID int) error

func (UserGroupsService) Get

func (u UserGroupsService) Get(userGroupID int) (UserGroup, error)

func (UserGroupsService) List

func (u UserGroupsService) List() ([]UserGroup, error)

func (UserGroupsService) ListForRelease

func (u UserGroupsService) ListForRelease(productSlug string, releaseID int) ([]UserGroup, error)

func (UserGroupsService) RemoveFromRelease

func (u UserGroupsService) RemoveFromRelease(productSlug string, releaseID int, userGroupID int) error

func (UserGroupsService) RemoveMemberFromGroup

func (r UserGroupsService) RemoveMemberFromGroup(userGroupID int, memberEmailAddress string) (UserGroup, error)

func (UserGroupsService) Update

func (u UserGroupsService) Update(userGroup UserGroup) (UserGroup, error)

Directories

Path Synopsis
fakes
Code generated by counterfeiter.
Code generated by counterfeiter.
Code generated by counterfeiter.
Code generated by counterfeiter.
loggerfakes
Code generated by counterfeiter.
Code generated by counterfeiter.

Jump to

Keyboard shortcuts

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