<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;
using Pulumi;

namespace TencentCloudIAC.PulumiPackage.Tencentcloud.Monitor.Inputs
{

    public sealed class TmpTkeTemplateTemplateGetArgs : Pulumi.ResourceArgs
    {
        /// <summary>
        /// Template description.
        /// </summary>
        [Input("describe")]
        public Input<string>? Describe { get; set; }

        /// <summary>
        /// Whether the system-supplied default template is used for outgoing references.
        /// </summary>
        [Input("isDefault")]
        public Input<bool>? IsDefault { get; set; }

        /// <summary>
        /// Template dimensions, the following types are supported `instance` instance level, `cluster` cluster level.
        /// </summary>
        [Input("level", required: true)]
        public Input<string> Level { get; set; } = null!;

        /// <summary>
        /// Template name.
        /// </summary>
        [Input("name", required: true)]
        public Input<string> Name { get; set; } = null!;

        [Input("podMonitors")]
        private InputList<Inputs.TmpTkeTemplateTemplatePodMonitorGetArgs>? _podMonitors;

        /// <summary>
        /// Effective when Level is a cluster, A list of PodMonitors rules in the template.
        /// </summary>
        public InputList<Inputs.TmpTkeTemplateTemplatePodMonitorGetArgs> PodMonitors
        {
            get => _podMonitors ?? (_podMonitors = new InputList<Inputs.TmpTkeTemplateTemplatePodMonitorGetArgs>());
            set => _podMonitors = value;
        }

        [Input("rawJobs")]
        private InputList<Inputs.TmpTkeTemplateTemplateRawJobGetArgs>? _rawJobs;

        /// <summary>
        /// Effective when Level is a cluster, A list of RawJobs rules in the template.
        /// </summary>
        public InputList<Inputs.TmpTkeTemplateTemplateRawJobGetArgs> RawJobs
        {
            get => _rawJobs ?? (_rawJobs = new InputList<Inputs.TmpTkeTemplateTemplateRawJobGetArgs>());
            set => _rawJobs = value;
        }

        [Input("recordRules")]
        private InputList<Inputs.TmpTkeTemplateTemplateRecordRuleGetArgs>? _recordRules;

        /// <summary>
        /// Effective when Level is instance, A list of aggregation rules in the template.
        /// </summary>
        public InputList<Inputs.TmpTkeTemplateTemplateRecordRuleGetArgs> RecordRules
        {
            get => _recordRules ?? (_recordRules = new InputList<Inputs.TmpTkeTemplateTemplateRecordRuleGetArgs>());
            set => _recordRules = value;
        }

        [Input("serviceMonitors")]
        private InputList<Inputs.TmpTkeTemplateTemplateServiceMonitorGetArgs>? _serviceMonitors;

        /// <summary>
        /// Effective when Level is a cluster, A list of ServiceMonitor rules in the template.
        /// </summary>
        public InputList<Inputs.TmpTkeTemplateTemplateServiceMonitorGetArgs> ServiceMonitors
        {
            get => _serviceMonitors ?? (_serviceMonitors = new InputList<Inputs.TmpTkeTemplateTemplateServiceMonitorGetArgs>());
            set => _serviceMonitors = value;
        }

        /// <summary>
        /// The ID of the template, which is used for the outgoing reference.
        /// </summary>
        [Input("templateId")]
        public Input<string>? TemplateId { get; set; }

        /// <summary>
        /// Last updated, for outgoing references.
        /// </summary>
        [Input("updateTime")]
        public Input<string>? UpdateTime { get; set; }

        /// <summary>
        /// Whether the system-supplied default template is used for outgoing references.
        /// </summary>
        [Input("version")]
        public Input<string>? Version { get; set; }

        public TmpTkeTemplateTemplateGetArgs()
        {
        }
    }
}
