com.hashicorp.cdktf.S3Backend Maven / Gradle / Ivy
package com.hashicorp.cdktf;
/**
*/
@javax.annotation.Generated(value = "jsii-pacmak/1.98.0 (build 00b106d)", date = "2024-05-27T11:46:32.229Z")
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
@software.amazon.jsii.Jsii(module = com.hashicorp.cdktf.$Module.class, fqn = "cdktf.S3Backend")
public class S3Backend extends com.hashicorp.cdktf.TerraformBackend {
protected S3Backend(final software.amazon.jsii.JsiiObjectRef objRef) {
super(objRef);
}
protected S3Backend(final software.amazon.jsii.JsiiObject.InitializationMode initializationMode) {
super(initializationMode);
}
/**
* @param scope This parameter is required.
* @param props This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public S3Backend(final @org.jetbrains.annotations.NotNull software.constructs.Construct scope, final @org.jetbrains.annotations.NotNull com.hashicorp.cdktf.S3BackendConfig props) {
super(software.amazon.jsii.JsiiObject.InitializationMode.JSII);
software.amazon.jsii.JsiiEngine.getInstance().createNewObject(this, new Object[] { java.util.Objects.requireNonNull(scope, "scope is required"), java.util.Objects.requireNonNull(props, "props is required") });
}
/**
* (experimental) Creates a TerraformRemoteState resource that accesses this backend.
*
* @param scope This parameter is required.
* @param name This parameter is required.
* @param _fromStack This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
@Override
public @org.jetbrains.annotations.NotNull com.hashicorp.cdktf.TerraformRemoteState getRemoteStateDataSource(final @org.jetbrains.annotations.NotNull software.constructs.Construct scope, final @org.jetbrains.annotations.NotNull java.lang.String name, final @org.jetbrains.annotations.NotNull java.lang.String _fromStack) {
return software.amazon.jsii.Kernel.call(this, "getRemoteStateDataSource", software.amazon.jsii.NativeType.forClass(com.hashicorp.cdktf.TerraformRemoteState.class), new Object[] { java.util.Objects.requireNonNull(scope, "scope is required"), java.util.Objects.requireNonNull(name, "name is required"), java.util.Objects.requireNonNull(_fromStack, "_fromStack is required") });
}
/**
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
@Override
protected @org.jetbrains.annotations.NotNull java.util.Map synthesizeAttributes() {
return java.util.Collections.unmodifiableMap(software.amazon.jsii.Kernel.call(this, "synthesizeAttributes", software.amazon.jsii.NativeType.mapOf(software.amazon.jsii.NativeType.forClass(java.lang.Object.class))));
}
/**
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
@Override
protected @org.jetbrains.annotations.NotNull java.util.Map synthesizeHclAttributes() {
return java.util.Collections.unmodifiableMap(software.amazon.jsii.Kernel.call(this, "synthesizeHclAttributes", software.amazon.jsii.NativeType.mapOf(software.amazon.jsii.NativeType.forClass(java.lang.Object.class))));
}
/**
* (experimental) A fluent builder for {@link com.hashicorp.cdktf.S3Backend}.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public static final class Builder implements software.amazon.jsii.Builder {
/**
* @return a new instance of {@link Builder}.
* @param scope This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public static Builder create(final software.constructs.Construct scope) {
return new Builder(scope);
}
private final software.constructs.Construct scope;
private final com.hashicorp.cdktf.S3BackendConfig.Builder props;
private Builder(final software.constructs.Construct scope) {
this.scope = scope;
this.props = new com.hashicorp.cdktf.S3BackendConfig.Builder();
}
/**
* (experimental) Name of the S3 Bucket.
*
* @return {@code this}
* @param bucket Name of the S3 Bucket. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder bucket(final java.lang.String bucket) {
this.props.bucket(bucket);
return this;
}
/**
* (experimental) Path to the state file inside the S3 Bucket.
*
* When using a non-default workspace, the state path will be /workspace_key_prefix/workspace_name/key
*
* @return {@code this}
* @param key Path to the state file inside the S3 Bucket. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder key(final java.lang.String key) {
this.props.key(key);
return this;
}
/**
* (experimental) (Optional) AWS access key.
*
* If configured, must also configure secret_key.
* This can also be sourced from
* the AWS_ACCESS_KEY_ID environment variable,
* AWS shared credentials file (e.g. ~/.aws/credentials),
* or AWS shared configuration file (e.g. ~/.aws/config).
*
* @return {@code this}
* @param accessKey (Optional) AWS access key. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder accessKey(final java.lang.String accessKey) {
this.props.accessKey(accessKey);
return this;
}
/**
* (experimental) (Optional) Canned ACL to be applied to the state file.
*
* @return {@code this}
* @param acl (Optional) Canned ACL to be applied to the state file. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder acl(final java.lang.String acl) {
this.props.acl(acl);
return this;
}
/**
* (experimental) (Optional) List of allowed AWS account IDs to prevent potential destruction of a live environment.
*
* Conflicts with forbidden_account_ids.
*
* @return {@code this}
* @param allowedAccountIds (Optional) List of allowed AWS account IDs to prevent potential destruction of a live environment. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder allowedAccountIds(final java.lang.String allowedAccountIds) {
this.props.allowedAccountIds(allowedAccountIds);
return this;
}
/**
* (experimental) Assuming an IAM Role can be configured in two ways.
*
* The preferred way is to use the argument assume_role, the other, which is deprecated, is with arguments at the top level.
*
* @return {@code this}
* @param assumeRole Assuming an IAM Role can be configured in two ways. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder assumeRole(final com.hashicorp.cdktf.S3BackendAssumeRoleConfig assumeRole) {
this.props.assumeRole(assumeRole);
return this;
}
/**
* (deprecated) (Optional) IAM Policy JSON describing further restricting permissions for the IAM Role being assumed.
*
* @return {@code this}
* @deprecated Use assumeRole.policy instead.
* @param assumeRolePolicy (Optional) IAM Policy JSON describing further restricting permissions for the IAM Role being assumed. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Deprecated)
@Deprecated
public Builder assumeRolePolicy(final java.lang.String assumeRolePolicy) {
this.props.assumeRolePolicy(assumeRolePolicy);
return this;
}
/**
* (deprecated) (Optional) Set of Amazon Resource Names (ARNs) of IAM Policies describing further restricting permissions for the IAM Role being assumed.
*
* @return {@code this}
* @deprecated Use assumeRole.policyArns instead.
* @param assumeRolePolicyArns (Optional) Set of Amazon Resource Names (ARNs) of IAM Policies describing further restricting permissions for the IAM Role being assumed. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Deprecated)
@Deprecated
public Builder assumeRolePolicyArns(final java.util.List assumeRolePolicyArns) {
this.props.assumeRolePolicyArns(assumeRolePolicyArns);
return this;
}
/**
* (deprecated) (Optional) Map of assume role session tags.
*
* @return {@code this}
* @deprecated Use assumeRole.tags instead.
* @param assumeRoleTags (Optional) Map of assume role session tags. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Deprecated)
@Deprecated
public Builder assumeRoleTags(final java.util.Map assumeRoleTags) {
this.props.assumeRoleTags(assumeRoleTags);
return this;
}
/**
* (deprecated) (Optional) Set of assume role session tag keys to pass to any subsequent sessions.
*
* @return {@code this}
* @deprecated Use assumeRole.transitiveTagKeys instead.
* @param assumeRoleTransitiveTagKeys (Optional) Set of assume role session tag keys to pass to any subsequent sessions. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Deprecated)
@Deprecated
public Builder assumeRoleTransitiveTagKeys(final java.util.List assumeRoleTransitiveTagKeys) {
this.props.assumeRoleTransitiveTagKeys(assumeRoleTransitiveTagKeys);
return this;
}
/**
* (experimental) Assume Role With Web Identity Configuration.
*
* @return {@code this}
* @param assumeRoleWithWebIdentity Assume Role With Web Identity Configuration. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder assumeRoleWithWebIdentity(final com.hashicorp.cdktf.S3BackendAssumeRoleWithWebIdentityConfig assumeRoleWithWebIdentity) {
this.props.assumeRoleWithWebIdentity(assumeRoleWithWebIdentity);
return this;
}
/**
* (experimental) (Optional) File containing custom root and intermediate certificates.
*
* Can also be set using the AWS_CA_BUNDLE environment variable.
* Setting ca_bundle in the shared config file is not supported.
*
* @return {@code this}
* @param customCaBundle (Optional) File containing custom root and intermediate certificates. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder customCaBundle(final java.lang.String customCaBundle) {
this.props.customCaBundle(customCaBundle);
return this;
}
/**
* (deprecated) (Optional) Custom endpoint for the AWS DynamoDB API.
*
* This can also be sourced from the AWS_DYNAMODB_ENDPOINT environment variable.
*
* @return {@code this}
* @deprecated Use endpoints.dynamodb instead
* @param dynamodbEndpoint (Optional) Custom endpoint for the AWS DynamoDB API. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Deprecated)
@Deprecated
public Builder dynamodbEndpoint(final java.lang.String dynamodbEndpoint) {
this.props.dynamodbEndpoint(dynamodbEndpoint);
return this;
}
/**
* (experimental) (Optional) Name of DynamoDB Table to use for state locking and consistency.
*
* The table must have a partition key named LockID with type of String.
* If not configured, state locking will be disabled.
*
* @return {@code this}
* @param dynamodbTable (Optional) Name of DynamoDB Table to use for state locking and consistency. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder dynamodbTable(final java.lang.String dynamodbTable) {
this.props.dynamodbTable(dynamodbTable);
return this;
}
/**
* (experimental) Optional) Custom endpoint URL for the EC2 Instance Metadata Service (IMDS) API.
*
* Can also be set with the AWS_EC2_METADATA_SERVICE_ENDPOINT environment variable.
*
* @return {@code this}
* @param ec2MetadataServiceEndpoint Optional) Custom endpoint URL for the EC2 Instance Metadata Service (IMDS) API. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder ec2MetadataServiceEndpoint(final java.lang.String ec2MetadataServiceEndpoint) {
this.props.ec2MetadataServiceEndpoint(ec2MetadataServiceEndpoint);
return this;
}
/**
* (experimental) (Optional) Mode to use in communicating with the metadata service.
*
* Valid values are IPv4 and IPv6.
* Can also be set with the AWS_EC2_METADATA_SERVICE_ENDPOINT_MODE environment variable.
*
* @return {@code this}
* @param ec2MetadataServiceEndpointMode (Optional) Mode to use in communicating with the metadata service. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder ec2MetadataServiceEndpointMode(final java.lang.String ec2MetadataServiceEndpointMode) {
this.props.ec2MetadataServiceEndpointMode(ec2MetadataServiceEndpointMode);
return this;
}
/**
* (experimental) (Optional) Enable server side encryption of the state file.
*
* @return {@code this}
* @param encrypt (Optional) Enable server side encryption of the state file. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder encrypt(final java.lang.Boolean encrypt) {
this.props.encrypt(encrypt);
return this;
}
/**
* (deprecated) (Optional) Custom endpoint for the AWS S3 API.
*
* This can also be sourced from the AWS_S3_ENDPOINT environment variable.
*
* @return {@code this}
* @deprecated Use endpoints.s3 instead
* @param endpoint (Optional) Custom endpoint for the AWS S3 API. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Deprecated)
@Deprecated
public Builder endpoint(final java.lang.String endpoint) {
this.props.endpoint(endpoint);
return this;
}
/**
* (experimental) (Optional) The endpoint configuration block.
*
* @return {@code this}
* @param endpoints (Optional) The endpoint configuration block. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder endpoints(final com.hashicorp.cdktf.S3BackendEndpointConfig endpoints) {
this.props.endpoints(endpoints);
return this;
}
/**
* (deprecated) (Optional) External identifier to use when assuming the role.
*
* @return {@code this}
* @deprecated Use assume_role.external_id instead.
* @param externalId (Optional) External identifier to use when assuming the role. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Deprecated)
@Deprecated
public Builder externalId(final java.lang.String externalId) {
this.props.externalId(externalId);
return this;
}
/**
* (experimental) (Optional) List of forbidden AWS account IDs to prevent potential destruction of a live environment.
*
* Conflicts with allowed_account_ids.
*
* @return {@code this}
* @param forbiddenAccountIds (Optional) List of forbidden AWS account IDs to prevent potential destruction of a live environment. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder forbiddenAccountIds(final java.lang.String forbiddenAccountIds) {
this.props.forbiddenAccountIds(forbiddenAccountIds);
return this;
}
/**
* (deprecated) (Optional) Enable path-style S3 URLs (https:/// instead of https://.).
*
* @return {@code this}
* @deprecated Use usePathStyle instead
* @param forcePathStyle (Optional) Enable path-style S3 URLs (https:/// instead of https://.). This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Deprecated)
@Deprecated
public Builder forcePathStyle(final java.lang.Boolean forcePathStyle) {
this.props.forcePathStyle(forcePathStyle);
return this;
}
/**
* (experimental) (Optional) URL of a proxy to use for HTTP requests when accessing the AWS API.
*
* Can also be set using the HTTP_PROXY or http_proxy environment variables.
*
* @return {@code this}
* @param httpProxy (Optional) URL of a proxy to use for HTTP requests when accessing the AWS API. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder httpProxy(final java.lang.String httpProxy) {
this.props.httpProxy(httpProxy);
return this;
}
/**
* (experimental) (Optional) URL of a proxy to use for HTTPS requests when accessing the AWS API.
*
* Can also be set using the HTTPS_PROXY or https_proxy environment variables.
*
* @return {@code this}
* @param httpsProxy (Optional) URL of a proxy to use for HTTPS requests when accessing the AWS API. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder httpsProxy(final java.lang.String httpsProxy) {
this.props.httpsProxy(httpsProxy);
return this;
}
/**
* (deprecated) (Optional) Custom endpoint for the AWS Identity and Access Management (IAM) API.
*
* This can also be sourced from the AWS_IAM_ENDPOINT environment variable.
*
* @return {@code this}
* @deprecated Use endpoints.iam instead
* @param iamEndpoint (Optional) Custom endpoint for the AWS Identity and Access Management (IAM) API. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Deprecated)
@Deprecated
public Builder iamEndpoint(final java.lang.String iamEndpoint) {
this.props.iamEndpoint(iamEndpoint);
return this;
}
/**
* (experimental) Optional) Whether to explicitly allow the backend to perform "insecure" SSL requests.
*
* If omitted, the default value is false.
*
* @return {@code this}
* @param insecure Optional) Whether to explicitly allow the backend to perform "insecure" SSL requests. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder insecure(final java.lang.Boolean insecure) {
this.props.insecure(insecure);
return this;
}
/**
* (experimental) (Optional) Amazon Resource Name (ARN) of a Key Management Service (KMS) Key to use for encrypting the state.
*
* Note that if this value is specified,
* Terraform will need kms:Encrypt, kms:Decrypt and kms:GenerateDataKey permissions on this KMS key.
*
* @return {@code this}
* @param kmsKeyId (Optional) Amazon Resource Name (ARN) of a Key Management Service (KMS) Key to use for encrypting the state. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder kmsKeyId(final java.lang.String kmsKeyId) {
this.props.kmsKeyId(kmsKeyId);
return this;
}
/**
* (experimental) (Optional) The maximum number of times an AWS API request is retried on retryable failure.
*
* Defaults to 5.
*
* @return {@code this}
* @param maxRetries (Optional) The maximum number of times an AWS API request is retried on retryable failure. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder maxRetries(final java.lang.Number maxRetries) {
this.props.maxRetries(maxRetries);
return this;
}
/**
* (experimental) (Optional) Comma-separated list of hosts that should not use HTTP or HTTPS proxies.
*
* Each value can be one of:
*
*
* - A domain name
* - An IP address
* - A CIDR address
* - An asterisk (*), to indicate that no proxying should be performed Domain name and IP address values can also include a port number.
* Can also be set using the NO_PROXY or no_proxy environment variables.
*
*
* @return {@code this}
* @param noProxy (Optional) Comma-separated list of hosts that should not use HTTP or HTTPS proxies. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder noProxy(final java.lang.String noProxy) {
this.props.noProxy(noProxy);
return this;
}
/**
* (experimental) (Optional) Name of AWS profile in AWS shared credentials file (e.g. ~/.aws/credentials) or AWS shared configuration file (e.g. ~/.aws/config) to use for credentials and/or configuration. This can also be sourced from the AWS_PROFILE environment variable.
*
* @return {@code this}
* @param profile (Optional) Name of AWS profile in AWS shared credentials file (e.g. ~/.aws/credentials) or AWS shared configuration file (e.g. ~/.aws/config) to use for credentials and/or configuration. This can also be sourced from the AWS_PROFILE environment variable. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder profile(final java.lang.String profile) {
this.props.profile(profile);
return this;
}
/**
* (experimental) AWS Region of the S3 Bucket and DynamoDB Table (if used).
*
* This can also
* be sourced from the AWS_DEFAULT_REGION and AWS_REGION environment
* variables.
*
* @return {@code this}
* @param region AWS Region of the S3 Bucket and DynamoDB Table (if used). This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder region(final java.lang.String region) {
this.props.region(region);
return this;
}
/**
* (experimental) (Optional) Specifies how retries are attempted.
*
* Valid values are standard and adaptive.
* Can also be configured using the AWS_RETRY_MODE environment variable or the shared config file parameter retry_mode.
*
* @return {@code this}
* @param retryMode (Optional) Specifies how retries are attempted. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder retryMode(final java.lang.String retryMode) {
this.props.retryMode(retryMode);
return this;
}
/**
* (deprecated) (Optional) Amazon Resource Name (ARN) of the IAM Role to assume.
*
* @return {@code this}
* @deprecated Use assumeRole.roleArn instead.
* @param roleArn (Optional) Amazon Resource Name (ARN) of the IAM Role to assume. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Deprecated)
@Deprecated
public Builder roleArn(final java.lang.String roleArn) {
this.props.roleArn(roleArn);
return this;
}
/**
* (experimental) (Optional) AWS secret access key.
*
* If configured, must also configure access_key.
* This can also be sourced from
* the AWS_SECRET_ACCESS_KEY environment variable,
* AWS shared credentials file (e.g. ~/.aws/credentials),
* or AWS shared configuration file (e.g. ~/.aws/config)
*
* @return {@code this}
* @param secretKey (Optional) AWS secret access key. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder secretKey(final java.lang.String secretKey) {
this.props.secretKey(secretKey);
return this;
}
/**
* (deprecated) (Optional) Session name to use when assuming the role.
*
* @return {@code this}
* @deprecated Use assumeRole.sessionName instead.
* @param sessionName (Optional) Session name to use when assuming the role. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Deprecated)
@Deprecated
public Builder sessionName(final java.lang.String sessionName) {
this.props.sessionName(sessionName);
return this;
}
/**
* (experimental) (Optional) List of paths to AWS shared configuration files.
*
* Defaults to ~/.aws/config.
*
* @return {@code this}
* @param sharedConfigFiles (Optional) List of paths to AWS shared configuration files. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder sharedConfigFiles(final java.util.List sharedConfigFiles) {
this.props.sharedConfigFiles(sharedConfigFiles);
return this;
}
/**
* (experimental) (Optional) Path to the AWS shared credentials file.
*
* Defaults to ~/.aws/credentials.
*
* @return {@code this}
* @param sharedCredentialsFile (Optional) Path to the AWS shared credentials file. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder sharedCredentialsFile(final java.lang.String sharedCredentialsFile) {
this.props.sharedCredentialsFile(sharedCredentialsFile);
return this;
}
/**
* (experimental) (Optional) List of paths to AWS shared credentials files.
*
* Defaults to ~/.aws/credentials.
*
* @return {@code this}
* @param sharedCredentialsFiles (Optional) List of paths to AWS shared credentials files. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder sharedCredentialsFiles(final java.util.List sharedCredentialsFiles) {
this.props.sharedCredentialsFiles(sharedCredentialsFiles);
return this;
}
/**
* (experimental) (Optional) Skip credentials validation via the STS API.
*
* @return {@code this}
* @param skipCredentialsValidation (Optional) Skip credentials validation via the STS API. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder skipCredentialsValidation(final java.lang.Boolean skipCredentialsValidation) {
this.props.skipCredentialsValidation(skipCredentialsValidation);
return this;
}
/**
* (experimental) (Optional) Skip usage of EC2 Metadata API.
*
* @return {@code this}
* @param skipMetadataApiCheck (Optional) Skip usage of EC2 Metadata API. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder skipMetadataApiCheck(final java.lang.Boolean skipMetadataApiCheck) {
this.props.skipMetadataApiCheck(skipMetadataApiCheck);
return this;
}
/**
* (experimental) (Optional) Skip validation of provided region name.
*
* @return {@code this}
* @param skipRegionValidation (Optional) Skip validation of provided region name. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder skipRegionValidation(final java.lang.Boolean skipRegionValidation) {
this.props.skipRegionValidation(skipRegionValidation);
return this;
}
/**
* (experimental) (Optional) Whether to skip requesting the account ID.
*
* Useful for AWS API implementations that do not have the IAM, STS API, or metadata API.
*
* @return {@code this}
* @param skipRequestingAccountId (Optional) Whether to skip requesting the account ID. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder skipRequestingAccountId(final java.lang.Boolean skipRequestingAccountId) {
this.props.skipRequestingAccountId(skipRequestingAccountId);
return this;
}
/**
* (experimental) (Optional) Do not include checksum when uploading S3 Objects.
*
* Useful for some S3-Compatible APIs.
*
* @return {@code this}
* @param skipS3Checksum (Optional) Do not include checksum when uploading S3 Objects. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder skipS3Checksum(final java.lang.Boolean skipS3Checksum) {
this.props.skipS3Checksum(skipS3Checksum);
return this;
}
/**
* (experimental) (Optional) The key to use for encrypting state with Server-Side Encryption with Customer-Provided Keys (SSE-C).
*
* This is the base64-encoded value of the key, which must decode to 256 bits.
* This can also be sourced from the AWS_SSE_CUSTOMER_KEY environment variable,
* which is recommended due to the sensitivity of the value.
* Setting it inside a terraform file will cause it to be persisted to disk in terraform.tfstate.
*
* @return {@code this}
* @param sseCustomerKey (Optional) The key to use for encrypting state with Server-Side Encryption with Customer-Provided Keys (SSE-C). This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder sseCustomerKey(final java.lang.String sseCustomerKey) {
this.props.sseCustomerKey(sseCustomerKey);
return this;
}
/**
* (deprecated) (Optional) Custom endpoint for the AWS Security Token Service (STS) API.
*
* This can also be sourced from the AWS_STS_ENDPOINT environment variable.
*
* @return {@code this}
* @deprecated Use endpoints.sts instead
* @param stsEndpoint (Optional) Custom endpoint for the AWS Security Token Service (STS) API. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Deprecated)
@Deprecated
public Builder stsEndpoint(final java.lang.String stsEndpoint) {
this.props.stsEndpoint(stsEndpoint);
return this;
}
/**
* (experimental) (Optional) AWS region for STS.
*
* If unset, AWS will use the same region for STS as other non-STS operations.
*
* @return {@code this}
* @param stsRegion (Optional) AWS region for STS. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder stsRegion(final java.lang.String stsRegion) {
this.props.stsRegion(stsRegion);
return this;
}
/**
* (experimental) (Optional) Multi-Factor Authentication (MFA) token.
*
* This can also be sourced from the AWS_SESSION_TOKEN environment variable.
*
* @return {@code this}
* @param token (Optional) Multi-Factor Authentication (MFA) token. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder token(final java.lang.String token) {
this.props.token(token);
return this;
}
/**
* (experimental) (Optional) Use the legacy authentication workflow, preferring environment variables over backend configuration.
*
* Defaults to true.
* This behavior does not align with the authentication flow of the AWS CLI or SDK's, and will be removed in the future.
*
* @return {@code this}
* @param useLegacyWorkflow (Optional) Use the legacy authentication workflow, preferring environment variables over backend configuration. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder useLegacyWorkflow(final java.lang.Boolean useLegacyWorkflow) {
this.props.useLegacyWorkflow(useLegacyWorkflow);
return this;
}
/**
* (experimental) (Optional) Enable path-style S3 URLs (https:/// instead of https://.).
*
* @return {@code this}
* @param usePathStyle (Optional) Enable path-style S3 URLs (https:/// instead of https://.). This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder usePathStyle(final java.lang.Boolean usePathStyle) {
this.props.usePathStyle(usePathStyle);
return this;
}
/**
* (experimental) (Optional) Prefix applied to the state path inside the bucket.
*
* This is only relevant when using a non-default workspace. Defaults to env:
*
* @return {@code this}
* @param workspaceKeyPrefix (Optional) Prefix applied to the state path inside the bucket. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder workspaceKeyPrefix(final java.lang.String workspaceKeyPrefix) {
this.props.workspaceKeyPrefix(workspaceKeyPrefix);
return this;
}
/**
* @return a newly built instance of {@link com.hashicorp.cdktf.S3Backend}.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
@Override
public com.hashicorp.cdktf.S3Backend build() {
return new com.hashicorp.cdktf.S3Backend(
this.scope,
this.props.build()
);
}
}
}