> ## Documentation Index
> Fetch the complete documentation index at: https://docs.nebius.com/llms.txt
> Use this file to discover all available pages before exploring further.

# create

<div>
  <h2>Name</h2>

  <p style={{ paddingLeft: "4ch" }}>
    <code>nebius vpc security-rule create</code>
  </p>
</div>

<div>
  <h2>Synopsis</h2>

  <p style={{ paddingLeft: "4ch" }}>
    ```
    nebius vpc security-rule create
      --access [required]
      --egress-destination-cidrs
      --egress-destination-ports
      --egress-destination-security-group-id
      --ingress-destination-ports
      --ingress-source-cidrs
      --ingress-source-security-group-id
      --labels
      --name
      --parent-id [required]
      --priority
      --protocol [required]
      --resource-version
      --type
      --async
      -i, --interactive
    ```
  </p>
</div>

<div>
  <h2>Options</h2>

  <div style={{ paddingLeft: "4ch" }}>
    <p>
      `--access` (string)<em> \[required]</em>
    </p>

    <p style={{ paddingLeft: "4ch" }}>
      Access action for the rule.<br />
      Required. Determines whether matching traffic is allowed or denied.
    </p>

    <p style={{ paddingLeft: "4ch" }}>A value must be one of:</p>

    <ul style={{ paddingLeft: "8ch" }}>
      <li>
        <code>allow</code>
      </li>

      <li>
        <code>deny</code>
      </li>
    </ul>
  </div>

  <div style={{ paddingLeft: "4ch" }}>
    <p>
      `--egress-destination-cidrs` (string array)
    </p>

    <p style={{ paddingLeft: "4ch" }}>
      CIDR blocks as the destination.<br />
      Optional. Empty list means any address.<br />
      Must be a valid IPv4.<br />
      Maximum of 8 CIDRs can be specified.
    </p>

    <p style={{ paddingLeft: "4ch" }}>Mutually exclusive with: `--ingress-destination-ports`, `--ingress-source-cidrs`, `--ingress-source-security-group-id`.</p>
  </div>

  <div style={{ paddingLeft: "4ch" }}>
    <p>
      `--egress-destination-ports` (int32 array)
    </p>

    <p style={{ paddingLeft: "4ch" }}>
      List of ports to which the rule applies.<br />
      Optional. Empty list means any port.<br />
      Valid range: 1–65535.<br />
      Maximum of 8 ports can be specified.
    </p>

    <p style={{ paddingLeft: "4ch" }}>Mutually exclusive with: `--ingress-destination-ports`, `--ingress-source-cidrs`, `--ingress-source-security-group-id`.</p>
  </div>

  <div style={{ paddingLeft: "4ch" }}>
    <p>
      `--egress-destination-security-group-id` (string)
    </p>

    <p style={{ paddingLeft: "4ch" }}>
      ID of the referenced Security Group as the destination.
    </p>

    <p style={{ paddingLeft: "4ch" }}>Mutually exclusive with: `--ingress-destination-ports`, `--ingress-source-cidrs`, `--ingress-source-security-group-id`.</p>
  </div>

  <div style={{ paddingLeft: "4ch" }}>
    <p>
      `--ingress-destination-ports` (int32 array)
    </p>

    <p style={{ paddingLeft: "4ch" }}>
      List of destination ports to which the rule applies.<br />
      Optional. Empty list means any port.<br />
      Valid range: 1–65535.<br />
      Maximum of 8 ports can be specified.
    </p>

    <p style={{ paddingLeft: "4ch" }}>Mutually exclusive with: `--egress-destination-cidrs`, `--egress-destination-ports`, `--egress-destination-security-group-id`.</p>
  </div>

  <div style={{ paddingLeft: "4ch" }}>
    <p>
      `--ingress-source-cidrs` (string array)
    </p>

    <p style={{ paddingLeft: "4ch" }}>
      CIDR blocks as the source.<br />
      Optional. Empty list means any address.<br />
      Must be a valid IPv4<br />
      Maximum of 8 CIDRs can be specified.
    </p>

    <p style={{ paddingLeft: "4ch" }}>Mutually exclusive with: `--egress-destination-cidrs`, `--egress-destination-ports`, `--egress-destination-security-group-id`.</p>
  </div>

  <div style={{ paddingLeft: "4ch" }}>
    <p>
      `--ingress-source-security-group-id` (string)
    </p>

    <p style={{ paddingLeft: "4ch" }}>
      ID of the referenced Security Group as the source.
    </p>

    <p style={{ paddingLeft: "4ch" }}>Mutually exclusive with: `--egress-destination-cidrs`, `--egress-destination-ports`, `--egress-destination-security-group-id`.</p>
  </div>

  <div style={{ paddingLeft: "4ch" }}>
    <p>
      `--labels` (string->string)
    </p>

    <p style={{ paddingLeft: "4ch" }}>
      Labels associated with the resource.
    </p>
  </div>

  <div style={{ paddingLeft: "4ch" }}>
    <p>
      `--name` (string)
    </p>

    <p style={{ paddingLeft: "4ch" }}>
      Human readable name for the resource.
    </p>
  </div>

  <div style={{ paddingLeft: "4ch" }}>
    <p>
      `--parent-id` (string)<em> \[required]</em>
    </p>

    <p style={{ paddingLeft: "4ch" }}>
      Identifier of the parent resource to which the resource belongs.
    </p>
  </div>

  <div style={{ paddingLeft: "4ch" }}>
    <p>
      `--priority` (int32)
    </p>

    <p style={{ paddingLeft: "4ch" }}>
      Priority of the rule. Valid range: 0-1000.<br />
      Optional. If not specified or set to 0, defaults to 500.<br />
      Rules are evaluated in priority order (lower numbers first) using a first-match algorithm:<br />
      only the first matching rule takes effect (ALLOW or DENY), and subsequent rules are skipped.<br />

      <br />

      When multiple rules share the same priority, DENY rules are evaluated before ALLOW rules.<br />
      The final evaluation order is reflected in 'effective\_priority' (see SecurityRuleStatus).
    </p>
  </div>

  <div style={{ paddingLeft: "4ch" }}>
    <p>
      `--protocol` (string)<em> \[required]</em>
    </p>

    <p style={{ paddingLeft: "4ch" }}>
      Protocol used in the rule.<br />
      Supported values: ANY, TCP, UDP, ICMP.
    </p>

    <p style={{ paddingLeft: "4ch" }}>A value must be one of:</p>

    <ul style={{ paddingLeft: "8ch" }}>
      <li>
        <code>any</code>
      </li>

      <li>
        <code>tcp</code>
      </li>

      <li>
        <code>udp</code>
      </li>

      <li>
        <code>icmp</code>
      </li>
    </ul>
  </div>

  <div style={{ paddingLeft: "4ch" }}>
    <p>
      `--resource-version` (int64)
    </p>

    <p style={{ paddingLeft: "4ch" }}>
      Version of the resource for safe concurrent modifications and consistent reads.<br />
      Positive and monotonically increases on each resource spec change (but *not* on each change of the<br />
      resource's container(s) or status).<br />
      Service allows zero value or current.
    </p>
  </div>

  <div style={{ paddingLeft: "4ch" }}>
    <p>
      `--type` (string)
    </p>

    <p style={{ paddingLeft: "4ch" }}>
      Type of the rule (STATEFUL or STATELESS)<br />
      Default value is STATEFUL.
    </p>

    <p style={{ paddingLeft: "4ch" }}>A value must be one of:</p>

    <ul style={{ paddingLeft: "8ch" }}>
      <li>
        <code>rule\_type\_unspecified</code>
      </li>

      <li>
        <code>stateful</code>
      </li>

      <li>
        <code>stateless</code>
      </li>
    </ul>
  </div>

  <div style={{ paddingLeft: "4ch" }}>
    <p>
      `--async` (bool)
    </p>

    <p style={{ paddingLeft: "4ch" }}>
      If set, returns operation id. Otherwise, waits for the operation to complete and returns its resource.
    </p>
  </div>

  <div style={{ paddingLeft: "4ch" }}>
    <p>
      `-i, --interactive` (bool)
    </p>

    <p style={{ paddingLeft: "4ch" }}>
      If set, suggests to insert field values in interactive mode.
    </p>
  </div>
</div>

<div>
  <h2>Global Options</h2>

  <div style={{ paddingLeft: "4ch" }}>
    <p>
      `-h, --help` (bool)
    </p>

    <p style={{ paddingLeft: "4ch" }}>
      Show this message.
    </p>
  </div>

  <div style={{ paddingLeft: "4ch" }}>
    <p>
      `-p, --profile` (string)
    </p>

    <p style={{ paddingLeft: "4ch" }}>
      Set a profile for interacting with the cloud.
    </p>
  </div>

  <div style={{ paddingLeft: "4ch" }}>
    <p>
      `--format` (string)
    </p>

    <p style={{ paddingLeft: "4ch" }}>
      Output format. Supported values: yaml|json|jsonpath|table|text.
    </p>
  </div>

  <div style={{ paddingLeft: "4ch" }}>
    <p>
      `-f, --file` (string)
    </p>

    <p style={{ paddingLeft: "4ch" }}>
      Input file. For 'update' commands automatically set --full=true.
    </p>
  </div>

  <div style={{ paddingLeft: "4ch" }}>
    <p>
      `-c, --config` (string)
    </p>

    <p style={{ paddingLeft: "4ch" }}>
      Provide path to config file.
    </p>
  </div>

  <div style={{ paddingLeft: "4ch" }}>
    <p>
      `--debug` (bool)
    </p>

    <p style={{ paddingLeft: "4ch" }}>
      Enable debug logs.
    </p>
  </div>

  <div style={{ paddingLeft: "4ch" }}>
    <p>
      `--color` (bool)
    </p>

    <p style={{ paddingLeft: "4ch" }}>
      Enable colored output.
    </p>
  </div>

  <div style={{ paddingLeft: "4ch" }}>
    <p>
      `--no-browser` (bool)
    </p>

    <p style={{ paddingLeft: "4ch" }}>
      Do not open browser automatically on auth.
    </p>
  </div>

  <div style={{ paddingLeft: "4ch" }}>
    <p>
      `--insecure` (bool)
    </p>

    <p style={{ paddingLeft: "4ch" }}>
      Disable transport security.
    </p>
  </div>

  <div style={{ paddingLeft: "4ch" }}>
    <p>
      `--auth-timeout` (duration: 2h30m10s)
    </p>

    <p style={{ paddingLeft: "4ch" }}>
      Set the timeout for the request including authentication process, default is 15m0s.
    </p>
  </div>

  <div style={{ paddingLeft: "4ch" }}>
    <p>
      `--per-retry-timeout` (duration: 2h30m10s)
    </p>

    <p style={{ paddingLeft: "4ch" }}>
      Set the timeout for each retry attempt, default is 20s.
    </p>
  </div>

  <div style={{ paddingLeft: "4ch" }}>
    <p>
      `--retries` (uint)
    </p>

    <p style={{ paddingLeft: "4ch" }}>
      Set the number of retry attempts, 1 is disable retries, default is 3.
    </p>
  </div>

  <div style={{ paddingLeft: "4ch" }}>
    <p>
      `--timeout` (duration: 2h30m10s)
    </p>

    <p style={{ paddingLeft: "4ch" }}>
      Set the timeout for the main request, default is 1m0s.
    </p>
  </div>

  <div style={{ paddingLeft: "4ch" }}>
    <p>
      `--no-check-update` (bool)
    </p>

    <p style={{ paddingLeft: "4ch" }}>
      Suppress check for updates.
    </p>
  </div>

  <div style={{ paddingLeft: "4ch" }}>
    <p>
      `--no-progress` (bool)
    </p>

    <p style={{ paddingLeft: "4ch" }}>
      Suppress progress indicators and spinners.
    </p>
  </div>
</div>

<Expandable title="Input argument JSON Schema">
  <Tabs>
    <Tab title="Full">
      ```json theme={null}
      {              
        "metadata": {                // [required]
          "labels": {                // [map]
                                     // Labels associated with the resource.
            string: string                  
          },
          "name": string,            // Human readable name for the resource.
          "parent_id": string,       // [required]
                                     // Identifier of the parent resource to which the resource belongs.
          "resource_version": int64  // Version of the resource for safe concurrent modifications and consistent reads.
                                     // Positive and monotonically increases on each resource spec change (but *not* on each change of the
                                     // resource's container(s) or status).
                                     // Service allows zero value or current.
        },
        "spec": {            // [required]
          "access": enum(         // [required] [immutable]
                                  // Access action for the rule.
                                  // Required. Determines whether matching traffic is allowed or denied.
            "ACCESS_UNSPECIFIED",
            "ALLOW",             
            "DENY"               
          ),
          "egress": {                                // [immutable]
                                                     // Cannot be set together with: ingress
            "destination_cidrs": [string],           // CIDR blocks as the destination.
                                                     // Optional. Empty list means any address.
                                                     // Must be a valid IPv4.
                                                     // Maximum of 8 CIDRs can be specified.
            "destination_ports": [int32],            // List of ports to which the rule applies.
                                                     // Optional. Empty list means any port.
                                                     // Valid range: 1–65535.
                                                     // Maximum of 8 ports can be specified.
            "destination_security_group_id": string  // ID of the referenced Security Group as the destination.
          },
          "ingress": {                          // [immutable]
                                                // Cannot be set together with: egress
            "destination_ports": [int32],       // List of destination ports to which the rule applies.
                                                // Optional. Empty list means any port.
                                                // Valid range: 1–65535.
                                                // Maximum of 8 ports can be specified.
            "source_cidrs": [string],           // CIDR blocks as the source.
                                                // Optional. Empty list means any address.
                                                // Must be a valid IPv4
                                                // Maximum of 8 CIDRs can be specified.
            "source_security_group_id": string  // ID of the referenced Security Group as the source.
          },
          "priority": int32, // [immutable] [non_empty_default]
                             // Priority of the rule. Valid range: 0-1000.
                             // Optional. If not specified or set to 0, defaults to 500.
                             // Rules are evaluated in priority order (lower numbers first) using a first-match algorithm:
                             // only the first matching rule takes effect (ALLOW or DENY), and subsequent rules are skipped.
                             // 
                             // When multiple rules share the same priority, DENY rules are evaluated before ALLOW rules.
                             // The final evaluation order is reflected in 'effective_priority' (see SecurityRuleStatus).
          "protocol": enum(         // [required] [immutable]
                                    // Protocol used in the rule.
                                    // Supported values: ANY, TCP, UDP, ICMP.
            "PROTOCOL_UNSPECIFIED",
            "ANY",                 
            "TCP",                 
            "UDP",                 
            "ICMP"                 
          ),
          "type": enum(              // [immutable] [non_empty_default]
                                     // Type of the rule (STATEFUL or STATELESS)
                                     // Default value is STATEFUL.
            "RULE_TYPE_UNSPECIFIED",
            "STATEFUL",             
            "STATELESS"             
          )
        }
      }
      ```
    </Tab>

    <Tab title="CopyPaste Friendly">
      ```json theme={null}
      nebius vpc security-rule create '
      {              
        "metadata": {           
          "labels": {           
            "": ""                  
          },
          "name": "",           
          "parent_id": "",      
          "resource_version": 0 
        },
        "spec": {                                                    
          "access": "access_unspecified"|"allow"|"deny"              ,
          "egress": {                           
            "destination_cidrs": [""],          
            "destination_ports": [0],           
            "destination_security_group_id": "" 
          },
          "priority": 0,                                             
          "protocol": "protocol_unspecified"|"any"|"tcp"|"udp"|"icmp",
          "type": "rule_type_unspecified"|"stateful"|"stateless"     
        }
      }
      '
      ```
    </Tab>
  </Tabs>
</Expandable>

<strong>Auto generated on 19-May-2026</strong>
