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

com.pulumi.azurenative.security.PricingArgs 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.Enforce;
import com.pulumi.azurenative.security.enums.PricingTier;
import com.pulumi.azurenative.security.inputs.ExtensionArgs;
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 PricingArgs extends com.pulumi.resources.ResourceArgs {

    public static final PricingArgs Empty = new PricingArgs();

    /**
     * If set to "False", it allows the descendants of this scope to override the pricing configuration set on this scope (allows setting inherited="False"). If set to "True", it prevents overrides and forces this pricing configuration on all the descendants of this scope. This field is only available for subscription-level pricing.
     * 
     */
    @Import(name="enforce")
    private @Nullable Output> enforce;

    /**
     * @return If set to "False", it allows the descendants of this scope to override the pricing configuration set on this scope (allows setting inherited="False"). If set to "True", it prevents overrides and forces this pricing configuration on all the descendants of this scope. This field is only available for subscription-level pricing.
     * 
     */
    public Optional>> enforce() {
        return Optional.ofNullable(this.enforce);
    }

    /**
     * Optional. List of extensions offered under a plan.
     * 
     */
    @Import(name="extensions")
    private @Nullable Output> extensions;

    /**
     * @return Optional. List of extensions offered under a plan.
     * 
     */
    public Optional>> extensions() {
        return Optional.ofNullable(this.extensions);
    }

    /**
     * name of the pricing configuration
     * 
     */
    @Import(name="pricingName")
    private @Nullable Output pricingName;

    /**
     * @return name of the pricing configuration
     * 
     */
    public Optional> pricingName() {
        return Optional.ofNullable(this.pricingName);
    }

    /**
     * Indicates whether the Defender plan is enabled on the selected scope. Microsoft Defender for Cloud is provided in two pricing tiers: free and standard. The standard tier offers advanced security capabilities, while the free tier offers basic security features.
     * 
     */
    @Import(name="pricingTier", required=true)
    private Output> pricingTier;

    /**
     * @return Indicates whether the Defender plan is enabled on the selected scope. Microsoft Defender for Cloud is provided in two pricing tiers: free and standard. The standard tier offers advanced security capabilities, while the free tier offers basic security features.
     * 
     */
    public Output> pricingTier() {
        return this.pricingTier;
    }

    /**
     * The scope id of the pricing. Valid scopes are: subscription (format: 'subscriptions/{subscriptionId}'), or a specific resource (format: 'subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}) - Supported resources are (VirtualMachines)
     * 
     */
    @Import(name="scopeId", required=true)
    private Output scopeId;

    /**
     * @return The scope id of the pricing. Valid scopes are: subscription (format: 'subscriptions/{subscriptionId}'), or a specific resource (format: 'subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}) - Supported resources are (VirtualMachines)
     * 
     */
    public Output scopeId() {
        return this.scopeId;
    }

    /**
     * The sub-plan selected for a Standard pricing configuration, when more than one sub-plan is available. Each sub-plan enables a set of security features. When not specified, full plan is applied. For VirtualMachines plan, available sub plans are 'P1' & 'P2', where for resource level only 'P1' sub plan is supported.
     * 
     */
    @Import(name="subPlan")
    private @Nullable Output subPlan;

    /**
     * @return The sub-plan selected for a Standard pricing configuration, when more than one sub-plan is available. Each sub-plan enables a set of security features. When not specified, full plan is applied. For VirtualMachines plan, available sub plans are 'P1' & 'P2', where for resource level only 'P1' sub plan is supported.
     * 
     */
    public Optional> subPlan() {
        return Optional.ofNullable(this.subPlan);
    }

    private PricingArgs() {}

    private PricingArgs(PricingArgs $) {
        this.enforce = $.enforce;
        this.extensions = $.extensions;
        this.pricingName = $.pricingName;
        this.pricingTier = $.pricingTier;
        this.scopeId = $.scopeId;
        this.subPlan = $.subPlan;
    }

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

    public static final class Builder {
        private PricingArgs $;

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

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

        /**
         * @param enforce If set to "False", it allows the descendants of this scope to override the pricing configuration set on this scope (allows setting inherited="False"). If set to "True", it prevents overrides and forces this pricing configuration on all the descendants of this scope. This field is only available for subscription-level pricing.
         * 
         * @return builder
         * 
         */
        public Builder enforce(@Nullable Output> enforce) {
            $.enforce = enforce;
            return this;
        }

        /**
         * @param enforce If set to "False", it allows the descendants of this scope to override the pricing configuration set on this scope (allows setting inherited="False"). If set to "True", it prevents overrides and forces this pricing configuration on all the descendants of this scope. This field is only available for subscription-level pricing.
         * 
         * @return builder
         * 
         */
        public Builder enforce(Either enforce) {
            return enforce(Output.of(enforce));
        }

        /**
         * @param enforce If set to "False", it allows the descendants of this scope to override the pricing configuration set on this scope (allows setting inherited="False"). If set to "True", it prevents overrides and forces this pricing configuration on all the descendants of this scope. This field is only available for subscription-level pricing.
         * 
         * @return builder
         * 
         */
        public Builder enforce(String enforce) {
            return enforce(Either.ofLeft(enforce));
        }

        /**
         * @param enforce If set to "False", it allows the descendants of this scope to override the pricing configuration set on this scope (allows setting inherited="False"). If set to "True", it prevents overrides and forces this pricing configuration on all the descendants of this scope. This field is only available for subscription-level pricing.
         * 
         * @return builder
         * 
         */
        public Builder enforce(Enforce enforce) {
            return enforce(Either.ofRight(enforce));
        }

        /**
         * @param extensions Optional. List of extensions offered under a plan.
         * 
         * @return builder
         * 
         */
        public Builder extensions(@Nullable Output> extensions) {
            $.extensions = extensions;
            return this;
        }

        /**
         * @param extensions Optional. List of extensions offered under a plan.
         * 
         * @return builder
         * 
         */
        public Builder extensions(List extensions) {
            return extensions(Output.of(extensions));
        }

        /**
         * @param extensions Optional. List of extensions offered under a plan.
         * 
         * @return builder
         * 
         */
        public Builder extensions(ExtensionArgs... extensions) {
            return extensions(List.of(extensions));
        }

        /**
         * @param pricingName name of the pricing configuration
         * 
         * @return builder
         * 
         */
        public Builder pricingName(@Nullable Output pricingName) {
            $.pricingName = pricingName;
            return this;
        }

        /**
         * @param pricingName name of the pricing configuration
         * 
         * @return builder
         * 
         */
        public Builder pricingName(String pricingName) {
            return pricingName(Output.of(pricingName));
        }

        /**
         * @param pricingTier Indicates whether the Defender plan is enabled on the selected scope. Microsoft Defender for Cloud is provided in two pricing tiers: free and standard. The standard tier offers advanced security capabilities, while the free tier offers basic security features.
         * 
         * @return builder
         * 
         */
        public Builder pricingTier(Output> pricingTier) {
            $.pricingTier = pricingTier;
            return this;
        }

        /**
         * @param pricingTier Indicates whether the Defender plan is enabled on the selected scope. Microsoft Defender for Cloud is provided in two pricing tiers: free and standard. The standard tier offers advanced security capabilities, while the free tier offers basic security features.
         * 
         * @return builder
         * 
         */
        public Builder pricingTier(Either pricingTier) {
            return pricingTier(Output.of(pricingTier));
        }

        /**
         * @param pricingTier Indicates whether the Defender plan is enabled on the selected scope. Microsoft Defender for Cloud is provided in two pricing tiers: free and standard. The standard tier offers advanced security capabilities, while the free tier offers basic security features.
         * 
         * @return builder
         * 
         */
        public Builder pricingTier(String pricingTier) {
            return pricingTier(Either.ofLeft(pricingTier));
        }

        /**
         * @param pricingTier Indicates whether the Defender plan is enabled on the selected scope. Microsoft Defender for Cloud is provided in two pricing tiers: free and standard. The standard tier offers advanced security capabilities, while the free tier offers basic security features.
         * 
         * @return builder
         * 
         */
        public Builder pricingTier(PricingTier pricingTier) {
            return pricingTier(Either.ofRight(pricingTier));
        }

        /**
         * @param scopeId The scope id of the pricing. Valid scopes are: subscription (format: 'subscriptions/{subscriptionId}'), or a specific resource (format: 'subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}) - Supported resources are (VirtualMachines)
         * 
         * @return builder
         * 
         */
        public Builder scopeId(Output scopeId) {
            $.scopeId = scopeId;
            return this;
        }

        /**
         * @param scopeId The scope id of the pricing. Valid scopes are: subscription (format: 'subscriptions/{subscriptionId}'), or a specific resource (format: 'subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}) - Supported resources are (VirtualMachines)
         * 
         * @return builder
         * 
         */
        public Builder scopeId(String scopeId) {
            return scopeId(Output.of(scopeId));
        }

        /**
         * @param subPlan The sub-plan selected for a Standard pricing configuration, when more than one sub-plan is available. Each sub-plan enables a set of security features. When not specified, full plan is applied. For VirtualMachines plan, available sub plans are 'P1' & 'P2', where for resource level only 'P1' sub plan is supported.
         * 
         * @return builder
         * 
         */
        public Builder subPlan(@Nullable Output subPlan) {
            $.subPlan = subPlan;
            return this;
        }

        /**
         * @param subPlan The sub-plan selected for a Standard pricing configuration, when more than one sub-plan is available. Each sub-plan enables a set of security features. When not specified, full plan is applied. For VirtualMachines plan, available sub plans are 'P1' & 'P2', where for resource level only 'P1' sub plan is supported.
         * 
         * @return builder
         * 
         */
        public Builder subPlan(String subPlan) {
            return subPlan(Output.of(subPlan));
        }

        public PricingArgs build() {
            if ($.pricingTier == null) {
                throw new MissingRequiredPropertyException("PricingArgs", "pricingTier");
            }
            if ($.scopeId == null) {
                throw new MissingRequiredPropertyException("PricingArgs", "scopeId");
            }
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy