oracle.oci.oci_network_security_list (5.0.0) — module

Manage a SecurityList resource in Oracle Cloud Infrastructure

| "added in version" 2.9.0 of oracle.oci"

Authors: Oracle (@oracle)

preview | supported by community

Install collection

Install with ansible-galaxy collection install oracle.oci:==5.0.0


Add to requirements.yml

  collections:
    - name: oracle.oci
      version: 5.0.0

Description

This module allows the user to create, update and delete a SecurityList resource in Oracle Cloud Infrastructure

For I(state=present), creates a new security list for the specified VCN. For more information about security lists, see L(Security Lists,https://docs.cloud.oracle.com/iaas/Content/Network/Concepts/securitylists.htm). For information on the number of rules you can have in a security list, see L(Service Limits,https://docs.cloud.oracle.com/iaas/Content/General/Concepts/servicelimits.htm).

For the purposes of access control, you must provide the L(OCID,https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the compartment where you want the security list to reside. Notice that the security list doesn't have to be in the same compartment as the VCN, subnets, or other Networking Service components. If you're not sure which compartment to use, put the security list in the same compartment as the VCN. For more information about compartments and access control, see L(Overview of the IAM Service,https://docs.cloud.oracle.com/iaas/Content/Identity/Concepts/overview.htm). For information about OCIDs, see L(Resource Identifiers,https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm).

You may optionally specify a *display name* for the security list, otherwise a default is provided. It does not have to be unique, and you can change it. Avoid entering confidential information.

This resource has the following action operations in the M(oracle.oci.oci_network_security_list_actions) module: change_compartment.


Requirements

Usage examples

  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Create security_list
  oci_network_security_list:
    # required
    compartment_id: "ocid1.compartment.oc1..xxxxxxEXAMPLExxxxxx"
    vcn_id: "ocid1.vcn.oc1..xxxxxxEXAMPLExxxxxx"
    egress_security_rules:
    - # required
      destination: destination_example
      protocol: protocol_example

      # optional
      destination_type: CIDR_BLOCK
      icmp_options:
        # required
        type: 56

        # optional
        code: 56
      is_stateless: true
      tcp_options:
        # optional
        destination_port_range:
          # required
          max: 56
          min: 56
        source_port_range:
          # required
          max: 56
          min: 56
      udp_options:
        # optional
        destination_port_range:
          # required
          max: 56
          min: 56
        source_port_range:
          # required
          max: 56
          min: 56
      description: description_example
    ingress_security_rules:
    - # required
      protocol: protocol_example
      source: source_example

      # optional
      icmp_options:
        # required
        type: 56

        # optional
        code: 56
      is_stateless: true
      source_type: CIDR_BLOCK
      tcp_options:
        # optional
        destination_port_range:
          # required
          max: 56
          min: 56
        source_port_range:
          # required
          max: 56
          min: 56
      udp_options:
        # optional
        destination_port_range:
          # required
          max: 56
          min: 56
        source_port_range:
          # required
          max: 56
          min: 56
      description: description_example

    # optional
    defined_tags: {'Operations': {'CostCenter': 'US'}}
    display_name: display_name_example
    freeform_tags: {'Department': 'Finance'}
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Update security_list
  oci_network_security_list:
    # required
    security_list_id: "ocid1.securitylist.oc1..xxxxxxEXAMPLExxxxxx"

    # optional
    purge_security_rules: false
    delete_security_rules: true
    defined_tags: {'Operations': {'CostCenter': 'US'}}
    display_name: display_name_example
    egress_security_rules:
    - # required
      destination: destination_example
      protocol: protocol_example

      # optional
      destination_type: CIDR_BLOCK
      icmp_options:
        # required
        type: 56

        # optional
        code: 56
      is_stateless: true
      tcp_options:
        # optional
        destination_port_range:
          # required
          max: 56
          min: 56
        source_port_range:
          # required
          max: 56
          min: 56
      udp_options:
        # optional
        destination_port_range:
          # required
          max: 56
          min: 56
        source_port_range:
          # required
          max: 56
          min: 56
      description: description_example
    freeform_tags: {'Department': 'Finance'}
    ingress_security_rules:
    - # required
      protocol: protocol_example
      source: source_example

      # optional
      icmp_options:
        # required
        type: 56

        # optional
        code: 56
      is_stateless: true
      source_type: CIDR_BLOCK
      tcp_options:
        # optional
        destination_port_range:
          # required
          max: 56
          min: 56
        source_port_range:
          # required
          max: 56
          min: 56
      udp_options:
        # optional
        destination_port_range:
          # required
          max: 56
          min: 56
        source_port_range:
          # required
          max: 56
          min: 56
      description: description_example
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Update security_list using name (when environment variable OCI_USE_NAME_AS_IDENTIFIER is set)
  oci_network_security_list:
    # required
    compartment_id: "ocid1.compartment.oc1..xxxxxxEXAMPLExxxxxx"
    display_name: display_name_example

    # optional
    purge_security_rules: false
    delete_security_rules: true
    defined_tags: {'Operations': {'CostCenter': 'US'}}
    egress_security_rules:
    - # required
      destination: destination_example
      protocol: protocol_example

      # optional
      destination_type: CIDR_BLOCK
      icmp_options:
        # required
        type: 56

        # optional
        code: 56
      is_stateless: true
      tcp_options:
        # optional
        destination_port_range:
          # required
          max: 56
          min: 56
        source_port_range:
          # required
          max: 56
          min: 56
      udp_options:
        # optional
        destination_port_range:
          # required
          max: 56
          min: 56
        source_port_range:
          # required
          max: 56
          min: 56
      description: description_example
    freeform_tags: {'Department': 'Finance'}
    ingress_security_rules:
    - # required
      protocol: protocol_example
      source: source_example

      # optional
      icmp_options:
        # required
        type: 56

        # optional
        code: 56
      is_stateless: true
      source_type: CIDR_BLOCK
      tcp_options:
        # optional
        destination_port_range:
          # required
          max: 56
          min: 56
        source_port_range:
          # required
          max: 56
          min: 56
      udp_options:
        # optional
        destination_port_range:
          # required
          max: 56
          min: 56
        source_port_range:
          # required
          max: 56
          min: 56
      description: description_example
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Delete security_list
  oci_network_security_list:
    # required
    security_list_id: "ocid1.securitylist.oc1..xxxxxxEXAMPLExxxxxx"
    state: absent
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Delete security_list using name (when environment variable OCI_USE_NAME_AS_IDENTIFIER is set)
  oci_network_security_list:
    # required
    compartment_id: "ocid1.compartment.oc1..xxxxxxEXAMPLExxxxxx"
    display_name: display_name_example
    state: absent

Inputs

    
wait:
    default: true
    description: Whether to wait for create or delete operation to complete.
    type: bool

state:
    choices:
    - present
    - absent
    default: present
    description:
    - The state of the SecurityList.
    - Use I(state=present) to create or update a SecurityList.
    - Use I(state=absent) to delete a SecurityList.
    required: false
    type: str

key_by:
    description: The list of attributes of this resource which should be used to uniquely
      identify an instance of the resource. By default, all the attributes of a resource
      are used to uniquely identify a resource.
    elements: str
    type: list

region:
    description:
    - The Oracle Cloud Infrastructure region to use for all OCI API requests. If not set,
      then the value of the OCI_REGION variable, if any, is used. This option is required
      if the region is not specified through a configuration file (See C(config_file_location)).
      Please refer to U(https://docs.us-phoenix-1.oraclecloud.com/Content/General/Concepts/regions.htm)
      for more information on OCI regions.
    type: str

vcn_id:
    description:
    - The L(OCID,https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm)
      of the VCN the security list belongs to.
    - Required for create using I(state=present).
    type: str

tenancy:
    description:
    - OCID of your tenancy. If not set, then the value of the OCI_TENANCY variable, if
      any, is used. This option is required if the tenancy OCID is not specified through
      a configuration file (See C(config_file_location)). To get the tenancy OCID, please
      refer U(https://docs.us-phoenix-1.oraclecloud.com/Content/API/Concepts/apisigningkey.htm)
    type: str

api_user:
    description:
    - The OCID of the user, on whose behalf, OCI APIs are invoked. If not set, then the
      value of the OCI_USER_ID environment variable, if any, is used. This option is required
      if the user is not specified through a configuration file (See C(config_file_location)).
      To get the user's OCID, please refer U(https://docs.us-phoenix-1.oraclecloud.com/Content/API/Concepts/apisigningkey.htm).
    type: str

auth_type:
    choices:
    - api_key
    - instance_principal
    - instance_obo_user
    - resource_principal
    - security_token
    default: api_key
    description:
    - The type of authentication to use for making API requests. By default C(auth_type="api_key")
      based authentication is performed and the API key (see I(api_user_key_file)) in
      your config file will be used. If this 'auth_type' module option is not specified,
      the value of the OCI_ANSIBLE_AUTH_TYPE, if any, is used. Use C(auth_type="instance_principal")
      to use instance principal based authentication when running ansible playbooks within
      an OCI compute instance.
    type: str

cert_bundle:
    description:
    - The full path to a CA certificate bundle to be used for SSL verification. This will
      override the default CA certificate bundle. If not set, then the value of the OCI_ANSIBLE_CERT_BUNDLE
      variable, if any, is used.
    type: str

auth_purpose:
    choices:
    - service_principal
    description:
    - The auth purpose which can be used in conjunction with 'auth_type=instance_principal'.
      The default auth_purpose for instance_principal is None.
    type: str

defined_tags:
    description:
    - Defined tags for this resource. Each key is predefined and scoped to a namespace.
      For more information, see L(Resource Tags,https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm).
    - 'Example: `{"Operations": {"CostCenter": "42"}}`'
    - This parameter is updatable.
    type: dict

display_name:
    aliases:
    - name
    description:
    - A user-friendly name. Does not have to be unique, and it's changeable. Avoid entering
      confidential information.
    - Required for create, update, delete when environment variable C(OCI_USE_NAME_AS_IDENTIFIER)
      is set.
    - This parameter is updatable when C(OCI_USE_NAME_AS_IDENTIFIER) is not set.
    type: str

force_create:
    default: false
    description: Whether to attempt non-idempotent creation of a resource. By default,
      create resource is an idempotent operation, and doesn't create the resource if it
      already exists. Setting this option to true, forcefully creates a copy of the resource,
      even if it already exists.This option is mutually exclusive with I(key_by).
    type: bool

wait_timeout:
    description: Time, in seconds, to wait when I(wait=yes). Defaults to 1200 for most
      of the services but some services might have a longer wait timeout.
    type: int

freeform_tags:
    description:
    - Free-form tags for this resource. Each tag is a simple key-value pair with no predefined
      name, type, or namespace. For more information, see L(Resource Tags,https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm).
    - 'Example: `{"Department": "Finance"}`'
    - This parameter is updatable.
    type: dict

compartment_id:
    description:
    - The L(OCID,https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm)
      of the compartment to contain the security list.
    - Required for create using I(state=present).
    - Required for update when environment variable C(OCI_USE_NAME_AS_IDENTIFIER) is set.
    - Required for delete when environment variable C(OCI_USE_NAME_AS_IDENTIFIER) is set.
    type: str

security_list_id:
    aliases:
    - id
    description:
    - The L(OCID,https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm)
      of the security list.
    - Required for update using I(state=present) when environment variable C(OCI_USE_NAME_AS_IDENTIFIER)
      is not set.
    - Required for delete using I(state=absent) when environment variable C(OCI_USE_NAME_AS_IDENTIFIER)
      is not set.
    type: str

api_user_key_file:
    description:
    - Full path and filename of the private key (in PEM format). If not set, then the
      value of the OCI_USER_KEY_FILE variable, if any, is used. This option is required
      if the private key is not specified through a configuration file (See C(config_file_location)).
      If the key is encrypted with a pass-phrase, the C(api_user_key_pass_phrase) option
      must also be provided.
    type: str

config_profile_name:
    description:
    - The profile to load from the config file referenced by C(config_file_location).
      If not set, then the value of the OCI_CONFIG_PROFILE environment variable, if any,
      is used. Otherwise, defaults to the "DEFAULT" profile in C(config_file_location).
    type: str

api_user_fingerprint:
    description:
    - Fingerprint for the key pair being used. If not set, then the value of the OCI_USER_FINGERPRINT
      environment variable, if any, is used. This option is required if the key fingerprint
      is not specified through a configuration file (See C(config_file_location)). To
      get the key pair's fingerprint value please refer U(https://docs.us-phoenix-1.oraclecloud.com/Content/API/Concepts/apisigningkey.htm).
    type: str

config_file_location:
    description:
    - Path to configuration file. If not set then the value of the OCI_CONFIG_FILE environment
      variable, if any, is used. Otherwise, defaults to ~/.oci/config.
    type: str

purge_security_rules:
    default: 'true'
    description:
    - Purge security rules  from security list which are not present in the provided group
      security list. If I(purge_security_rules=no), provided security rules would be appended
      to existing security rules. I(purge_security_rules) and I(delete_security_rules)
      are mutually exclusive.
    - This parameter is updatable.
    type: bool

delete_security_rules:
    default: 'false'
    description:
    - Delete security rules from existing security list which are present in the security
      rules provided by I(ingress_security_rules) and/or I(egress_security_rules). If
      I(delete_security_rules=yes), security rules provided by I(ingress_security_rules)
      and/or I(egress_security_rules) would be deleted to existing security list, if they
      are part of existing security list. If they are not part of existing security list,
      they will be ignored. I(purge_security_rules) and I(delete_security_rules) are mutually
      exclusive.
    - This parameter is updatable.
    type: bool

egress_security_rules:
    description:
    - Rules for allowing egress IP packets.
    - Required for create using I(state=present).
    - This parameter is updatable.
    elements: dict
    suboptions:
      description:
        description:
        - An optional description of your choice for the rule.
        type: str
      destination:
        description:
        - Conceptually, this is the range of IP addresses that a packet originating from
          the instance can go to.
        - 'Allowed values:'
        - ' * IP address range in CIDR notation. For example: `192.168.1.0/24` or `2001:0db8:0123:45::/56`
          Note that IPv6 addressing is currently supported only in certain regions. See
          L(IPv6 Addresses,https://docs.cloud.oracle.com/iaas/Content/Network/Concepts/ipv6.htm).'
        - ' * The `cidrBlock` value for a L(Service,https://docs.cloud.oracle.com/en-us/iaas/api/#/en/iaas/latest/Service/),
          if you''re setting up a security list rule for traffic destined for a particular
          `Service` through a service gateway. For example: `oci-phx-objectstorage`.'
        required: true
        type: str
      destination_type:
        choices:
        - CIDR_BLOCK
        - SERVICE_CIDR_BLOCK
        description:
        - Type of destination for the rule. The default is `CIDR_BLOCK`.
        - 'Allowed values:'
        - ' * `CIDR_BLOCK`: If the rule''s `destination` is an IP address range in CIDR
          notation.'
        - ' * `SERVICE_CIDR_BLOCK`: If the rule''s `destination` is the `cidrBlock` value
          for a L(Service,https://docs.cloud.oracle.com/en-us/iaas/api/#/en/iaas/latest/Service/)
          (the rule is for traffic destined for a particular `Service` through a service
          gateway).'
        type: str
      icmp_options:
        description:
        - ''
        suboptions:
          code:
            description:
            - The ICMP code (optional).
            type: int
          type:
            description:
            - The ICMP type.
            required: true
            type: int
        type: dict
      is_stateless:
        description:
        - A stateless rule allows traffic in one direction. Remember to add a corresponding
          stateless rule in the other direction if you need to support bidirectional traffic.
          For example, if egress traffic allows TCP destination port 80, there should
          be an ingress rule to allow TCP source port 80. Defaults to false, which means
          the rule is stateful and a corresponding rule is not necessary for bidirectional
          traffic.
        type: bool
      protocol:
        description:
        - The transport protocol. Specify either `all` or an IPv4 protocol number as defined
          in L(Protocol Numbers,http://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml).
          Options are supported only for ICMP ("1"), TCP ("6"), UDP ("17"), and ICMPv6
          ("58").
        required: true
        type: str
      tcp_options:
        description:
        - ''
        suboptions:
          destination_port_range:
            description:
            - ''
            suboptions:
              max:
                description:
                - The maximum port number, which must not be less than the minimum port
                  number. To specify a single port number, set both the min and max to
                  the same value.
                required: true
                type: int
              min:
                description:
                - The minimum port number, which must not be greater than the maximum
                  port number.
                required: true
                type: int
            type: dict
          source_port_range:
            description:
            - ''
            suboptions:
              max:
                description:
                - The maximum port number, which must not be less than the minimum port
                  number. To specify a single port number, set both the min and max to
                  the same value.
                required: true
                type: int
              min:
                description:
                - The minimum port number, which must not be greater than the maximum
                  port number.
                required: true
                type: int
            type: dict
        type: dict
      udp_options:
        description:
        - ''
        suboptions:
          destination_port_range:
            description:
            - ''
            suboptions:
              max:
                description:
                - The maximum port number, which must not be less than the minimum port
                  number. To specify a single port number, set both the min and max to
                  the same value.
                required: true
                type: int
              min:
                description:
                - The minimum port number, which must not be greater than the maximum
                  port number.
                required: true
                type: int
            type: dict
          source_port_range:
            description:
            - ''
            suboptions:
              max:
                description:
                - The maximum port number, which must not be less than the minimum port
                  number. To specify a single port number, set both the min and max to
                  the same value.
                required: true
                type: int
              min:
                description:
                - The minimum port number, which must not be greater than the maximum
                  port number.
                required: true
                type: int
            type: dict
        type: dict
    type: list

ingress_security_rules:
    description:
    - Rules for allowing ingress IP packets.
    - Required for create using I(state=present).
    - This parameter is updatable.
    elements: dict
    suboptions:
      description:
        description:
        - An optional description of your choice for the rule.
        type: str
      icmp_options:
        description:
        - ''
        suboptions:
          code:
            description:
            - The ICMP code (optional).
            type: int
          type:
            description:
            - The ICMP type.
            required: true
            type: int
        type: dict
      is_stateless:
        description:
        - A stateless rule allows traffic in one direction. Remember to add a corresponding
          stateless rule in the other direction if you need to support bidirectional traffic.
          For example, if ingress traffic allows TCP destination port 80, there should
          be an egress rule to allow TCP source port 80. Defaults to false, which means
          the rule is stateful and a corresponding rule is not necessary for bidirectional
          traffic.
        type: bool
      protocol:
        description:
        - The transport protocol. Specify either `all` or an IPv4 protocol number as defined
          in L(Protocol Numbers,http://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml).
          Options are supported only for ICMP ("1"), TCP ("6"), UDP ("17"), and ICMPv6
          ("58").
        required: true
        type: str
      source:
        description:
        - Conceptually, this is the range of IP addresses that a packet coming into the
          instance can come from.
        - 'Allowed values:'
        - ' * IP address range in CIDR notation. For example: `192.168.1.0/24` or `2001:0db8:0123:45::/56`.
          IPv6 addressing is supported for all commercial and government regions. See
          L(IPv6 Addresses,https://docs.cloud.oracle.com/iaas/Content/Network/Concepts/ipv6.htm).'
        - ' * The `cidrBlock` value for a L(Service,https://docs.cloud.oracle.com/en-us/iaas/api/#/en/iaas/latest/Service/),
          if you''re setting up a security list rule for traffic coming from a particular
          `Service` through a service gateway. For example: `oci-phx-objectstorage`.'
        required: true
        type: str
      source_type:
        choices:
        - CIDR_BLOCK
        - SERVICE_CIDR_BLOCK
        description:
        - Type of source for the rule. The default is `CIDR_BLOCK`.
        - ' * `CIDR_BLOCK`: If the rule''s `source` is an IP address range in CIDR notation.'
        - ' * `SERVICE_CIDR_BLOCK`: If the rule''s `source` is the `cidrBlock` value for
          a L(Service,https://docs.cloud.oracle.com/en-us/iaas/api/#/en/iaas/latest/Service/)
          (the rule is for traffic coming from a particular `Service` through a service
          gateway).'
        type: str
      tcp_options:
        description:
        - ''
        suboptions:
          destination_port_range:
            description:
            - ''
            suboptions:
              max:
                description:
                - The maximum port number, which must not be less than the minimum port
                  number. To specify a single port number, set both the min and max to
                  the same value.
                required: true
                type: int
              min:
                description:
                - The minimum port number, which must not be greater than the maximum
                  port number.
                required: true
                type: int
            type: dict
          source_port_range:
            description:
            - ''
            suboptions:
              max:
                description:
                - The maximum port number, which must not be less than the minimum port
                  number. To specify a single port number, set both the min and max to
                  the same value.
                required: true
                type: int
              min:
                description:
                - The minimum port number, which must not be greater than the maximum
                  port number.
                required: true
                type: int
            type: dict
        type: dict
      udp_options:
        description:
        - ''
        suboptions:
          destination_port_range:
            description:
            - ''
            suboptions:
              max:
                description:
                - The maximum port number, which must not be less than the minimum port
                  number. To specify a single port number, set both the min and max to
                  the same value.
                required: true
                type: int
              min:
                description:
                - The minimum port number, which must not be greater than the maximum
                  port number.
                required: true
                type: int
            type: dict
          source_port_range:
            description:
            - ''
            suboptions:
              max:
                description:
                - The maximum port number, which must not be less than the minimum port
                  number. To specify a single port number, set both the min and max to
                  the same value.
                required: true
                type: int
              min:
                description:
                - The minimum port number, which must not be greater than the maximum
                  port number.
                required: true
                type: int
            type: dict
        type: dict
    type: list

api_user_key_pass_phrase:
    description:
    - Passphrase used by the key referenced in C(api_user_key_file), if it is encrypted.
      If not set, then the value of the OCI_USER_KEY_PASS_PHRASE variable, if any, is
      used. This option is required if the key passphrase is not specified through a configuration
      file (See C(config_file_location)).
    type: str

realm_specific_endpoint_template_enabled:
    description:
    - Enable/Disable realm specific endpoint template for service client. By Default,
      realm specific endpoint template is disabled. If not set, then the value of the
      OCI_REALM_SPECIFIC_SERVICE_ENDPOINT_TEMPLATE_ENABLED variable, if any, is used.
    type: bool

Outputs

security_list:
  contains:
    compartment_id:
      description:
      - The L(OCID,https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm)
        of the compartment containing the security list.
      returned: on success
      sample: ocid1.compartment.oc1..xxxxxxEXAMPLExxxxxx
      type: str
    defined_tags:
      description:
      - Defined tags for this resource. Each key is predefined and scoped to a namespace.
        For more information, see L(Resource Tags,https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm).
      - 'Example: `{"Operations": {"CostCenter": "42"}}`'
      returned: on success
      sample:
        Operations:
          CostCenter: US
      type: dict
    display_name:
      description:
      - A user-friendly name. Does not have to be unique, and it's changeable. Avoid
        entering confidential information.
      returned: on success
      sample: display_name_example
      type: str
    egress_security_rules:
      contains:
        description:
          description:
          - An optional description of your choice for the rule.
          returned: on success
          sample: description_example
          type: str
        destination:
          description:
          - Conceptually, this is the range of IP addresses that a packet originating
            from the instance can go to.
          - 'Allowed values:'
          - ' * IP address range in CIDR notation. For example: `192.168.1.0/24` or
            `2001:0db8:0123:45::/56` Note that IPv6 addressing is currently supported
            only in certain regions. See L(IPv6 Addresses,https://docs.cloud.oracle.com/iaas/Content/Network/Concepts/ipv6.htm).'
          - ' * The `cidrBlock` value for a L(Service,https://docs.cloud.oracle.com/en-us/iaas/api/#/en/iaas/latest/Service/),
            if you''re setting up a security list rule for traffic destined for a
            particular `Service` through a service gateway. For example: `oci-phx-objectstorage`.'
          returned: on success
          sample: destination_example
          type: str
        destination_type:
          description:
          - Type of destination for the rule. The default is `CIDR_BLOCK`.
          - 'Allowed values:'
          - ' * `CIDR_BLOCK`: If the rule''s `destination` is an IP address range
            in CIDR notation.'
          - ' * `SERVICE_CIDR_BLOCK`: If the rule''s `destination` is the `cidrBlock`
            value for a L(Service,https://docs.cloud.oracle.com/en-us/iaas/api/#/en/iaas/latest/Service/)
            (the rule is for traffic destined for a particular `Service` through a
            service gateway).'
          returned: on success
          sample: CIDR_BLOCK
          type: str
        icmp_options:
          contains:
            code:
              description:
              - The ICMP code (optional).
              returned: on success
              sample: 56
              type: int
            type:
              description:
              - The ICMP type.
              returned: on success
              sample: 56
              type: int
          description:
          - ''
          returned: on success
          type: complex
        is_stateless:
          description:
          - A stateless rule allows traffic in one direction. Remember to add a corresponding
            stateless rule in the other direction if you need to support bidirectional
            traffic. For example, if egress traffic allows TCP destination port 80,
            there should be an ingress rule to allow TCP source port 80. Defaults
            to false, which means the rule is stateful and a corresponding rule is
            not necessary for bidirectional traffic.
          returned: on success
          sample: true
          type: bool
        protocol:
          description:
          - The transport protocol. Specify either `all` or an IPv4 protocol number
            as defined in L(Protocol Numbers,http://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml).
            Options are supported only for ICMP ("1"), TCP ("6"), UDP ("17"), and
            ICMPv6 ("58").
          returned: on success
          sample: protocol_example
          type: str
        tcp_options:
          contains:
            destination_port_range:
              contains:
                max:
                  description:
                  - The maximum port number, which must not be less than the minimum
                    port number. To specify a single port number, set both the min
                    and max to the same value.
                  returned: on success
                  sample: 56
                  type: int
                min:
                  description:
                  - The minimum port number, which must not be greater than the maximum
                    port number.
                  returned: on success
                  sample: 56
                  type: int
              description:
              - ''
              returned: on success
              type: complex
            source_port_range:
              contains:
                max:
                  description:
                  - The maximum port number, which must not be less than the minimum
                    port number. To specify a single port number, set both the min
                    and max to the same value.
                  returned: on success
                  sample: 56
                  type: int
                min:
                  description:
                  - The minimum port number, which must not be greater than the maximum
                    port number.
                  returned: on success
                  sample: 56
                  type: int
              description:
              - ''
              returned: on success
              type: complex
          description:
          - ''
          returned: on success
          type: complex
        udp_options:
          contains:
            destination_port_range:
              contains:
                max:
                  description:
                  - The maximum port number, which must not be less than the minimum
                    port number. To specify a single port number, set both the min
                    and max to the same value.
                  returned: on success
                  sample: 56
                  type: int
                min:
                  description:
                  - The minimum port number, which must not be greater than the maximum
                    port number.
                  returned: on success
                  sample: 56
                  type: int
              description:
              - ''
              returned: on success
              type: complex
            source_port_range:
              contains:
                max:
                  description:
                  - The maximum port number, which must not be less than the minimum
                    port number. To specify a single port number, set both the min
                    and max to the same value.
                  returned: on success
                  sample: 56
                  type: int
                min:
                  description:
                  - The minimum port number, which must not be greater than the maximum
                    port number.
                  returned: on success
                  sample: 56
                  type: int
              description:
              - ''
              returned: on success
              type: complex
          description:
          - ''
          returned: on success
          type: complex
      description:
      - Rules for allowing egress IP packets.
      returned: on success
      type: complex
    freeform_tags:
      description:
      - Free-form tags for this resource. Each tag is a simple key-value pair with
        no predefined name, type, or namespace. For more information, see L(Resource
        Tags,https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm).
      - 'Example: `{"Department": "Finance"}`'
      returned: on success
      sample:
        Department: Finance
      type: dict
    id:
      description:
      - The security list's Oracle Cloud ID (L(OCID,https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm)).
      returned: on success
      sample: ocid1.resource.oc1..xxxxxxEXAMPLExxxxxx
      type: str
    ingress_security_rules:
      contains:
        description:
          description:
          - An optional description of your choice for the rule.
          returned: on success
          sample: description_example
          type: str
        icmp_options:
          contains:
            code:
              description:
              - The ICMP code (optional).
              returned: on success
              sample: 56
              type: int
            type:
              description:
              - The ICMP type.
              returned: on success
              sample: 56
              type: int
          description:
          - ''
          returned: on success
          type: complex
        is_stateless:
          description:
          - A stateless rule allows traffic in one direction. Remember to add a corresponding
            stateless rule in the other direction if you need to support bidirectional
            traffic. For example, if ingress traffic allows TCP destination port 80,
            there should be an egress rule to allow TCP source port 80. Defaults to
            false, which means the rule is stateful and a corresponding rule is not
            necessary for bidirectional traffic.
          returned: on success
          sample: true
          type: bool
        protocol:
          description:
          - The transport protocol. Specify either `all` or an IPv4 protocol number
            as defined in L(Protocol Numbers,http://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml).
            Options are supported only for ICMP ("1"), TCP ("6"), UDP ("17"), and
            ICMPv6 ("58").
          returned: on success
          sample: protocol_example
          type: str
        source:
          description:
          - Conceptually, this is the range of IP addresses that a packet coming into
            the instance can come from.
          - 'Allowed values:'
          - ' * IP address range in CIDR notation. For example: `192.168.1.0/24` or
            `2001:0db8:0123:45::/56`. IPv6 addressing is supported for all commercial
            and government regions. See L(IPv6 Addresses,https://docs.cloud.oracle.com/iaas/Content/Network/Concepts/ipv6.htm).'
          - ' * The `cidrBlock` value for a L(Service,https://docs.cloud.oracle.com/en-us/iaas/api/#/en/iaas/latest/Service/),
            if you''re setting up a security list rule for traffic coming from a particular
            `Service` through a service gateway. For example: `oci-phx-objectstorage`.'
          returned: on success
          sample: source_example
          type: str
        source_type:
          description:
          - Type of source for the rule. The default is `CIDR_BLOCK`.
          - ' * `CIDR_BLOCK`: If the rule''s `source` is an IP address range in CIDR
            notation.'
          - ' * `SERVICE_CIDR_BLOCK`: If the rule''s `source` is the `cidrBlock` value
            for a L(Service,https://docs.cloud.oracle.com/en-us/iaas/api/#/en/iaas/latest/Service/)
            (the rule is for traffic coming from a particular `Service` through a
            service gateway).'
          returned: on success
          sample: CIDR_BLOCK
          type: str
        tcp_options:
          contains:
            destination_port_range:
              contains:
                max:
                  description:
                  - The maximum port number, which must not be less than the minimum
                    port number. To specify a single port number, set both the min
                    and max to the same value.
                  returned: on success
                  sample: 56
                  type: int
                min:
                  description:
                  - The minimum port number, which must not be greater than the maximum
                    port number.
                  returned: on success
                  sample: 56
                  type: int
              description:
              - ''
              returned: on success
              type: complex
            source_port_range:
              contains:
                max:
                  description:
                  - The maximum port number, which must not be less than the minimum
                    port number. To specify a single port number, set both the min
                    and max to the same value.
                  returned: on success
                  sample: 56
                  type: int
                min:
                  description:
                  - The minimum port number, which must not be greater than the maximum
                    port number.
                  returned: on success
                  sample: 56
                  type: int
              description:
              - ''
              returned: on success
              type: complex
          description:
          - ''
          returned: on success
          type: complex
        udp_options:
          contains:
            destination_port_range:
              contains:
                max:
                  description:
                  - The maximum port number, which must not be less than the minimum
                    port number. To specify a single port number, set both the min
                    and max to the same value.
                  returned: on success
                  sample: 56
                  type: int
                min:
                  description:
                  - The minimum port number, which must not be greater than the maximum
                    port number.
                  returned: on success
                  sample: 56
                  type: int
              description:
              - ''
              returned: on success
              type: complex
            source_port_range:
              contains:
                max:
                  description:
                  - The maximum port number, which must not be less than the minimum
                    port number. To specify a single port number, set both the min
                    and max to the same value.
                  returned: on success
                  sample: 56
                  type: int
                min:
                  description:
                  - The minimum port number, which must not be greater than the maximum
                    port number.
                  returned: on success
                  sample: 56
                  type: int
              description:
              - ''
              returned: on success
              type: complex
          description:
          - ''
          returned: on success
          type: complex
      description:
      - Rules for allowing ingress IP packets.
      returned: on success
      type: complex
    lifecycle_state:
      description:
      - The security list's current state.
      returned: on success
      sample: PROVISIONING
      type: str
    time_created:
      description:
      - The date and time the security list was created, in the format defined by
        L(RFC3339,https://tools.ietf.org/html/rfc3339).
      - 'Example: `2016-08-25T21:10:29.600Z`'
      returned: on success
      sample: '2013-10-20T19:20:30+01:00'
      type: str
    vcn_id:
      description:
      - The L(OCID,https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm)
        of the VCN the security list belongs to.
      returned: on success
      sample: ocid1.vcn.oc1..xxxxxxEXAMPLExxxxxx
      type: str
  description:
  - Details of the SecurityList resource acted upon by the current operation
  returned: on success
  sample:
    compartment_id: ocid1.compartment.oc1..xxxxxxEXAMPLExxxxxx
    defined_tags:
      Operations:
        CostCenter: US
    display_name: display_name_example
    egress_security_rules:
    - description: description_example
      destination: destination_example
      destination_type: CIDR_BLOCK
      icmp_options:
        code: 56
        type: 56
      is_stateless: true
      protocol: protocol_example
      tcp_options:
        destination_port_range:
          max: 56
          min: 56
        source_port_range:
          max: 56
          min: 56
      udp_options:
        destination_port_range:
          max: 56
          min: 56
        source_port_range:
          max: 56
          min: 56
    freeform_tags:
      Department: Finance
    id: ocid1.resource.oc1..xxxxxxEXAMPLExxxxxx
    ingress_security_rules:
    - description: description_example
      icmp_options:
        code: 56
        type: 56
      is_stateless: true
      protocol: protocol_example
      source: source_example
      source_type: CIDR_BLOCK
      tcp_options:
        destination_port_range:
          max: 56
          min: 56
        source_port_range:
          max: 56
          min: 56
      udp_options:
        destination_port_range:
          max: 56
          min: 56
        source_port_range:
          max: 56
          min: 56
    lifecycle_state: PROVISIONING
    time_created: '2013-10-20T19:20:30+01:00'
    vcn_id: ocid1.vcn.oc1..xxxxxxEXAMPLExxxxxx
  type: complex