# coding=utf-8
# *** 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! ***

import warnings
import pulumi
import pulumi.runtime
from typing import Any, Mapping, Optional, Sequence, Union
from . import _utilities, _tables

__all__ = [
    'GetSectionResult',
    'AwaitableGetSectionResult',
    'get_section',
]

@pulumi.output_type
class GetSectionResult:
    """
    A collection of values returned by getSection.
    """
    def __init__(__self__, description=None, display_order=None, dns_resolver_id=None, edit_date=None, id=None, master_section_id=None, name=None, permissions=None, section_id=None, show_supernet_only=None, show_vlan_in_subnet_listing=None, show_vrf_in_subnet_listing=None, strict_mode=None, subnet_ordering=None):
        if description and not isinstance(description, str):
            raise TypeError("Expected argument 'description' to be a str")
        pulumi.set(__self__, "description", description)
        if display_order and not isinstance(display_order, int):
            raise TypeError("Expected argument 'display_order' to be a int")
        pulumi.set(__self__, "display_order", display_order)
        if dns_resolver_id and not isinstance(dns_resolver_id, int):
            raise TypeError("Expected argument 'dns_resolver_id' to be a int")
        pulumi.set(__self__, "dns_resolver_id", dns_resolver_id)
        if edit_date and not isinstance(edit_date, str):
            raise TypeError("Expected argument 'edit_date' to be a str")
        pulumi.set(__self__, "edit_date", edit_date)
        if id and not isinstance(id, str):
            raise TypeError("Expected argument 'id' to be a str")
        pulumi.set(__self__, "id", id)
        if master_section_id and not isinstance(master_section_id, int):
            raise TypeError("Expected argument 'master_section_id' to be a int")
        pulumi.set(__self__, "master_section_id", master_section_id)
        if name and not isinstance(name, str):
            raise TypeError("Expected argument 'name' to be a str")
        pulumi.set(__self__, "name", name)
        if permissions and not isinstance(permissions, str):
            raise TypeError("Expected argument 'permissions' to be a str")
        pulumi.set(__self__, "permissions", permissions)
        if section_id and not isinstance(section_id, int):
            raise TypeError("Expected argument 'section_id' to be a int")
        pulumi.set(__self__, "section_id", section_id)
        if show_supernet_only and not isinstance(show_supernet_only, bool):
            raise TypeError("Expected argument 'show_supernet_only' to be a bool")
        pulumi.set(__self__, "show_supernet_only", show_supernet_only)
        if show_vlan_in_subnet_listing and not isinstance(show_vlan_in_subnet_listing, bool):
            raise TypeError("Expected argument 'show_vlan_in_subnet_listing' to be a bool")
        pulumi.set(__self__, "show_vlan_in_subnet_listing", show_vlan_in_subnet_listing)
        if show_vrf_in_subnet_listing and not isinstance(show_vrf_in_subnet_listing, bool):
            raise TypeError("Expected argument 'show_vrf_in_subnet_listing' to be a bool")
        pulumi.set(__self__, "show_vrf_in_subnet_listing", show_vrf_in_subnet_listing)
        if strict_mode and not isinstance(strict_mode, bool):
            raise TypeError("Expected argument 'strict_mode' to be a bool")
        pulumi.set(__self__, "strict_mode", strict_mode)
        if subnet_ordering and not isinstance(subnet_ordering, str):
            raise TypeError("Expected argument 'subnet_ordering' to be a str")
        pulumi.set(__self__, "subnet_ordering", subnet_ordering)

    @property
    @pulumi.getter
    def description(self) -> str:
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="displayOrder")
    def display_order(self) -> int:
        return pulumi.get(self, "display_order")

    @property
    @pulumi.getter(name="dnsResolverId")
    def dns_resolver_id(self) -> int:
        return pulumi.get(self, "dns_resolver_id")

    @property
    @pulumi.getter(name="editDate")
    def edit_date(self) -> str:
        return pulumi.get(self, "edit_date")

    @property
    @pulumi.getter
    def id(self) -> str:
        """
        The provider-assigned unique ID for this managed resource.
        """
        return pulumi.get(self, "id")

    @property
    @pulumi.getter(name="masterSectionId")
    def master_section_id(self) -> int:
        return pulumi.get(self, "master_section_id")

    @property
    @pulumi.getter
    def name(self) -> str:
        return pulumi.get(self, "name")

    @property
    @pulumi.getter
    def permissions(self) -> str:
        return pulumi.get(self, "permissions")

    @property
    @pulumi.getter(name="sectionId")
    def section_id(self) -> int:
        return pulumi.get(self, "section_id")

    @property
    @pulumi.getter(name="showSupernetOnly")
    def show_supernet_only(self) -> bool:
        return pulumi.get(self, "show_supernet_only")

    @property
    @pulumi.getter(name="showVlanInSubnetListing")
    def show_vlan_in_subnet_listing(self) -> bool:
        return pulumi.get(self, "show_vlan_in_subnet_listing")

    @property
    @pulumi.getter(name="showVrfInSubnetListing")
    def show_vrf_in_subnet_listing(self) -> bool:
        return pulumi.get(self, "show_vrf_in_subnet_listing")

    @property
    @pulumi.getter(name="strictMode")
    def strict_mode(self) -> bool:
        return pulumi.get(self, "strict_mode")

    @property
    @pulumi.getter(name="subnetOrdering")
    def subnet_ordering(self) -> str:
        return pulumi.get(self, "subnet_ordering")


class AwaitableGetSectionResult(GetSectionResult):
    # pylint: disable=using-constant-test
    def __await__(self):
        if False:
            yield self
        return GetSectionResult(
            description=self.description,
            display_order=self.display_order,
            dns_resolver_id=self.dns_resolver_id,
            edit_date=self.edit_date,
            id=self.id,
            master_section_id=self.master_section_id,
            name=self.name,
            permissions=self.permissions,
            section_id=self.section_id,
            show_supernet_only=self.show_supernet_only,
            show_vlan_in_subnet_listing=self.show_vlan_in_subnet_listing,
            show_vrf_in_subnet_listing=self.show_vrf_in_subnet_listing,
            strict_mode=self.strict_mode,
            subnet_ordering=self.subnet_ordering)


def get_section(name: Optional[str] = None,
                section_id: Optional[int] = None,
                opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetSectionResult:
    """
    Use this data source to access information about an existing resource.
    """
    __args__ = dict()
    __args__['name'] = name
    __args__['sectionId'] = section_id
    if opts is None:
        opts = pulumi.InvokeOptions()
    if opts.version is None:
        opts.version = _utilities.get_version()
    __ret__ = pulumi.runtime.invoke('phpipam:index/getSection:getSection', __args__, opts=opts, typ=GetSectionResult).value

    return AwaitableGetSectionResult(
        description=__ret__.description,
        display_order=__ret__.display_order,
        dns_resolver_id=__ret__.dns_resolver_id,
        edit_date=__ret__.edit_date,
        id=__ret__.id,
        master_section_id=__ret__.master_section_id,
        name=__ret__.name,
        permissions=__ret__.permissions,
        section_id=__ret__.section_id,
        show_supernet_only=__ret__.show_supernet_only,
        show_vlan_in_subnet_listing=__ret__.show_vlan_in_subnet_listing,
        show_vrf_in_subnet_listing=__ret__.show_vrf_in_subnet_listing,
        strict_mode=__ret__.strict_mode,
        subnet_ordering=__ret__.subnet_ordering)
