import { Construct } from 'constructs'; import * as cdktf from 'cdktf'; export interface StorageObjectConfig extends cdktf.TerraformMetaArguments { /** * The access key to use when applying changes. This value can also be provided as `storage_access_key` specified in provider config (explicitly or within `shared_credentials_file`) is used. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/yandex-cloud/yandex/0.177.0/docs/resources/storage_object#access_key StorageObject#access_key} */ readonly accessKey?: string; /** * The [predefined ACL](https://yandex.cloud/docs/storage/concepts/acl#predefined_acls) to apply. Defaults to `private`. * * ~> To change ACL after creation, the service account to which used access and secret keys correspond should have `storage.admin` role, though this role is not necessary to be able to create an object with any ACL. * * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/yandex-cloud/yandex/0.177.0/docs/resources/storage_object#acl StorageObject#acl} */ readonly acl?: string; /** * The name of the containing bucket. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/yandex-cloud/yandex/0.177.0/docs/resources/storage_object#bucket StorageObject#bucket} */ readonly bucket: string; /** * Literal string value to use as the object content, which will be uploaded as UTF-8-encoded text. Conflicts with `source` and `content_base64`. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/yandex-cloud/yandex/0.177.0/docs/resources/storage_object#content StorageObject#content} */ readonly content?: string; /** * Base64-encoded data that will be decoded and uploaded as raw bytes for the object content. This allows safely uploading non-UTF8 binary data, but is recommended only for small content such as the result of the `gzipbase64` function with small text strings. For larger objects, use `source` to stream the content from a disk file. Conflicts with `source` and `content`. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/yandex-cloud/yandex/0.177.0/docs/resources/storage_object#content_base64 StorageObject#content_base64} */ readonly contentBase64?: string; /** * A standard MIME type describing the format of the object data, e.g. `application/octet-stream`. All Valid MIME Types are valid for this input. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/yandex-cloud/yandex/0.177.0/docs/resources/storage_object#content_type StorageObject#content_type} */ readonly contentType?: string; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/yandex-cloud/yandex/0.177.0/docs/resources/storage_object#id StorageObject#id} * * Please be aware that the id field is automatically added to all resources in Terraform providers using a Terraform provider SDK version below 2. * If you experience problems setting this value it might not be settable. Please take a look at the provider documentation to ensure it should be settable. */ readonly id?: string; /** * The name of the object once it is in the bucket. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/yandex-cloud/yandex/0.177.0/docs/resources/storage_object#key StorageObject#key} */ readonly key: string; /** * Specifies a [legal hold status](https://yandex.cloud/docs/storage/concepts/object-lock#types) of an object. Requires `object_lock_configuration` to be enabled on a bucket. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/yandex-cloud/yandex/0.177.0/docs/resources/storage_object#object_lock_legal_hold_status StorageObject#object_lock_legal_hold_status} */ readonly objectLockLegalHoldStatus?: string; /** * Specifies a type of object lock. One of `["GOVERNANCE", "COMPLIANCE"]`. It must be set simultaneously with `object_lock_retain_until_date`. Requires `object_lock_configuration` to be enabled on a bucket. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/yandex-cloud/yandex/0.177.0/docs/resources/storage_object#object_lock_mode StorageObject#object_lock_mode} */ readonly objectLockMode?: string; /** * Specifies date and time in RTC3339 format until which an object is to be locked. It must be set simultaneously with `object_lock_mode`. Requires `object_lock_configuration` to be enabled on a bucket. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/yandex-cloud/yandex/0.177.0/docs/resources/storage_object#object_lock_retain_until_date StorageObject#object_lock_retain_until_date} */ readonly objectLockRetainUntilDate?: string; /** * The secret key to use when applying changes. This value can also be provided as `storage_secret_key` specified in provider config (explicitly or within `shared_credentials_file`) is used. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/yandex-cloud/yandex/0.177.0/docs/resources/storage_object#secret_key StorageObject#secret_key} */ readonly secretKey?: string; /** * The path to a file that will be read and uploaded as raw bytes for the object content. Conflicts with `content` and `content_base64`. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/yandex-cloud/yandex/0.177.0/docs/resources/storage_object#source StorageObject#source} */ readonly source?: string; /** * Used to trigger object update when the source content changes. So the only meaningful value is `filemd5("path/to/source"). The value is only stored in state and not saved by Yandex Storage. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/yandex-cloud/yandex/0.177.0/docs/resources/storage_object#source_hash StorageObject#source_hash} */ readonly sourceHash?: string; /** * The `tags` object for setting tags (or labels) for bucket. See [Tags](https://yandex.cloud/docs/storage/concepts/tags) for more information. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/yandex-cloud/yandex/0.177.0/docs/resources/storage_object#tags StorageObject#tags} */ readonly tags?: { [key: string]: string; }; } /** * Represents a {@link https://registry.terraform.io/providers/yandex-cloud/yandex/0.177.0/docs/resources/storage_object yandex_storage_object} */ export declare class StorageObject extends cdktf.TerraformResource { static readonly tfResourceType = "yandex_storage_object"; /** * Generates CDKTF code for importing a StorageObject resource upon running "cdktf plan " * @param scope The scope in which to define this construct * @param importToId The construct id used in the generated config for the StorageObject to import * @param importFromId The id of the existing StorageObject that should be imported. Refer to the {@link https://registry.terraform.io/providers/yandex-cloud/yandex/0.177.0/docs/resources/storage_object#import import section} in the documentation of this resource for the id to use * @param provider? Optional instance of the provider where the StorageObject to import is found */ static generateConfigForImport(scope: Construct, importToId: string, importFromId: string, provider?: cdktf.TerraformProvider): any; /** * Create a new {@link https://registry.terraform.io/providers/yandex-cloud/yandex/0.177.0/docs/resources/storage_object yandex_storage_object} Resource * * @param scope The scope in which to define this construct * @param id The scoped construct ID. Must be unique amongst siblings in the same scope * @param options StorageObjectConfig */ constructor(scope: Construct, id: string, config: StorageObjectConfig); private _accessKey?; get accessKey(): string; set accessKey(value: string); resetAccessKey(): void; get accessKeyInput(): string; private _acl?; get acl(): string; set acl(value: string); resetAcl(): void; get aclInput(): string; private _bucket?; get bucket(): string; set bucket(value: string); get bucketInput(): string; private _content?; get content(): string; set content(value: string); resetContent(): void; get contentInput(): string; private _contentBase64?; get contentBase64(): string; set contentBase64(value: string); resetContentBase64(): void; get contentBase64Input(): string; private _contentType?; get contentType(): string; set contentType(value: string); resetContentType(): void; get contentTypeInput(): string; private _id?; get id(): string; set id(value: string); resetId(): void; get idInput(): string; private _key?; get key(): string; set key(value: string); get keyInput(): string; private _objectLockLegalHoldStatus?; get objectLockLegalHoldStatus(): string; set objectLockLegalHoldStatus(value: string); resetObjectLockLegalHoldStatus(): void; get objectLockLegalHoldStatusInput(): string; private _objectLockMode?; get objectLockMode(): string; set objectLockMode(value: string); resetObjectLockMode(): void; get objectLockModeInput(): string; private _objectLockRetainUntilDate?; get objectLockRetainUntilDate(): string; set objectLockRetainUntilDate(value: string); resetObjectLockRetainUntilDate(): void; get objectLockRetainUntilDateInput(): string; private _secretKey?; get secretKey(): string; set secretKey(value: string); resetSecretKey(): void; get secretKeyInput(): string; private _source?; get source(): string; set source(value: string); resetSource(): void; get sourceInput(): string; private _sourceHash?; get sourceHash(): string; set sourceHash(value: string); resetSourceHash(): void; get sourceHashInput(): string; private _tags?; get tags(): { [key: string]: string; }; set tags(value: { [key: string]: string; }); resetTags(): void; get tagsInput(): { [key: string]: string; }; protected synthesizeAttributes(): { [name: string]: any; }; protected synthesizeHclAttributes(): { [name: string]: any; }; }