Documentation
¶
Index ¶
- type Module
- type ModuleDep
- type ModuleDetail
- type ModuleInput
- type ModuleList
- type ModuleLocationRegistryResp
- type ModuleOutput
- type ModuleProvider
- type ModuleProviderDep
- type ModuleProviderList
- type ModuleProviderVersions
- type ModuleResource
- type ModuleSubmodule
- type ModuleVersion
- type ModuleVersions
- type PaginationMeta
- type Redirect
- type StrictBool
- type VersionSubmodule
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Module ¶
type Module struct {
ID string `json:"id"`
Owner string `json:"owner"`
Namespace string `json:"namespace"`
Name string `json:"name"`
Version string `json:"version"`
Provider string `json:"provider"`
Description string `json:"description"`
Source string `json:"source"`
PublishedAt time.Time `json:"published_at"`
Downloads int `json:"downloads"`
Verified bool `json:"verified"`
}
Module is the response structure with the data for a single module version.
type ModuleDep ¶
type ModuleDep struct {
Name string `json:"name"`
Source string `json:"source"`
Version string `json:"version"`
}
ModuleDep is an output for a module.
type ModuleDetail ¶
type ModuleDetail struct {
Module
// Root is the root module.
Root *ModuleSubmodule `json:"root"`
// Submodules are the other submodules that are available within
// this module.
Submodules []*ModuleSubmodule `json:"submodules"`
Providers []string `json:"providers"` // All available providers
Versions []string `json:"versions"` // All versions
}
ModuleDetail represents a module in full detail.
type ModuleInput ¶
type ModuleInput struct {
Name string `json:"name"`
Description string `json:"description"`
Default string `json:"default"`
}
ModuleInput is an input for a module.
type ModuleList ¶
type ModuleList struct {
Meta PaginationMeta `json:"meta"`
Modules []*Module `json:"modules"`
}
ModuleList is the response structure for a pageable list of modules.
type ModuleLocationRegistryResp ¶
type ModuleLocationRegistryResp struct {
// The URL to download the module from.
Location string `json:"location"`
// If not nil, represents that the registry wishes to provide the module
// package directly itself instead of delegating to a separate
// go-getter-style source address.
//
// In that case, the registry can set either "true" to request that the
// final download request should use the same credentials used to fetch the
// download location, or "false" to request that the request should be
// made anonymously (e.g. if the URL already contains something that acts
// as authentication credentials).
UseRegistryCredentials *StrictBool `json:"use_registry_credentials"`
}
ModuleLocationRegistryResp defines the OpenTofu registry response returned when calling the endpoint /v1/modules/:namespace/:name/:system/:version/download
type ModuleOutput ¶
ModuleOutput is an output for a module.
type ModuleProvider ¶
type ModuleProvider struct {
Name string `json:"name"`
Downloads int `json:"downloads"`
ModuleCount int `json:"module_count"`
}
ModuleProvider represents a single provider for modules.
type ModuleProviderDep ¶
ModuleProviderDep is the output for a provider dependency
type ModuleProviderList ¶
type ModuleProviderList struct {
Meta PaginationMeta `json:"meta"`
Providers []*ModuleProvider `json:"providers"`
}
ModuleProviderList is the response structure for a pageable list of ModuleProviders.
type ModuleProviderVersions ¶
type ModuleProviderVersions struct {
Source string `json:"source"`
Versions []*ModuleVersion `json:"versions"`
}
ModuleProviderVersions is the response format for a single module instance, containing metadata about all versions and their dependencies.
type ModuleResource ¶
ModuleResource is an output for a module.
type ModuleSubmodule ¶
type ModuleSubmodule struct {
Path string `json:"path"`
Readme string `json:"readme"`
Empty bool `json:"empty"`
Inputs []*ModuleInput `json:"inputs"`
Outputs []*ModuleOutput `json:"outputs"`
Dependencies []*ModuleDep `json:"dependencies"`
Resources []*ModuleResource `json:"resources"`
}
ModuleSubmodule is the metadata about a specific submodule within a module. This includes the root module as a special case.
type ModuleVersion ¶
type ModuleVersion struct {
Version string `json:"version"`
Root VersionSubmodule `json:"root"`
Submodules []*VersionSubmodule `json:"submodules"`
}
ModuleVersion is the output metadata for a given version needed by CLI to resolve candidate versions to satisfy requirements.
type ModuleVersions ¶
type ModuleVersions struct {
Modules []*ModuleProviderVersions `json:"modules"`
}
ModuleVersions is the response format that contains all metadata about module versions needed for tofu CLI to resolve version constraints. See RFC TF-042 for details on this format.
type PaginationMeta ¶
type PaginationMeta struct {
Limit int `json:"limit"`
CurrentOffset int `json:"current_offset"`
NextOffset *int `json:"next_offset,omitempty"`
PrevOffset *int `json:"prev_offset,omitempty"`
NextURL string `json:"next_url,omitempty"`
PrevURL string `json:"prev_url,omitempty"`
}
PaginationMeta is a structure included in responses for pagination.
func NewPaginationMeta ¶
func NewPaginationMeta(offset, limit int, hasMore bool, currentURL string) PaginationMeta
NewPaginationMeta populates pagination meta data from result parameters
type Redirect ¶
type Redirect struct {
URL string `json:"url"`
}
Redirect causes the frontend to perform a window redirect.
type StrictBool ¶
type StrictBool bool
StrictBool is a named type representing a bool value that must be written in JSON as exactly "true" or "false". In particular, "null" is not permitted as an alias for "false", unlike the Go JSON package's default behavior.
This is here really just to implement [json.Unmarshaler] for conveniently handling JSON properties that have this requirement.
func (*StrictBool) UnmarshalJSON ¶
func (b *StrictBool) UnmarshalJSON(src []byte) error
type VersionSubmodule ¶
type VersionSubmodule struct {
Path string `json:"path,omitempty"`
Providers []*ModuleProviderDep `json:"providers"`
Dependencies []*ModuleDep `json:"dependencies"`
}
VersionSubmodule is the output metadata for a submodule within a given version needed by CLI to resolve candidate versions to satisfy requirements. When representing the Root in JSON the path is omitted.