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

commonMain.aws.sdk.kotlin.services.route53resolver.model.PutResolverRulePolicyRequest.kt Maven / Gradle / Ivy

// Code generated by smithy-kotlin-codegen. DO NOT EDIT!

package aws.sdk.kotlin.services.route53resolver.model



public class PutResolverRulePolicyRequest private constructor(builder: Builder) {
    /**
     * The Amazon Resource Name (ARN) of the rule that you want to share with another account.
     */
    public val arn: kotlin.String? = builder.arn
    /**
     * An Identity and Access Management policy statement that lists the rules that you want to share with another Amazon Web Services account and the operations that you want the account to be able to perform. You can specify the following operations in the `Action` section of the statement:
     * + `route53resolver:GetResolverRule`
     * + `route53resolver:AssociateResolverRule`
     * + `route53resolver:DisassociateResolverRule`
     * + `route53resolver:ListResolverRules`
     * + `route53resolver:ListResolverRuleAssociations`
     *
     * In the `Resource` section of the statement, specify the ARN for the rule that you want to share with another account. Specify the same ARN that you specified in `Arn`.
     */
    public val resolverRulePolicy: kotlin.String? = builder.resolverRulePolicy

    public companion object {
        public operator fun invoke(block: Builder.() -> kotlin.Unit): aws.sdk.kotlin.services.route53resolver.model.PutResolverRulePolicyRequest = Builder().apply(block).build()
    }

    override fun toString(): kotlin.String = buildString {
        append("PutResolverRulePolicyRequest(")
        append("arn=$arn,")
        append("resolverRulePolicy=$resolverRulePolicy")
        append(")")
    }

    override fun hashCode(): kotlin.Int {
        var result = arn?.hashCode() ?: 0
        result = 31 * result + (resolverRulePolicy?.hashCode() ?: 0)
        return result
    }

    override fun equals(other: kotlin.Any?): kotlin.Boolean {
        if (this === other) return true
        if (other == null || this::class != other::class) return false

        other as PutResolverRulePolicyRequest

        if (arn != other.arn) return false
        if (resolverRulePolicy != other.resolverRulePolicy) return false

        return true
    }

    public inline fun copy(block: Builder.() -> kotlin.Unit = {}): aws.sdk.kotlin.services.route53resolver.model.PutResolverRulePolicyRequest = Builder(this).apply(block).build()

    public class Builder {
        /**
         * The Amazon Resource Name (ARN) of the rule that you want to share with another account.
         */
        public var arn: kotlin.String? = null
        /**
         * An Identity and Access Management policy statement that lists the rules that you want to share with another Amazon Web Services account and the operations that you want the account to be able to perform. You can specify the following operations in the `Action` section of the statement:
         * + `route53resolver:GetResolverRule`
         * + `route53resolver:AssociateResolverRule`
         * + `route53resolver:DisassociateResolverRule`
         * + `route53resolver:ListResolverRules`
         * + `route53resolver:ListResolverRuleAssociations`
         *
         * In the `Resource` section of the statement, specify the ARN for the rule that you want to share with another account. Specify the same ARN that you specified in `Arn`.
         */
        public var resolverRulePolicy: kotlin.String? = null

        @PublishedApi
        internal constructor()
        @PublishedApi
        internal constructor(x: aws.sdk.kotlin.services.route53resolver.model.PutResolverRulePolicyRequest) : this() {
            this.arn = x.arn
            this.resolverRulePolicy = x.resolverRulePolicy
        }

        @PublishedApi
        internal fun build(): aws.sdk.kotlin.services.route53resolver.model.PutResolverRulePolicyRequest = PutResolverRulePolicyRequest(this)

        internal fun correctErrors(): Builder {
            return this
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy