// *** 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 Pulumiverse.Fortios.Inputs
{

    public sealed class SystemIpamRuleGetArgs : global::Pulumi.ResourceArgs
    {
        /// <summary>
        /// Description.
        /// </summary>
        [Input("description")]
        public Input<string>? Description { get; set; }

        [Input("devices")]
        private InputList<Inputs.SystemIpamRuleDeviceGetArgs>? _devices;

        /// <summary>
        /// Configure serial number or wildcard of Fortigate to match. The structure of `device` block is documented below.
        /// </summary>
        public InputList<Inputs.SystemIpamRuleDeviceGetArgs> Devices
        {
            get => _devices ?? (_devices = new InputList<Inputs.SystemIpamRuleDeviceGetArgs>());
            set => _devices = value;
        }

        /// <summary>
        /// Enable/disable DHCP server for matching IPAM interfaces. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("dhcp")]
        public Input<string>? Dhcp { get; set; }

        [Input("interfaces")]
        private InputList<Inputs.SystemIpamRuleInterfaceGetArgs>? _interfaces;

        /// <summary>
        /// Configure name or wildcard of interface to match. The structure of `interface` block is documented below.
        /// </summary>
        public InputList<Inputs.SystemIpamRuleInterfaceGetArgs> Interfaces
        {
            get => _interfaces ?? (_interfaces = new InputList<Inputs.SystemIpamRuleInterfaceGetArgs>());
            set => _interfaces = value;
        }

        /// <summary>
        /// IPAM rule name.
        /// </summary>
        [Input("name")]
        public Input<string>? Name { get; set; }

        [Input("pools")]
        private InputList<Inputs.SystemIpamRulePoolGetArgs>? _pools;

        /// <summary>
        /// Configure name of IPAM pool to use. The structure of `pool` block is documented below.
        /// </summary>
        public InputList<Inputs.SystemIpamRulePoolGetArgs> Pools
        {
            get => _pools ?? (_pools = new InputList<Inputs.SystemIpamRulePoolGetArgs>());
            set => _pools = value;
        }

        /// <summary>
        /// Configure role of interface to match. Valid values: `any`, `lan`, `wan`, `dmz`, `undefined`.
        /// </summary>
        [Input("role")]
        public Input<string>? Role { get; set; }

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