import * as pulumi from "@pulumi/pulumi"; /** * A secret store is a persistent, globally distributed store for secrets accessible to Compute services during request processing. * * In order for a Secret Store (`fastly.Secretstore`) to be accessible to a [Compute](https://developer.fastly.com/learning/compute/) service you'll first need to define a Compute service (`fastly.ServiceCompute`) in your configuration, and then create a link to the Secret Store from within the service using the `resourceLink` block (shown in the below examples). * * > **Warning:** Unlike other stores (Config Store, KV Store etc) deleting a Secret Store will automatically delete all the secrets it contains. There is no need to manually delete the secrets first. * * > **Note:** The Fastly Terraform provider does not provide a means to seed the Secret Store with secrets (this is because the values are persisted into the Terraform state file as plaintext). To populate the Secret Store with secrets please use the [Fastly API](https://developer.fastly.com/reference/api/services/resources/secret-store-secret/) directly or the [Fastly CLI](https://developer.fastly.com/reference/cli/secret-store-entry/). * * ## Example Usage * * Basic usage: * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as fastly from "@pulumi/fastly"; * * // IMPORTANT: Deleting a Secret Store requires first deleting its resource_link. * // This requires a two-step `pulumi up` as we can't guarantee deletion order. * // e.g. resource_link deletion within fastly_service_compute might not finish first. * const exampleSecretstore = new fastly.Secretstore("example", {name: "my_secret_store"}); * const example = fastly.getPackageHash({ * filename: "package.tar.gz", * }); * const exampleServiceCompute = new fastly.ServiceCompute("example", { * name: "my_compute_service", * domains: [{ * name: "demo.example.com", * }], * "package": { * filename: "package.tar.gz", * sourceCodeHash: example.then(example => example.hash), * }, * resourceLinks: [{ * name: "my_resource_link", * resourceId: exampleSecretstore.id, * }], * forceDestroy: true, * }); * ``` * * ## Import * * Fastly Secret Stores can be imported using their Store ID, e.g. * * ```sh * $ pulumi import fastly:index/secretstore:Secretstore example xxxxxxxxxxxxxxxxxxxx * ``` */ export declare class Secretstore extends pulumi.CustomResource { /** * Get an existing Secretstore 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, state?: SecretstoreState, opts?: pulumi.CustomResourceOptions): Secretstore; /** * Returns true if the given object is an instance of Secretstore. 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 Secretstore; /** * A human-readable name for the Secret Store. The value must contain only letters, numbers, dashes (-), underscores (*), or periods (.). It is important to note that changing this attribute will delete and recreate the Secret Store, and discard the current entries. You MUST first delete the associated resource*link block from your service before modifying this field. */ readonly name: pulumi.Output; /** * Create a Secretstore 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?: SecretstoreArgs, opts?: pulumi.CustomResourceOptions); } /** * Input properties used for looking up and filtering Secretstore resources. */ export interface SecretstoreState { /** * A human-readable name for the Secret Store. The value must contain only letters, numbers, dashes (-), underscores (*), or periods (.). It is important to note that changing this attribute will delete and recreate the Secret Store, and discard the current entries. You MUST first delete the associated resource*link block from your service before modifying this field. */ name?: pulumi.Input; } /** * The set of arguments for constructing a Secretstore resource. */ export interface SecretstoreArgs { /** * A human-readable name for the Secret Store. The value must contain only letters, numbers, dashes (-), underscores (*), or periods (.). It is important to note that changing this attribute will delete and recreate the Secret Store, and discard the current entries. You MUST first delete the associated resource*link block from your service before modifying this field. */ name?: pulumi.Input; } //# sourceMappingURL=secretstore.d.ts.map