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

com.pulumi.azurenative.security.CustomRecommendationArgs Maven / Gradle / Ivy

There is a newer version: 2.78.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;

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


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

    public static final CustomRecommendationArgs Empty = new CustomRecommendationArgs();

    /**
     * List of all standard supported clouds.
     * 
     */
    @Import(name="cloudProviders")
    private @Nullable Output>> cloudProviders;

    /**
     * @return List of all standard supported clouds.
     * 
     */
    public Optional>>> cloudProviders() {
        return Optional.ofNullable(this.cloudProviders);
    }

    /**
     * Name of the Custom Recommendation.
     * 
     */
    @Import(name="customRecommendationName")
    private @Nullable Output customRecommendationName;

    /**
     * @return Name of the Custom Recommendation.
     * 
     */
    public Optional> customRecommendationName() {
        return Optional.ofNullable(this.customRecommendationName);
    }

    /**
     * The description to relate to the assessments generated by this Recommendation.
     * 
     */
    @Import(name="description")
    private @Nullable Output description;

    /**
     * @return The description to relate to the assessments generated by this Recommendation.
     * 
     */
    public Optional> description() {
        return Optional.ofNullable(this.description);
    }

    /**
     * The display name of the assessments generated by this Recommendation.
     * 
     */
    @Import(name="displayName")
    private @Nullable Output displayName;

    /**
     * @return The display name of the assessments generated by this Recommendation.
     * 
     */
    public Optional> displayName() {
        return Optional.ofNullable(this.displayName);
    }

    /**
     * KQL query representing the Recommendation results required.
     * 
     */
    @Import(name="query")
    private @Nullable Output query;

    /**
     * @return KQL query representing the Recommendation results required.
     * 
     */
    public Optional> query() {
        return Optional.ofNullable(this.query);
    }

    /**
     * The remediation description to relate to the assessments generated by this Recommendation.
     * 
     */
    @Import(name="remediationDescription")
    private @Nullable Output remediationDescription;

    /**
     * @return The remediation description to relate to the assessments generated by this Recommendation.
     * 
     */
    public Optional> remediationDescription() {
        return Optional.ofNullable(this.remediationDescription);
    }

    /**
     * The scope of the custom recommendation. Valid scopes are: management group (format: 'providers/Microsoft.Management/managementGroups/{managementGroup}'), subscription (format: 'subscriptions/{subscriptionId}'), or security connector (format: 'subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Security/securityConnectors/{securityConnectorName})'
     * 
     */
    @Import(name="scope", required=true)
    private Output scope;

    /**
     * @return The scope of the custom recommendation. Valid scopes are: management group (format: 'providers/Microsoft.Management/managementGroups/{managementGroup}'), subscription (format: 'subscriptions/{subscriptionId}'), or security connector (format: 'subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Security/securityConnectors/{securityConnectorName})'
     * 
     */
    public Output scope() {
        return this.scope;
    }

    /**
     * The severity to relate to the assessments generated by this Recommendation.
     * 
     */
    @Import(name="securityIssue")
    private @Nullable Output> securityIssue;

    /**
     * @return The severity to relate to the assessments generated by this Recommendation.
     * 
     */
    public Optional>> securityIssue() {
        return Optional.ofNullable(this.securityIssue);
    }

    /**
     * The severity to relate to the assessments generated by this Recommendation.
     * 
     */
    @Import(name="severity")
    private @Nullable Output> severity;

    /**
     * @return The severity to relate to the assessments generated by this Recommendation.
     * 
     */
    public Optional>> severity() {
        return Optional.ofNullable(this.severity);
    }

    private CustomRecommendationArgs() {}

    private CustomRecommendationArgs(CustomRecommendationArgs $) {
        this.cloudProviders = $.cloudProviders;
        this.customRecommendationName = $.customRecommendationName;
        this.description = $.description;
        this.displayName = $.displayName;
        this.query = $.query;
        this.remediationDescription = $.remediationDescription;
        this.scope = $.scope;
        this.securityIssue = $.securityIssue;
        this.severity = $.severity;
    }

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

    public static final class Builder {
        private CustomRecommendationArgs $;

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

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

        /**
         * @param cloudProviders List of all standard supported clouds.
         * 
         * @return builder
         * 
         */
        public Builder cloudProviders(@Nullable Output>> cloudProviders) {
            $.cloudProviders = cloudProviders;
            return this;
        }

        /**
         * @param cloudProviders List of all standard supported clouds.
         * 
         * @return builder
         * 
         */
        public Builder cloudProviders(List> cloudProviders) {
            return cloudProviders(Output.of(cloudProviders));
        }

        /**
         * @param cloudProviders List of all standard supported clouds.
         * 
         * @return builder
         * 
         */
        public Builder cloudProviders(Either... cloudProviders) {
            return cloudProviders(List.of(cloudProviders));
        }

        /**
         * @param customRecommendationName Name of the Custom Recommendation.
         * 
         * @return builder
         * 
         */
        public Builder customRecommendationName(@Nullable Output customRecommendationName) {
            $.customRecommendationName = customRecommendationName;
            return this;
        }

        /**
         * @param customRecommendationName Name of the Custom Recommendation.
         * 
         * @return builder
         * 
         */
        public Builder customRecommendationName(String customRecommendationName) {
            return customRecommendationName(Output.of(customRecommendationName));
        }

        /**
         * @param description The description to relate to the assessments generated by this Recommendation.
         * 
         * @return builder
         * 
         */
        public Builder description(@Nullable Output description) {
            $.description = description;
            return this;
        }

        /**
         * @param description The description to relate to the assessments generated by this Recommendation.
         * 
         * @return builder
         * 
         */
        public Builder description(String description) {
            return description(Output.of(description));
        }

        /**
         * @param displayName The display name of the assessments generated by this Recommendation.
         * 
         * @return builder
         * 
         */
        public Builder displayName(@Nullable Output displayName) {
            $.displayName = displayName;
            return this;
        }

        /**
         * @param displayName The display name of the assessments generated by this Recommendation.
         * 
         * @return builder
         * 
         */
        public Builder displayName(String displayName) {
            return displayName(Output.of(displayName));
        }

        /**
         * @param query KQL query representing the Recommendation results required.
         * 
         * @return builder
         * 
         */
        public Builder query(@Nullable Output query) {
            $.query = query;
            return this;
        }

        /**
         * @param query KQL query representing the Recommendation results required.
         * 
         * @return builder
         * 
         */
        public Builder query(String query) {
            return query(Output.of(query));
        }

        /**
         * @param remediationDescription The remediation description to relate to the assessments generated by this Recommendation.
         * 
         * @return builder
         * 
         */
        public Builder remediationDescription(@Nullable Output remediationDescription) {
            $.remediationDescription = remediationDescription;
            return this;
        }

        /**
         * @param remediationDescription The remediation description to relate to the assessments generated by this Recommendation.
         * 
         * @return builder
         * 
         */
        public Builder remediationDescription(String remediationDescription) {
            return remediationDescription(Output.of(remediationDescription));
        }

        /**
         * @param scope The scope of the custom recommendation. Valid scopes are: management group (format: 'providers/Microsoft.Management/managementGroups/{managementGroup}'), subscription (format: 'subscriptions/{subscriptionId}'), or security connector (format: 'subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Security/securityConnectors/{securityConnectorName})'
         * 
         * @return builder
         * 
         */
        public Builder scope(Output scope) {
            $.scope = scope;
            return this;
        }

        /**
         * @param scope The scope of the custom recommendation. Valid scopes are: management group (format: 'providers/Microsoft.Management/managementGroups/{managementGroup}'), subscription (format: 'subscriptions/{subscriptionId}'), or security connector (format: 'subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Security/securityConnectors/{securityConnectorName})'
         * 
         * @return builder
         * 
         */
        public Builder scope(String scope) {
            return scope(Output.of(scope));
        }

        /**
         * @param securityIssue The severity to relate to the assessments generated by this Recommendation.
         * 
         * @return builder
         * 
         */
        public Builder securityIssue(@Nullable Output> securityIssue) {
            $.securityIssue = securityIssue;
            return this;
        }

        /**
         * @param securityIssue The severity to relate to the assessments generated by this Recommendation.
         * 
         * @return builder
         * 
         */
        public Builder securityIssue(Either securityIssue) {
            return securityIssue(Output.of(securityIssue));
        }

        /**
         * @param securityIssue The severity to relate to the assessments generated by this Recommendation.
         * 
         * @return builder
         * 
         */
        public Builder securityIssue(String securityIssue) {
            return securityIssue(Either.ofLeft(securityIssue));
        }

        /**
         * @param securityIssue The severity to relate to the assessments generated by this Recommendation.
         * 
         * @return builder
         * 
         */
        public Builder securityIssue(SecurityIssue securityIssue) {
            return securityIssue(Either.ofRight(securityIssue));
        }

        /**
         * @param severity The severity to relate to the assessments generated by this Recommendation.
         * 
         * @return builder
         * 
         */
        public Builder severity(@Nullable Output> severity) {
            $.severity = severity;
            return this;
        }

        /**
         * @param severity The severity to relate to the assessments generated by this Recommendation.
         * 
         * @return builder
         * 
         */
        public Builder severity(Either severity) {
            return severity(Output.of(severity));
        }

        /**
         * @param severity The severity to relate to the assessments generated by this Recommendation.
         * 
         * @return builder
         * 
         */
        public Builder severity(String severity) {
            return severity(Either.ofLeft(severity));
        }

        /**
         * @param severity The severity to relate to the assessments generated by this Recommendation.
         * 
         * @return builder
         * 
         */
        public Builder severity(SeverityEnum severity) {
            return severity(Either.ofRight(severity));
        }

        public CustomRecommendationArgs build() {
            if ($.scope == null) {
                throw new MissingRequiredPropertyException("CustomRecommendationArgs", "scope");
            }
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy