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

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

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

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



/**
 * Defines the resources that the Firewall Manager administrator can manage. For more information about administrative scope, see [Managing Firewall Manager administrators](https://docs.aws.amazon.com/waf/latest/developerguide/fms-administrators.html) in the *Firewall Manager Developer Guide*.
 */
public class AdminScope private constructor(builder: Builder) {
    /**
     * Defines the accounts that the specified Firewall Manager administrator can apply policies to.
     */
    public val accountScope: aws.sdk.kotlin.services.fms.model.AccountScope? = builder.accountScope
    /**
     * Defines the Organizations organizational units that the specified Firewall Manager administrator can apply policies to. For more information about OUs in Organizations, see [Managing organizational units (OUs) ](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_ous.html) in the *Organizations User Guide*.
     */
    public val organizationalUnitScope: aws.sdk.kotlin.services.fms.model.OrganizationalUnitScope? = builder.organizationalUnitScope
    /**
     * Defines the Firewall Manager policy types that the specified Firewall Manager administrator can create and manage.
     */
    public val policyTypeScope: aws.sdk.kotlin.services.fms.model.PolicyTypeScope? = builder.policyTypeScope
    /**
     * Defines the Amazon Web Services Regions that the specified Firewall Manager administrator can perform actions in.
     */
    public val regionScope: aws.sdk.kotlin.services.fms.model.RegionScope? = builder.regionScope

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

    override fun toString(): kotlin.String = buildString {
        append("AdminScope(")
        append("accountScope=$accountScope,")
        append("organizationalUnitScope=$organizationalUnitScope,")
        append("policyTypeScope=$policyTypeScope,")
        append("regionScope=$regionScope")
        append(")")
    }

    override fun hashCode(): kotlin.Int {
        var result = accountScope?.hashCode() ?: 0
        result = 31 * result + (organizationalUnitScope?.hashCode() ?: 0)
        result = 31 * result + (policyTypeScope?.hashCode() ?: 0)
        result = 31 * result + (regionScope?.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 AdminScope

        if (accountScope != other.accountScope) return false
        if (organizationalUnitScope != other.organizationalUnitScope) return false
        if (policyTypeScope != other.policyTypeScope) return false
        if (regionScope != other.regionScope) return false

        return true
    }

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

    public class Builder {
        /**
         * Defines the accounts that the specified Firewall Manager administrator can apply policies to.
         */
        public var accountScope: aws.sdk.kotlin.services.fms.model.AccountScope? = null
        /**
         * Defines the Organizations organizational units that the specified Firewall Manager administrator can apply policies to. For more information about OUs in Organizations, see [Managing organizational units (OUs) ](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_ous.html) in the *Organizations User Guide*.
         */
        public var organizationalUnitScope: aws.sdk.kotlin.services.fms.model.OrganizationalUnitScope? = null
        /**
         * Defines the Firewall Manager policy types that the specified Firewall Manager administrator can create and manage.
         */
        public var policyTypeScope: aws.sdk.kotlin.services.fms.model.PolicyTypeScope? = null
        /**
         * Defines the Amazon Web Services Regions that the specified Firewall Manager administrator can perform actions in.
         */
        public var regionScope: aws.sdk.kotlin.services.fms.model.RegionScope? = null

        @PublishedApi
        internal constructor()
        @PublishedApi
        internal constructor(x: aws.sdk.kotlin.services.fms.model.AdminScope) : this() {
            this.accountScope = x.accountScope
            this.organizationalUnitScope = x.organizationalUnitScope
            this.policyTypeScope = x.policyTypeScope
            this.regionScope = x.regionScope
        }

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

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

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

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

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




© 2015 - 2025 Weber Informatics LLC | Privacy Policy