Attach a Compute instance to a Security Group

PUT /security-group/{id}:attach

Path parameters

  • id string(uuid) Required
application/json

Body Required

  • instance object Required

    Instance

    Additional properties are allowed.

    Hide instance attributes Show instance attributes object
    • Instance Anti-affinity Groups

      Anti-affinity Group

      Additional properties are allowed.

    • Instance public IP assignment

      Values are inet4, dual, or none.

    • labels object

      Resource labels

      Hide labels attribute Show labels attribute object
      • * string Additional properties
    • security-groups array[object]

      Instance Security Groups

      Hide security-groups attributes Show security-groups attributes object
      • name string

        Security Group name

        Minimum length is 1, maximum length is 255.

      • Security Group description

        Maximum length is 255.

      • external-sources array[string]

        Security Group external sources

      • rules array[object]

        Security Group rules

        Hide rules attributes Show rules attributes object
        • Security Group rule description

          Maximum length is 255.

        • start-port integer(int64)

          Start port of the range

          Minimum value is 1, maximum value is 65535.

        • protocol string

          Network protocol

          Values are tcp, esp, icmp, udp, gre, ah, ipip, or icmpv6.

        • icmp object

          ICMP details

          Additional properties are allowed.

          Hide icmp attributes Show icmp attributes object
          • code integer(int64)

            Minimum value is -1, maximum value is 254.

          • type integer(int64)

            Minimum value is -1, maximum value is 254.

        • end-port integer(int64)

          End port of the range

          Minimum value is 1, maximum value is 65535.

        • Security Group allowed

          Additional properties are allowed.

          Hide security-group attributes Show security-group attributes object
          • name string

            Security Group name

            Minimum length is 1, maximum length is 255.

          • Whether this points to a public security group. This is only valid when in the context of a rule addition which uses a public security group as a source or destination.

            Values are private or public.

        • network string

          CIDR-formatted network allowed

        • Network flow direction to match

          Values are ingress or egress.

    • elastic-ips array[object]

      Instance Elastic IPs

      Hide elastic-ips attributes Show elastic-ips attributes object
      • Elastic IP description

        Maximum length is 255.

      • Elastic IP healthcheck

        Additional properties are allowed.

        Hide healthcheck attributes Show healthcheck attributes object
        • strikes-ok integer(int64)

          Number of attempts before considering the target healthy (default: 2)

          Minimum value is 1, maximum value is 20.

        • Skip TLS verification

        • tls-sni string

          An optional domain or subdomain to check TLS against

          Minimum length is 1, maximum length is 255.

        • strikes-fail integer(int64)

          Number of attempts before considering the target unhealthy (default: 3)

          Minimum value is 1, maximum value is 20.

        • mode string Required

          Health check mode

          Values are tcp, http, or https.

        • port integer(int64) Required

          Health check port

          Minimum value is 1, maximum value is 65535.

        • uri string

          An endpoint to use for the health check, for example '/status'

          Minimum length is 1, maximum length is 255.

        • interval integer(int64)

          Interval between the checks in seconds (default: 10)

          Minimum value is 5, maximum value is 300.

        • timeout integer(int64)

          Health check timeout value in seconds (default: 2)

          Minimum value is 2, maximum value is 60.

      • labels object

        Resource labels

        Hide labels attribute Show labels attribute object
        • * string Additional properties
    • name string

      Instance name

      Minimum length is 1, maximum length is 255.

    • Instance Type

      Additional properties are allowed.

    • private-networks array[object]

      Instance Private Networks

      Hide private-networks attributes Show private-networks attributes object
    • template object

      Instance Template

      Additional properties are allowed.

      Hide template attributes Show template attributes object
      • Template description

        Maximum length is 255.

      • Enable SSH key-based login

      • name string

        Template name

        Minimum length is 1, maximum length is 255.

      • Template default user

        Minimum length is 1, maximum length is 255.

      • size integer(int64)

        Template size

        Minimum value is 0.

      • Enable password-based login

      • checksum string

        Template MD5 checksum

      • Boot mode (default: legacy)

        Values are legacy or uefi.

      • zones array[string]

        Zones availability

        Values are ch-dk-2, de-muc-1, ch-gva-2, at-vie-1, de-fra-1, bg-sof-1, or at-vie-2.

      • url string

        Template source URL

    • ssh-key object

      Instance SSH Key

      Additional properties are allowed.

      Hide ssh-key attribute Show ssh-key attribute object
      • name string

        SSH key name

        Minimum length is 1, maximum length is 255.

    • Instance Cloud-init user-data (base64 encoded)

      Minimum length is 1.

    • Instance Deploy Target

      Additional properties are allowed.

      Hide deploy-target attributes Show deploy-target attributes object
      • id string(uuid) Required

        Deploy Target ID

      • name string

        Deploy Target name

        Minimum length is 1, maximum length is 255.

      • type string

        Deploy Target type

        Values are edge or dedicated.

      • Deploy Target description

        Maximum length is 255.

    • snapshots array[object]

      Instance Snapshots

      Hide snapshots attributes Show snapshots attributes object
      • name string

        Snapshot name

        Minimum length is 1, maximum length is 255.

      • state string

        Snapshot state

        Values are snapshotting, deleted, exporting, ready, deleting, error, or exported.

      • export object

        Exported snapshot information

        Additional properties are allowed.

        Hide export attributes Show export attributes object
        • Exported snapshot disk file pre-signed URL

        • md5sum string

          Exported snapshot disk file MD5 checksum

      • instance object

        Compute Instance snapshotted

        Additional properties are allowed.

    • disk-size integer(int64)

      Instance disk size in GiB

      Minimum value is 10, maximum value is 51200.

    • ssh-keys array[object]

      Instance SSH Keys

      Hide ssh-keys attribute Show ssh-keys attribute object
      • name string

        SSH key name

        Minimum length is 1, maximum length is 255.

Responses

  • 200 application/json

    200

    Hide response attributes Show response attributes object
    • id string(uuid)

      Operation ID

    • reason string

      Operation failure reason

      Values are incorrect, unknown, unavailable, forbidden, busy, fault, partial, not-found, interrupted, unsupported, or conflict.

    • Related resource reference

      Additional properties are allowed.

      Hide reference attributes Show reference attributes object
      • id string(uuid)

        Reference ID

      • command string

        Command name

    • message string

      Operation message

    • state string

      Operation status

      Values are failure, pending, success, or timeout.

PUT /security-group/{id}:attach
curl \
 -X PUT https://api-ch-gva-2.exoscale.com/v2/security-group/{id}:attach \
 -H "Content-Type: application/json" \
 -d '{"instance":{"anti-affinity-groups":[{}],"public-ip-assignment":"inet4","labels":{"additionalProperty1":"string","additionalProperty2":"string"},"security-groups":[{"name":"string","description":"string","external-sources":["string"],"rules":[{"description":"string","start-port":42,"protocol":"tcp","icmp":{"code":42,"type":42},"end-port":42,"security-group":{"name":"string","visibility":"private"},"network":"string","flow-direction":"ingress"}]}],"elastic-ips":[{"description":"string","healthcheck":{"strikes-ok":42,"tls-skip-verify":true,"tls-sni":"string","strikes-fail":42,"mode":"tcp","port":42,"uri":"string","interval":42,"timeout":42},"labels":{"additionalProperty1":"string","additionalProperty2":"string"}}],"name":"string","instance-type":{},"private-networks":[{"id":"string","mac-address":"string"}],"template":{"description":"string","ssh-key-enabled":true,"name":"string","default-user":"string","size":42,"password-enabled":true,"checksum":"string","boot-mode":"legacy","zones":["ch-dk-2"],"url":"string"},"ssh-key":{"name":"string"},"user-data":"string","deploy-target":{"id":"string","name":"string","type":"edge","description":"string"},"snapshots":[{"name":"string","state":"snapshotting","export":{"presigned-url":"string","md5sum":"string"},"instance":{}}],"disk-size":42,"ssh-keys":[{"name":"string"}]}}'
Request examples
{
  "instance": {
    "anti-affinity-groups": [
      {}
    ],
    "public-ip-assignment": "inet4",
    "labels": {
      "additionalProperty1": "string",
      "additionalProperty2": "string"
    },
    "security-groups": [
      {
        "name": "string",
        "description": "string",
        "external-sources": [
          "string"
        ],
        "rules": [
          {
            "description": "string",
            "start-port": 42,
            "protocol": "tcp",
            "icmp": {
              "code": 42,
              "type": 42
            },
            "end-port": 42,
            "security-group": {
              "name": "string",
              "visibility": "private"
            },
            "network": "string",
            "flow-direction": "ingress"
          }
        ]
      }
    ],
    "elastic-ips": [
      {
        "description": "string",
        "healthcheck": {
          "strikes-ok": 42,
          "tls-skip-verify": true,
          "tls-sni": "string",
          "strikes-fail": 42,
          "mode": "tcp",
          "port": 42,
          "uri": "string",
          "interval": 42,
          "timeout": 42
        },
        "labels": {
          "additionalProperty1": "string",
          "additionalProperty2": "string"
        }
      }
    ],
    "name": "string",
    "instance-type": {},
    "private-networks": [
      {
        "id": "string",
        "mac-address": "string"
      }
    ],
    "template": {
      "description": "string",
      "ssh-key-enabled": true,
      "name": "string",
      "default-user": "string",
      "size": 42,
      "password-enabled": true,
      "checksum": "string",
      "boot-mode": "legacy",
      "zones": [
        "ch-dk-2"
      ],
      "url": "string"
    },
    "ssh-key": {
      "name": "string"
    },
    "user-data": "string",
    "deploy-target": {
      "id": "string",
      "name": "string",
      "type": "edge",
      "description": "string"
    },
    "snapshots": [
      {
        "name": "string",
        "state": "snapshotting",
        "export": {
          "presigned-url": "string",
          "md5sum": "string"
        },
        "instance": {}
      }
    ],
    "disk-size": 42,
    "ssh-keys": [
      {
        "name": "string"
      }
    ]
  }
}
Response examples (200)
{
  "id": "string",
  "reason": "incorrect",
  "reference": {
    "id": "string",
    "link": "string",
    "command": "string"
  },
  "message": "string",
  "state": "failure"
}