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

commonMain.aws.sdk.kotlin.services.fms.model.RemediationAction.kt Maven / Gradle / Ivy

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

package aws.sdk.kotlin.services.fms.model



/**
 * Information about an individual action you can take to remediate a violation.
 */
public class RemediationAction private constructor(builder: Builder) {
    /**
     * A description of a remediation action.
     */
    public val description: kotlin.String? = builder.description
    /**
     * Information about the AssociateRouteTable action in the Amazon EC2 API.
     */
    public val ec2AssociateRouteTableAction: aws.sdk.kotlin.services.fms.model.Ec2AssociateRouteTableAction? = builder.ec2AssociateRouteTableAction
    /**
     * Information about the CopyRouteTable action in the Amazon EC2 API.
     */
    public val ec2CopyRouteTableAction: aws.sdk.kotlin.services.fms.model.Ec2CopyRouteTableAction? = builder.ec2CopyRouteTableAction
    /**
     * Information about the CreateRoute action in the Amazon EC2 API.
     */
    public val ec2CreateRouteAction: aws.sdk.kotlin.services.fms.model.Ec2CreateRouteAction? = builder.ec2CreateRouteAction
    /**
     * Information about the CreateRouteTable action in the Amazon EC2 API.
     */
    public val ec2CreateRouteTableAction: aws.sdk.kotlin.services.fms.model.Ec2CreateRouteTableAction? = builder.ec2CreateRouteTableAction
    /**
     * Information about the DeleteRoute action in the Amazon EC2 API.
     */
    public val ec2DeleteRouteAction: aws.sdk.kotlin.services.fms.model.Ec2DeleteRouteAction? = builder.ec2DeleteRouteAction
    /**
     * Information about the ReplaceRoute action in the Amazon EC2 API.
     */
    public val ec2ReplaceRouteAction: aws.sdk.kotlin.services.fms.model.Ec2ReplaceRouteAction? = builder.ec2ReplaceRouteAction
    /**
     * Information about the ReplaceRouteTableAssociation action in the Amazon EC2 API.
     */
    public val ec2ReplaceRouteTableAssociationAction: aws.sdk.kotlin.services.fms.model.Ec2ReplaceRouteTableAssociationAction? = builder.ec2ReplaceRouteTableAssociationAction
    /**
     * The remedial action to take when updating a firewall configuration.
     */
    public val fmsPolicyUpdateFirewallCreationConfigAction: aws.sdk.kotlin.services.fms.model.FmsPolicyUpdateFirewallCreationConfigAction? = builder.fmsPolicyUpdateFirewallCreationConfigAction

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

    override fun toString(): kotlin.String = buildString {
        append("RemediationAction(")
        append("description=$description,")
        append("ec2AssociateRouteTableAction=$ec2AssociateRouteTableAction,")
        append("ec2CopyRouteTableAction=$ec2CopyRouteTableAction,")
        append("ec2CreateRouteAction=$ec2CreateRouteAction,")
        append("ec2CreateRouteTableAction=$ec2CreateRouteTableAction,")
        append("ec2DeleteRouteAction=$ec2DeleteRouteAction,")
        append("ec2ReplaceRouteAction=$ec2ReplaceRouteAction,")
        append("ec2ReplaceRouteTableAssociationAction=$ec2ReplaceRouteTableAssociationAction,")
        append("fmsPolicyUpdateFirewallCreationConfigAction=$fmsPolicyUpdateFirewallCreationConfigAction")
        append(")")
    }

    override fun hashCode(): kotlin.Int {
        var result = description?.hashCode() ?: 0
        result = 31 * result + (ec2AssociateRouteTableAction?.hashCode() ?: 0)
        result = 31 * result + (ec2CopyRouteTableAction?.hashCode() ?: 0)
        result = 31 * result + (ec2CreateRouteAction?.hashCode() ?: 0)
        result = 31 * result + (ec2CreateRouteTableAction?.hashCode() ?: 0)
        result = 31 * result + (ec2DeleteRouteAction?.hashCode() ?: 0)
        result = 31 * result + (ec2ReplaceRouteAction?.hashCode() ?: 0)
        result = 31 * result + (ec2ReplaceRouteTableAssociationAction?.hashCode() ?: 0)
        result = 31 * result + (fmsPolicyUpdateFirewallCreationConfigAction?.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 RemediationAction

        if (description != other.description) return false
        if (ec2AssociateRouteTableAction != other.ec2AssociateRouteTableAction) return false
        if (ec2CopyRouteTableAction != other.ec2CopyRouteTableAction) return false
        if (ec2CreateRouteAction != other.ec2CreateRouteAction) return false
        if (ec2CreateRouteTableAction != other.ec2CreateRouteTableAction) return false
        if (ec2DeleteRouteAction != other.ec2DeleteRouteAction) return false
        if (ec2ReplaceRouteAction != other.ec2ReplaceRouteAction) return false
        if (ec2ReplaceRouteTableAssociationAction != other.ec2ReplaceRouteTableAssociationAction) return false
        if (fmsPolicyUpdateFirewallCreationConfigAction != other.fmsPolicyUpdateFirewallCreationConfigAction) return false

        return true
    }

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

    public class Builder {
        /**
         * A description of a remediation action.
         */
        public var description: kotlin.String? = null
        /**
         * Information about the AssociateRouteTable action in the Amazon EC2 API.
         */
        public var ec2AssociateRouteTableAction: aws.sdk.kotlin.services.fms.model.Ec2AssociateRouteTableAction? = null
        /**
         * Information about the CopyRouteTable action in the Amazon EC2 API.
         */
        public var ec2CopyRouteTableAction: aws.sdk.kotlin.services.fms.model.Ec2CopyRouteTableAction? = null
        /**
         * Information about the CreateRoute action in the Amazon EC2 API.
         */
        public var ec2CreateRouteAction: aws.sdk.kotlin.services.fms.model.Ec2CreateRouteAction? = null
        /**
         * Information about the CreateRouteTable action in the Amazon EC2 API.
         */
        public var ec2CreateRouteTableAction: aws.sdk.kotlin.services.fms.model.Ec2CreateRouteTableAction? = null
        /**
         * Information about the DeleteRoute action in the Amazon EC2 API.
         */
        public var ec2DeleteRouteAction: aws.sdk.kotlin.services.fms.model.Ec2DeleteRouteAction? = null
        /**
         * Information about the ReplaceRoute action in the Amazon EC2 API.
         */
        public var ec2ReplaceRouteAction: aws.sdk.kotlin.services.fms.model.Ec2ReplaceRouteAction? = null
        /**
         * Information about the ReplaceRouteTableAssociation action in the Amazon EC2 API.
         */
        public var ec2ReplaceRouteTableAssociationAction: aws.sdk.kotlin.services.fms.model.Ec2ReplaceRouteTableAssociationAction? = null
        /**
         * The remedial action to take when updating a firewall configuration.
         */
        public var fmsPolicyUpdateFirewallCreationConfigAction: aws.sdk.kotlin.services.fms.model.FmsPolicyUpdateFirewallCreationConfigAction? = null

        @PublishedApi
        internal constructor()
        @PublishedApi
        internal constructor(x: aws.sdk.kotlin.services.fms.model.RemediationAction) : this() {
            this.description = x.description
            this.ec2AssociateRouteTableAction = x.ec2AssociateRouteTableAction
            this.ec2CopyRouteTableAction = x.ec2CopyRouteTableAction
            this.ec2CreateRouteAction = x.ec2CreateRouteAction
            this.ec2CreateRouteTableAction = x.ec2CreateRouteTableAction
            this.ec2DeleteRouteAction = x.ec2DeleteRouteAction
            this.ec2ReplaceRouteAction = x.ec2ReplaceRouteAction
            this.ec2ReplaceRouteTableAssociationAction = x.ec2ReplaceRouteTableAssociationAction
            this.fmsPolicyUpdateFirewallCreationConfigAction = x.fmsPolicyUpdateFirewallCreationConfigAction
        }

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

        /**
         * construct an [aws.sdk.kotlin.services.fms.model.Ec2AssociateRouteTableAction] inside the given [block]
         */
        public fun ec2AssociateRouteTableAction(block: aws.sdk.kotlin.services.fms.model.Ec2AssociateRouteTableAction.Builder.() -> kotlin.Unit) {
            this.ec2AssociateRouteTableAction = aws.sdk.kotlin.services.fms.model.Ec2AssociateRouteTableAction.invoke(block)
        }

        /**
         * construct an [aws.sdk.kotlin.services.fms.model.Ec2CopyRouteTableAction] inside the given [block]
         */
        public fun ec2CopyRouteTableAction(block: aws.sdk.kotlin.services.fms.model.Ec2CopyRouteTableAction.Builder.() -> kotlin.Unit) {
            this.ec2CopyRouteTableAction = aws.sdk.kotlin.services.fms.model.Ec2CopyRouteTableAction.invoke(block)
        }

        /**
         * construct an [aws.sdk.kotlin.services.fms.model.Ec2CreateRouteAction] inside the given [block]
         */
        public fun ec2CreateRouteAction(block: aws.sdk.kotlin.services.fms.model.Ec2CreateRouteAction.Builder.() -> kotlin.Unit) {
            this.ec2CreateRouteAction = aws.sdk.kotlin.services.fms.model.Ec2CreateRouteAction.invoke(block)
        }

        /**
         * construct an [aws.sdk.kotlin.services.fms.model.Ec2CreateRouteTableAction] inside the given [block]
         */
        public fun ec2CreateRouteTableAction(block: aws.sdk.kotlin.services.fms.model.Ec2CreateRouteTableAction.Builder.() -> kotlin.Unit) {
            this.ec2CreateRouteTableAction = aws.sdk.kotlin.services.fms.model.Ec2CreateRouteTableAction.invoke(block)
        }

        /**
         * construct an [aws.sdk.kotlin.services.fms.model.Ec2DeleteRouteAction] inside the given [block]
         */
        public fun ec2DeleteRouteAction(block: aws.sdk.kotlin.services.fms.model.Ec2DeleteRouteAction.Builder.() -> kotlin.Unit) {
            this.ec2DeleteRouteAction = aws.sdk.kotlin.services.fms.model.Ec2DeleteRouteAction.invoke(block)
        }

        /**
         * construct an [aws.sdk.kotlin.services.fms.model.Ec2ReplaceRouteAction] inside the given [block]
         */
        public fun ec2ReplaceRouteAction(block: aws.sdk.kotlin.services.fms.model.Ec2ReplaceRouteAction.Builder.() -> kotlin.Unit) {
            this.ec2ReplaceRouteAction = aws.sdk.kotlin.services.fms.model.Ec2ReplaceRouteAction.invoke(block)
        }

        /**
         * construct an [aws.sdk.kotlin.services.fms.model.Ec2ReplaceRouteTableAssociationAction] inside the given [block]
         */
        public fun ec2ReplaceRouteTableAssociationAction(block: aws.sdk.kotlin.services.fms.model.Ec2ReplaceRouteTableAssociationAction.Builder.() -> kotlin.Unit) {
            this.ec2ReplaceRouteTableAssociationAction = aws.sdk.kotlin.services.fms.model.Ec2ReplaceRouteTableAssociationAction.invoke(block)
        }

        /**
         * construct an [aws.sdk.kotlin.services.fms.model.FmsPolicyUpdateFirewallCreationConfigAction] inside the given [block]
         */
        public fun fmsPolicyUpdateFirewallCreationConfigAction(block: aws.sdk.kotlin.services.fms.model.FmsPolicyUpdateFirewallCreationConfigAction.Builder.() -> kotlin.Unit) {
            this.fmsPolicyUpdateFirewallCreationConfigAction = aws.sdk.kotlin.services.fms.model.FmsPolicyUpdateFirewallCreationConfigAction.invoke(block)
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy