import * as pulumi from "@pulumi/pulumi"; import * as inputs from "../types/input"; import * as outputs from "../types/output"; /** * Resource for maintaining exclusive management of resource key value pairs defined in an AWS CloudFront KeyValueStore. * * > This resource takes exclusive ownership over key value pairs defined in a KeyValueStore. This includes removal of key value pairs which are not explicitly configured. To prevent persistent drift, ensure any `aws.cloudfront.KeyvaluestoreKey` resources managed alongside this resource have an equivalent `resourceKeyValuePair` argument. * * > Destruction of this resource means Terraform will no longer manage reconciliation of the configured key value pairs. It __will not__ delete the configured key value pairs from the KeyValueStore. * * ## Example Usage * * ### Basic Usage * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as aws from "@pulumi/aws"; * * const example = new aws.cloudfront.KeyValueStore("example", { * name: "ExampleKeyValueStore", * comment: "This is an example key value store", * }); * const exampleKeyvaluestoreKeysExclusive = new aws.cloudfront.KeyvaluestoreKeysExclusive("example", { * resourceKeyValuePairs: [{ * key: "Test Key", * value: "Test Value", * }], * keyValueStoreArn: example.arn, * }); * ``` * * ### Disallow Key Value Pairs * * To automatically remove any configured key value pairs, omit a `resourceKeyValuePair` block. * * > This will not __prevent__ key value pairs from being defined in a KeyValueStore via Terraform (or any other interface). This resource enables bringing key value pairs into a configured state, however, this reconciliation happens only when `apply` is proactively run. * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as aws from "@pulumi/aws"; * * const example = new aws.cloudfront.KeyvaluestoreKeysExclusive("example", {keyValueStoreArn: exampleAwsCloudfrontKeyValueStore.arn}); * ``` * * ## Import * * Using `pulumi import`, import AWS CloudFront KeyValueStore Key Value Pairs using the `keyValueStoreArn`. For example: * * ```sh * $ pulumi import aws:cloudfront/keyvaluestoreKeysExclusive:KeyvaluestoreKeysExclusive example arn:aws:cloudfront::111111111111:key-value-store/8562g61f-caba-2845-9d99-b97diwae5d3c * ``` */ export declare class KeyvaluestoreKeysExclusive extends pulumi.CustomResource { /** * Get an existing KeyvaluestoreKeysExclusive 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?: KeyvaluestoreKeysExclusiveState, opts?: pulumi.CustomResourceOptions): KeyvaluestoreKeysExclusive; /** * Returns true if the given object is an instance of KeyvaluestoreKeysExclusive. 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 KeyvaluestoreKeysExclusive; /** * ARN of the Key Value Store. * * The following arguments are optional: */ readonly keyValueStoreArn: pulumi.Output; /** * Maximum resource key values pairs that will update in a single API request. AWS has a default quota of 50 keys or a 3 MB payload, whichever is reached first. Defaults to `50`. */ readonly maxBatchSize: pulumi.Output; /** * A list of all resource key value pairs associated with the KeyValueStore. * See `resourceKeyValuePair` below. */ readonly resourceKeyValuePairs: pulumi.Output; /** * Total size of the Key Value Store in bytes. */ readonly totalSizeInBytes: pulumi.Output; /** * Create a KeyvaluestoreKeysExclusive 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: KeyvaluestoreKeysExclusiveArgs, opts?: pulumi.CustomResourceOptions); } /** * Input properties used for looking up and filtering KeyvaluestoreKeysExclusive resources. */ export interface KeyvaluestoreKeysExclusiveState { /** * ARN of the Key Value Store. * * The following arguments are optional: */ keyValueStoreArn?: pulumi.Input; /** * Maximum resource key values pairs that will update in a single API request. AWS has a default quota of 50 keys or a 3 MB payload, whichever is reached first. Defaults to `50`. */ maxBatchSize?: pulumi.Input; /** * A list of all resource key value pairs associated with the KeyValueStore. * See `resourceKeyValuePair` below. */ resourceKeyValuePairs?: pulumi.Input[] | undefined>; /** * Total size of the Key Value Store in bytes. */ totalSizeInBytes?: pulumi.Input; } /** * The set of arguments for constructing a KeyvaluestoreKeysExclusive resource. */ export interface KeyvaluestoreKeysExclusiveArgs { /** * ARN of the Key Value Store. * * The following arguments are optional: */ keyValueStoreArn: pulumi.Input; /** * Maximum resource key values pairs that will update in a single API request. AWS has a default quota of 50 keys or a 3 MB payload, whichever is reached first. Defaults to `50`. */ maxBatchSize?: pulumi.Input; /** * A list of all resource key value pairs associated with the KeyValueStore. * See `resourceKeyValuePair` below. */ resourceKeyValuePairs?: pulumi.Input[] | undefined>; } //# sourceMappingURL=keyvaluestoreKeysExclusive.d.ts.map