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

commonMain.aws.sdk.kotlin.services.auditmanager.model.SourceKeyword.kt Maven / Gradle / Ivy

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

package aws.sdk.kotlin.services.auditmanager.model

import aws.smithy.kotlin.runtime.SdkDsl

/**
 * A keyword that relates to the control data source.
 *
 * For manual evidence, this keyword indicates if the manual evidence is a file or text.
 *
 * For automated evidence, this keyword identifies a specific CloudTrail event, Config rule, Security Hub control, or Amazon Web Services API name.
 *
 *  To learn more about the supported keywords that you can use when mapping a control data source, see the following pages in the *Audit Manager User Guide*:
 * + [Config rules supported by Audit Manager](https://docs.aws.amazon.com/audit-manager/latest/userguide/control-data-sources-config.html)
 * + [Security Hub controls supported by Audit Manager](https://docs.aws.amazon.com/audit-manager/latest/userguide/control-data-sources-ash.html)
 * + [API calls supported by Audit Manager](https://docs.aws.amazon.com/audit-manager/latest/userguide/control-data-sources-api.html)
 * + [CloudTrail event names supported by Audit Manager](https://docs.aws.amazon.com/audit-manager/latest/userguide/control-data-sources-cloudtrail.html)
 */
public class SourceKeyword private constructor(builder: Builder) {
    /**
     * The input method for the keyword.
     * + `SELECT_FROM_LIST` is used when mapping a data source for automated evidence.
     *    + When `keywordInputType` is `SELECT_FROM_LIST`, a keyword must be selected to collect automated evidence. For example, this keyword can be a CloudTrail event name, a rule name for Config, a Security Hub control, or the name of an Amazon Web Services API call.
     * + `UPLOAD_FILE` and `INPUT_TEXT` are only used when mapping a data source for manual evidence.
     *    + When `keywordInputType` is `UPLOAD_FILE`, a file must be uploaded as manual evidence.
     *    + When `keywordInputType` is `INPUT_TEXT`, text must be entered as manual evidence.
     */
    public val keywordInputType: aws.sdk.kotlin.services.auditmanager.model.KeywordInputType? = builder.keywordInputType
    /**
     * The value of the keyword that's used when mapping a control data source. For example, this can be a CloudTrail event name, a rule name for Config, a Security Hub control, or the name of an Amazon Web Services API call.
     *
     * If you’re mapping a data source to a rule in Config, the `keywordValue` that you specify depends on the type of rule:
     * + For [managed rules](https://docs.aws.amazon.com/config/latest/developerguide/evaluate-config_use-managed-rules.html), you can use the rule identifier as the `keywordValue`. You can find the rule identifier from the [list of Config managed rules](https://docs.aws.amazon.com/config/latest/developerguide/managed-rules-by-aws-config.html). For some rules, the rule identifier is different from the rule name. For example, the rule name `restricted-ssh` has the following rule identifier: `INCOMING_SSH_DISABLED`. Make sure to use the rule identifier, not the rule name. Keyword example for managed rules:
     *    + Managed rule name: [s3-bucket-acl-prohibited](https://docs.aws.amazon.com/config/latest/developerguide/s3-bucket-acl-prohibited.html)`keywordValue`: `S3_BUCKET_ACL_PROHIBITED`
     * + For [custom rules](https://docs.aws.amazon.com/config/latest/developerguide/evaluate-config_develop-rules.html), you form the `keywordValue` by adding the `Custom_` prefix to the rule name. This prefix distinguishes the custom rule from a managed rule. Keyword example for custom rules:
     *    + Custom rule name: my-custom-config-rule`keywordValue`: `Custom_my-custom-config-rule`
     * + For [service-linked rules](https://docs.aws.amazon.com/config/latest/developerguide/service-linked-awsconfig-rules.html), you form the `keywordValue` by adding the `Custom_` prefix to the rule name. In addition, you remove the suffix ID that appears at the end of the rule name. Keyword examples for service-linked rules:
     *    + Service-linked rule name: CustomRuleForAccount-conformance-pack-szsm1uv0w`keywordValue`: `Custom_CustomRuleForAccount-conformance-pack`
     *    + Service-linked rule name: OrgConfigRule-s3-bucket-versioning-enabled-dbgzf8ba`keywordValue`: `Custom_OrgConfigRule-s3-bucket-versioning-enabled`
     *
     * The `keywordValue` is case sensitive. If you enter a value incorrectly, Audit Manager might not recognize the data source mapping. As a result, you might not successfully collect evidence from that data source as intended.
     *
     * Keep in mind the following requirements, depending on the data source type that you're using.
     * + For Config:
     *    + For managed rules, make sure that the `keywordValue` is the rule identifier in `ALL_CAPS_WITH_UNDERSCORES`. For example, `CLOUDWATCH_LOG_GROUP_ENCRYPTED`. For accuracy, we recommend that you reference the list of [supported Config managed rules](https://docs.aws.amazon.com/audit-manager/latest/userguide/control-data-sources-config.html).
     *    + For custom rules, make sure that the `keywordValue` has the `Custom_` prefix followed by the custom rule name. The format of the custom rule name itself may vary. For accuracy, we recommend that you visit the [Config console](https://console.aws.amazon.com/config/) to verify your custom rule name.
     * + For Security Hub: The format varies for Security Hub control names. For accuracy, we recommend that you reference the list of [supported Security Hub controls](https://docs.aws.amazon.com/audit-manager/latest/userguide/control-data-sources-ash.html).
     * + For Amazon Web Services API calls: Make sure that the `keywordValue` is written as `serviceprefix_ActionName`. For example, `iam_ListGroups`. For accuracy, we recommend that you reference the list of [supported API calls](https://docs.aws.amazon.com/audit-manager/latest/userguide/control-data-sources-api.html).
     * + For CloudTrail: Make sure that the `keywordValue` is written as `serviceprefix_ActionName`. For example, `cloudtrail_StartLogging`. For accuracy, we recommend that you review the Amazon Web Service prefix and action names in the [Service Authorization Reference](https://docs.aws.amazon.com/service-authorization/latest/reference/reference_policies_actions-resources-contextkeys.html).
     */
    public val keywordValue: kotlin.String? = builder.keywordValue

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

    override fun toString(): kotlin.String = buildString {
        append("SourceKeyword(")
        append("keywordInputType=$keywordInputType,")
        append("keywordValue=$keywordValue")
        append(")")
    }

    override fun hashCode(): kotlin.Int {
        var result = keywordInputType?.hashCode() ?: 0
        result = 31 * result + (keywordValue?.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 SourceKeyword

        if (keywordInputType != other.keywordInputType) return false
        if (keywordValue != other.keywordValue) return false

        return true
    }

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

    @SdkDsl
    public class Builder {
        /**
         * The input method for the keyword.
         * + `SELECT_FROM_LIST` is used when mapping a data source for automated evidence.
         *    + When `keywordInputType` is `SELECT_FROM_LIST`, a keyword must be selected to collect automated evidence. For example, this keyword can be a CloudTrail event name, a rule name for Config, a Security Hub control, or the name of an Amazon Web Services API call.
         * + `UPLOAD_FILE` and `INPUT_TEXT` are only used when mapping a data source for manual evidence.
         *    + When `keywordInputType` is `UPLOAD_FILE`, a file must be uploaded as manual evidence.
         *    + When `keywordInputType` is `INPUT_TEXT`, text must be entered as manual evidence.
         */
        public var keywordInputType: aws.sdk.kotlin.services.auditmanager.model.KeywordInputType? = null
        /**
         * The value of the keyword that's used when mapping a control data source. For example, this can be a CloudTrail event name, a rule name for Config, a Security Hub control, or the name of an Amazon Web Services API call.
         *
         * If you’re mapping a data source to a rule in Config, the `keywordValue` that you specify depends on the type of rule:
         * + For [managed rules](https://docs.aws.amazon.com/config/latest/developerguide/evaluate-config_use-managed-rules.html), you can use the rule identifier as the `keywordValue`. You can find the rule identifier from the [list of Config managed rules](https://docs.aws.amazon.com/config/latest/developerguide/managed-rules-by-aws-config.html). For some rules, the rule identifier is different from the rule name. For example, the rule name `restricted-ssh` has the following rule identifier: `INCOMING_SSH_DISABLED`. Make sure to use the rule identifier, not the rule name. Keyword example for managed rules:
         *    + Managed rule name: [s3-bucket-acl-prohibited](https://docs.aws.amazon.com/config/latest/developerguide/s3-bucket-acl-prohibited.html)`keywordValue`: `S3_BUCKET_ACL_PROHIBITED`
         * + For [custom rules](https://docs.aws.amazon.com/config/latest/developerguide/evaluate-config_develop-rules.html), you form the `keywordValue` by adding the `Custom_` prefix to the rule name. This prefix distinguishes the custom rule from a managed rule. Keyword example for custom rules:
         *    + Custom rule name: my-custom-config-rule`keywordValue`: `Custom_my-custom-config-rule`
         * + For [service-linked rules](https://docs.aws.amazon.com/config/latest/developerguide/service-linked-awsconfig-rules.html), you form the `keywordValue` by adding the `Custom_` prefix to the rule name. In addition, you remove the suffix ID that appears at the end of the rule name. Keyword examples for service-linked rules:
         *    + Service-linked rule name: CustomRuleForAccount-conformance-pack-szsm1uv0w`keywordValue`: `Custom_CustomRuleForAccount-conformance-pack`
         *    + Service-linked rule name: OrgConfigRule-s3-bucket-versioning-enabled-dbgzf8ba`keywordValue`: `Custom_OrgConfigRule-s3-bucket-versioning-enabled`
         *
         * The `keywordValue` is case sensitive. If you enter a value incorrectly, Audit Manager might not recognize the data source mapping. As a result, you might not successfully collect evidence from that data source as intended.
         *
         * Keep in mind the following requirements, depending on the data source type that you're using.
         * + For Config:
         *    + For managed rules, make sure that the `keywordValue` is the rule identifier in `ALL_CAPS_WITH_UNDERSCORES`. For example, `CLOUDWATCH_LOG_GROUP_ENCRYPTED`. For accuracy, we recommend that you reference the list of [supported Config managed rules](https://docs.aws.amazon.com/audit-manager/latest/userguide/control-data-sources-config.html).
         *    + For custom rules, make sure that the `keywordValue` has the `Custom_` prefix followed by the custom rule name. The format of the custom rule name itself may vary. For accuracy, we recommend that you visit the [Config console](https://console.aws.amazon.com/config/) to verify your custom rule name.
         * + For Security Hub: The format varies for Security Hub control names. For accuracy, we recommend that you reference the list of [supported Security Hub controls](https://docs.aws.amazon.com/audit-manager/latest/userguide/control-data-sources-ash.html).
         * + For Amazon Web Services API calls: Make sure that the `keywordValue` is written as `serviceprefix_ActionName`. For example, `iam_ListGroups`. For accuracy, we recommend that you reference the list of [supported API calls](https://docs.aws.amazon.com/audit-manager/latest/userguide/control-data-sources-api.html).
         * + For CloudTrail: Make sure that the `keywordValue` is written as `serviceprefix_ActionName`. For example, `cloudtrail_StartLogging`. For accuracy, we recommend that you review the Amazon Web Service prefix and action names in the [Service Authorization Reference](https://docs.aws.amazon.com/service-authorization/latest/reference/reference_policies_actions-resources-contextkeys.html).
         */
        public var keywordValue: kotlin.String? = null

        @PublishedApi
        internal constructor()
        @PublishedApi
        internal constructor(x: aws.sdk.kotlin.services.auditmanager.model.SourceKeyword) : this() {
            this.keywordInputType = x.keywordInputType
            this.keywordValue = x.keywordValue
        }

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

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




© 2015 - 2025 Weber Informatics LLC | Privacy Policy