pivnet

package module
v2.0.11 Latest Latest
Warning

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

Go to latest
Published: Nov 13, 2019 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/v2

[...]

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
	FederationToken       *FederationTokenService
	FileGroups            *FileGroupsService
	Releases              *ReleasesService
	Products              *ProductsService
	UserGroups            *UserGroupsService
	CompanyGroups         *CompanyGroupsService
	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)

type ClientConfig

type ClientConfig struct {
	Host              string
	UserAgent         string
	SkipSSLValidation bool
}

type CompanyGroup added in v2.0.6

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

type CompanyGroupEntitlement added in v2.0.7

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

type CompanyGroupMember added in v2.0.7

type CompanyGroupMember 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 CompanyGroupMemberEmail added in v2.0.7

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

type CompanyGroupMemberNoAdmin added in v2.0.7

type CompanyGroupMemberNoAdmin 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 CompanyGroupsResponse added in v2.0.6

type CompanyGroupsResponse struct {
	CompanyGroups []CompanyGroup `json:"company_groups,omitempty"`
}

type CompanyGroupsService added in v2.0.6

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

func (CompanyGroupsService) AddMember added in v2.0.7

func (c CompanyGroupsService) AddMember(
	companyGroupID int,
	memberEmailAddress string,
	isAdmin string,
) (CompanyGroup, error)

func (CompanyGroupsService) Get added in v2.0.7

func (c CompanyGroupsService) Get(companyGroupID int) (CompanyGroup, error)

func (CompanyGroupsService) List added in v2.0.6

func (c CompanyGroupsService) List() ([]CompanyGroup, error)

func (CompanyGroupsService) RemoveMember added in v2.0.7

func (c CompanyGroupsService) RemoveMember(
	companyGroupID int,
	memberEmailAddress string,
) (CompanyGroup, error)

type CreateFileGroupConfig

type CreateFileGroupConfig struct {
	ProductSlug string
	Name        string
}

type CreateImageReferenceConfig added in v2.0.3

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 ImageReference added in v2.0.3

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"`
}

type ImageReferenceResponse added in v2.0.3

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

type ImageReferencesResponse added in v2.0.5

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

type ImageReferencesService added in v2.0.3

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

func (ImageReferencesService) AddToRelease added in v2.0.4

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

func (ImageReferencesService) Create added in v2.0.3

func (ImageReferencesService) Delete added in v2.0.5

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

func (ImageReferencesService) Get added in v2.0.5

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

func (ImageReferencesService) GetForRelease added in v2.0.5

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

func (ImageReferencesService) List added in v2.0.5

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

func (ImageReferencesService) ListForRelease added in v2.0.5

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

func (ImageReferencesService) RemoveFromRelease added in v2.0.5

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

func (ImageReferencesService) Update added in v2.0.7

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 added in v2.0.8

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

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"`
}

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) ([]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 added in v2.0.8

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

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