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

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

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

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



public class AssociateFirewallRuleGroupRequest private constructor(builder: Builder) {
    /**
     * A unique string that identifies the request and that allows failed requests to be retried without the risk of running the operation twice. `CreatorRequestId` can be any unique string, for example, a date/time stamp.
     */
    public val creatorRequestId: kotlin.String? = builder.creatorRequestId
    /**
     * The unique identifier of the firewall rule group.
     */
    public val firewallRuleGroupId: kotlin.String? = builder.firewallRuleGroupId
    /**
     * If enabled, this setting disallows modification or removal of the association, to help prevent against accidentally altering DNS firewall protections. When you create the association, the default setting is `DISABLED`.
     */
    public val mutationProtection: aws.sdk.kotlin.services.route53resolver.model.MutationProtectionStatus? = builder.mutationProtection
    /**
     * A name that lets you identify the association, to manage and use it.
     */
    public val name: kotlin.String? = builder.name
    /**
     * The setting that determines the processing order of the rule group among the rule groups that you associate with the specified VPC. DNS Firewall filters VPC traffic starting from the rule group with the lowest numeric priority setting.
     *
     * You must specify a unique priority for each rule group that you associate with a single VPC. To make it easier to insert rule groups later, leave space between the numbers, for example, use 101, 200, and so on. You can change the priority setting for a rule group association after you create it.
     *
     * The allowed values for `Priority` are between 100 and 9900.
     */
    public val priority: kotlin.Int? = builder.priority
    /**
     * A list of the tag keys and values that you want to associate with the rule group association.
     */
    public val tags: List? = builder.tags
    /**
     * The unique identifier of the VPC that you want to associate with the rule group.
     */
    public val vpcId: kotlin.String? = builder.vpcId

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

    override fun toString(): kotlin.String = buildString {
        append("AssociateFirewallRuleGroupRequest(")
        append("creatorRequestId=$creatorRequestId,")
        append("firewallRuleGroupId=$firewallRuleGroupId,")
        append("mutationProtection=$mutationProtection,")
        append("name=$name,")
        append("priority=$priority,")
        append("tags=$tags,")
        append("vpcId=$vpcId")
        append(")")
    }

    override fun hashCode(): kotlin.Int {
        var result = creatorRequestId?.hashCode() ?: 0
        result = 31 * result + (firewallRuleGroupId?.hashCode() ?: 0)
        result = 31 * result + (mutationProtection?.hashCode() ?: 0)
        result = 31 * result + (name?.hashCode() ?: 0)
        result = 31 * result + (priority ?: 0)
        result = 31 * result + (tags?.hashCode() ?: 0)
        result = 31 * result + (vpcId?.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 AssociateFirewallRuleGroupRequest

        if (creatorRequestId != other.creatorRequestId) return false
        if (firewallRuleGroupId != other.firewallRuleGroupId) return false
        if (mutationProtection != other.mutationProtection) return false
        if (name != other.name) return false
        if (priority != other.priority) return false
        if (tags != other.tags) return false
        if (vpcId != other.vpcId) return false

        return true
    }

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

    public class Builder {
        /**
         * A unique string that identifies the request and that allows failed requests to be retried without the risk of running the operation twice. `CreatorRequestId` can be any unique string, for example, a date/time stamp.
         */
        public var creatorRequestId: kotlin.String? = null
        /**
         * The unique identifier of the firewall rule group.
         */
        public var firewallRuleGroupId: kotlin.String? = null
        /**
         * If enabled, this setting disallows modification or removal of the association, to help prevent against accidentally altering DNS firewall protections. When you create the association, the default setting is `DISABLED`.
         */
        public var mutationProtection: aws.sdk.kotlin.services.route53resolver.model.MutationProtectionStatus? = null
        /**
         * A name that lets you identify the association, to manage and use it.
         */
        public var name: kotlin.String? = null
        /**
         * The setting that determines the processing order of the rule group among the rule groups that you associate with the specified VPC. DNS Firewall filters VPC traffic starting from the rule group with the lowest numeric priority setting.
         *
         * You must specify a unique priority for each rule group that you associate with a single VPC. To make it easier to insert rule groups later, leave space between the numbers, for example, use 101, 200, and so on. You can change the priority setting for a rule group association after you create it.
         *
         * The allowed values for `Priority` are between 100 and 9900.
         */
        public var priority: kotlin.Int? = null
        /**
         * A list of the tag keys and values that you want to associate with the rule group association.
         */
        public var tags: List? = null
        /**
         * The unique identifier of the VPC that you want to associate with the rule group.
         */
        public var vpcId: kotlin.String? = null

        @PublishedApi
        internal constructor()
        @PublishedApi
        internal constructor(x: aws.sdk.kotlin.services.route53resolver.model.AssociateFirewallRuleGroupRequest) : this() {
            this.creatorRequestId = x.creatorRequestId
            this.firewallRuleGroupId = x.firewallRuleGroupId
            this.mutationProtection = x.mutationProtection
            this.name = x.name
            this.priority = x.priority
            this.tags = x.tags
            this.vpcId = x.vpcId
        }

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

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




© 2015 - 2025 Weber Informatics LLC | Privacy Policy