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

com.pulumi.azurenative.security.inputs.ExtensionArgs Maven / Gradle / Ivy

There is a newer version: 2.82.0
Show newest version
// *** 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.azurenative.security.inputs;

import com.pulumi.azurenative.security.enums.IsEnabled;
import com.pulumi.core.Either;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.Object;
import java.lang.String;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


/**
 * A plan's extension properties
 * 
 */
public final class ExtensionArgs extends com.pulumi.resources.ResourceArgs {

    public static final ExtensionArgs Empty = new ExtensionArgs();

    /**
     * Property values associated with the extension.
     * 
     */
    @Import(name="additionalExtensionProperties")
    private @Nullable Output additionalExtensionProperties;

    /**
     * @return Property values associated with the extension.
     * 
     */
    public Optional> additionalExtensionProperties() {
        return Optional.ofNullable(this.additionalExtensionProperties);
    }

    /**
     * Indicates whether the extension is enabled.
     * 
     */
    @Import(name="isEnabled", required=true)
    private Output> isEnabled;

    /**
     * @return Indicates whether the extension is enabled.
     * 
     */
    public Output> isEnabled() {
        return this.isEnabled;
    }

    /**
     * The extension name. Supported values are: <br><br>**AgentlessDiscoveryForKubernetes** - API-based discovery of information about Kubernetes cluster architecture, workload objects, and setup. Required for Kubernetes inventory, identity and network exposure detection, attack path analysis and risk hunting as part of the cloud security explorer.
     * Available for CloudPosture plan.<br><br>**OnUploadMalwareScanning** - Limits the GB to be scanned per month for each storage account within the subscription. Once this limit reached on a given storage account, Blobs won't be scanned during current calendar month.
     * Available for StorageAccounts plan.<br><br>**SensitiveDataDiscovery** - Sensitive data discovery identifies Blob storage container with sensitive data such as credentials, credit cards, and more, to help prioritize and investigate security events.
     * Available for StorageAccounts and CloudPosture plans.<br><br>**ContainerRegistriesVulnerabilityAssessments** - Provides vulnerability management for images stored in your container registries.
     * Available for CloudPosture and Containers plans.
     * 
     */
    @Import(name="name", required=true)
    private Output name;

    /**
     * @return The extension name. Supported values are: <br><br>**AgentlessDiscoveryForKubernetes** - API-based discovery of information about Kubernetes cluster architecture, workload objects, and setup. Required for Kubernetes inventory, identity and network exposure detection, attack path analysis and risk hunting as part of the cloud security explorer.
     * Available for CloudPosture plan.<br><br>**OnUploadMalwareScanning** - Limits the GB to be scanned per month for each storage account within the subscription. Once this limit reached on a given storage account, Blobs won't be scanned during current calendar month.
     * Available for StorageAccounts plan.<br><br>**SensitiveDataDiscovery** - Sensitive data discovery identifies Blob storage container with sensitive data such as credentials, credit cards, and more, to help prioritize and investigate security events.
     * Available for StorageAccounts and CloudPosture plans.<br><br>**ContainerRegistriesVulnerabilityAssessments** - Provides vulnerability management for images stored in your container registries.
     * Available for CloudPosture and Containers plans.
     * 
     */
    public Output name() {
        return this.name;
    }

    private ExtensionArgs() {}

    private ExtensionArgs(ExtensionArgs $) {
        this.additionalExtensionProperties = $.additionalExtensionProperties;
        this.isEnabled = $.isEnabled;
        this.name = $.name;
    }

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

    public static final class Builder {
        private ExtensionArgs $;

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

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

        /**
         * @param additionalExtensionProperties Property values associated with the extension.
         * 
         * @return builder
         * 
         */
        public Builder additionalExtensionProperties(@Nullable Output additionalExtensionProperties) {
            $.additionalExtensionProperties = additionalExtensionProperties;
            return this;
        }

        /**
         * @param additionalExtensionProperties Property values associated with the extension.
         * 
         * @return builder
         * 
         */
        public Builder additionalExtensionProperties(Object additionalExtensionProperties) {
            return additionalExtensionProperties(Output.of(additionalExtensionProperties));
        }

        /**
         * @param isEnabled Indicates whether the extension is enabled.
         * 
         * @return builder
         * 
         */
        public Builder isEnabled(Output> isEnabled) {
            $.isEnabled = isEnabled;
            return this;
        }

        /**
         * @param isEnabled Indicates whether the extension is enabled.
         * 
         * @return builder
         * 
         */
        public Builder isEnabled(Either isEnabled) {
            return isEnabled(Output.of(isEnabled));
        }

        /**
         * @param isEnabled Indicates whether the extension is enabled.
         * 
         * @return builder
         * 
         */
        public Builder isEnabled(String isEnabled) {
            return isEnabled(Either.ofLeft(isEnabled));
        }

        /**
         * @param isEnabled Indicates whether the extension is enabled.
         * 
         * @return builder
         * 
         */
        public Builder isEnabled(IsEnabled isEnabled) {
            return isEnabled(Either.ofRight(isEnabled));
        }

        /**
         * @param name The extension name. Supported values are: <br><br>**AgentlessDiscoveryForKubernetes** - API-based discovery of information about Kubernetes cluster architecture, workload objects, and setup. Required for Kubernetes inventory, identity and network exposure detection, attack path analysis and risk hunting as part of the cloud security explorer.
         * Available for CloudPosture plan.<br><br>**OnUploadMalwareScanning** - Limits the GB to be scanned per month for each storage account within the subscription. Once this limit reached on a given storage account, Blobs won't be scanned during current calendar month.
         * Available for StorageAccounts plan.<br><br>**SensitiveDataDiscovery** - Sensitive data discovery identifies Blob storage container with sensitive data such as credentials, credit cards, and more, to help prioritize and investigate security events.
         * Available for StorageAccounts and CloudPosture plans.<br><br>**ContainerRegistriesVulnerabilityAssessments** - Provides vulnerability management for images stored in your container registries.
         * Available for CloudPosture and Containers plans.
         * 
         * @return builder
         * 
         */
        public Builder name(Output name) {
            $.name = name;
            return this;
        }

        /**
         * @param name The extension name. Supported values are: <br><br>**AgentlessDiscoveryForKubernetes** - API-based discovery of information about Kubernetes cluster architecture, workload objects, and setup. Required for Kubernetes inventory, identity and network exposure detection, attack path analysis and risk hunting as part of the cloud security explorer.
         * Available for CloudPosture plan.<br><br>**OnUploadMalwareScanning** - Limits the GB to be scanned per month for each storage account within the subscription. Once this limit reached on a given storage account, Blobs won't be scanned during current calendar month.
         * Available for StorageAccounts plan.<br><br>**SensitiveDataDiscovery** - Sensitive data discovery identifies Blob storage container with sensitive data such as credentials, credit cards, and more, to help prioritize and investigate security events.
         * Available for StorageAccounts and CloudPosture plans.<br><br>**ContainerRegistriesVulnerabilityAssessments** - Provides vulnerability management for images stored in your container registries.
         * Available for CloudPosture and Containers plans.
         * 
         * @return builder
         * 
         */
        public Builder name(String name) {
            return name(Output.of(name));
        }

        public ExtensionArgs build() {
            if ($.isEnabled == null) {
                throw new MissingRequiredPropertyException("ExtensionArgs", "isEnabled");
            }
            if ($.name == null) {
                throw new MissingRequiredPropertyException("ExtensionArgs", "name");
            }
            return $;
        }
    }

}