com.pulumi.awsnative.s3.kotlin.outputs.GetBucketResult.kt Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of pulumi-aws-native-kotlin Show documentation
Show all versions of pulumi-aws-native-kotlin Show documentation
Build cloud applications and infrastructure by combining the safety and reliability of infrastructure as code with the power of the Kotlin programming language.
@file:Suppress("NAME_SHADOWING", "DEPRECATION")
package com.pulumi.awsnative.s3.kotlin.outputs
import com.pulumi.awsnative.kotlin.outputs.Tag
import kotlin.Boolean
import kotlin.String
import kotlin.Suppress
import kotlin.collections.List
/**
*
* @property accelerateConfiguration Configures the transfer acceleration state for an Amazon S3 bucket. For more information, see [Amazon S3 Transfer Acceleration](https://docs.aws.amazon.com/AmazonS3/latest/dev/transfer-acceleration.html) in the *Amazon S3 User Guide*.
* @property analyticsConfigurations Specifies the configuration and any analyses for the analytics filter of an Amazon S3 bucket.
* @property arn Returns the Amazon Resource Name (ARN) of the specified bucket.
* Example: `arn:aws:s3:::DOC-EXAMPLE-BUCKET`
* @property bucketEncryption Specifies default encryption for a bucket using server-side encryption with Amazon S3-managed keys (SSE-S3), AWS KMS-managed keys (SSE-KMS), or dual-layer server-side encryption with KMS-managed keys (DSSE-KMS). For information about the Amazon S3 default encryption feature, see [Amazon S3 Default Encryption for S3 Buckets](https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html) in the *Amazon S3 User Guide*.
* @property corsConfiguration Describes the cross-origin access configuration for objects in an Amazon S3 bucket. For more information, see [Enabling Cross-Origin Resource Sharing](https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html) in the *Amazon S3 User Guide*.
* @property domainName Returns the IPv4 DNS name of the specified bucket.
* Example: `DOC-EXAMPLE-BUCKET.s3.amazonaws.com`
* @property dualStackDomainName Returns the IPv6 DNS name of the specified bucket.
* Example: `DOC-EXAMPLE-BUCKET.s3.dualstack.us-east-2.amazonaws.com`
* For more information about dual-stack endpoints, see [Using Amazon S3 Dual-Stack Endpoints](https://docs.aws.amazon.com/AmazonS3/latest/dev/dual-stack-endpoints.html) .
* @property intelligentTieringConfigurations Defines how Amazon S3 handles Intelligent-Tiering storage.
* @property inventoryConfigurations Specifies the inventory configuration for an Amazon S3 bucket. For more information, see [GET Bucket inventory](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGETInventoryConfig.html) in the *Amazon S3 API Reference*.
* @property lifecycleConfiguration Specifies the lifecycle configuration for objects in an Amazon S3 bucket. For more information, see [Object Lifecycle Management](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html) in the *Amazon S3 User Guide*.
* @property loggingConfiguration Settings that define where logs are stored.
* @property metricsConfigurations Specifies a metrics configuration for the CloudWatch request metrics (specified by the metrics configuration ID) from an Amazon S3 bucket. If you're updating an existing metrics configuration, note that this is a full replacement of the existing metrics configuration. If you don't include the elements you want to keep, they are erased. For more information, see [PutBucketMetricsConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTMetricConfiguration.html).
* @property notificationConfiguration Configuration that defines how Amazon S3 handles bucket notifications.
* @property objectLockConfiguration This operation is not supported by directory buckets.
* Places an Object Lock configuration on the specified bucket. The rule specified in the Object Lock configuration will be applied by default to every new object placed in the specified bucket. For more information, see [Locking Objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html).
* + The ``DefaultRetention`` settings require both a mode and a period.
* + The ``DefaultRetention`` period can be either ``Days`` or ``Years`` but you must select one. You cannot specify ``Days`` and ``Years`` at the same time.
* + You can enable Object Lock for new or existing buckets. For more information, see [Configuring Object Lock](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lock-configure.html).
* @property objectLockEnabled Indicates whether this bucket has an Object Lock configuration enabled. Enable ``ObjectLockEnabled`` when you apply ``ObjectLockConfiguration`` to a bucket.
* @property ownershipControls Configuration that defines how Amazon S3 handles Object Ownership rules.
* @property publicAccessBlockConfiguration Configuration that defines how Amazon S3 handles public access.
* @property regionalDomainName Returns the regional domain name of the specified bucket.
* Example: `DOC-EXAMPLE-BUCKET.s3.us-east-2.amazonaws.com`
* @property replicationConfiguration Configuration for replicating objects in an S3 bucket. To enable replication, you must also enable versioning by using the ``VersioningConfiguration`` property.
* Amazon S3 can store replicated objects in a single destination bucket or multiple destination buckets. The destination bucket or buckets must already exist.
* @property tags An arbitrary set of tags (key-value pairs) for this S3 bucket.
* @property versioningConfiguration Enables multiple versions of all objects in this bucket. You might enable versioning to prevent objects from being deleted or overwritten by mistake or to archive objects so that you can retrieve previous versions of them.
* @property websiteConfiguration Information used to configure the bucket as a static website. For more information, see [Hosting Websites on Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html).
* @property websiteUrl Returns the Amazon S3 website endpoint for the specified bucket.
* Example (IPv4): `http://DOC-EXAMPLE-BUCKET.s3-website.us-east-2.amazonaws.com`
* Example (IPv6): `http://DOC-EXAMPLE-BUCKET.s3.dualstack.us-east-2.amazonaws.com`
*/
public data class GetBucketResult(
public val accelerateConfiguration: BucketAccelerateConfiguration? = null,
public val analyticsConfigurations: List? = null,
public val arn: String? = null,
public val bucketEncryption: BucketEncryption? = null,
public val corsConfiguration: BucketCorsConfiguration? = null,
public val domainName: String? = null,
public val dualStackDomainName: String? = null,
public val intelligentTieringConfigurations: List? = null,
public val inventoryConfigurations: List? = null,
public val lifecycleConfiguration: BucketLifecycleConfiguration? = null,
public val loggingConfiguration: BucketLoggingConfiguration? = null,
public val metricsConfigurations: List? = null,
public val notificationConfiguration: BucketNotificationConfiguration? = null,
public val objectLockConfiguration: BucketObjectLockConfiguration? = null,
public val objectLockEnabled: Boolean? = null,
public val ownershipControls: BucketOwnershipControls? = null,
public val publicAccessBlockConfiguration: BucketPublicAccessBlockConfiguration? = null,
public val regionalDomainName: String? = null,
public val replicationConfiguration: BucketReplicationConfiguration? = null,
public val tags: List? = null,
public val versioningConfiguration: BucketVersioningConfiguration? = null,
public val websiteConfiguration: BucketWebsiteConfiguration? = null,
public val websiteUrl: String? = null,
) {
public companion object {
public fun toKotlin(javaType: com.pulumi.awsnative.s3.outputs.GetBucketResult): GetBucketResult = GetBucketResult(
accelerateConfiguration = javaType.accelerateConfiguration().map({ args0 ->
args0.let({ args0 ->
com.pulumi.awsnative.s3.kotlin.outputs.BucketAccelerateConfiguration.Companion.toKotlin(args0)
})
}).orElse(null),
analyticsConfigurations = javaType.analyticsConfigurations().map({ args0 ->
args0.let({ args0 ->
com.pulumi.awsnative.s3.kotlin.outputs.BucketAnalyticsConfiguration.Companion.toKotlin(args0)
})
}),
arn = javaType.arn().map({ args0 -> args0 }).orElse(null),
bucketEncryption = javaType.bucketEncryption().map({ args0 ->
args0.let({ args0 ->
com.pulumi.awsnative.s3.kotlin.outputs.BucketEncryption.Companion.toKotlin(args0)
})
}).orElse(null),
corsConfiguration = javaType.corsConfiguration().map({ args0 ->
args0.let({ args0 ->
com.pulumi.awsnative.s3.kotlin.outputs.BucketCorsConfiguration.Companion.toKotlin(args0)
})
}).orElse(null),
domainName = javaType.domainName().map({ args0 -> args0 }).orElse(null),
dualStackDomainName = javaType.dualStackDomainName().map({ args0 -> args0 }).orElse(null),
intelligentTieringConfigurations = javaType.intelligentTieringConfigurations().map({ args0 ->
args0.let({ args0 ->
com.pulumi.awsnative.s3.kotlin.outputs.BucketIntelligentTieringConfiguration.Companion.toKotlin(args0)
})
}),
inventoryConfigurations = javaType.inventoryConfigurations().map({ args0 ->
args0.let({ args0 ->
com.pulumi.awsnative.s3.kotlin.outputs.BucketInventoryConfiguration.Companion.toKotlin(args0)
})
}),
lifecycleConfiguration = javaType.lifecycleConfiguration().map({ args0 ->
args0.let({ args0 ->
com.pulumi.awsnative.s3.kotlin.outputs.BucketLifecycleConfiguration.Companion.toKotlin(args0)
})
}).orElse(null),
loggingConfiguration = javaType.loggingConfiguration().map({ args0 ->
args0.let({ args0 ->
com.pulumi.awsnative.s3.kotlin.outputs.BucketLoggingConfiguration.Companion.toKotlin(args0)
})
}).orElse(null),
metricsConfigurations = javaType.metricsConfigurations().map({ args0 ->
args0.let({ args0 ->
com.pulumi.awsnative.s3.kotlin.outputs.BucketMetricsConfiguration.Companion.toKotlin(args0)
})
}),
notificationConfiguration = javaType.notificationConfiguration().map({ args0 ->
args0.let({ args0 ->
com.pulumi.awsnative.s3.kotlin.outputs.BucketNotificationConfiguration.Companion.toKotlin(args0)
})
}).orElse(null),
objectLockConfiguration = javaType.objectLockConfiguration().map({ args0 ->
args0.let({ args0 ->
com.pulumi.awsnative.s3.kotlin.outputs.BucketObjectLockConfiguration.Companion.toKotlin(args0)
})
}).orElse(null),
objectLockEnabled = javaType.objectLockEnabled().map({ args0 -> args0 }).orElse(null),
ownershipControls = javaType.ownershipControls().map({ args0 ->
args0.let({ args0 ->
com.pulumi.awsnative.s3.kotlin.outputs.BucketOwnershipControls.Companion.toKotlin(args0)
})
}).orElse(null),
publicAccessBlockConfiguration = javaType.publicAccessBlockConfiguration().map({ args0 ->
args0.let({ args0 ->
com.pulumi.awsnative.s3.kotlin.outputs.BucketPublicAccessBlockConfiguration.Companion.toKotlin(args0)
})
}).orElse(null),
regionalDomainName = javaType.regionalDomainName().map({ args0 -> args0 }).orElse(null),
replicationConfiguration = javaType.replicationConfiguration().map({ args0 ->
args0.let({ args0 ->
com.pulumi.awsnative.s3.kotlin.outputs.BucketReplicationConfiguration.Companion.toKotlin(args0)
})
}).orElse(null),
tags = javaType.tags().map({ args0 ->
args0.let({ args0 ->
com.pulumi.awsnative.kotlin.outputs.Tag.Companion.toKotlin(args0)
})
}),
versioningConfiguration = javaType.versioningConfiguration().map({ args0 ->
args0.let({ args0 ->
com.pulumi.awsnative.s3.kotlin.outputs.BucketVersioningConfiguration.Companion.toKotlin(args0)
})
}).orElse(null),
websiteConfiguration = javaType.websiteConfiguration().map({ args0 ->
args0.let({ args0 ->
com.pulumi.awsnative.s3.kotlin.outputs.BucketWebsiteConfiguration.Companion.toKotlin(args0)
})
}).orElse(null),
websiteUrl = javaType.websiteUrl().map({ args0 -> args0 }).orElse(null),
)
}
}