<gh_stars>0// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***

using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Threading.Tasks;
using Pulumi.Serialization;

namespace Pulumi.Nobl9.Inputs
{

    public sealed class SloObjectiveArgs : global::Pulumi.ResourceArgs
    {
        [Input("countMetrics")]
        private InputList<Inputs.SloObjectiveCountMetricArgs>? _countMetrics;

        /// <summary>
        /// Compares two time series, indicating the ratio of the count of good values to total values.
        /// </summary>
        public InputList<Inputs.SloObjectiveCountMetricArgs> CountMetrics
        {
            get => _countMetrics ?? (_countMetrics = new InputList<Inputs.SloObjectiveCountMetricArgs>());
            set => _countMetrics = value;
        }

        /// <summary>
        /// Name to be displayed
        /// </summary>
        [Input("displayName", required: true)]
        public Input<string> DisplayName { get; set; } = null!;

        /// <summary>
        /// Objective's name. This field is computed if not provided.
        /// </summary>
        [Input("name")]
        public Input<string>? Name { get; set; }

        /// <summary>
        /// Type of logical operation
        /// </summary>
        [Input("op")]
        public Input<string>? Op { get; set; }

        [Input("rawMetrics")]
        private InputList<Inputs.SloObjectiveRawMetricArgs>? _rawMetrics;

        /// <summary>
        /// Raw data is used to compare objective values.
        /// </summary>
        public InputList<Inputs.SloObjectiveRawMetricArgs> RawMetrics
        {
            get => _rawMetrics ?? (_rawMetrics = new InputList<Inputs.SloObjectiveRawMetricArgs>());
            set => _rawMetrics = value;
        }

        /// <summary>
        /// Designated value
        /// </summary>
        [Input("target", required: true)]
        public Input<double> Target { get; set; } = null!;

        /// <summary>
        /// Designated value for slice
        /// </summary>
        [Input("timeSliceTarget")]
        public Input<double>? TimeSliceTarget { get; set; }

        /// <summary>
        /// Value
        /// </summary>
        [Input("value", required: true)]
        public Input<double> Value { get; set; } = null!;

        public SloObjectiveArgs()
        {
        }
        public static new SloObjectiveArgs Empty => new SloObjectiveArgs();
    }
}
