Documentation
¶
Index ¶
- Variables
- func WriteMetadata(obj *BlueprintMetadata, bpPath, fileName string) error
- type BlueprintActuationTool
- type BlueprintArchitecture
- type BlueprintAuthor
- type BlueprintCloudProduct
- type BlueprintContent
- type BlueprintCostEstimate
- type BlueprintDescription
- type BlueprintDiagram
- type BlueprintInfo
- type BlueprintInterface
- type BlueprintListContent
- type BlueprintMetadata
- type BlueprintMetadataSpec
- type BlueprintMiscContent
- type BlueprintOutput
- type BlueprintQuotaDetail
- type BlueprintRepoDetail
- type BlueprintRequirements
- type BlueprintRoles
- type BlueprintSoftware
- type BlueprintSoftwareGroup
- type BlueprintSupport
- type BlueprintTimeEstimate
- type BlueprintUI
- type BlueprintUIInput
- type BlueprintUIOutput
- type BlueprintVariable
- type BlueprintVariableGroup
- type DisplaySection
- type DisplayVariable
- type ExtensionType
- type ExternalIPType
- type GCEDiskSizeExtension
- type GCEExternalIPExtension
- type GCEFirewallExtension
- type GCEFirewallRangeExtension
- type GCEGPUCountExtension
- type GCEGPUTypeExtension
- type GCEGenericResourceExtension
- type GCEIPForwardingExtension
- type GCELocationExtension
- type GCEMachineTypeExtension
- type GCENetworkExtension
- type GCESubnetworkExtension
- type GooglePropertyExtension
- type IAMServiceAccountExtension
- type QuotaResourceType
- type QuotaType
- type SoftwareGroupType
- type UIActionItem
Constants ¶
This section is empty.
Variables ¶
var Cmd = &cobra.Command{ Use: "metadata", Short: "Generates blueprint metatda", Long: `Generates metadata.yaml for specified blueprint`, Args: cobra.NoArgs, RunE: generate, }
var Log = log.New()
bpmetadata log15 handler
Functions ¶
func WriteMetadata ¶
func WriteMetadata(obj *BlueprintMetadata, bpPath, fileName string) error
Types ¶
type BlueprintActuationTool ¶
type BlueprintActuationTool struct {
// Set as "Terraform" for now until more flavors are supported.
Flavor string `json:"type,omitempty" yaml:"type,omitempty"`
// Required version for the actuation tool.
// Autogenerated: For Terraform this is the `required_version` set in
// `terraform` block. E.g.
// terraform {
// required_version = ">= 0.13"
// }
Version string `json:"version,omitempty" yaml:"version,omitempty"`
}
type BlueprintArchitecture ¶ added in v0.5.4
type BlueprintAuthor ¶ added in v0.6.0
type BlueprintAuthor struct {
// Name of template author or organization.
Title string `json:"author" yaml:"author"`
// Description of the author.
Description string `json:"description,omitempty" yaml:"description,omitempty"`
// Link to the author's website.
URL string `json:"url,omitempty" yaml:"url,omitempty"`
}
type BlueprintCloudProduct ¶ added in v0.5.4
type BlueprintCloudProduct struct {
// A top-level (e.g. "Compute Engine") or secondary (e.g. "Binary Authorization")
// product used in the blueprint.
ProductId string `json:"productId,omitempty" yaml:"productId,omitempty"`
// Url for the product.
PageURL string `json:"pageUrl" yaml:"pageUrl"`
// A label string for the product, if it is not an integrated GCP product.
// E.g. "Data Studio"
Label string `json:"label,omitempty" yaml:"label,omitempty"`
}
A GCP cloud product used in the blueprint. Manually authored.
type BlueprintContent ¶
type BlueprintContent struct {
// Diagrams are manually entered.
Architecture BlueprintArchitecture `json:"architecture,omitempty" yaml:"architecture,omitempty"`
Diagrams []BlueprintDiagram `json:"diagrams,omitempty" yaml:"diagrams,omitempty"`
Documentation []BlueprintListContent `json:"documentation,omitempty" yaml:"documentation,omitempty"`
SubBlueprints []BlueprintMiscContent `json:"subBlueprints,omitempty" yaml:"subBlueprints,omitempty"`
Examples []BlueprintMiscContent `json:"examples,omitempty" yaml:"examples,omitempty"`
}
BlueprintContent defines the detail for blueprint related content such as related documentation, diagrams, examples etc.
type BlueprintCostEstimate ¶ added in v0.5.4
type BlueprintCostEstimate struct {
// Autogenerated: Set using the content defined under "### Cost" as a link
// with a description E.g.
// ### Cost
// [View cost details](https://cloud.google.com/products/calculator?hl=en_US&_ga=2.1665458.-226505189.1675191136#id=02fb0c45-cc29-4567-8cc6-f72ac9024add)
Description string `json:"description" yaml:"description"`
URL string `json:"url" yaml:"url"`
}
The cost estimate for the blueprint based on preconfigured variables.
type BlueprintDescription ¶
type BlueprintDescription struct {
// Autogenerated: Markdown after "### Tagline".
Tagline string `json:"tagline,omitempty" yaml:"tagline,omitempty"`
// Autogenerated: Markdown after "### Detailed".
Detailed string `json:"detailed,omitempty" yaml:"detailed,omitempty"`
// Autogenerated: Markdown after "### PreDeploy".
PreDeploy string `json:"preDeploy,omitempty" yaml:"preDeploy,omitempty"`
// Autogenerated: Markdown after "### Html".
HTML string `json:"html,omitempty" yaml:"html,omitempty"`
// Autogenerated: Markdown after "### EulaUrls".
EulaURLs []string `json:"eulaUrls,omitempty" yaml:"eulaUrls,omitempty"`
// Autogenerated: Markdown after "### Architecture"
// Deprecated. Use BlueprintContent.Architecture instead.
Architecture []string `json:"architecture,omitempty" yaml:"architecture,omitempty"`
}
type BlueprintDiagram ¶
type BlueprintDiagram struct {
Name string `json:"name" yaml:"name"`
AltText string `json:"altText,omitempty" yaml:"altText,omitempty"`
Description string `json:"description,omitempty" yaml:"description,omitempty"`
}
BlueprintDiagram is manually entered.
type BlueprintInfo ¶
type BlueprintInfo struct {
// Title for the blueprint.
// Autogenerated: First H1 text in readme.md.
Title string `json:"title" yaml:"title"`
// Blueprint source location and source type.
// Autogen details in BlueprintRepoDetail.
Source *BlueprintRepoDetail `json:"source" yaml:"source"`
// Last released semantic version for the packaged blueprint.
// Autogenerated: From the `module_name` attribute of the `provider_meta "google"` block.
// E.g.
// provider_meta "google" {
// module_name = "blueprints/terraform/terraform-google-log-analysis/v0.1.5"
// }
Version string `json:"version,omitempty" yaml:"version,omitempty"`
// Actuation tool e.g. Terraform and its required version.
// Autogen details in BlueprintActuationTool.
ActuationTool BlueprintActuationTool `json:"actuationTool,omitempty" yaml:"actuationTool,omitempty"`
// Various types of descriptions associated with the blueprint.
// Autogen details in BlueprintDescription.
Description *BlueprintDescription `json:"description,omitempty" yaml:"description,omitempty"`
// Path to an image representing the icon for the blueprint.
// Will be set as "assets/icon.png", if present. Otherwise, it
// can be manually authored.
Icon string `json:"icon,omitempty" yaml:"icon,omitempty"`
// The time estimate for configuring and deploying the blueprint.
// Autogen details in BlueprintTimeEstimate.
DeploymentDuration BlueprintTimeEstimate `json:"deploymentDuration,omitempty" yaml:"deploymentDuration,omitempty"`
// The cost estimate for the blueprint based on preconfigured variables.
// Autogen details in BlueprintCostEstimate.
CostEstimate BlueprintCostEstimate `json:"costEstimate,omitempty" yaml:"costEstimate,omitempty"`
// A list of GCP cloud products used in the blueprint.
// Manually authored.
CloudProducts []BlueprintCloudProduct `json:"cloudProducts,omitempty" yaml:"cloudProducts,omitempty"`
// A configuration of fixed and dymanic GCP quotas that apply to the soltuion.
// Manually authored.
QuotaDetails []BlueprintQuotaDetail `json:"quotaDetails,omitempty" yaml:"quotaDetails,omitempty"`
// Details on the author producing the blueprint.
// Manually authored.
Author BlueprintAuthor `json:"author,omitempty" yaml:"author,omitempty"`
// Details on sotfware installed as part of the blueprint.
// Manually authored.
SoftwareGroups []BlueprintSoftwareGroup `json:"softwareGroups,omitempty" yaml:"softwareGroups,omitempty"`
// Support offered, if any for the blueprint.
// Manually authored.
SupportInfo BlueprintSupport `json:"supportInfo,omitempty" yaml:"supportInfo,omitempty"`
}
type BlueprintInterface ¶
type BlueprintInterface struct {
Variables []BlueprintVariable `json:"variables,omitempty" yaml:"variables,omitempty"`
// VariableGroups are manually entered.
VariableGroups []BlueprintVariableGroup `json:"variableGroups,omitempty" yaml:"variableGroups,omitempty"`
Outputs []BlueprintOutput `json:"outputs,omitempty" yaml:"outputs,omitempty"`
}
BlueprintInterface defines the input and output variables for the blueprint.
type BlueprintListContent ¶
type BlueprintMetadata ¶
type BlueprintMetadata struct {
yaml.ResourceMeta `json:",inline" yaml:",inline"`
Spec BlueprintMetadataSpec `json:"spec" yaml:"spec"`
}
BlueprintMetadata defines the overall structure for blueprint metadata.
func CreateBlueprintDisplayMetadata ¶ added in v0.9.0
func CreateBlueprintDisplayMetadata(bpPath string, bpDisp, bpCore *BlueprintMetadata) (*BlueprintMetadata, error)
func CreateBlueprintMetadata ¶
func CreateBlueprintMetadata(bpPath string, bpMetadataObj *BlueprintMetadata) (*BlueprintMetadata, error)
func UnmarshalMetadata ¶
func UnmarshalMetadata(bpPath, fileName string) (*BlueprintMetadata, error)
type BlueprintMetadataSpec ¶
type BlueprintMetadataSpec struct {
BlueprintInfo `json:",inline,omitempty" yaml:",inline,omitempty"`
BlueprintContent `json:",inline,omitempty" yaml:",inline,omitempty"`
BlueprintInterface `json:",inline,omitempty" yaml:",inline,omitempty"`
BlueprintRequirements `json:",inline,omitempty" yaml:",inline,omitempty"`
BlueprintUI `json:",inline,omitempty" yaml:",inline,omitempty"`
}
BlueprintMetadataSpec defines the spec portion of the blueprint metadata. All immediate types within BlueprintMetadataSpec are inline and will not appear as nodes in metadata.
type BlueprintMiscContent ¶
type BlueprintOutput ¶
type BlueprintQuotaDetail ¶ added in v0.5.4
type BlueprintQuotaDetail struct {
// DynamicVariable, if provided, associates the provided input variable
// with the corresponding resource and quota type. In its absence, the quota
// detail is assumed to be fixed.
DynamicVariable string `json:"variable,omitempty" yaml:"variable,omitempty"`
// ResourceType is the type of resource the quota will be applied to i.e.
// GCE Instance or Disk etc.
ResourceType QuotaResourceType `json:"type" yaml:"type" jsonschema:"enum=GCE_INSTANCE,enum=GCE_DISK"`
// QuotaType is a key/value pair of the actual quotas an their corresponding
// values.
QuotaType map[QuotaType]string `json:"quotaType" yaml:"quotaType"`
}
type BlueprintRepoDetail ¶
type BlueprintRequirements ¶
type BlueprintRequirements struct {
Roles []BlueprintRoles `json:"roles,omitempty" yaml:"roles,omitempty"`
Services []string `json:"services,omitempty" yaml:"services,omitempty"`
}
BlueprintRequirements defines the roles required and the assocaited services that need to be enabled to provision blueprint resources.
type BlueprintRoles ¶
type BlueprintSoftware ¶ added in v0.6.0
type BlueprintSoftware struct {
// User-visible title.
Title string `json:"title" yaml:"title"`
// Software version.
Version string `json:"version,omitempty" yaml:"version,omitempty"`
// Link to development site or marketing page for this software.
URL string `json:"url,omitempty" yaml:"url,omitempty"`
// Link to license page.
LicenseURL string `json:"licenseUrl,omitempty" yaml:"licenseUrl,omitempty"`
}
A description of a piece of a single software component installed by the blueprint.
type BlueprintSoftwareGroup ¶ added in v0.6.0
type BlueprintSoftwareGroup struct {
// Pre-defined software types.
Type SoftwareGroupType `json:"type,omitempty" yaml:"type,omitempty" jsonschema:"enum=UNSPECIFIED,enum=OS"`
// Software components belonging to this group.
Software []BlueprintSoftware `json:"software,omitempty" yaml:"software,omitempty"`
}
A group of related software components for the blueprint.
type BlueprintSupport ¶ added in v0.6.0
type BlueprintSupport struct {
//Description of the support option.
Description string `json:"description" yaml:"description"`
// Link to the page providing this support option.
URL string `json:"url,omitempty" yaml:"url,omitempty"`
// The organization or group that provides the support option (e.g.:
// "Community", "Google").
Entity string `json:"entity,omitempty" yaml:"entity,omitempty"`
// Whether to show the customer's support ID.
ShowSupportId bool `json:"showSupportId,omitempty" yaml:"showSupportId,omitempty"`
}
A description of a support option
type BlueprintTimeEstimate ¶ added in v0.5.4
type BlueprintTimeEstimate struct {
// Autogenerated: Set using the content defined under "### DeploymentTime" E.g.
// ### DeploymentTime
// - Configuration: X secs
// - Deployment: Y secs
ConfigurationSecs int `json:"configuration,omitempty" yaml:"configuration,omitempty"`
DeploymentSecs int `json:"deployment,omitempty" yaml:"deployment,omitempty"`
}
A time estimate in secs required for configuring and deploying the blueprint.
type BlueprintUI ¶ added in v0.6.0
type BlueprintUI struct {
// The top-level input section that defines the list of variables and
// their sections on the deployment page.
Input BlueprintUIInput `json:"input,omitempty" yaml:"input,omitempty"`
// The top-level section for listing runtime (or blueprint output) information
// i.e. the console URL for the VM or a button to ssh into the VM etc based on.
Runtime BlueprintUIOutput `json:"runtime,omitempty" yaml:"runtime,omitempty"`
}
BlueprintUI is the top-level structure for holding UI specific metadata.
type BlueprintUIInput ¶ added in v0.6.0
type BlueprintUIInput struct {
// variables is a map defining all inputs on the UI.
DisplayVariables map[string]*DisplayVariable `json:"variables,omitempty" yaml:"variables,omitempty"`
// Sections is a generic structure for grouping inputs together.
DisplaySections []DisplaySection `json:"sections,omitempty" yaml:"sections,omitempty"`
}
BlueprintUIInput is the structure for holding Input and Input Section (i.e. groups) specific metadata.
type BlueprintUIOutput ¶ added in v0.6.0
type BlueprintUIOutput struct {
// Short message to be displayed while the blueprint is deploying.
// At most 128 characters.
OutputMessage string `json:"outputMessage,omitempty" yaml:"outputMessage,omitempty"`
// List of suggested actions to take.
SuggestedActions []UIActionItem `json:"suggestedActions,omitempty" yaml:"suggestedActions,omitempty"`
}
type BlueprintVariable ¶
type BlueprintVariable struct {
Name string `json:"name,omitempty" yaml:"name,omitempty"`
Description string `json:"description,omitempty" yaml:"description,omitempty"`
VarType string `json:"type,omitempty" yaml:"type,omitempty"`
Default interface{} `json:"default,omitempty" yaml:"default,omitempty"`
Required bool `json:"required,omitempty" yaml:"required,omitempty"`
}
type BlueprintVariableGroup ¶
type BlueprintVariableGroup struct {
Name string `json:"name" yaml:"name"`
Description string `json:"description,omitempty" yaml:"description,omitempty"`
Variables []string `json:"variables,omitempty" yaml:"variables,omitempty"`
}
BlueprintVariableGroup is manually entered.
type DisplaySection ¶ added in v0.6.0
type DisplaySection struct {
// The name of the section, referenced by DisplayVariable.Section
// Section names must be unique.
Name string `json:"name" yaml:"name"`
// Section title.
// If not provided, name will be used instead.
Title string `json:"title,omitempty" yaml:"title,omitempty"`
// Section tooltip.
Tooltip string `json:"tooltip,omitempty" yaml:"tooltip,omitempty"`
// Section subtext.
Subtext string `json:"subtext,omitempty" yaml:"subtext,omitempty"`
// The name of the parent section (if parent is not the root section).
Parent string `json:"parent,omitempty" yaml:"parent,omitempty"`
}
A logical group of variables. [Section][]s may also be grouped into sub-sections.
type DisplayVariable ¶ added in v0.6.0
type DisplayVariable struct {
// The variable name from the corresponding standard metadata file.
Name string `json:"name" yaml:"name"`
// Visible title for the variable on the UI. If not present,
// Name will be used for the Title.
Title bool `json:"title,omitempty" yaml:"title,omitempty"`
// A flag to hide or show the variable on the UI.
Visible bool `json:"visible,omitempty" yaml:"visible,omitempty"`
// Variable tooltip.
Tooltip string `json:"tooltip,omitempty" yaml:"tooltip,omitempty"`
// Placeholder text (when there is no default).
Placeholder string `json:"placeholder,omitempty" yaml:"placeholder,omitempty"`
// Text describing the validation rules for the variable based
// on a regular expression.
// Typically shown after an invalid input.
RegExValidation string `json:"regexValidation,omitempty" yaml:"regexValidation,omitempty"`
// Minimum no. of values for the input variable.
Minimum int `json:"min,omitempty" yaml:"min,omitempty"`
// Max no. of values for the input variable.
Maximum int `json:"max,omitempty" yaml:"max,omitempty"`
// The name of a section to which this variable belongs.
// variables belong to the root section if this field is
// not set.
Section string `json:"section,omitempty" yaml:"section,omitempty"`
// Designates that this variable has no impact on the costs, quotas, or
// permissions associated with the resources in the expanded deployment.
// Typically true for application-specific variables that do not affect the
// size or number of instances in the deployment.
ResourceImpact bool `json:"resourceImpact,omitempty" yaml:"resourceImpact,omitempty"`
// UI extension associated with the input variable.
// E.g. for rendering a GCE machine type selector:
//
// x-googleProperty:
// type: GCE_MACHINE_TYPE
// zoneProperty: myZone
// gceMachineType:
// minCpu: 2
// minRamGb: 6
UIDisplayVariableExtension GooglePropertyExtension `json:"x-googleProperty,omitempty" yaml:"x-googleProperty,omitempty"`
}
Additional display specific metadata pertaining to a particular input variable.
type ExtensionType ¶ added in v0.6.0
type ExtensionType string
const ( Undefined ExtensionType = "UNDEFINED_TYPE" // General formats. EmailAddress ExtensionType = "EMAIL_ADDRESS" MultiLineString ExtensionType = "MULTI_LINE_STRING" // GCE related. GCEDiskImage ExtensionType = "GCE_DISK_IMAGE" GCEDiskType ExtensionType = "GCE_DISK_TYPE" GCEDiskSize ExtensionType = "GCE_DISK_SIZE" GCEMachineType ExtensionType = "GCE_MACHINE_TYPE" GCENetwork ExtensionType = "GCE_NETWORK" GCEZone ExtensionType = "GCE_ZONE" GCESubnetwork ExtensionType = "GCE_SUBNETWORK" GCERegion ExtensionType = "GCE_REGION" GCEGPUType ExtensionType = "GCE_GPU_TYPE" GCEGPUCount ExtensionType = "GCE_GPU_COUNT" GCEExternalIP ExtensionType = "GCE_EXTERNAL_IP" GCEIPForwarding ExtensionType = "GCE_IP_FORWARDING" GCEFirewall ExtensionType = "GCE_FIREWALL" GCEFirewallRange ExtensionType = "GCE_FIREWALL_RANGE" GCEGenericResource ExtensionType = "GCE_GENERIC_RESOURCE" // GCS related. GCSBucket ExtensionType = "GCS_BUCKET" // IAM related. IAMServiceAccount ExtensionType = "IAM_SERVICE_ACCOUNT" )
type ExternalIPType ¶ added in v0.6.0
type ExternalIPType string
const ( IPEphemeral ExternalIPType = "EPHEMERAL" IPStaic ExternalIPType = "STATIC" )
type GCEDiskSizeExtension ¶ added in v0.6.0
type GCEDiskSizeExtension struct {
// The allowable range of disk sizes depends on the disk type. This field
// references another variable from the schema, which must have type GCEDiskType.
DiskTypeVariable string `json:"diskTypeVariable" yaml:"diskTypeVariable"`
}
type GCEExternalIPExtension ¶ added in v0.6.0
type GCEExternalIPExtension struct {
// NetworkVariable is used to indicate the network variable in the schema
// this external IP belongs to.
NetworkVariable string `json:"networkVariable" yaml:"networkVariable"`
// Type specifies if the external IP is ephemeral or static.
// Defaults to ephemeral if not specified.
Type ExternalIPType `json:"externalIpType,omitempty" yaml:"externalIpType,omitempty"`
}
type GCEFirewallExtension ¶ added in v0.6.0
type GCEFirewallExtension struct {
// NetworkVariable is used to indicate the network variable in the schema
// this external IP belongs to.
NetworkVariable string `json:"networkVariable" yaml:"networkVariable"`
}
type GCEFirewallRangeExtension ¶ added in v0.6.0
type GCEFirewallRangeExtension struct {
// FirewallVariable is used to indicate the firewall variable with the type
// GCEFirewall in the schema to which this firewall range belongs to.
FirewallVariable string `json:"firewallVariable" yaml:"firewallVariable"`
}
type GCEGPUCountExtension ¶ added in v0.6.0
type GCEGPUCountExtension struct {
// This field references another variable from the schema,
// which must have type GCEMachineType.
MachineTypeVariable string `json:"machineTypeVariable" yaml:"machineTypeVariable"`
}
type GCEGPUTypeExtension ¶ added in v0.6.0
type GCEGenericResourceExtension ¶ added in v0.6.0
type GCEGenericResourceExtension struct {
// GCE resource type to be fetched. This field references another
// property from the schema, which must have type GCEGenericResource.
ResourceVariable string `json:"resourceVariable" yaml:"resourceVariable"`
}
type GCEIPForwardingExtension ¶ added in v0.6.0
type GCEIPForwardingExtension struct {
// NetworkVariable is used to indicate the network variable in the schema
// this external IP belongs to.
NetworkVariable string `json:"networkVariable" yaml:"networkVariable"`
NotConfigurable bool `json:"notConfigurable,omitempty" yaml:"notConfigurable,omitempty"`
}
type GCELocationExtension ¶ added in v0.6.0
type GCEMachineTypeExtension ¶ added in v0.6.0
type GCEMachineTypeExtension struct {
// Minimum cpu. Used to filter the list of selectable machine types.
MinCPU int `json:"minCpu,omitempty" yaml:"minCpu,omitempty"`
// Minimum ram. Used to filter the list of selectable machine types.
MinRAMGB int `json:"minRamGb,omitempty" yaml:"minRamGb,omitempty"`
// If true, custom machine types will not be selectable.
// More info:
// https://cloud.google.com/compute/docs/instances/creating-instance-with-custom-machine-type
DisallowCustomMachineTypes bool `json:"disallowCustomMachineTypes,omitempty" yaml:"disallowCustomMachineTypes,omitempty"`
}
type GCENetworkExtension ¶ added in v0.6.0
type GCENetworkExtension struct {
// shared VPC selflinks (fully qualified compute links).
AllowSharedVPCs bool `json:"allowSharedVpcs,omitempty" yaml:"allowSharedVpcs,omitempty"`
// Used to indicate to which machine type this network interface will be
// attached to.
MachineTypeVariable string `json:"machineTypeVariable" yaml:"machineTypeVariable"`
}
type GCESubnetworkExtension ¶ added in v0.6.0
type GCESubnetworkExtension struct {
// Subnetwork variable requires a network context in order to determine the
// set of available subnetworks. This field references another
// variable from the schema, which must have type GCENetwork.
NetworkVariable string `json:"networkVariable" yaml:"networkVariable"`
}
type GooglePropertyExtension ¶ added in v0.6.0
type GooglePropertyExtension struct {
Type ExtensionType `` /* 415-byte string literal not displayed */
// Some properties (e.g. GCE_MACHINE_TYPE) require a zone context in order to
// determine the set of allowable values. This field references another
// property from the schema, which must have type GCE_ZONE.
ZoneProperty string `json:"zoneProperty,omitempty" yaml:"zoneProperty,omitempty"`
// Property-specific extensions.
GCEMachineType GCEMachineTypeExtension `json:"gceMachineType,omitempty" yaml:"gceMachineType,omitempty"`
GCEDiskSize GCEDiskSizeExtension `json:"gceDiskSize,omitempty" yaml:"gceDiskSize,omitempty"`
GCESubnetwork GCESubnetworkExtension `json:"gceSubnetwork,omitempty" yaml:"gceSubnetwork,omitempty"`
GCEResource GCEGenericResourceExtension `json:"gceResource,omitempty" yaml:"gceResource,omitempty"`
GCEGPUType GCEGPUTypeExtension `json:"gceGpuType,omitempty" yaml:"gceGpuType,omitempty"`
GCEGPUCount GCEGPUCountExtension `json:"gceGpuCount,omitempty" yaml:"gceGpuCount,omitempty"`
GCENetwork GCENetworkExtension `json:"gceNetwork,omitempty" yaml:"gceNetwork,omitempty"`
GCEExternalIP GCEExternalIPExtension `json:"gceExternalIp,omitempty" yaml:"gceExternalIp,omitempty"`
GCEIPForwarding GCEIPForwardingExtension `json:"gceIpForwarding,omitempty" yaml:"gceIpForwarding,omitempty"`
GCEFirewall GCEFirewallExtension `json:"gceFirewall,omitempty" yaml:"gceFirewall,omitempty"`
GCEFirewallRange GCEFirewallRangeExtension `json:"gceFirewallRange,omitempty" yaml:"gceFirewallRange,omitempty"`
GCEZone GCELocationExtension `json:"gceZone,omitempty" yaml:"gceZone,omitempty"`
GCERegion GCELocationExtension `json:"gceRegion,omitempty" yaml:"gceRegion,omitempty"`
IAMServiceAccount IAMServiceAccountExtension `json:"iamServiceAccount,omitempty" yaml:"iamServiceAccount,omitempty"`
}
An extension for variables defined as part of DisplayVariable. The extension defines Google-specifc metadata necessary for choosing an appropriate input widget or adding restrictions to GCP-specific resources.
type IAMServiceAccountExtension ¶ added in v0.6.0
type IAMServiceAccountExtension struct {
// List of IAM roles that to grant to a new SA, or the roles to filter
// existing SAs with.
Roles []string `json:"roles" yaml:"roles"`
}
type QuotaResourceType ¶ added in v0.5.4
type QuotaResourceType string
const ( GCEInstance QuotaResourceType = "GCE_INSTANCE" GCEDisk QuotaResourceType = "GCE_DISK" )
type SoftwareGroupType ¶ added in v0.6.0
type SoftwareGroupType string
const ( UnspecifiedSG SoftwareGroupType = "UNSPECIFIED" OS SoftwareGroupType = "OS" )
type UIActionItem ¶ added in v0.6.0
type UIActionItem struct {
// Summary heading for the item.
// Required. Accepts string expressions. At most 64 characters.
Heading string `json:"heading" yaml:"heading"`
// Longer description of the item.
// At least one description or snippet is required.
// Accepts string expressions. HTML <code><a href></code>
// tags only. At most 512 characters.
Description string `json:"description,omitempty" yaml:"description,omitempty"`
// Fixed-width formatted code snippet.
// At least one description or snippet is required.
// Accepts string expressions. UTF-8 text. At most 512 characters.
Snippet string `json:"snippet,omitempty" yaml:"snippet,omitempty"`
// If present, this expression determines whether the item is shown.
// Should be in the form of a Boolean expression e.g. outputs().hasExternalIP
// where `externalIP` is the output.
ShowIf string `json:"showIf,omitempty" yaml:"showIf,omitempty"`
}
An item appearing in a list of required or suggested steps.