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

com.pulumi.azurenative.sql.ServerVulnerabilityAssessmentArgs Maven / Gradle / Ivy

// *** 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.sql;

import com.pulumi.azurenative.sql.inputs.VulnerabilityAssessmentRecurringScansPropertiesArgs;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.String;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


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

    public static final ServerVulnerabilityAssessmentArgs Empty = new ServerVulnerabilityAssessmentArgs();

    /**
     * The recurring scans settings
     * 
     */
    @Import(name="recurringScans")
    private @Nullable Output recurringScans;

    /**
     * @return The recurring scans settings
     * 
     */
    public Optional> recurringScans() {
        return Optional.ofNullable(this.recurringScans);
    }

    /**
     * The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.
     * 
     */
    @Import(name="resourceGroupName", required=true)
    private Output resourceGroupName;

    /**
     * @return The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.
     * 
     */
    public Output resourceGroupName() {
        return this.resourceGroupName;
    }

    /**
     * The name of the server for which the vulnerability assessment is defined.
     * 
     */
    @Import(name="serverName", required=true)
    private Output serverName;

    /**
     * @return The name of the server for which the vulnerability assessment is defined.
     * 
     */
    public Output serverName() {
        return this.serverName;
    }

    /**
     * Specifies the identifier key of the storage account for vulnerability assessment scan results. If 'StorageContainerSasKey' isn't specified, storageAccountAccessKey is required. Applies only if the storage account is not behind a Vnet or a firewall
     * 
     */
    @Import(name="storageAccountAccessKey")
    private @Nullable Output storageAccountAccessKey;

    /**
     * @return Specifies the identifier key of the storage account for vulnerability assessment scan results. If 'StorageContainerSasKey' isn't specified, storageAccountAccessKey is required. Applies only if the storage account is not behind a Vnet or a firewall
     * 
     */
    public Optional> storageAccountAccessKey() {
        return Optional.ofNullable(this.storageAccountAccessKey);
    }

    /**
     * A blob storage container path to hold the scan results (e.g. https://myStorage.blob.core.windows.net/VaScans/).
     * 
     */
    @Import(name="storageContainerPath", required=true)
    private Output storageContainerPath;

    /**
     * @return A blob storage container path to hold the scan results (e.g. https://myStorage.blob.core.windows.net/VaScans/).
     * 
     */
    public Output storageContainerPath() {
        return this.storageContainerPath;
    }

    /**
     * A shared access signature (SAS Key) that has write access to the blob container specified in 'storageContainerPath' parameter. If 'storageAccountAccessKey' isn't specified, StorageContainerSasKey is required. Applies only if the storage account is not behind a Vnet or a firewall
     * 
     */
    @Import(name="storageContainerSasKey")
    private @Nullable Output storageContainerSasKey;

    /**
     * @return A shared access signature (SAS Key) that has write access to the blob container specified in 'storageContainerPath' parameter. If 'storageAccountAccessKey' isn't specified, StorageContainerSasKey is required. Applies only if the storage account is not behind a Vnet or a firewall
     * 
     */
    public Optional> storageContainerSasKey() {
        return Optional.ofNullable(this.storageContainerSasKey);
    }

    /**
     * The name of the vulnerability assessment.
     * 
     */
    @Import(name="vulnerabilityAssessmentName")
    private @Nullable Output vulnerabilityAssessmentName;

    /**
     * @return The name of the vulnerability assessment.
     * 
     */
    public Optional> vulnerabilityAssessmentName() {
        return Optional.ofNullable(this.vulnerabilityAssessmentName);
    }

    private ServerVulnerabilityAssessmentArgs() {}

    private ServerVulnerabilityAssessmentArgs(ServerVulnerabilityAssessmentArgs $) {
        this.recurringScans = $.recurringScans;
        this.resourceGroupName = $.resourceGroupName;
        this.serverName = $.serverName;
        this.storageAccountAccessKey = $.storageAccountAccessKey;
        this.storageContainerPath = $.storageContainerPath;
        this.storageContainerSasKey = $.storageContainerSasKey;
        this.vulnerabilityAssessmentName = $.vulnerabilityAssessmentName;
    }

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

    public static final class Builder {
        private ServerVulnerabilityAssessmentArgs $;

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

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

        /**
         * @param recurringScans The recurring scans settings
         * 
         * @return builder
         * 
         */
        public Builder recurringScans(@Nullable Output recurringScans) {
            $.recurringScans = recurringScans;
            return this;
        }

        /**
         * @param recurringScans The recurring scans settings
         * 
         * @return builder
         * 
         */
        public Builder recurringScans(VulnerabilityAssessmentRecurringScansPropertiesArgs recurringScans) {
            return recurringScans(Output.of(recurringScans));
        }

        /**
         * @param resourceGroupName The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.
         * 
         * @return builder
         * 
         */
        public Builder resourceGroupName(Output resourceGroupName) {
            $.resourceGroupName = resourceGroupName;
            return this;
        }

        /**
         * @param resourceGroupName The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.
         * 
         * @return builder
         * 
         */
        public Builder resourceGroupName(String resourceGroupName) {
            return resourceGroupName(Output.of(resourceGroupName));
        }

        /**
         * @param serverName The name of the server for which the vulnerability assessment is defined.
         * 
         * @return builder
         * 
         */
        public Builder serverName(Output serverName) {
            $.serverName = serverName;
            return this;
        }

        /**
         * @param serverName The name of the server for which the vulnerability assessment is defined.
         * 
         * @return builder
         * 
         */
        public Builder serverName(String serverName) {
            return serverName(Output.of(serverName));
        }

        /**
         * @param storageAccountAccessKey Specifies the identifier key of the storage account for vulnerability assessment scan results. If 'StorageContainerSasKey' isn't specified, storageAccountAccessKey is required. Applies only if the storage account is not behind a Vnet or a firewall
         * 
         * @return builder
         * 
         */
        public Builder storageAccountAccessKey(@Nullable Output storageAccountAccessKey) {
            $.storageAccountAccessKey = storageAccountAccessKey;
            return this;
        }

        /**
         * @param storageAccountAccessKey Specifies the identifier key of the storage account for vulnerability assessment scan results. If 'StorageContainerSasKey' isn't specified, storageAccountAccessKey is required. Applies only if the storage account is not behind a Vnet or a firewall
         * 
         * @return builder
         * 
         */
        public Builder storageAccountAccessKey(String storageAccountAccessKey) {
            return storageAccountAccessKey(Output.of(storageAccountAccessKey));
        }

        /**
         * @param storageContainerPath A blob storage container path to hold the scan results (e.g. https://myStorage.blob.core.windows.net/VaScans/).
         * 
         * @return builder
         * 
         */
        public Builder storageContainerPath(Output storageContainerPath) {
            $.storageContainerPath = storageContainerPath;
            return this;
        }

        /**
         * @param storageContainerPath A blob storage container path to hold the scan results (e.g. https://myStorage.blob.core.windows.net/VaScans/).
         * 
         * @return builder
         * 
         */
        public Builder storageContainerPath(String storageContainerPath) {
            return storageContainerPath(Output.of(storageContainerPath));
        }

        /**
         * @param storageContainerSasKey A shared access signature (SAS Key) that has write access to the blob container specified in 'storageContainerPath' parameter. If 'storageAccountAccessKey' isn't specified, StorageContainerSasKey is required. Applies only if the storage account is not behind a Vnet or a firewall
         * 
         * @return builder
         * 
         */
        public Builder storageContainerSasKey(@Nullable Output storageContainerSasKey) {
            $.storageContainerSasKey = storageContainerSasKey;
            return this;
        }

        /**
         * @param storageContainerSasKey A shared access signature (SAS Key) that has write access to the blob container specified in 'storageContainerPath' parameter. If 'storageAccountAccessKey' isn't specified, StorageContainerSasKey is required. Applies only if the storage account is not behind a Vnet or a firewall
         * 
         * @return builder
         * 
         */
        public Builder storageContainerSasKey(String storageContainerSasKey) {
            return storageContainerSasKey(Output.of(storageContainerSasKey));
        }

        /**
         * @param vulnerabilityAssessmentName The name of the vulnerability assessment.
         * 
         * @return builder
         * 
         */
        public Builder vulnerabilityAssessmentName(@Nullable Output vulnerabilityAssessmentName) {
            $.vulnerabilityAssessmentName = vulnerabilityAssessmentName;
            return this;
        }

        /**
         * @param vulnerabilityAssessmentName The name of the vulnerability assessment.
         * 
         * @return builder
         * 
         */
        public Builder vulnerabilityAssessmentName(String vulnerabilityAssessmentName) {
            return vulnerabilityAssessmentName(Output.of(vulnerabilityAssessmentName));
        }

        public ServerVulnerabilityAssessmentArgs build() {
            if ($.resourceGroupName == null) {
                throw new MissingRequiredPropertyException("ServerVulnerabilityAssessmentArgs", "resourceGroupName");
            }
            if ($.serverName == null) {
                throw new MissingRequiredPropertyException("ServerVulnerabilityAssessmentArgs", "serverName");
            }
            if ($.storageContainerPath == null) {
                throw new MissingRequiredPropertyException("ServerVulnerabilityAssessmentArgs", "storageContainerPath");
            }
            return $;
        }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy