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

com.pulumi.googlenative.monitoring.v3.ServiceLevelObjectiveArgs 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.googlenative.monitoring.v3;

import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.googlenative.monitoring.v3.enums.ServiceLevelObjectiveCalendarPeriod;
import com.pulumi.googlenative.monitoring.v3.inputs.ServiceLevelIndicatorArgs;
import java.lang.Double;
import java.lang.String;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


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

    public static final ServiceLevelObjectiveArgs Empty = new ServiceLevelObjectiveArgs();

    /**
     * A calendar period, semantically "since the start of the current ". At this time, only DAY, WEEK, FORTNIGHT, and MONTH are supported.
     * 
     */
    @Import(name="calendarPeriod")
    private @Nullable Output calendarPeriod;

    /**
     * @return A calendar period, semantically "since the start of the current ". At this time, only DAY, WEEK, FORTNIGHT, and MONTH are supported.
     * 
     */
    public Optional> calendarPeriod() {
        return Optional.ofNullable(this.calendarPeriod);
    }

    /**
     * Name used for UI elements listing this SLO.
     * 
     */
    @Import(name="displayName")
    private @Nullable Output displayName;

    /**
     * @return Name used for UI elements listing this SLO.
     * 
     */
    public Optional> displayName() {
        return Optional.ofNullable(this.displayName);
    }

    /**
     * The fraction of service that must be good in order for this objective to be met. 0 < goal <= 0.999.
     * 
     */
    @Import(name="goal")
    private @Nullable Output goal;

    /**
     * @return The fraction of service that must be good in order for this objective to be met. 0 < goal <= 0.999.
     * 
     */
    public Optional> goal() {
        return Optional.ofNullable(this.goal);
    }

    /**
     * Resource name for this ServiceLevelObjective. The format is: projects/[PROJECT_ID_OR_NUMBER]/services/[SERVICE_ID]/serviceLevelObjectives/[SLO_NAME]
     * 
     */
    @Import(name="name")
    private @Nullable Output name;

    /**
     * @return Resource name for this ServiceLevelObjective. The format is: projects/[PROJECT_ID_OR_NUMBER]/services/[SERVICE_ID]/serviceLevelObjectives/[SLO_NAME]
     * 
     */
    public Optional> name() {
        return Optional.ofNullable(this.name);
    }

    /**
     * A rolling time period, semantically "in the past ". Must be an integer multiple of 1 day no larger than 30 days.
     * 
     */
    @Import(name="rollingPeriod")
    private @Nullable Output rollingPeriod;

    /**
     * @return A rolling time period, semantically "in the past ". Must be an integer multiple of 1 day no larger than 30 days.
     * 
     */
    public Optional> rollingPeriod() {
        return Optional.ofNullable(this.rollingPeriod);
    }

    @Import(name="serviceId", required=true)
    private Output serviceId;

    public Output serviceId() {
        return this.serviceId;
    }

    /**
     * The definition of good service, used to measure and calculate the quality of the Service's performance with respect to a single aspect of service quality.
     * 
     */
    @Import(name="serviceLevelIndicator")
    private @Nullable Output serviceLevelIndicator;

    /**
     * @return The definition of good service, used to measure and calculate the quality of the Service's performance with respect to a single aspect of service quality.
     * 
     */
    public Optional> serviceLevelIndicator() {
        return Optional.ofNullable(this.serviceLevelIndicator);
    }

    /**
     * Optional. The ServiceLevelObjective id to use for this ServiceLevelObjective. If omitted, an id will be generated instead. Must match the pattern [a-z0-9\-]+
     * 
     */
    @Import(name="serviceLevelObjectiveId")
    private @Nullable Output serviceLevelObjectiveId;

    /**
     * @return Optional. The ServiceLevelObjective id to use for this ServiceLevelObjective. If omitted, an id will be generated instead. Must match the pattern [a-z0-9\-]+
     * 
     */
    public Optional> serviceLevelObjectiveId() {
        return Optional.ofNullable(this.serviceLevelObjectiveId);
    }

    /**
     * Labels which have been used to annotate the service-level objective. Label keys must start with a letter. Label keys and values may contain lowercase letters, numbers, underscores, and dashes. Label keys and values have a maximum length of 63 characters, and must be less than 128 bytes in size. Up to 64 label entries may be stored. For labels which do not have a semantic value, the empty string may be supplied for the label value.
     * 
     */
    @Import(name="userLabels")
    private @Nullable Output> userLabels;

    /**
     * @return Labels which have been used to annotate the service-level objective. Label keys must start with a letter. Label keys and values may contain lowercase letters, numbers, underscores, and dashes. Label keys and values have a maximum length of 63 characters, and must be less than 128 bytes in size. Up to 64 label entries may be stored. For labels which do not have a semantic value, the empty string may be supplied for the label value.
     * 
     */
    public Optional>> userLabels() {
        return Optional.ofNullable(this.userLabels);
    }

    @Import(name="v3Id", required=true)
    private Output v3Id;

    public Output v3Id() {
        return this.v3Id;
    }

    @Import(name="v3Id1", required=true)
    private Output v3Id1;

    public Output v3Id1() {
        return this.v3Id1;
    }

    private ServiceLevelObjectiveArgs() {}

    private ServiceLevelObjectiveArgs(ServiceLevelObjectiveArgs $) {
        this.calendarPeriod = $.calendarPeriod;
        this.displayName = $.displayName;
        this.goal = $.goal;
        this.name = $.name;
        this.rollingPeriod = $.rollingPeriod;
        this.serviceId = $.serviceId;
        this.serviceLevelIndicator = $.serviceLevelIndicator;
        this.serviceLevelObjectiveId = $.serviceLevelObjectiveId;
        this.userLabels = $.userLabels;
        this.v3Id = $.v3Id;
        this.v3Id1 = $.v3Id1;
    }

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

    public static final class Builder {
        private ServiceLevelObjectiveArgs $;

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

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

        /**
         * @param calendarPeriod A calendar period, semantically "since the start of the current ". At this time, only DAY, WEEK, FORTNIGHT, and MONTH are supported.
         * 
         * @return builder
         * 
         */
        public Builder calendarPeriod(@Nullable Output calendarPeriod) {
            $.calendarPeriod = calendarPeriod;
            return this;
        }

        /**
         * @param calendarPeriod A calendar period, semantically "since the start of the current ". At this time, only DAY, WEEK, FORTNIGHT, and MONTH are supported.
         * 
         * @return builder
         * 
         */
        public Builder calendarPeriod(ServiceLevelObjectiveCalendarPeriod calendarPeriod) {
            return calendarPeriod(Output.of(calendarPeriod));
        }

        /**
         * @param displayName Name used for UI elements listing this SLO.
         * 
         * @return builder
         * 
         */
        public Builder displayName(@Nullable Output displayName) {
            $.displayName = displayName;
            return this;
        }

        /**
         * @param displayName Name used for UI elements listing this SLO.
         * 
         * @return builder
         * 
         */
        public Builder displayName(String displayName) {
            return displayName(Output.of(displayName));
        }

        /**
         * @param goal The fraction of service that must be good in order for this objective to be met. 0 < goal <= 0.999.
         * 
         * @return builder
         * 
         */
        public Builder goal(@Nullable Output goal) {
            $.goal = goal;
            return this;
        }

        /**
         * @param goal The fraction of service that must be good in order for this objective to be met. 0 < goal <= 0.999.
         * 
         * @return builder
         * 
         */
        public Builder goal(Double goal) {
            return goal(Output.of(goal));
        }

        /**
         * @param name Resource name for this ServiceLevelObjective. The format is: projects/[PROJECT_ID_OR_NUMBER]/services/[SERVICE_ID]/serviceLevelObjectives/[SLO_NAME]
         * 
         * @return builder
         * 
         */
        public Builder name(@Nullable Output name) {
            $.name = name;
            return this;
        }

        /**
         * @param name Resource name for this ServiceLevelObjective. The format is: projects/[PROJECT_ID_OR_NUMBER]/services/[SERVICE_ID]/serviceLevelObjectives/[SLO_NAME]
         * 
         * @return builder
         * 
         */
        public Builder name(String name) {
            return name(Output.of(name));
        }

        /**
         * @param rollingPeriod A rolling time period, semantically "in the past ". Must be an integer multiple of 1 day no larger than 30 days.
         * 
         * @return builder
         * 
         */
        public Builder rollingPeriod(@Nullable Output rollingPeriod) {
            $.rollingPeriod = rollingPeriod;
            return this;
        }

        /**
         * @param rollingPeriod A rolling time period, semantically "in the past ". Must be an integer multiple of 1 day no larger than 30 days.
         * 
         * @return builder
         * 
         */
        public Builder rollingPeriod(String rollingPeriod) {
            return rollingPeriod(Output.of(rollingPeriod));
        }

        public Builder serviceId(Output serviceId) {
            $.serviceId = serviceId;
            return this;
        }

        public Builder serviceId(String serviceId) {
            return serviceId(Output.of(serviceId));
        }

        /**
         * @param serviceLevelIndicator The definition of good service, used to measure and calculate the quality of the Service's performance with respect to a single aspect of service quality.
         * 
         * @return builder
         * 
         */
        public Builder serviceLevelIndicator(@Nullable Output serviceLevelIndicator) {
            $.serviceLevelIndicator = serviceLevelIndicator;
            return this;
        }

        /**
         * @param serviceLevelIndicator The definition of good service, used to measure and calculate the quality of the Service's performance with respect to a single aspect of service quality.
         * 
         * @return builder
         * 
         */
        public Builder serviceLevelIndicator(ServiceLevelIndicatorArgs serviceLevelIndicator) {
            return serviceLevelIndicator(Output.of(serviceLevelIndicator));
        }

        /**
         * @param serviceLevelObjectiveId Optional. The ServiceLevelObjective id to use for this ServiceLevelObjective. If omitted, an id will be generated instead. Must match the pattern [a-z0-9\-]+
         * 
         * @return builder
         * 
         */
        public Builder serviceLevelObjectiveId(@Nullable Output serviceLevelObjectiveId) {
            $.serviceLevelObjectiveId = serviceLevelObjectiveId;
            return this;
        }

        /**
         * @param serviceLevelObjectiveId Optional. The ServiceLevelObjective id to use for this ServiceLevelObjective. If omitted, an id will be generated instead. Must match the pattern [a-z0-9\-]+
         * 
         * @return builder
         * 
         */
        public Builder serviceLevelObjectiveId(String serviceLevelObjectiveId) {
            return serviceLevelObjectiveId(Output.of(serviceLevelObjectiveId));
        }

        /**
         * @param userLabels Labels which have been used to annotate the service-level objective. Label keys must start with a letter. Label keys and values may contain lowercase letters, numbers, underscores, and dashes. Label keys and values have a maximum length of 63 characters, and must be less than 128 bytes in size. Up to 64 label entries may be stored. For labels which do not have a semantic value, the empty string may be supplied for the label value.
         * 
         * @return builder
         * 
         */
        public Builder userLabels(@Nullable Output> userLabels) {
            $.userLabels = userLabels;
            return this;
        }

        /**
         * @param userLabels Labels which have been used to annotate the service-level objective. Label keys must start with a letter. Label keys and values may contain lowercase letters, numbers, underscores, and dashes. Label keys and values have a maximum length of 63 characters, and must be less than 128 bytes in size. Up to 64 label entries may be stored. For labels which do not have a semantic value, the empty string may be supplied for the label value.
         * 
         * @return builder
         * 
         */
        public Builder userLabels(Map userLabels) {
            return userLabels(Output.of(userLabels));
        }

        public Builder v3Id(Output v3Id) {
            $.v3Id = v3Id;
            return this;
        }

        public Builder v3Id(String v3Id) {
            return v3Id(Output.of(v3Id));
        }

        public Builder v3Id1(Output v3Id1) {
            $.v3Id1 = v3Id1;
            return this;
        }

        public Builder v3Id1(String v3Id1) {
            return v3Id1(Output.of(v3Id1));
        }

        public ServiceLevelObjectiveArgs build() {
            $.serviceId = Objects.requireNonNull($.serviceId, "expected parameter 'serviceId' to be non-null");
            $.v3Id = Objects.requireNonNull($.v3Id, "expected parameter 'v3Id' to be non-null");
            $.v3Id1 = Objects.requireNonNull($.v3Id1, "expected parameter 'v3Id1' to be non-null");
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy