UNPKG

@spacelift-io/pulumi-spacelift

Version:

A Pulumi package for creating and managing Spacelift resources.

309 lines (308 loc) 11.9 kB
import * as pulumi from "@pulumi/pulumi"; import * as inputs from "./types/input"; import * as outputs from "./types/output"; /** * ## Example Usage * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as spacelift from "@spacelift-io/pulumi-spacelift"; * * // Explicit module name and provider: * const k8s_module = new spacelift.Module("k8s-module", { * administrative: true, * branch: "master", * description: "Infra terraform module", * repository: "terraform-super-module", * terraformProvider: "aws", * }); * // Unspecified module name and provider (repository naming scheme terraform-${provider}-${name}) * const example_module = new spacelift.Module("example-module", { * administrative: true, * branch: "master", * description: "Example terraform module", * projectRoot: "example", * repository: "terraform-aws-example", * }); * ``` * * ## Import * * ```sh * $ pulumi import spacelift:index/module:Module k8s-module $MODULE_ID * ``` */ export declare class Module extends pulumi.CustomResource { /** * Get an existing Module resource's state with the given name, ID, and optional extra * properties used to qualify the lookup. * * @param name The _unique_ name of the resulting resource. * @param id The _unique_ provider ID of the resource to lookup. * @param state Any extra arguments used during the lookup. * @param opts Optional settings to control the behavior of the CustomResource. */ static get(name: string, id: pulumi.Input<pulumi.ID>, state?: ModuleState, opts?: pulumi.CustomResourceOptions): Module; /** * Returns true if the given object is an instance of Module. This is designed to work even * when multiple copies of the Pulumi SDK have been loaded into the same process. */ static isInstance(obj: any): obj is Module; /** * Indicates whether this module can manage others. Defaults to `false`. */ readonly administrative: pulumi.Output<boolean | undefined>; /** * AWS IAM assume role policy statement setting up trust relationship */ readonly awsAssumeRolePolicyStatement: pulumi.Output<string>; /** * Azure DevOps VCS settings */ readonly azureDevops: pulumi.Output<outputs.ModuleAzureDevops | undefined>; /** * Bitbucket Cloud VCS settings */ readonly bitbucketCloud: pulumi.Output<outputs.ModuleBitbucketCloud | undefined>; /** * Bitbucket Datacenter VCS settings */ readonly bitbucketDatacenter: pulumi.Output<outputs.ModuleBitbucketDatacenter | undefined>; /** * GitHub branch to apply changes to */ readonly branch: pulumi.Output<string>; /** * Free-form module description for users */ readonly description: pulumi.Output<string | undefined>; /** * Indicates whether local preview versions can be triggered on this Module. Defaults to `false`. */ readonly enableLocalPreview: pulumi.Output<boolean | undefined>; /** * GitHub Enterprise (self-hosted) VCS settings */ readonly githubEnterprise: pulumi.Output<outputs.ModuleGithubEnterprise | undefined>; /** * GitLab VCS settings */ readonly gitlab: pulumi.Output<outputs.ModuleGitlab | undefined>; readonly labels: pulumi.Output<string[] | undefined>; /** * The module name will by default be inferred from the repository name if it follows the terraform-provider-name naming * convention. However, if the repository doesn't follow this convention, or you want to give it a custom name, you can * provide it here. */ readonly name: pulumi.Output<string>; /** * Project root is the optional directory relative to the repository root containing the module source code. */ readonly projectRoot: pulumi.Output<string | undefined>; /** * Protect this module from accidental deletion. If set, attempts to delete this module will fail. Defaults to `false`. */ readonly protectFromDeletion: pulumi.Output<boolean | undefined>; /** * Name of the repository, without the owner part */ readonly repository: pulumi.Output<string>; /** * List of the accounts (subdomains) which should have access to the Module */ readonly sharedAccounts: pulumi.Output<string[] | undefined>; /** * ID (slug) of the space the module is in */ readonly spaceId: pulumi.Output<string>; /** * The module provider will by default be inferred from the repository name if it follows the terraform-provider-name * naming convention. However, if the repository doesn't follow this convention, or you gave the module a custom name, you * can provide the provider name here. */ readonly terraformProvider: pulumi.Output<string>; /** * ID of the worker pool to use. NOTE: worker*pool*id is required when using a self-hosted instance of Spacelift. */ readonly workerPoolId: pulumi.Output<string | undefined>; /** * Defines the tool that will be used to execute the workflow. This can be one of `OPEN_TOFU`, `TERRAFORM_FOSS` or `CUSTOM`. Defaults to `TERRAFORM_FOSS`. */ readonly workflowTool: pulumi.Output<string>; /** * Create a Module resource with the given unique name, arguments, and options. * * @param name The _unique_ name of the resource. * @param args The arguments to use to populate this resource's properties. * @param opts A bag of options that control this resource's behavior. */ constructor(name: string, args: ModuleArgs, opts?: pulumi.CustomResourceOptions); } /** * Input properties used for looking up and filtering Module resources. */ export interface ModuleState { /** * Indicates whether this module can manage others. Defaults to `false`. */ administrative?: pulumi.Input<boolean>; /** * AWS IAM assume role policy statement setting up trust relationship */ awsAssumeRolePolicyStatement?: pulumi.Input<string>; /** * Azure DevOps VCS settings */ azureDevops?: pulumi.Input<inputs.ModuleAzureDevops>; /** * Bitbucket Cloud VCS settings */ bitbucketCloud?: pulumi.Input<inputs.ModuleBitbucketCloud>; /** * Bitbucket Datacenter VCS settings */ bitbucketDatacenter?: pulumi.Input<inputs.ModuleBitbucketDatacenter>; /** * GitHub branch to apply changes to */ branch?: pulumi.Input<string>; /** * Free-form module description for users */ description?: pulumi.Input<string>; /** * Indicates whether local preview versions can be triggered on this Module. Defaults to `false`. */ enableLocalPreview?: pulumi.Input<boolean>; /** * GitHub Enterprise (self-hosted) VCS settings */ githubEnterprise?: pulumi.Input<inputs.ModuleGithubEnterprise>; /** * GitLab VCS settings */ gitlab?: pulumi.Input<inputs.ModuleGitlab>; labels?: pulumi.Input<pulumi.Input<string>[]>; /** * The module name will by default be inferred from the repository name if it follows the terraform-provider-name naming * convention. However, if the repository doesn't follow this convention, or you want to give it a custom name, you can * provide it here. */ name?: pulumi.Input<string>; /** * Project root is the optional directory relative to the repository root containing the module source code. */ projectRoot?: pulumi.Input<string>; /** * Protect this module from accidental deletion. If set, attempts to delete this module will fail. Defaults to `false`. */ protectFromDeletion?: pulumi.Input<boolean>; /** * Name of the repository, without the owner part */ repository?: pulumi.Input<string>; /** * List of the accounts (subdomains) which should have access to the Module */ sharedAccounts?: pulumi.Input<pulumi.Input<string>[]>; /** * ID (slug) of the space the module is in */ spaceId?: pulumi.Input<string>; /** * The module provider will by default be inferred from the repository name if it follows the terraform-provider-name * naming convention. However, if the repository doesn't follow this convention, or you gave the module a custom name, you * can provide the provider name here. */ terraformProvider?: pulumi.Input<string>; /** * ID of the worker pool to use. NOTE: worker*pool*id is required when using a self-hosted instance of Spacelift. */ workerPoolId?: pulumi.Input<string>; /** * Defines the tool that will be used to execute the workflow. This can be one of `OPEN_TOFU`, `TERRAFORM_FOSS` or `CUSTOM`. Defaults to `TERRAFORM_FOSS`. */ workflowTool?: pulumi.Input<string>; } /** * The set of arguments for constructing a Module resource. */ export interface ModuleArgs { /** * Indicates whether this module can manage others. Defaults to `false`. */ administrative?: pulumi.Input<boolean>; /** * Azure DevOps VCS settings */ azureDevops?: pulumi.Input<inputs.ModuleAzureDevops>; /** * Bitbucket Cloud VCS settings */ bitbucketCloud?: pulumi.Input<inputs.ModuleBitbucketCloud>; /** * Bitbucket Datacenter VCS settings */ bitbucketDatacenter?: pulumi.Input<inputs.ModuleBitbucketDatacenter>; /** * GitHub branch to apply changes to */ branch: pulumi.Input<string>; /** * Free-form module description for users */ description?: pulumi.Input<string>; /** * Indicates whether local preview versions can be triggered on this Module. Defaults to `false`. */ enableLocalPreview?: pulumi.Input<boolean>; /** * GitHub Enterprise (self-hosted) VCS settings */ githubEnterprise?: pulumi.Input<inputs.ModuleGithubEnterprise>; /** * GitLab VCS settings */ gitlab?: pulumi.Input<inputs.ModuleGitlab>; labels?: pulumi.Input<pulumi.Input<string>[]>; /** * The module name will by default be inferred from the repository name if it follows the terraform-provider-name naming * convention. However, if the repository doesn't follow this convention, or you want to give it a custom name, you can * provide it here. */ name?: pulumi.Input<string>; /** * Project root is the optional directory relative to the repository root containing the module source code. */ projectRoot?: pulumi.Input<string>; /** * Protect this module from accidental deletion. If set, attempts to delete this module will fail. Defaults to `false`. */ protectFromDeletion?: pulumi.Input<boolean>; /** * Name of the repository, without the owner part */ repository: pulumi.Input<string>; /** * List of the accounts (subdomains) which should have access to the Module */ sharedAccounts?: pulumi.Input<pulumi.Input<string>[]>; /** * ID (slug) of the space the module is in */ spaceId?: pulumi.Input<string>; /** * The module provider will by default be inferred from the repository name if it follows the terraform-provider-name * naming convention. However, if the repository doesn't follow this convention, or you gave the module a custom name, you * can provide the provider name here. */ terraformProvider?: pulumi.Input<string>; /** * ID of the worker pool to use. NOTE: worker*pool*id is required when using a self-hosted instance of Spacelift. */ workerPoolId?: pulumi.Input<string>; /** * Defines the tool that will be used to execute the workflow. This can be one of `OPEN_TOFU`, `TERRAFORM_FOSS` or `CUSTOM`. Defaults to `TERRAFORM_FOSS`. */ workflowTool?: pulumi.Input<string>; }