// *** WARNING: this file was generated by pulumi-java-gen. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***

package com.pulumi.aws.inspector2;

import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import java.lang.String;
import java.util.List;
import java.util.Objects;


public final class EnablerArgs extends com.pulumi.resources.ResourceArgs {

    public static final EnablerArgs Empty = new EnablerArgs();

    /**
     * Set of account IDs.
     * Can contain one of: the Organization&#39;s Administrator Account, or one or more Member Accounts.
     * 
     */
    @Import(name="accountIds", required=true)
    private Output<List<String>> accountIds;

    /**
     * @return Set of account IDs.
     * Can contain one of: the Organization&#39;s Administrator Account, or one or more Member Accounts.
     * 
     */
    public Output<List<String>> accountIds() {
        return this.accountIds;
    }

    /**
     * Type of resources to scan.
     * Valid values are `EC2`, `ECR`, and `LAMBDA`.
     * At least one item is required.
     * 
     */
    @Import(name="resourceTypes", required=true)
    private Output<List<String>> resourceTypes;

    /**
     * @return Type of resources to scan.
     * Valid values are `EC2`, `ECR`, and `LAMBDA`.
     * At least one item is required.
     * 
     */
    public Output<List<String>> resourceTypes() {
        return this.resourceTypes;
    }

    private EnablerArgs() {}

    private EnablerArgs(EnablerArgs $) {
        this.accountIds = $.accountIds;
        this.resourceTypes = $.resourceTypes;
    }

    public static Builder builder() {
        return new Builder();
    }
    public static Builder builder(EnablerArgs defaults) {
        return new Builder(defaults);
    }

    public static final class Builder {
        private EnablerArgs $;

        public Builder() {
            $ = new EnablerArgs();
        }

        public Builder(EnablerArgs defaults) {
            $ = new EnablerArgs(Objects.requireNonNull(defaults));
        }

        /**
         * @param accountIds Set of account IDs.
         * Can contain one of: the Organization&#39;s Administrator Account, or one or more Member Accounts.
         * 
         * @return builder
         * 
         */
        public Builder accountIds(Output<List<String>> accountIds) {
            $.accountIds = accountIds;
            return this;
        }

        /**
         * @param accountIds Set of account IDs.
         * Can contain one of: the Organization&#39;s Administrator Account, or one or more Member Accounts.
         * 
         * @return builder
         * 
         */
        public Builder accountIds(List<String> accountIds) {
            return accountIds(Output.of(accountIds));
        }

        /**
         * @param accountIds Set of account IDs.
         * Can contain one of: the Organization&#39;s Administrator Account, or one or more Member Accounts.
         * 
         * @return builder
         * 
         */
        public Builder accountIds(String... accountIds) {
            return accountIds(List.of(accountIds));
        }

        /**
         * @param resourceTypes Type of resources to scan.
         * Valid values are `EC2`, `ECR`, and `LAMBDA`.
         * At least one item is required.
         * 
         * @return builder
         * 
         */
        public Builder resourceTypes(Output<List<String>> resourceTypes) {
            $.resourceTypes = resourceTypes;
            return this;
        }

        /**
         * @param resourceTypes Type of resources to scan.
         * Valid values are `EC2`, `ECR`, and `LAMBDA`.
         * At least one item is required.
         * 
         * @return builder
         * 
         */
        public Builder resourceTypes(List<String> resourceTypes) {
            return resourceTypes(Output.of(resourceTypes));
        }

        /**
         * @param resourceTypes Type of resources to scan.
         * Valid values are `EC2`, `ECR`, and `LAMBDA`.
         * At least one item is required.
         * 
         * @return builder
         * 
         */
        public Builder resourceTypes(String... resourceTypes) {
            return resourceTypes(List.of(resourceTypes));
        }

        public EnablerArgs build() {
            $.accountIds = Objects.requireNonNull($.accountIds, "expected parameter 'accountIds' to be non-null");
            $.resourceTypes = Objects.requireNonNull($.resourceTypes, "expected parameter 'resourceTypes' to be non-null");
            return $;
        }
    }

}
