tfc

package module
v0.0.0-...-1ba33c6 Latest Latest
Warning

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

Go to latest
Published: Mar 22, 2022 License: Apache-2.0 Imports: 14 Imported by: 1

README

go-tfc

Golang Terraform Cloud SDK

Documentation

Index

Constants

View Source
const (
	DefaultAddress = "https://app.terraform.io"
)

Variables

View Source
var UploadClient *http.Client

Functions

func UploadArtifact

func UploadArtifact(ctx context.Context, data FileUploadRequest) error

UploadArtifact wraps the basics around uploading an artifact to Terraform Cloud

Types

type APIError

type APIError struct {
	Errors  []CloudAPIErrorError `json:"errors,omitempty"`
	Success *bool                `json:"success,omitempty"`
}

func UnwrapAPIError

func UnwrapAPIError(err error) *APIError

func (*APIError) Error

func (e *APIError) Error() string

func (*APIError) UnmarshalJSON

func (e *APIError) UnmarshalJSON(b []byte) error

type Client

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

func NewClient

func NewClient(cfg *Config, opts ...ConfigOption) (*Client, error)

NewClient constructs a new client instance based upon the provided configuration. Specific-intent clients are chained from this base client instance.

func (*Client) ModuleClient

func (c *Client) ModuleClient() *ModuleClient

ModuleClient interfaces with the Module Registry in Terraform Cloud

func (*Client) ProviderClient

func (c *Client) ProviderClient() *ProviderClient

ProviderClient interfaces with the Provider Registry in Terraform Cloud

type CloudAPIErrorError

type CloudAPIErrorError struct {
	Status string                 `json:"status"`
	Title  string                 `json:"title"`
	Detail string                 `json:"detail"`
	Source map[string]interface{} `json:"source"`
}

func UnwrapCloudAPIError

func UnwrapCloudAPIError(err error) *CloudAPIErrorError

func (*CloudAPIErrorError) Error

func (e *CloudAPIErrorError) Error() string

type Config

type Config struct {
	// Address [required] (default: https://app.terraform.io)
	//
	// Address, including scheme and port (if not well-known) of C
	Address string

	// HTTPClient [required] (default: basic http client with connection pooling)
	//
	// HTTP client instance to use
	HTTPClient *http.Client
}

type ConfigOption

type ConfigOption func(*Config)

type CreateModuleVersionRequest

type CreateModuleVersionRequest struct {
	Data CreateModuleVersionRequestData `json:"data"`
}

func NewCreateModuleVersionRequest

func NewCreateModuleVersionRequest(version string) CreateModuleVersionRequest

type CreateModuleVersionRequestData

type CreateModuleVersionRequestData struct {
	Attributes CreateModuleVersionRequestDataAttributes `json:"attributes"`
	Type       string                                   `json:"type"`
}

type CreateModuleVersionRequestDataAttributes

type CreateModuleVersionRequestDataAttributes struct {
	Version string `json:"version"`
}

type CreateModuleVersionResponse

type CreateModuleVersionResponse struct {
	Data CreateModuleVersionResponseData `json:"data"`
}

type CreateModuleVersionResponseData

type CreateModuleVersionResponseData struct {
	Attributes    CreateModuleVersionResponseDataAttributes    `json:"attributes"`
	ID            string                                       `json:"id"`
	Links         CreateModuleVersionResponseDataLinks         `json:"links"`
	Relationships CreateModuleVersionResponseDataRelationships `json:"relationships"`
	Type          string                                       `json:"type"`
}

type CreateModuleVersionResponseDataAttributes

type CreateModuleVersionResponseDataAttributes struct {
	CreatedAt string `json:"created-at"`
	Source    string `json:"source"`
	Status    string `json:"status"`
	UpdatedAt string `json:"updated-at"`
	Version   string `json:"version"`
}
type CreateModuleVersionResponseDataLinks struct {
	Upload string `json:"upload"`
}

type CreateModuleVersionResponseDataRelationships

type CreateModuleVersionResponseDataRelationships struct {
	RegistryModule CreateModuleVersionResponseDataRelationshipsRegistryModule `json:"registry-module"`
}

type CreateModuleVersionResponseDataRelationshipsRegistryModule

type CreateModuleVersionResponseDataRelationshipsRegistryModule struct {
	Data CreateModuleVersionResponseDataRelationshipsRegistryModuleData `json:"data"`
}

type CreateModuleVersionResponseDataRelationshipsRegistryModuleData

type CreateModuleVersionResponseDataRelationshipsRegistryModuleData struct {
	ID   string `json:"id"`
	Type string `json:"type"`
}

type CreateProviderVersionPlatformRequest

type CreateProviderVersionPlatformRequest struct {
	Data CreateProviderVersionPlatformRequestData `json:"data"`
}

func NewCreateProviderVersionPlatformRequest

func NewCreateProviderVersionPlatformRequest(os, arch, shasum, filename string) CreateProviderVersionPlatformRequest

type CreateProviderVersionPlatformRequestData

type CreateProviderVersionPlatformRequestData struct {
	Attributes CreateProviderVersionPlatformRequestDataAttributes `json:"attributes"`
	Type       string                                             `json:"type"`
}

type CreateProviderVersionPlatformRequestDataAttributes

type CreateProviderVersionPlatformRequestDataAttributes struct {
	Arch     string `json:"arch"`
	Filename string `json:"filename"`
	OS       string `json:"os"`
	Shasum   string `json:"shasum"`
}

type CreateProviderVersionPlatformResponse

type CreateProviderVersionPlatformResponse struct {
	Data CreateProviderVersionPlatformResponseData `json:"data"`
}

type CreateProviderVersionPlatformResponseData

type CreateProviderVersionPlatformResponseData struct {
	Attributes    CreateProviderVersionPlatformResponseDataAttributes    `json:"attributes"`
	ID            string                                                 `json:"id"`
	Links         CreateProviderVersionPlatformResponseDataLinks         `json:"links"`
	Relationships CreateProviderVersionPlatformResponseDataRelationships `json:"relationships"`
	Type          string                                                 `json:"type"`
}

type CreateProviderVersionPlatformResponseDataAttributes

type CreateProviderVersionPlatformResponseDataAttributes struct {
	Arch                   string                                                         `json:"arch"`
	Filename               string                                                         `json:"filename"`
	Os                     string                                                         `json:"os"`
	Permissions            CreateProviderVersionPlatformResponseDataAttributesPermissions `json:"permissions"`
	ProviderBinaryUploaded bool                                                           `json:"provider-binary-uploaded"`
	Shasum                 string                                                         `json:"shasum"`
}

type CreateProviderVersionPlatformResponseDataAttributesPermissions

type CreateProviderVersionPlatformResponseDataAttributesPermissions struct {
	CanDelete      bool `json:"can-delete"`
	CanUploadAsset bool `json:"can-upload-asset"`
}
type CreateProviderVersionPlatformResponseDataLinks struct {
	ProviderBinaryUpload string `json:"provider-binary-upload"`
}

type CreateProviderVersionPlatformResponseDataRelationships

type CreateProviderVersionPlatformResponseDataRelationships struct {
	RegistryProviderVersion CreateProviderVersionPlatformResponseDataRelationshipsRegistryProviderVersion `json:"registry-provider-version"`
}

type CreateProviderVersionPlatformResponseDataRelationshipsRegistryProviderVersion

type CreateProviderVersionPlatformResponseDataRelationshipsRegistryProviderVersion struct {
	Data CreateProviderVersionPlatformResponseDataRelationshipsRegistryProviderVersionData `json:"data"`
}

type CreateProviderVersionPlatformResponseDataRelationshipsRegistryProviderVersionData

type CreateProviderVersionPlatformResponseDataRelationshipsRegistryProviderVersionData struct {
	ID   string `json:"id"`
	Type string `json:"type"`
}

type CreateProviderVersionRequest

type CreateProviderVersionRequest struct {
	Data CreateProviderVersionRequestData `json:"data"`
}

func NewCreateProviderVersionRequest

func NewCreateProviderVersionRequest(vers, keyID string, protocols []string) CreateProviderVersionRequest

type CreateProviderVersionRequestData

type CreateProviderVersionRequestData struct {
	Type       string                                     `json:"type"`
	Attributes CreateProviderVersionRequestDataAttributes `json:"attributes"`
}

type CreateProviderVersionRequestDataAttributes

type CreateProviderVersionRequestDataAttributes struct {
	Version   string   `json:"version"`
	KeyID     string   `json:"key-id"`
	Protocols []string `json:"protocols"`
}

type CreateProviderVersionResponse

type CreateProviderVersionResponse struct {
	Data CreateProviderVersionResponseData `json:"data"`
}

type CreateProviderVersionResponseData

type CreateProviderVersionResponseData struct {
	Attributes    CreateProviderVersionResponseDataAttributes    `json:"attributes"`
	ID            string                                         `json:"id"`
	Links         CreateProviderVersionResponseDataLinks         `json:"links"`
	Relationships CreateProviderVersionResponseDataRelationships `json:"relationships"`
	Type          string                                         `json:"type"`
}

type CreateProviderVersionResponseDataAttributes

type CreateProviderVersionResponseDataAttributes struct {
	CreatedAt          string                                                 `json:"created-at"`
	KeyID              string                                                 `json:"key-id"`
	Permissions        CreateProviderVersionResponseDataAttributesPermissions `json:"permissions"`
	Protocols          []string                                               `json:"protocols"`
	ShasumsSigUploaded bool                                                   `json:"shasums-sig-uploaded"`
	ShasumsUploaded    bool                                                   `json:"shasums-uploaded"`
	UpdatedAt          string                                                 `json:"updated-at"`
	Version            string                                                 `json:"version"`
}

type CreateProviderVersionResponseDataAttributesPermissions

type CreateProviderVersionResponseDataAttributesPermissions struct {
	CanDelete      bool `json:"can-delete"`
	CanUploadAsset bool `json:"can-upload-asset"`
}
type CreateProviderVersionResponseDataLinks struct {
	ShasumsSigUpload string `json:"shasums-sig-upload"`
	ShasumsUpload    string `json:"shasums-upload"`
}

type CreateProviderVersionResponseDataRelationships

type CreateProviderVersionResponseDataRelationships struct {
	RegistryProvider          CreateProviderVersionResponseDataRelationshipsRegistryProvider          `json:"registry-provider"`
	RegistryProviderPlatforms CreateProviderVersionResponseDataRelationshipsRegistryProviderPlatforms `json:"registry-provider-platforms"`
}

type CreateProviderVersionResponseDataRelationshipsRegistryProvider

type CreateProviderVersionResponseDataRelationshipsRegistryProvider struct {
	Data CreateProviderVersionResponseDataRelationshipsRegistryProviderData `json:"data"`
}

type CreateProviderVersionResponseDataRelationshipsRegistryProviderData

type CreateProviderVersionResponseDataRelationshipsRegistryProviderData struct {
	ID   string `json:"id"`
	Type string `json:"type"`
}

type CreateProviderVersionResponseDataRelationshipsRegistryProviderPlatforms

type CreateProviderVersionResponseDataRelationshipsRegistryProviderPlatforms struct {
	Data  []interface{}                                                                `json:"data"`
	Links CreateProviderVersionResponseDataRelationshipsRegistryProviderPlatformsLinks `json:"links"`
}
type CreateProviderVersionResponseDataRelationshipsRegistryProviderPlatformsLinks struct {
	Related string `json:"related"`
}

type FileUploadRequest

type FileUploadRequest struct {
	File        io.Reader
	Destination string
	ContentType string
	Filename    string
}

type ModuleClient

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

ModuleClient interfaces with the Module Registry in Terraform Cloud

func (*ModuleClient) CreateModuleVersion

func (mc *ModuleClient) CreateModuleVersion(
	ctx context.Context,
	bearerToken,
	organizationName,
	registryName,
	namespace,
	moduleName,
	providerName string,
	data CreateModuleVersionRequest) (*CreateModuleVersionResponse, error)

CreateModuleVersion

Executes: POST /api/v2/organizations/:organization_name/registry-modules/:registry-name/:namespace/:module_name/:provider_name/versions Docs: https://www.terraform.io/cloud-docs/api-docs/private-registry/modules#create-a-module-version

type ProviderClient

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

ProviderClient interfaces with the Provider Registry in Terraform Cloud

func (*ProviderClient) CreateProviderVersion

func (tc *ProviderClient) CreateProviderVersion(
	ctx context.Context,
	bearerToken,
	organizationName,
	registryName,
	namespace,
	providerName string,
	data CreateProviderVersionRequest,
) (*CreateProviderVersionResponse, error)

CreateProviderVersion

Executes: POST /api/v2/organizations/:organization_name/registry-providers/:registry_name/:namespace/:provider_name/versions Docs: https://www.terraform.io/cloud-docs/api-docs/private-registry/provider-versions-platforms#create-a-provider-version

func (*ProviderClient) CreateProviderVersionPlatform

func (tc *ProviderClient) CreateProviderVersionPlatform(
	ctx context.Context,
	bearerToken,
	organizationName,
	registryName,
	namespace,
	providerName,
	providerVersion string,
	data CreateProviderVersionPlatformRequest,
) (*CreateProviderVersionPlatformResponse, error)

CreateProviderVersionPlatform

Executes: POST /api/v2/organizations/:organization_name/registry-providers/:registry_name/:namespace/:provider_name/versions/:provider_version/platforms Docs: https://www.terraform.io/cloud-docs/api-docs/private-registry/provider-versions-platforms#create-a-provider-platform

type StatusError

type StatusError struct {
	ExpectedCode int      `json:"expected-code"`
	ActualCode   int      `json:"actual-code"`
	Body         string   `json:"body"`
	CloudError   APIError `json:"tfcloud-error"`
}

func UnwrapStatusError

func UnwrapStatusError(err error) *StatusError

func (*StatusError) Error

func (e *StatusError) Error() string

Jump to

Keyboard shortcuts

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