# 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 Union
from . import utilities, tables


class FirewallSection(pulumi.CustomResource):
    applied_tos: pulumi.Output[list]
    """
    List of objects where the rules in this section will be enforced. This will take precedence over rule level appliedTo

      * `isValid` (`bool`)
      * `targetDisplayName` (`str`)
      * `targetId` (`str`)
      * `targetType` (`str`)
    """
    description: pulumi.Output[str]
    """
    Description of this resource
    """
    display_name: pulumi.Output[str]
    """
    The display name of this resource. Defaults to ID if not set
    """
    insert_before: pulumi.Output[str]
    """
    Id of section that should come after this one
    """
    is_default: pulumi.Output[bool]
    """
    A boolean flag which reflects whether a firewall section is default section or not
    """
    revision: pulumi.Output[float]
    """
    The _revision property describes the current revision of the resource. To prevent clients from overwriting each other's
    changes, PUT operations must include the current _revision of the resource, which clients should obtain by issuing a GET
    operation. If the _revision provided in a PUT request is missing or stale, the operation will be rejected
    """
    rules: pulumi.Output[list]
    """
    List of firewall rules in the section. Only homogeneous rules are supported

      * `action` (`str`)
      * `applied_tos` (`list`)
        * `isValid` (`bool`)
        * `targetDisplayName` (`str`)
        * `targetId` (`str`)
        * `targetType` (`str`)

      * `description` (`str`)
      * `destinations` (`list`)
        * `isValid` (`bool`)
        * `targetDisplayName` (`str`)
        * `targetId` (`str`)
        * `targetType` (`str`)

      * `destinationsExcluded` (`bool`)
      * `direction` (`str`)
      * `disabled` (`bool`)
      * `display_name` (`str`)
      * `id` (`str`)
      * `ipProtocol` (`str`)
      * `logged` (`bool`)
      * `notes` (`str`)
      * `revision` (`float`)
      * `ruleTag` (`str`)
      * `services` (`list`)
        * `isValid` (`bool`)
        * `targetDisplayName` (`str`)
        * `targetId` (`str`)
        * `targetType` (`str`)

      * `sources` (`list`)
        * `isValid` (`bool`)
        * `targetDisplayName` (`str`)
        * `targetId` (`str`)
        * `targetType` (`str`)

      * `sourcesExcluded` (`bool`)
    """
    section_type: pulumi.Output[str]
    """
    Type of the rules which a section can contain. Only homogeneous sections are supported
    """
    stateful: pulumi.Output[bool]
    """
    Stateful or Stateless nature of firewall section is enforced on all rules inside the section
    """
    tags: pulumi.Output[list]
    """
    Set of opaque identifiers meaningful to the user

      * `scope` (`str`)
      * `tag` (`str`)
    """
    def __init__(__self__, resource_name, opts=None, applied_tos=None, description=None, display_name=None, insert_before=None, rules=None, section_type=None, stateful=None, tags=None, __props__=None, __name__=None, __opts__=None):
        """
        Create a FirewallSection resource with the given unique name, props, and options.
        :param str resource_name: The name of the resource.
        :param pulumi.ResourceOptions opts: Options for the resource.
        :param pulumi.Input[list] applied_tos: List of objects where the rules in this section will be enforced. This will take precedence over rule level appliedTo
        :param pulumi.Input[str] description: Description of this resource
        :param pulumi.Input[str] display_name: The display name of this resource. Defaults to ID if not set
        :param pulumi.Input[str] insert_before: Id of section that should come after this one
        :param pulumi.Input[list] rules: List of firewall rules in the section. Only homogeneous rules are supported
        :param pulumi.Input[str] section_type: Type of the rules which a section can contain. Only homogeneous sections are supported
        :param pulumi.Input[bool] stateful: Stateful or Stateless nature of firewall section is enforced on all rules inside the section
        :param pulumi.Input[list] tags: Set of opaque identifiers meaningful to the user

        The **applied_tos** object supports the following:

          * `isValid` (`pulumi.Input[bool]`)
          * `targetDisplayName` (`pulumi.Input[str]`)
          * `targetId` (`pulumi.Input[str]`)
          * `targetType` (`pulumi.Input[str]`)

        The **rules** object supports the following:

          * `action` (`pulumi.Input[str]`)
          * `applied_tos` (`pulumi.Input[list]`)
            * `isValid` (`pulumi.Input[bool]`)
            * `targetDisplayName` (`pulumi.Input[str]`)
            * `targetId` (`pulumi.Input[str]`)
            * `targetType` (`pulumi.Input[str]`)

          * `description` (`pulumi.Input[str]`)
          * `destinations` (`pulumi.Input[list]`)
            * `isValid` (`pulumi.Input[bool]`)
            * `targetDisplayName` (`pulumi.Input[str]`)
            * `targetId` (`pulumi.Input[str]`)
            * `targetType` (`pulumi.Input[str]`)

          * `destinationsExcluded` (`pulumi.Input[bool]`)
          * `direction` (`pulumi.Input[str]`)
          * `disabled` (`pulumi.Input[bool]`)
          * `display_name` (`pulumi.Input[str]`)
          * `id` (`pulumi.Input[str]`)
          * `ipProtocol` (`pulumi.Input[str]`)
          * `logged` (`pulumi.Input[bool]`)
          * `notes` (`pulumi.Input[str]`)
          * `revision` (`pulumi.Input[float]`)
          * `ruleTag` (`pulumi.Input[str]`)
          * `services` (`pulumi.Input[list]`)
            * `isValid` (`pulumi.Input[bool]`)
            * `targetDisplayName` (`pulumi.Input[str]`)
            * `targetId` (`pulumi.Input[str]`)
            * `targetType` (`pulumi.Input[str]`)

          * `sources` (`pulumi.Input[list]`)
            * `isValid` (`pulumi.Input[bool]`)
            * `targetDisplayName` (`pulumi.Input[str]`)
            * `targetId` (`pulumi.Input[str]`)
            * `targetType` (`pulumi.Input[str]`)

          * `sourcesExcluded` (`pulumi.Input[bool]`)

        The **tags** object supports the following:

          * `scope` (`pulumi.Input[str]`)
          * `tag` (`pulumi.Input[str]`)
        """
        if __name__ is not None:
            warnings.warn("explicit use of __name__ is deprecated", DeprecationWarning)
            resource_name = __name__
        if __opts__ is not None:
            warnings.warn("explicit use of __opts__ is deprecated, use 'opts' instead", DeprecationWarning)
            opts = __opts__
        if opts is None:
            opts = pulumi.ResourceOptions()
        if not isinstance(opts, pulumi.ResourceOptions):
            raise TypeError('Expected resource options to be a ResourceOptions instance')
        if opts.version is None:
            opts.version = utilities.get_version()
        if opts.id is None:
            if __props__ is not None:
                raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
            __props__ = dict()

            __props__['applied_tos'] = applied_tos
            __props__['description'] = description
            __props__['display_name'] = display_name
            __props__['insert_before'] = insert_before
            __props__['rules'] = rules
            if section_type is None:
                raise TypeError("Missing required property 'section_type'")
            __props__['section_type'] = section_type
            if stateful is None:
                raise TypeError("Missing required property 'stateful'")
            __props__['stateful'] = stateful
            __props__['tags'] = tags
            __props__['is_default'] = None
            __props__['revision'] = None
        super(FirewallSection, __self__).__init__(
            'nsxt:index/firewallSection:FirewallSection',
            resource_name,
            __props__,
            opts)

    @staticmethod
    def get(resource_name, id, opts=None, applied_tos=None, description=None, display_name=None, insert_before=None, is_default=None, revision=None, rules=None, section_type=None, stateful=None, tags=None):
        """
        Get an existing FirewallSection resource's state with the given name, id, and optional extra
        properties used to qualify the lookup.

        :param str resource_name: The unique name of the resulting resource.
        :param str id: The unique provider ID of the resource to lookup.
        :param pulumi.ResourceOptions opts: Options for the resource.
        :param pulumi.Input[list] applied_tos: List of objects where the rules in this section will be enforced. This will take precedence over rule level appliedTo
        :param pulumi.Input[str] description: Description of this resource
        :param pulumi.Input[str] display_name: The display name of this resource. Defaults to ID if not set
        :param pulumi.Input[str] insert_before: Id of section that should come after this one
        :param pulumi.Input[bool] is_default: A boolean flag which reflects whether a firewall section is default section or not
        :param pulumi.Input[float] revision: The _revision property describes the current revision of the resource. To prevent clients from overwriting each other's
               changes, PUT operations must include the current _revision of the resource, which clients should obtain by issuing a GET
               operation. If the _revision provided in a PUT request is missing or stale, the operation will be rejected
        :param pulumi.Input[list] rules: List of firewall rules in the section. Only homogeneous rules are supported
        :param pulumi.Input[str] section_type: Type of the rules which a section can contain. Only homogeneous sections are supported
        :param pulumi.Input[bool] stateful: Stateful or Stateless nature of firewall section is enforced on all rules inside the section
        :param pulumi.Input[list] tags: Set of opaque identifiers meaningful to the user

        The **applied_tos** object supports the following:

          * `isValid` (`pulumi.Input[bool]`)
          * `targetDisplayName` (`pulumi.Input[str]`)
          * `targetId` (`pulumi.Input[str]`)
          * `targetType` (`pulumi.Input[str]`)

        The **rules** object supports the following:

          * `action` (`pulumi.Input[str]`)
          * `applied_tos` (`pulumi.Input[list]`)
            * `isValid` (`pulumi.Input[bool]`)
            * `targetDisplayName` (`pulumi.Input[str]`)
            * `targetId` (`pulumi.Input[str]`)
            * `targetType` (`pulumi.Input[str]`)

          * `description` (`pulumi.Input[str]`)
          * `destinations` (`pulumi.Input[list]`)
            * `isValid` (`pulumi.Input[bool]`)
            * `targetDisplayName` (`pulumi.Input[str]`)
            * `targetId` (`pulumi.Input[str]`)
            * `targetType` (`pulumi.Input[str]`)

          * `destinationsExcluded` (`pulumi.Input[bool]`)
          * `direction` (`pulumi.Input[str]`)
          * `disabled` (`pulumi.Input[bool]`)
          * `display_name` (`pulumi.Input[str]`)
          * `id` (`pulumi.Input[str]`)
          * `ipProtocol` (`pulumi.Input[str]`)
          * `logged` (`pulumi.Input[bool]`)
          * `notes` (`pulumi.Input[str]`)
          * `revision` (`pulumi.Input[float]`)
          * `ruleTag` (`pulumi.Input[str]`)
          * `services` (`pulumi.Input[list]`)
            * `isValid` (`pulumi.Input[bool]`)
            * `targetDisplayName` (`pulumi.Input[str]`)
            * `targetId` (`pulumi.Input[str]`)
            * `targetType` (`pulumi.Input[str]`)

          * `sources` (`pulumi.Input[list]`)
            * `isValid` (`pulumi.Input[bool]`)
            * `targetDisplayName` (`pulumi.Input[str]`)
            * `targetId` (`pulumi.Input[str]`)
            * `targetType` (`pulumi.Input[str]`)

          * `sourcesExcluded` (`pulumi.Input[bool]`)

        The **tags** object supports the following:

          * `scope` (`pulumi.Input[str]`)
          * `tag` (`pulumi.Input[str]`)
        """
        opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))

        __props__ = dict()

        __props__["applied_tos"] = applied_tos
        __props__["description"] = description
        __props__["display_name"] = display_name
        __props__["insert_before"] = insert_before
        __props__["is_default"] = is_default
        __props__["revision"] = revision
        __props__["rules"] = rules
        __props__["section_type"] = section_type
        __props__["stateful"] = stateful
        __props__["tags"] = tags
        return FirewallSection(resource_name, opts=opts, __props__=__props__)

    def translate_output_property(self, prop):
        return tables._CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop

    def translate_input_property(self, prop):
        return tables._SNAKE_TO_CAMEL_CASE_TABLE.get(prop) or prop

# 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 Union
from . import utilities, tables


class FirewallSection(pulumi.CustomResource):
    applied_tos: pulumi.Output[list]
    """
    List of objects where the rules in this section will be enforced. This will take precedence over rule level appliedTo

      * `isValid` (`bool`)
      * `targetDisplayName` (`str`)
      * `targetId` (`str`)
      * `targetType` (`str`)
    """
    description: pulumi.Output[str]
    """
    Description of this resource
    """
    display_name: pulumi.Output[str]
    """
    The display name of this resource. Defaults to ID if not set
    """
    insert_before: pulumi.Output[str]
    """
    Id of section that should come after this one
    """
    is_default: pulumi.Output[bool]
    """
    A boolean flag which reflects whether a firewall section is default section or not
    """
    revision: pulumi.Output[float]
    """
    The _revision property describes the current revision of the resource. To prevent clients from overwriting each other's
    changes, PUT operations must include the current _revision of the resource, which clients should obtain by issuing a GET
    operation. If the _revision provided in a PUT request is missing or stale, the operation will be rejected
    """
    rules: pulumi.Output[list]
    """
    List of firewall rules in the section. Only homogeneous rules are supported

      * `action` (`str`)
      * `applied_tos` (`list`)
        * `isValid` (`bool`)
        * `targetDisplayName` (`str`)
        * `targetId` (`str`)
        * `targetType` (`str`)

      * `description` (`str`)
      * `destinations` (`list`)
        * `isValid` (`bool`)
        * `targetDisplayName` (`str`)
        * `targetId` (`str`)
        * `targetType` (`str`)

      * `destinationsExcluded` (`bool`)
      * `direction` (`str`)
      * `disabled` (`bool`)
      * `display_name` (`str`)
      * `id` (`str`)
      * `ipProtocol` (`str`)
      * `logged` (`bool`)
      * `notes` (`str`)
      * `revision` (`float`)
      * `ruleTag` (`str`)
      * `services` (`list`)
        * `isValid` (`bool`)
        * `targetDisplayName` (`str`)
        * `targetId` (`str`)
        * `targetType` (`str`)

      * `sources` (`list`)
        * `isValid` (`bool`)
        * `targetDisplayName` (`str`)
        * `targetId` (`str`)
        * `targetType` (`str`)

      * `sourcesExcluded` (`bool`)
    """
    section_type: pulumi.Output[str]
    """
    Type of the rules which a section can contain. Only homogeneous sections are supported
    """
    stateful: pulumi.Output[bool]
    """
    Stateful or Stateless nature of firewall section is enforced on all rules inside the section
    """
    tags: pulumi.Output[list]
    """
    Set of opaque identifiers meaningful to the user

      * `scope` (`str`)
      * `tag` (`str`)
    """
    def __init__(__self__, resource_name, opts=None, applied_tos=None, description=None, display_name=None, insert_before=None, rules=None, section_type=None, stateful=None, tags=None, __props__=None, __name__=None, __opts__=None):
        """
        Create a FirewallSection resource with the given unique name, props, and options.
        :param str resource_name: The name of the resource.
        :param pulumi.ResourceOptions opts: Options for the resource.
        :param pulumi.Input[list] applied_tos: List of objects where the rules in this section will be enforced. This will take precedence over rule level appliedTo
        :param pulumi.Input[str] description: Description of this resource
        :param pulumi.Input[str] display_name: The display name of this resource. Defaults to ID if not set
        :param pulumi.Input[str] insert_before: Id of section that should come after this one
        :param pulumi.Input[list] rules: List of firewall rules in the section. Only homogeneous rules are supported
        :param pulumi.Input[str] section_type: Type of the rules which a section can contain. Only homogeneous sections are supported
        :param pulumi.Input[bool] stateful: Stateful or Stateless nature of firewall section is enforced on all rules inside the section
        :param pulumi.Input[list] tags: Set of opaque identifiers meaningful to the user

        The **applied_tos** object supports the following:

          * `isValid` (`pulumi.Input[bool]`)
          * `targetDisplayName` (`pulumi.Input[str]`)
          * `targetId` (`pulumi.Input[str]`)
          * `targetType` (`pulumi.Input[str]`)

        The **rules** object supports the following:

          * `action` (`pulumi.Input[str]`)
          * `applied_tos` (`pulumi.Input[list]`)
            * `isValid` (`pulumi.Input[bool]`)
            * `targetDisplayName` (`pulumi.Input[str]`)
            * `targetId` (`pulumi.Input[str]`)
            * `targetType` (`pulumi.Input[str]`)

          * `description` (`pulumi.Input[str]`)
          * `destinations` (`pulumi.Input[list]`)
            * `isValid` (`pulumi.Input[bool]`)
            * `targetDisplayName` (`pulumi.Input[str]`)
            * `targetId` (`pulumi.Input[str]`)
            * `targetType` (`pulumi.Input[str]`)

          * `destinationsExcluded` (`pulumi.Input[bool]`)
          * `direction` (`pulumi.Input[str]`)
          * `disabled` (`pulumi.Input[bool]`)
          * `display_name` (`pulumi.Input[str]`)
          * `id` (`pulumi.Input[str]`)
          * `ipProtocol` (`pulumi.Input[str]`)
          * `logged` (`pulumi.Input[bool]`)
          * `notes` (`pulumi.Input[str]`)
          * `revision` (`pulumi.Input[float]`)
          * `ruleTag` (`pulumi.Input[str]`)
          * `services` (`pulumi.Input[list]`)
            * `isValid` (`pulumi.Input[bool]`)
            * `targetDisplayName` (`pulumi.Input[str]`)
            * `targetId` (`pulumi.Input[str]`)
            * `targetType` (`pulumi.Input[str]`)

          * `sources` (`pulumi.Input[list]`)
            * `isValid` (`pulumi.Input[bool]`)
            * `targetDisplayName` (`pulumi.Input[str]`)
            * `targetId` (`pulumi.Input[str]`)
            * `targetType` (`pulumi.Input[str]`)

          * `sourcesExcluded` (`pulumi.Input[bool]`)

        The **tags** object supports the following:

          * `scope` (`pulumi.Input[str]`)
          * `tag` (`pulumi.Input[str]`)
        """
        if __name__ is not None:
            warnings.warn("explicit use of __name__ is deprecated", DeprecationWarning)
            resource_name = __name__
        if __opts__ is not None:
            warnings.warn("explicit use of __opts__ is deprecated, use 'opts' instead", DeprecationWarning)
            opts = __opts__
        if opts is None:
            opts = pulumi.ResourceOptions()
        if not isinstance(opts, pulumi.ResourceOptions):
            raise TypeError('Expected resource options to be a ResourceOptions instance')
        if opts.version is None:
            opts.version = utilities.get_version()
        if opts.id is None:
            if __props__ is not None:
                raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
            __props__ = dict()

            __props__['applied_tos'] = applied_tos
            __props__['description'] = description
            __props__['display_name'] = display_name
            __props__['insert_before'] = insert_before
            __props__['rules'] = rules
            if section_type is None:
                raise TypeError("Missing required property 'section_type'")
            __props__['section_type'] = section_type
            if stateful is None:
                raise TypeError("Missing required property 'stateful'")
            __props__['stateful'] = stateful
            __props__['tags'] = tags
            __props__['is_default'] = None
            __props__['revision'] = None
        super(FirewallSection, __self__).__init__(
            'nsxt:index/firewallSection:FirewallSection',
            resource_name,
            __props__,
            opts)

    @staticmethod
    def get(resource_name, id, opts=None, applied_tos=None, description=None, display_name=None, insert_before=None, is_default=None, revision=None, rules=None, section_type=None, stateful=None, tags=None):
        """
        Get an existing FirewallSection resource's state with the given name, id, and optional extra
        properties used to qualify the lookup.

        :param str resource_name: The unique name of the resulting resource.
        :param str id: The unique provider ID of the resource to lookup.
        :param pulumi.ResourceOptions opts: Options for the resource.
        :param pulumi.Input[list] applied_tos: List of objects where the rules in this section will be enforced. This will take precedence over rule level appliedTo
        :param pulumi.Input[str] description: Description of this resource
        :param pulumi.Input[str] display_name: The display name of this resource. Defaults to ID if not set
        :param pulumi.Input[str] insert_before: Id of section that should come after this one
        :param pulumi.Input[bool] is_default: A boolean flag which reflects whether a firewall section is default section or not
        :param pulumi.Input[float] revision: The _revision property describes the current revision of the resource. To prevent clients from overwriting each other's
               changes, PUT operations must include the current _revision of the resource, which clients should obtain by issuing a GET
               operation. If the _revision provided in a PUT request is missing or stale, the operation will be rejected
        :param pulumi.Input[list] rules: List of firewall rules in the section. Only homogeneous rules are supported
        :param pulumi.Input[str] section_type: Type of the rules which a section can contain. Only homogeneous sections are supported
        :param pulumi.Input[bool] stateful: Stateful or Stateless nature of firewall section is enforced on all rules inside the section
        :param pulumi.Input[list] tags: Set of opaque identifiers meaningful to the user

        The **applied_tos** object supports the following:

          * `isValid` (`pulumi.Input[bool]`)
          * `targetDisplayName` (`pulumi.Input[str]`)
          * `targetId` (`pulumi.Input[str]`)
          * `targetType` (`pulumi.Input[str]`)

        The **rules** object supports the following:

          * `action` (`pulumi.Input[str]`)
          * `applied_tos` (`pulumi.Input[list]`)
            * `isValid` (`pulumi.Input[bool]`)
            * `targetDisplayName` (`pulumi.Input[str]`)
            * `targetId` (`pulumi.Input[str]`)
            * `targetType` (`pulumi.Input[str]`)

          * `description` (`pulumi.Input[str]`)
          * `destinations` (`pulumi.Input[list]`)
            * `isValid` (`pulumi.Input[bool]`)
            * `targetDisplayName` (`pulumi.Input[str]`)
            * `targetId` (`pulumi.Input[str]`)
            * `targetType` (`pulumi.Input[str]`)

          * `destinationsExcluded` (`pulumi.Input[bool]`)
          * `direction` (`pulumi.Input[str]`)
          * `disabled` (`pulumi.Input[bool]`)
          * `display_name` (`pulumi.Input[str]`)
          * `id` (`pulumi.Input[str]`)
          * `ipProtocol` (`pulumi.Input[str]`)
          * `logged` (`pulumi.Input[bool]`)
          * `notes` (`pulumi.Input[str]`)
          * `revision` (`pulumi.Input[float]`)
          * `ruleTag` (`pulumi.Input[str]`)
          * `services` (`pulumi.Input[list]`)
            * `isValid` (`pulumi.Input[bool]`)
            * `targetDisplayName` (`pulumi.Input[str]`)
            * `targetId` (`pulumi.Input[str]`)
            * `targetType` (`pulumi.Input[str]`)

          * `sources` (`pulumi.Input[list]`)
            * `isValid` (`pulumi.Input[bool]`)
            * `targetDisplayName` (`pulumi.Input[str]`)
            * `targetId` (`pulumi.Input[str]`)
            * `targetType` (`pulumi.Input[str]`)

          * `sourcesExcluded` (`pulumi.Input[bool]`)

        The **tags** object supports the following:

          * `scope` (`pulumi.Input[str]`)
          * `tag` (`pulumi.Input[str]`)
        """
        opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))

        __props__ = dict()

        __props__["applied_tos"] = applied_tos
        __props__["description"] = description
        __props__["display_name"] = display_name
        __props__["insert_before"] = insert_before
        __props__["is_default"] = is_default
        __props__["revision"] = revision
        __props__["rules"] = rules
        __props__["section_type"] = section_type
        __props__["stateful"] = stateful
        __props__["tags"] = tags
        return FirewallSection(resource_name, opts=opts, __props__=__props__)

    def translate_output_property(self, prop):
        return tables._CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop

    def translate_input_property(self, prop):
        return tables._SNAKE_TO_CAMEL_CASE_TABLE.get(prop) or prop

# 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! *** List of objects where the rules in this section will be enforced. This will take precedence over rule level appliedTo        * `isValid` (`bool`)       * `targetDisplayName` (`str`)       * `targetId` (`str`)       * `targetType` (`str`) Description of this resource The display name of this resource. Defaults to ID if not set Id of section that should come after this one A boolean flag which reflects whether a firewall section is default section or not The _revision property describes the current revision of the resource. To prevent clients from overwriting each other's     changes, PUT operations must include the current _revision of the resource, which clients should obtain by issuing a GET     operation. If the _revision provided in a PUT request is missing or stale, the operation will be rejected List of firewall rules in the section. Only homogeneous rules are supported        * `action` (`str`)       * `applied_tos` (`list`)         * `isValid` (`bool`)         * `targetDisplayName` (`str`)         * `targetId` (`str`)         * `targetType` (`str`)        * `description` (`str`)       * `destinations` (`list`)         * `isValid` (`bool`)         * `targetDisplayName` (`str`)         * `targetId` (`str`)         * `targetType` (`str`)        * `destinationsExcluded` (`bool`)       * `direction` (`str`)       * `disabled` (`bool`)       * `display_name` (`str`)       * `id` (`str`)       * `ipProtocol` (`str`)       * `logged` (`bool`)       * `notes` (`str`)       * `revision` (`float`)       * `ruleTag` (`str`)       * `services` (`list`)         * `isValid` (`bool`)         * `targetDisplayName` (`str`)         * `targetId` (`str`)         * `targetType` (`str`)        * `sources` (`list`)         * `isValid` (`bool`)         * `targetDisplayName` (`str`)         * `targetId` (`str`)         * `targetType` (`str`)        * `sourcesExcluded` (`bool`) Type of the rules which a section can contain. Only homogeneous sections are supported Stateful or Stateless nature of firewall section is enforced on all rules inside the section Set of opaque identifiers meaningful to the user        * `scope` (`str`)       * `tag` (`str`) Create a FirewallSection resource with the given unique name, props, and options.         :param str resource_name: The name of the resource.         :param pulumi.ResourceOptions opts: Options for the resource.         :param pulumi.Input[list] applied_tos: List of objects where the rules in this section will be enforced. This will take precedence over rule level appliedTo         :param pulumi.Input[str] description: Description of this resource         :param pulumi.Input[str] display_name: The display name of this resource. Defaults to ID if not set         :param pulumi.Input[str] insert_before: Id of section that should come after this one         :param pulumi.Input[list] rules: List of firewall rules in the section. Only homogeneous rules are supported         :param pulumi.Input[str] section_type: Type of the rules which a section can contain. Only homogeneous sections are supported         :param pulumi.Input[bool] stateful: Stateful or Stateless nature of firewall section is enforced on all rules inside the section         :param pulumi.Input[list] tags: Set of opaque identifiers meaningful to the user          The **applied_tos** object supports the following:            * `isValid` (`pulumi.Input[bool]`)           * `targetDisplayName` (`pulumi.Input[str]`)           * `targetId` (`pulumi.Input[str]`)           * `targetType` (`pulumi.Input[str]`)          The **rules** object supports the following:            * `action` (`pulumi.Input[str]`)           * `applied_tos` (`pulumi.Input[list]`)             * `isValid` (`pulumi.Input[bool]`)             * `targetDisplayName` (`pulumi.Input[str]`)             * `targetId` (`pulumi.Input[str]`)             * `targetType` (`pulumi.Input[str]`)            * `description` (`pulumi.Input[str]`)           * `destinations` (`pulumi.Input[list]`)             * `isValid` (`pulumi.Input[bool]`)             * `targetDisplayName` (`pulumi.Input[str]`)             * `targetId` (`pulumi.Input[str]`)             * `targetType` (`pulumi.Input[str]`)            * `destinationsExcluded` (`pulumi.Input[bool]`)           * `direction` (`pulumi.Input[str]`)           * `disabled` (`pulumi.Input[bool]`)           * `display_name` (`pulumi.Input[str]`)           * `id` (`pulumi.Input[str]`)           * `ipProtocol` (`pulumi.Input[str]`)           * `logged` (`pulumi.Input[bool]`)           * `notes` (`pulumi.Input[str]`)           * `revision` (`pulumi.Input[float]`)           * `ruleTag` (`pulumi.Input[str]`)           * `services` (`pulumi.Input[list]`)             * `isValid` (`pulumi.Input[bool]`)             * `targetDisplayName` (`pulumi.Input[str]`)             * `targetId` (`pulumi.Input[str]`)             * `targetType` (`pulumi.Input[str]`)            * `sources` (`pulumi.Input[list]`)             * `isValid` (`pulumi.Input[bool]`)             * `targetDisplayName` (`pulumi.Input[str]`)             * `targetId` (`pulumi.Input[str]`)             * `targetType` (`pulumi.Input[str]`)            * `sourcesExcluded` (`pulumi.Input[bool]`)          The **tags** object supports the following:            * `scope` (`pulumi.Input[str]`)           * `tag` (`pulumi.Input[str]`) Get an existing FirewallSection resource's state with the given name, id, and optional extra         properties used to qualify the lookup.          :param str resource_name: The unique name of the resulting resource.         :param str id: The unique provider ID of the resource to lookup.         :param pulumi.ResourceOptions opts: Options for the resource.         :param pulumi.Input[list] applied_tos: List of objects where the rules in this section will be enforced. This will take precedence over rule level appliedTo         :param pulumi.Input[str] description: Description of this resource         :param pulumi.Input[str] display_name: The display name of this resource. Defaults to ID if not set         :param pulumi.Input[str] insert_before: Id of section that should come after this one         :param pulumi.Input[bool] is_default: A boolean flag which reflects whether a firewall section is default section or not         :param pulumi.Input[float] revision: The _revision property describes the current revision of the resource. To prevent clients from overwriting each other's                changes, PUT operations must include the current _revision of the resource, which clients should obtain by issuing a GET                operation. If the _revision provided in a PUT request is missing or stale, the operation will be rejected         :param pulumi.Input[list] rules: List of firewall rules in the section. Only homogeneous rules are supported         :param pulumi.Input[str] section_type: Type of the rules which a section can contain. Only homogeneous sections are supported         :param pulumi.Input[bool] stateful: Stateful or Stateless nature of firewall section is enforced on all rules inside the section         :param pulumi.Input[list] tags: Set of opaque identifiers meaningful to the user          The **applied_tos** object supports the following:            * `isValid` (`pulumi.Input[bool]`)           * `targetDisplayName` (`pulumi.Input[str]`)           * `targetId` (`pulumi.Input[str]`)           * `targetType` (`pulumi.Input[str]`)          The **rules** object supports the following:            * `action` (`pulumi.Input[str]`)           * `applied_tos` (`pulumi.Input[list]`)             * `isValid` (`pulumi.Input[bool]`)             * `targetDisplayName` (`pulumi.Input[str]`)             * `targetId` (`pulumi.Input[str]`)             * `targetType` (`pulumi.Input[str]`)            * `description` (`pulumi.Input[str]`)           * `destinations` (`pulumi.Input[list]`)             * `isValid` (`pulumi.Input[bool]`)             * `targetDisplayName` (`pulumi.Input[str]`)             * `targetId` (`pulumi.Input[str]`)             * `targetType` (`pulumi.Input[str]`)            * `destinationsExcluded` (`pulumi.Input[bool]`)           * `direction` (`pulumi.Input[str]`)           * `disabled` (`pulumi.Input[bool]`)           * `display_name` (`pulumi.Input[str]`)           * `id` (`pulumi.Input[str]`)           * `ipProtocol` (`pulumi.Input[str]`)           * `logged` (`pulumi.Input[bool]`)           * `notes` (`pulumi.Input[str]`)           * `revision` (`pulumi.Input[float]`)           * `ruleTag` (`pulumi.Input[str]`)           * `services` (`pulumi.Input[list]`)             * `isValid` (`pulumi.Input[bool]`)             * `targetDisplayName` (`pulumi.Input[str]`)             * `targetId` (`pulumi.Input[str]`)             * `targetType` (`pulumi.Input[str]`)            * `sources` (`pulumi.Input[list]`)             * `isValid` (`pulumi.Input[bool]`)             * `targetDisplayName` (`pulumi.Input[str]`)             * `targetId` (`pulumi.Input[str]`)             * `targetType` (`pulumi.Input[str]`)            * `sourcesExcluded` (`pulumi.Input[bool]`)          The **tags** object supports the following:            * `scope` (`pulumi.Input[str]`)           * `tag` (`pulumi.Input[str]`)