UNPKG

@spacelift-io/pulumi-spacelift

Version:

A Pulumi package for creating and managing Spacelift resources.

80 lines 3.47 kB
"use strict"; // *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** // *** Do not edit by hand unless you're certain you know what you are doing! *** Object.defineProperty(exports, "__esModule", { value: true }); exports.StackDependency = void 0; const pulumi = require("@pulumi/pulumi"); const utilities = require("./utilities"); /** * `spacelift.StackDependency` represents a Spacelift **stack dependency** - a dependency between two stacks. When one stack depends on another, the tracked runs of the stack will not start until the dependent stack is successfully finished. Additionally, changes to the dependency will trigger the dependent. * * ## Example Usage * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as spacelift from "@spacelift-io/pulumi-spacelift"; * * const infra = new spacelift.Stack("infra", { * branch: "master", * repository: "core-infra", * }); * const app = new spacelift.Stack("app", { * branch: "master", * repository: "app", * }); * const test = new spacelift.StackDependency("test", { * stackId: app.id, * dependsOnStackId: infra.id, * }); * ``` */ class StackDependency extends pulumi.CustomResource { /** * Get an existing StackDependency 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, id, state, opts) { return new StackDependency(name, state, Object.assign(Object.assign({}, opts), { id: id })); } /** * Returns true if the given object is an instance of StackDependency. This is designed to work even * when multiple copies of the Pulumi SDK have been loaded into the same process. */ static isInstance(obj) { if (obj === undefined || obj === null) { return false; } return obj['__pulumiType'] === StackDependency.__pulumiType; } constructor(name, argsOrState, opts) { let resourceInputs = {}; opts = opts || {}; if (opts.id) { const state = argsOrState; resourceInputs["dependsOnStackId"] = state ? state.dependsOnStackId : undefined; resourceInputs["stackId"] = state ? state.stackId : undefined; } else { const args = argsOrState; if ((!args || args.dependsOnStackId === undefined) && !opts.urn) { throw new Error("Missing required property 'dependsOnStackId'"); } if ((!args || args.stackId === undefined) && !opts.urn) { throw new Error("Missing required property 'stackId'"); } resourceInputs["dependsOnStackId"] = args ? args.dependsOnStackId : undefined; resourceInputs["stackId"] = args ? args.stackId : undefined; } opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); super(StackDependency.__pulumiType, name, resourceInputs, opts); } } exports.StackDependency = StackDependency; /** @internal */ StackDependency.__pulumiType = 'spacelift:index/stackDependency:StackDependency'; //# sourceMappingURL=stackDependency.js.map