All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.pulumi.awsnative.s3.kotlin.AccessPointArgs.kt Maven / Gradle / Ivy

Go to download

Build cloud applications and infrastructure by combining the safety and reliability of infrastructure as code with the power of the Kotlin programming language.

There is a newer version: 1.11.0.0
Show newest version
@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.awsnative.s3.kotlin

import com.pulumi.awsnative.s3.AccessPointArgs.builder
import com.pulumi.awsnative.s3.kotlin.inputs.AccessPointPublicAccessBlockConfigurationArgs
import com.pulumi.awsnative.s3.kotlin.inputs.AccessPointPublicAccessBlockConfigurationArgsBuilder
import com.pulumi.awsnative.s3.kotlin.inputs.AccessPointVpcConfigurationArgs
import com.pulumi.awsnative.s3.kotlin.inputs.AccessPointVpcConfigurationArgsBuilder
import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiTagMarker
import com.pulumi.kotlin.applySuspend
import kotlin.Any
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.jvm.JvmName

/**
 * The AWS::S3::AccessPoint resource is an Amazon S3 resource type that you can use to access buckets.
 * @property bucket The name of the bucket that you want to associate this Access Point with.
 * @property bucketAccountId The AWS account ID associated with the S3 bucket associated with this access point.
 * @property name The name you want to assign to this Access Point. If you don't specify a name, AWS CloudFormation generates a unique ID and uses that ID for the access point name.
 * @property policy The Access Point Policy you want to apply to this access point.
 * Search the [CloudFormation User Guide](https://docs.aws.amazon.com/cloudformation/) for `AWS::S3::AccessPoint` for more information about the expected schema for this property.
 * @property publicAccessBlockConfiguration The PublicAccessBlock configuration that you want to apply to this Access Point. You can enable the configuration options in any combination. For more information about when Amazon S3 considers a bucket or object public, see https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status 'The Meaning of Public' in the Amazon Simple Storage Service Developer Guide.
 * @property vpcConfiguration If you include this field, Amazon S3 restricts access to this Access Point to requests from the specified Virtual Private Cloud (VPC).
 */
public data class AccessPointArgs(
    public val bucket: Output? = null,
    public val bucketAccountId: Output? = null,
    public val name: Output? = null,
    public val policy: Output? = null,
    public val publicAccessBlockConfiguration: Output? =
        null,
    public val vpcConfiguration: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.awsnative.s3.AccessPointArgs =
        com.pulumi.awsnative.s3.AccessPointArgs.builder()
            .bucket(bucket?.applyValue({ args0 -> args0 }))
            .bucketAccountId(bucketAccountId?.applyValue({ args0 -> args0 }))
            .name(name?.applyValue({ args0 -> args0 }))
            .policy(policy?.applyValue({ args0 -> args0 }))
            .publicAccessBlockConfiguration(
                publicAccessBlockConfiguration?.applyValue({ args0 ->
                    args0.let({ args0 -> args0.toJava() })
                }),
            )
            .vpcConfiguration(
                vpcConfiguration?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            ).build()
}

/**
 * Builder for [AccessPointArgs].
 */
@PulumiTagMarker
public class AccessPointArgsBuilder internal constructor() {
    private var bucket: Output? = null

    private var bucketAccountId: Output? = null

    private var name: Output? = null

    private var policy: Output? = null

    private var publicAccessBlockConfiguration: Output? =
        null

    private var vpcConfiguration: Output? = null

    /**
     * @param value The name of the bucket that you want to associate this Access Point with.
     */
    @JvmName("rkvwywfyqkujwndq")
    public suspend fun bucket(`value`: Output) {
        this.bucket = value
    }

    /**
     * @param value The AWS account ID associated with the S3 bucket associated with this access point.
     */
    @JvmName("usppfhxxblrbftmi")
    public suspend fun bucketAccountId(`value`: Output) {
        this.bucketAccountId = value
    }

    /**
     * @param value The name you want to assign to this Access Point. If you don't specify a name, AWS CloudFormation generates a unique ID and uses that ID for the access point name.
     */
    @JvmName("avjluhurnwgjgatf")
    public suspend fun name(`value`: Output) {
        this.name = value
    }

    /**
     * @param value The Access Point Policy you want to apply to this access point.
     * Search the [CloudFormation User Guide](https://docs.aws.amazon.com/cloudformation/) for `AWS::S3::AccessPoint` for more information about the expected schema for this property.
     */
    @JvmName("koneapkthcasbytf")
    public suspend fun policy(`value`: Output) {
        this.policy = value
    }

    /**
     * @param value The PublicAccessBlock configuration that you want to apply to this Access Point. You can enable the configuration options in any combination. For more information about when Amazon S3 considers a bucket or object public, see https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status 'The Meaning of Public' in the Amazon Simple Storage Service Developer Guide.
     */
    @JvmName("huhfebhgxdtoxihx")
    public suspend fun publicAccessBlockConfiguration(`value`: Output) {
        this.publicAccessBlockConfiguration = value
    }

    /**
     * @param value If you include this field, Amazon S3 restricts access to this Access Point to requests from the specified Virtual Private Cloud (VPC).
     */
    @JvmName("byskflagunuvcjvk")
    public suspend fun vpcConfiguration(`value`: Output) {
        this.vpcConfiguration = value
    }

    /**
     * @param value The name of the bucket that you want to associate this Access Point with.
     */
    @JvmName("sdcyhbbymukwfiaw")
    public suspend fun bucket(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.bucket = mapped
    }

    /**
     * @param value The AWS account ID associated with the S3 bucket associated with this access point.
     */
    @JvmName("xhmkiklgefawhsyu")
    public suspend fun bucketAccountId(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.bucketAccountId = mapped
    }

    /**
     * @param value The name you want to assign to this Access Point. If you don't specify a name, AWS CloudFormation generates a unique ID and uses that ID for the access point name.
     */
    @JvmName("yhoduluryeremxbo")
    public suspend fun name(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.name = mapped
    }

    /**
     * @param value The Access Point Policy you want to apply to this access point.
     * Search the [CloudFormation User Guide](https://docs.aws.amazon.com/cloudformation/) for `AWS::S3::AccessPoint` for more information about the expected schema for this property.
     */
    @JvmName("mblglwggytgsrals")
    public suspend fun policy(`value`: Any?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.policy = mapped
    }

    /**
     * @param value The PublicAccessBlock configuration that you want to apply to this Access Point. You can enable the configuration options in any combination. For more information about when Amazon S3 considers a bucket or object public, see https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status 'The Meaning of Public' in the Amazon Simple Storage Service Developer Guide.
     */
    @JvmName("rxvxjsjkgxhxrmas")
    public suspend fun publicAccessBlockConfiguration(`value`: AccessPointPublicAccessBlockConfigurationArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.publicAccessBlockConfiguration = mapped
    }

    /**
     * @param argument The PublicAccessBlock configuration that you want to apply to this Access Point. You can enable the configuration options in any combination. For more information about when Amazon S3 considers a bucket or object public, see https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status 'The Meaning of Public' in the Amazon Simple Storage Service Developer Guide.
     */
    @JvmName("qbmmsicuyasqweom")
    public suspend fun publicAccessBlockConfiguration(argument: suspend AccessPointPublicAccessBlockConfigurationArgsBuilder.() -> Unit) {
        val toBeMapped = AccessPointPublicAccessBlockConfigurationArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.publicAccessBlockConfiguration = mapped
    }

    /**
     * @param value If you include this field, Amazon S3 restricts access to this Access Point to requests from the specified Virtual Private Cloud (VPC).
     */
    @JvmName("hwjtormatasmkexh")
    public suspend fun vpcConfiguration(`value`: AccessPointVpcConfigurationArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.vpcConfiguration = mapped
    }

    /**
     * @param argument If you include this field, Amazon S3 restricts access to this Access Point to requests from the specified Virtual Private Cloud (VPC).
     */
    @JvmName("dwjgslwjbuenkgwm")
    public suspend fun vpcConfiguration(argument: suspend AccessPointVpcConfigurationArgsBuilder.() -> Unit) {
        val toBeMapped = AccessPointVpcConfigurationArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.vpcConfiguration = mapped
    }

    internal fun build(): AccessPointArgs = AccessPointArgs(
        bucket = bucket,
        bucketAccountId = bucketAccountId,
        name = name,
        policy = policy,
        publicAccessBlockConfiguration = publicAccessBlockConfiguration,
        vpcConfiguration = vpcConfiguration,
    )
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy