{
  "openapi": "3.0.1",
  "info": {
    "title": "ESET Connect - Asset Management",
    "description": "<h3>ESET Connect help:</h3><a href=https://help.eset.com/eset_connect/en-US/>https://help.eset.com/eset_connect/en-US/</a>",
    "version": "1.0"
  },
  "servers": [
    {
      "url": "https://eu.asset-management.eset.systems/"
    }
  ],
  "tags": [
    {
      "name": "Groups"
    }
  ],
  "paths": {
    "/v1/groups": {
      "post": {
        "tags": [
          "Groups"
        ],
        "summary": "Create group",
        "description": "Create a [Group] in the hierarchy and assign a UUID to it.",
        "operationId": "V1_Groups_CreateGroup",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/v1CreateGroupRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful response.",
            "headers": {
              "request-id": {
                "description": "Unique ID of the request. Include in support requests.",
                "style": "simple",
                "explode": false,
                "schema": {
                  "type": "string",
                  "format": "uuid"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/v1CreateGroupResponse"
                }
              }
            }
          },
          "202": {
            "description": "Response took too long; request cached. Response can be retrieved later using the response-id header.",
            "headers": {
              "response-id": {
                "description": "Unique ID of a pending request. Used to retrieve cached result.",
                "style": "simple",
                "explode": false,
                "schema": {
                  "type": "string",
                  "format": "uuid"
                }
              },
              "request-id": {
                "description": "Unique ID of the request. Include in support requests.",
                "style": "simple",
                "explode": false,
                "schema": {
                  "type": "string",
                  "format": "uuid"
                }
              }
            },
            "content": {}
          },
          "400": {
            "description": "One of the errors: 1. Bad or missing authorization. 2. Validation error. Invalid argument provided.",
            "headers": {
              "request-id": {
                "description": "Unique ID of the request. Include in support requests.",
                "style": "simple",
                "explode": false,
                "schema": {
                  "type": "string",
                  "format": "uuid"
                }
              }
            },
            "content": {}
          },
          "401": {
            "description": "Token has expired or is invalid.",
            "headers": {
              "request-id": {
                "description": "Unique ID of the request. Include in support requests.",
                "style": "simple",
                "explode": false,
                "schema": {
                  "type": "string",
                  "format": "uuid"
                }
              }
            },
            "content": {}
          },
          "403": {
            "description": "Access denied. Check permissions.",
            "headers": {
              "request-id": {
                "description": "Unique ID of the request. Include in support requests.",
                "style": "simple",
                "explode": false,
                "schema": {
                  "type": "string",
                  "format": "uuid"
                }
              }
            },
            "content": {}
          },
          "404": {
            "description": "Requested resource not found.",
            "headers": {
              "request-id": {
                "description": "Unique ID of the request. Include in support requests.",
                "style": "simple",
                "explode": false,
                "schema": {
                  "type": "string",
                  "format": "uuid"
                }
              }
            },
            "content": {}
          },
          "429": {
            "description": "Rate limit reached. Try again later.",
            "headers": {
              "request-id": {
                "description": "Unique ID of the request. Include in support requests.",
                "style": "simple",
                "explode": false,
                "schema": {
                  "type": "string",
                  "format": "uuid"
                }
              }
            },
            "content": {}
          },
          "500": {
            "description": "Internal server failure. Try again later.",
            "headers": {
              "request-id": {
                "description": "Unique ID of the request. Include in support requests.",
                "style": "simple",
                "explode": false,
                "schema": {
                  "type": "string",
                  "format": "uuid"
                }
              }
            },
            "content": {}
          },
          "502": {
            "description": "Internal server failure. Try again later.",
            "headers": {
              "request-id": {
                "description": "Unique ID of the request. Include in support requests.",
                "style": "simple",
                "explode": false,
                "schema": {
                  "type": "string",
                  "format": "uuid"
                }
              }
            },
            "content": {}
          },
          "503": {
            "description": "Environment under maintenance. Try again later.",
            "headers": {
              "request-id": {
                "description": "Unique ID of the request. Include in support requests.",
                "style": "simple",
                "explode": false,
                "schema": {
                  "type": "string",
                  "format": "uuid"
                }
              }
            },
            "content": {}
          },
          "504": {
            "description": "Action took too long; timeout reached",
            "headers": {
              "request-id": {
                "description": "Unique ID of the request. Include in support requests.",
                "style": "simple",
                "explode": false,
                "schema": {
                  "type": "string",
                  "format": "uuid"
                }
              }
            },
            "content": {}
          }
        },
        "security": [
          {
            "Bearer": []
          }
        ],
        "x-codegen-request-body-name": "body"
      }
    },
    "/v1/groups/{groupUuid}": {
      "delete": {
        "tags": [
          "Groups"
        ],
        "summary": "Delete group",
        "description": "Delete the group referenced by the uuid and any groups under it. If there are objects under the deleted groups, all of them will be deleted as well.\nIt is not possible to delete a group that has a linked entity (CUSTOMER, MSP, ...).",
        "operationId": "V1_Groups_DeleteGroup",
        "parameters": [
          {
            "name": "groupUuid",
            "in": "path",
            "description": "Reference to the group that is the root of the deleted subtree.\n\ntype: Group",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "maxLength": 100,
              "minLength": 0,
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "releaseConsumedUnits",
            "in": "query",
            "description": "For any deleted object within the group, all the associated units will be released. For devices, the seat of any active product on deleted devices will be released (and can be used again). If there were multiple active products on the deleted device, all of them are deactivated. Similarly, if there is a product consuming users (for example, mail server security), all the users will be released after the deletion of the device.\n\n> **Note:**\n> As of 2024H2 only seats are released.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "headers": {
              "request-id": {
                "description": "Unique ID of the request. Include in support requests.",
                "style": "simple",
                "explode": false,
                "schema": {
                  "type": "string",
                  "format": "uuid"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/v1DeleteGroupResponse"
                }
              }
            }
          },
          "202": {
            "description": "Response took too long; request cached. Response can be retrieved later using the response-id header.",
            "headers": {
              "response-id": {
                "description": "Unique ID of a pending request. Used to retrieve cached result.",
                "style": "simple",
                "explode": false,
                "schema": {
                  "type": "string",
                  "format": "uuid"
                }
              },
              "request-id": {
                "description": "Unique ID of the request. Include in support requests.",
                "style": "simple",
                "explode": false,
                "schema": {
                  "type": "string",
                  "format": "uuid"
                }
              }
            },
            "content": {}
          },
          "400": {
            "description": "One of the errors: 1. Bad or missing authorization. 2. Validation error. Invalid argument provided.",
            "headers": {
              "request-id": {
                "description": "Unique ID of the request. Include in support requests.",
                "style": "simple",
                "explode": false,
                "schema": {
                  "type": "string",
                  "format": "uuid"
                }
              }
            },
            "content": {}
          },
          "401": {
            "description": "Token has expired or is invalid.",
            "headers": {
              "request-id": {
                "description": "Unique ID of the request. Include in support requests.",
                "style": "simple",
                "explode": false,
                "schema": {
                  "type": "string",
                  "format": "uuid"
                }
              }
            },
            "content": {}
          },
          "403": {
            "description": "Access denied. Check permissions.",
            "headers": {
              "request-id": {
                "description": "Unique ID of the request. Include in support requests.",
                "style": "simple",
                "explode": false,
                "schema": {
                  "type": "string",
                  "format": "uuid"
                }
              }
            },
            "content": {}
          },
          "404": {
            "description": "Requested resource not found.",
            "headers": {
              "request-id": {
                "description": "Unique ID of the request. Include in support requests.",
                "style": "simple",
                "explode": false,
                "schema": {
                  "type": "string",
                  "format": "uuid"
                }
              }
            },
            "content": {}
          },
          "429": {
            "description": "Rate limit reached. Try again later.",
            "headers": {
              "request-id": {
                "description": "Unique ID of the request. Include in support requests.",
                "style": "simple",
                "explode": false,
                "schema": {
                  "type": "string",
                  "format": "uuid"
                }
              }
            },
            "content": {}
          },
          "500": {
            "description": "Internal server failure. Try again later.",
            "headers": {
              "request-id": {
                "description": "Unique ID of the request. Include in support requests.",
                "style": "simple",
                "explode": false,
                "schema": {
                  "type": "string",
                  "format": "uuid"
                }
              }
            },
            "content": {}
          },
          "502": {
            "description": "Internal server failure. Try again later.",
            "headers": {
              "request-id": {
                "description": "Unique ID of the request. Include in support requests.",
                "style": "simple",
                "explode": false,
                "schema": {
                  "type": "string",
                  "format": "uuid"
                }
              }
            },
            "content": {}
          },
          "503": {
            "description": "Environment under maintenance. Try again later.",
            "headers": {
              "request-id": {
                "description": "Unique ID of the request. Include in support requests.",
                "style": "simple",
                "explode": false,
                "schema": {
                  "type": "string",
                  "format": "uuid"
                }
              }
            },
            "content": {}
          },
          "504": {
            "description": "Action took too long; timeout reached",
            "headers": {
              "request-id": {
                "description": "Unique ID of the request. Include in support requests.",
                "style": "simple",
                "explode": false,
                "schema": {
                  "type": "string",
                  "format": "uuid"
                }
              }
            },
            "content": {}
          }
        },
        "security": [
          {
            "Bearer": []
          }
        ]
      }
    },
    "/v1/groups/{groupUuid}:move": {
      "post": {
        "tags": [
          "Groups"
        ],
        "summary": "Move group",
        "description": "Move a [Group] under another [Group].\n\nIt is possible to move groups only in the scope of the same tenant.\nThe assignment of policies is updated according to the new hierarchy.",
        "operationId": "V1_Groups_MoveGroup",
        "parameters": [
          {
            "name": "groupUuid",
            "in": "path",
            "description": "Reference to the group to be moved.\n\ntype: Group",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "maxLength": 100,
              "minLength": 0,
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GroupsMoveGroupBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful response.",
            "headers": {
              "request-id": {
                "description": "Unique ID of the request. Include in support requests.",
                "style": "simple",
                "explode": false,
                "schema": {
                  "type": "string",
                  "format": "uuid"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/v1MoveGroupResponse"
                }
              }
            }
          },
          "202": {
            "description": "Response took too long; request cached. Response can be retrieved later using the response-id header.",
            "headers": {
              "response-id": {
                "description": "Unique ID of a pending request. Used to retrieve cached result.",
                "style": "simple",
                "explode": false,
                "schema": {
                  "type": "string",
                  "format": "uuid"
                }
              },
              "request-id": {
                "description": "Unique ID of the request. Include in support requests.",
                "style": "simple",
                "explode": false,
                "schema": {
                  "type": "string",
                  "format": "uuid"
                }
              }
            },
            "content": {}
          },
          "400": {
            "description": "One of the errors: 1. Bad or missing authorization. 2. Validation error. Invalid argument provided.",
            "headers": {
              "request-id": {
                "description": "Unique ID of the request. Include in support requests.",
                "style": "simple",
                "explode": false,
                "schema": {
                  "type": "string",
                  "format": "uuid"
                }
              }
            },
            "content": {}
          },
          "401": {
            "description": "Token has expired or is invalid.",
            "headers": {
              "request-id": {
                "description": "Unique ID of the request. Include in support requests.",
                "style": "simple",
                "explode": false,
                "schema": {
                  "type": "string",
                  "format": "uuid"
                }
              }
            },
            "content": {}
          },
          "403": {
            "description": "Access denied. Check permissions.",
            "headers": {
              "request-id": {
                "description": "Unique ID of the request. Include in support requests.",
                "style": "simple",
                "explode": false,
                "schema": {
                  "type": "string",
                  "format": "uuid"
                }
              }
            },
            "content": {}
          },
          "404": {
            "description": "Requested resource not found.",
            "headers": {
              "request-id": {
                "description": "Unique ID of the request. Include in support requests.",
                "style": "simple",
                "explode": false,
                "schema": {
                  "type": "string",
                  "format": "uuid"
                }
              }
            },
            "content": {}
          },
          "429": {
            "description": "Rate limit reached. Try again later.",
            "headers": {
              "request-id": {
                "description": "Unique ID of the request. Include in support requests.",
                "style": "simple",
                "explode": false,
                "schema": {
                  "type": "string",
                  "format": "uuid"
                }
              }
            },
            "content": {}
          },
          "500": {
            "description": "Internal server failure. Try again later.",
            "headers": {
              "request-id": {
                "description": "Unique ID of the request. Include in support requests.",
                "style": "simple",
                "explode": false,
                "schema": {
                  "type": "string",
                  "format": "uuid"
                }
              }
            },
            "content": {}
          },
          "502": {
            "description": "Internal server failure. Try again later.",
            "headers": {
              "request-id": {
                "description": "Unique ID of the request. Include in support requests.",
                "style": "simple",
                "explode": false,
                "schema": {
                  "type": "string",
                  "format": "uuid"
                }
              }
            },
            "content": {}
          },
          "503": {
            "description": "Environment under maintenance. Try again later.",
            "headers": {
              "request-id": {
                "description": "Unique ID of the request. Include in support requests.",
                "style": "simple",
                "explode": false,
                "schema": {
                  "type": "string",
                  "format": "uuid"
                }
              }
            },
            "content": {}
          },
          "504": {
            "description": "Action took too long; timeout reached",
            "headers": {
              "request-id": {
                "description": "Unique ID of the request. Include in support requests.",
                "style": "simple",
                "explode": false,
                "schema": {
                  "type": "string",
                  "format": "uuid"
                }
              }
            },
            "content": {}
          }
        },
        "security": [
          {
            "Bearer": []
          }
        ],
        "x-codegen-request-body-name": "body"
      }
    },
    "/v1/groups/{groupUuid}:rename": {
      "post": {
        "tags": [
          "Groups"
        ],
        "summary": "Rename group",
        "description": "Update the group's display name.",
        "operationId": "V1_Groups_RenameGroup",
        "parameters": [
          {
            "name": "groupUuid",
            "in": "path",
            "description": "Reference to the group for which the name is changed.\n\ntype: Group",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "maxLength": 100,
              "minLength": 0,
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GroupsRenameGroupBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful response.",
            "headers": {
              "request-id": {
                "description": "Unique ID of the request. Include in support requests.",
                "style": "simple",
                "explode": false,
                "schema": {
                  "type": "string",
                  "format": "uuid"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/v1RenameGroupResponse"
                }
              }
            }
          },
          "202": {
            "description": "Response took too long; request cached. Response can be retrieved later using the response-id header.",
            "headers": {
              "response-id": {
                "description": "Unique ID of a pending request. Used to retrieve cached result.",
                "style": "simple",
                "explode": false,
                "schema": {
                  "type": "string",
                  "format": "uuid"
                }
              },
              "request-id": {
                "description": "Unique ID of the request. Include in support requests.",
                "style": "simple",
                "explode": false,
                "schema": {
                  "type": "string",
                  "format": "uuid"
                }
              }
            },
            "content": {}
          },
          "400": {
            "description": "One of the errors: 1. Bad or missing authorization. 2. Validation error. Invalid argument provided.",
            "headers": {
              "request-id": {
                "description": "Unique ID of the request. Include in support requests.",
                "style": "simple",
                "explode": false,
                "schema": {
                  "type": "string",
                  "format": "uuid"
                }
              }
            },
            "content": {}
          },
          "401": {
            "description": "Token has expired or is invalid.",
            "headers": {
              "request-id": {
                "description": "Unique ID of the request. Include in support requests.",
                "style": "simple",
                "explode": false,
                "schema": {
                  "type": "string",
                  "format": "uuid"
                }
              }
            },
            "content": {}
          },
          "403": {
            "description": "Access denied. Check permissions.",
            "headers": {
              "request-id": {
                "description": "Unique ID of the request. Include in support requests.",
                "style": "simple",
                "explode": false,
                "schema": {
                  "type": "string",
                  "format": "uuid"
                }
              }
            },
            "content": {}
          },
          "404": {
            "description": "Requested resource not found.",
            "headers": {
              "request-id": {
                "description": "Unique ID of the request. Include in support requests.",
                "style": "simple",
                "explode": false,
                "schema": {
                  "type": "string",
                  "format": "uuid"
                }
              }
            },
            "content": {}
          },
          "429": {
            "description": "Rate limit reached. Try again later.",
            "headers": {
              "request-id": {
                "description": "Unique ID of the request. Include in support requests.",
                "style": "simple",
                "explode": false,
                "schema": {
                  "type": "string",
                  "format": "uuid"
                }
              }
            },
            "content": {}
          },
          "500": {
            "description": "Internal server failure. Try again later.",
            "headers": {
              "request-id": {
                "description": "Unique ID of the request. Include in support requests.",
                "style": "simple",
                "explode": false,
                "schema": {
                  "type": "string",
                  "format": "uuid"
                }
              }
            },
            "content": {}
          },
          "502": {
            "description": "Internal server failure. Try again later.",
            "headers": {
              "request-id": {
                "description": "Unique ID of the request. Include in support requests.",
                "style": "simple",
                "explode": false,
                "schema": {
                  "type": "string",
                  "format": "uuid"
                }
              }
            },
            "content": {}
          },
          "503": {
            "description": "Environment under maintenance. Try again later.",
            "headers": {
              "request-id": {
                "description": "Unique ID of the request. Include in support requests.",
                "style": "simple",
                "explode": false,
                "schema": {
                  "type": "string",
                  "format": "uuid"
                }
              }
            },
            "content": {}
          },
          "504": {
            "description": "Action took too long; timeout reached",
            "headers": {
              "request-id": {
                "description": "Unique ID of the request. Include in support requests.",
                "style": "simple",
                "explode": false,
                "schema": {
                  "type": "string",
                  "format": "uuid"
                }
              }
            },
            "content": {}
          }
        },
        "security": [
          {
            "Bearer": []
          }
        ],
        "x-codegen-request-body-name": "body"
      }
    }
  },
  "components": {
    "schemas": {
      "GroupsMoveGroupBody": {
        "type": "object",
        "properties": {
          "newParentUuid": {
            "type": "string",
            "description": "Reference to the new parent [Group] for the [Group] being moved.\n\ntype: Group"
          }
        }
      },
      "GroupsRenameGroupBody": {
        "type": "object",
        "properties": {
          "displayName": {
            "type": "string",
            "description": "New display name for the group."
          }
        }
      },
      "protobufAny": {
        "type": "object",
        "properties": {
          "@type": {
            "type": "string",
            "description": "Identifies the type of the serialized Protobuf message with a URI reference\nconsisting of a prefix ending in a slash and the fully-qualified type name.\n\nExample: type.googleapis.com/google.protobuf.StringValue\n\nThis string must contain at least one `/` character, and the content after\nthe last `/` must be the fully-qualified name of the type in canonical\nform, without a leading dot. Do not write a scheme on these URI references\nso that clients do not attempt to contact them.\n\nThe prefix is arbitrary and Protobuf implementations are expected to\nsimply strip off everything up to and including the last `/` to identify\nthe type. `type.googleapis.com/` is a common default prefix that some\nlegacy implementations require. This prefix does not indicate the origin of\nthe type, and URIs containing it are not expected to respond to any\nrequests.\n\nAll type URL strings must be legal URI references with the additional\nrestriction (for the text format) that the content of the reference\nmust consist only of alphanumeric characters, percent-encoded escapes, and\ncharacters in the following set (not including the outer backticks):\n`/-.~_!$&()*+,;=`. Despite our allowing percent encodings, implementations\nshould not unescape them to prevent confusion with existing parsers. For\nexample, `type.googleapis.com%2FFoo` should be rejected.\n\nIn the original design of `Any`, the possibility of launching a type\nresolution service at these type URLs was considered but Protobuf never\nimplemented one and considers contacting these URLs to be problematic and\na potential security issue. Do not attempt to contact type URLs."
          }
        },
        "additionalProperties": {
          "type": "object"
        },
        "description": "`Any` contains an arbitrary serialized protocol buffer message along with a\nURL that describes the type of the serialized message.\n\nIn its binary encoding, an `Any` is an ordinary message; but in other wire\nforms like JSON, it has a special encoding. The format of the type URL is\ndescribed on the `type_url` field.\n\nProtobuf APIs provide utilities to interact with `Any` values:\n\n- A 'pack' operation accepts a message and constructs a generic `Any` wrapper\n  around it.\n- An 'unpack' operation reads the content of an `Any` message, either into an\n  existing message or a new one. Unpack operations must check the type of the\n  value they unpack against the declared `type_url`.\n- An 'is' operation decides whether an `Any` contains a message of the given\n  type, i.e. whether it can 'unpack' that type.\n\nThe JSON format representation of an `Any` follows one of these cases:\n\n- For types without special-cased JSON encodings, the JSON format\n  representation of the `Any` is the same as that of the message, with an\n  additional `@type` field which contains the type URL.\n- For types with special-cased JSON encodings (typically called 'well-known'\n  types, listed in https://protobuf.dev/programming-guides/json/#any), the\n  JSON format representation has a key `@type` which contains the type URL\n  and a key `value` which contains the JSON-serialized value.\n\nThe text format representation of an `Any` is like a message with one field\nwhose name is the type URL in brackets. For example, an `Any` containing a\n`foo.Bar` message may be written `[type.googleapis.com/foo.Bar] { a: 2 }`."
      },
      "rpcStatus": {
        "type": "object",
        "properties": {
          "code": {
            "type": "integer",
            "format": "int32"
          },
          "message": {
            "type": "string"
          },
          "details": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/protobufAny"
            }
          }
        }
      },
      "v1CreateGroupRequest": {
        "type": "object",
        "properties": {
          "group": {
            "$ref": "#/components/schemas/v1Group"
          }
        }
      },
      "v1CreateGroupResponse": {
        "type": "object",
        "properties": {
          "group": {
            "$ref": "#/components/schemas/v1Group"
          }
        }
      },
      "v1DeleteGroupResponse": {
        "title": "empty",
        "type": "object"
      },
      "v1ExternalAssetType": {
        "type": "string",
        "description": "Defines the specific, technical type of an asset as identified in the source system.\nIt is intentionally granular and covers both structural containers and leaf resources.\n\n - EXTERNAL_ASSET_TYPE_UNSPECIFIED: Unspecified or default type.\n - EXTERNAL_ASSET_TYPE_AZURE_RESOURCE_GROUP: An Azure Resource Group. A container within an Azure Subscription that holds related resources for an application or a project.\n - EXTERNAL_ASSET_TYPE_AZURE_SUBSCRIPTION: An Azure Subscription, which serves as a primary billing and management container for all Azure resources. It is the top-level hierarchical entity in Azure.\n - EXTERNAL_ASSET_TYPE_AWS_ACCOUNT: An Amazon Web Services (AWS) Account. It is the fundamental container for all AWS resources and acts as a security, access, and billing boundary.\n - EXTERNAL_ASSET_TYPE_AWS_REGION: An Amazon Web Services (AWS) Region. A physical location containing one or more availability zones where AWS resources can be deployed.\n - EXTERNAL_ASSET_TYPE_GCP_PROJECT: A Google Cloud Project. It is the core organizational unit for creating and managing resources, and serves as a boundary for billing, enabling APIs, and managing IAM permissions for all contained resources.\n - EXTERNAL_ASSET_TYPE_AZURE_VIRTUAL_MACHINE: A Microsoft Azure Virtual Machine. A scalable, on-demand compute resource that functions as a virtual server.\n - EXTERNAL_ASSET_TYPE_AWS_EC2_INSTANCE: An Amazon Elastic Compute Cloud (EC2) Instance. A virtual server in the AWS cloud used for running applications.\n - EXTERNAL_ASSET_TYPE_GCP_COMPUTE_ENGINE_INSTANCE: A Google Compute Engine (GCE) instance. A virtual machine running in Google's infrastructure, used for a wide range of workloads.\n - EXTERNAL_ASSET_TYPE_ENTRA_ID_USER: A user identity managed by Microsoft Entra ID (formerly Azure AD), used for accessing Microsoft 365, Azure, and other federated cloud services.\n - EXTERNAL_ASSET_TYPE_MICROSOFT_ACTIVE_DIRECTORY_USER: A user account within a Microsoft Active Directory domain.\n - EXTERNAL_ASSET_TYPE_OBSERVED_USER: A user identity as observed from a device logon event, containing partial information.\n - EXTERNAL_ASSET_TYPE_MICROSOFT_ACTIVE_DIRECTORY_MANAGED_SERVICE_ACCOUNT: A Managed Service Account within a Microsoft Active Directory domain, used to provide automatic password management and simplified SPN management for services.\n - EXTERNAL_ASSET_TYPE_ENTRA_ID_APPLICATION: An application registration in Microsoft Entra ID (formerly Azure AD), representing a software application that can authenticate and request access to resources.\n - EXTERNAL_ASSET_TYPE_ENTRA_ID_SERVICE_PRINCIPAL: A service principal in Microsoft Entra ID (formerly Azure AD), representing the local instance of an application or managed identity within a tenant, used for authentication and authorization.\n - EXTERNAL_ASSET_TYPE_MICROSOFT_SHAREPOINT_SITE: A Microsoft SharePoint Site. A cloud-based document repository and content management platform within Microsoft 365 for storing, organizing, securing, and sharing enterprise information.\n - EXTERNAL_ASSET_TYPE_MICROSOFT_TEAMS_TEAM: A Microsoft Teams Team. A cloud-based team workspace within Microsoft 365 with integrated cloud storage for team files, conversations, and collaborative resources.\n\nMicrosoft Teams team is backed by a [Microsoft 365 Group](https://learn.microsoft.com/en-us/microsoft-365/admin/create-groups/compare-groups?view=o365-worldwide).\n - EXTERNAL_ASSET_TYPE_PALO_ALTO_FIREWALL: A Next-Generation Firewall (NGFW) appliance (physical or virtual) from Palo Alto Networks, used for network security policy enforcement.\n - EXTERNAL_ASSET_TYPE_AZURE_STORAGE_ACCOUNT: An Azure Storage Account. A massively scalable and secure cloud storage service for blobs, files, queues, and tables.\n - EXTERNAL_ASSET_TYPE_AWS_S3_BUCKET: An Amazon Simple Storage Service (S3) Bucket. An object storage container in AWS for storing and retrieving any amount of data.\n - EXTERNAL_ASSET_TYPE_GCP_CLOUD_STORAGE_BUCKET: A Google Cloud Storage Bucket. An object storage container in GCP for storing unstructured data.\n - EXTERNAL_ASSET_TYPE_AWS_EFS_FILE_SYSTEM: An Amazon Elastic File System (EFS) File System. A scalable, managed NFS file system for AWS workloads.\n - EXTERNAL_ASSET_TYPE_GCP_FILESTORE_INSTANCE: A Google Cloud Filestore Instance. A fully managed NFS file server on Google Cloud.",
        "default": "EXTERNAL_ASSET_TYPE_UNSPECIFIED",
        "enum": [
          "EXTERNAL_ASSET_TYPE_UNSPECIFIED",
          "EXTERNAL_ASSET_TYPE_AZURE_RESOURCE_GROUP",
          "EXTERNAL_ASSET_TYPE_AZURE_SUBSCRIPTION",
          "EXTERNAL_ASSET_TYPE_AWS_ACCOUNT",
          "EXTERNAL_ASSET_TYPE_AWS_REGION",
          "EXTERNAL_ASSET_TYPE_GCP_PROJECT",
          "EXTERNAL_ASSET_TYPE_AZURE_VIRTUAL_MACHINE",
          "EXTERNAL_ASSET_TYPE_AWS_EC2_INSTANCE",
          "EXTERNAL_ASSET_TYPE_GCP_COMPUTE_ENGINE_INSTANCE",
          "EXTERNAL_ASSET_TYPE_ENTRA_ID_USER",
          "EXTERNAL_ASSET_TYPE_MICROSOFT_ACTIVE_DIRECTORY_USER",
          "EXTERNAL_ASSET_TYPE_OBSERVED_USER",
          "EXTERNAL_ASSET_TYPE_MICROSOFT_ACTIVE_DIRECTORY_MANAGED_SERVICE_ACCOUNT",
          "EXTERNAL_ASSET_TYPE_ENTRA_ID_APPLICATION",
          "EXTERNAL_ASSET_TYPE_ENTRA_ID_SERVICE_PRINCIPAL",
          "EXTERNAL_ASSET_TYPE_MICROSOFT_SHAREPOINT_SITE",
          "EXTERNAL_ASSET_TYPE_MICROSOFT_TEAMS_TEAM",
          "EXTERNAL_ASSET_TYPE_PALO_ALTO_FIREWALL",
          "EXTERNAL_ASSET_TYPE_AZURE_STORAGE_ACCOUNT",
          "EXTERNAL_ASSET_TYPE_AWS_S3_BUCKET",
          "EXTERNAL_ASSET_TYPE_GCP_CLOUD_STORAGE_BUCKET",
          "EXTERNAL_ASSET_TYPE_AWS_EFS_FILE_SYSTEM",
          "EXTERNAL_ASSET_TYPE_GCP_FILESTORE_INSTANCE"
        ]
      },
      "v1Group": {
        "type": "object",
        "properties": {
          "description": {
            "type": "string",
            "description": "Group description. Free text."
          },
          "displayName": {
            "type": "string",
            "description": "User-friendly name of the group."
          },
          "externalReference": {
            "type": "string",
            "description": "A unique reference from an external system used to associate this entity with its corresponding record in that system. \nThis value is typically received from an external source during integration or synchronization and remains unchanged for the lifetime of the association."
          },
          "externalType": {
            "$ref": "#/components/schemas/v1ExternalAssetType"
          },
          "linkedEntityType": {
            "$ref": "#/components/schemas/v1GroupEntityType"
          },
          "parentGroupUuid": {
            "type": "string",
            "description": "Reference to the parent group in the tree structure.\n\ntype: Group"
          },
          "uuid": {
            "type": "string",
            "description": "Unique identifier of the entity.\n\nMust be collision-free - two identifiers created anywhere in the world must not collide within the entity parent scope. Unless a member of aggregate, the entity scope is always global.\n\nAlthough most of the times compliant with [RFC 9562: A Universally Unique IDentifier (UUID) URN Namespace](https://tools.ietf.org/html/rfc9562), do not rely on it being a RFC UUID. Treat it as an opaque identifier, albeit of predictable length and alphabet.\n\nRFC UUID can be recognized by being formatted according to the template xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx, as explained on [Wikipedia](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format).\n\nUUID is used for referencing an entity, even across domains.\n\nExample: \"123e4567-e89b-12d3-a456-426614174000\""
          },
          "ownerUuid": {
            "type": "string",
            "description": "Identifier of the tenant who owns this object.",
            "readOnly": true
          }
        },
        "description": "In fact, it is the node of the tree. It can represent a static group(folder) as well as a tenant(CUSTOMER, MSP, ...), which is part of the tree. \nJust as it is the case for other entities, the group is also owned by the tenant.\n\nGroups 'All' and 'Lost&Found' are 'special' groups and are not governed by this API; therefore, they cannot be created, deleted, renamed, or moved.\n\nAll groups that are linked to an entity cannot be created, deleted, renamed, or moved. The life cycle of these groups is governed by the life cycle of the entities they represent."
      },
      "v1GroupEntityType": {
        "type": "string",
        "description": "Possible entities that the Group represents.\n\n - GROUP_ENTITY_TYPE_UNSPECIFIED: fallback\n - GROUP_ENTITY_TYPE_CUSTOMER: Group representing [company]\n - GROUP_ENTITY_TYPE_MSP: Group representing [MSP]\n - GROUP_ENTITY_TYPE_SITE: Group representing [site]\n - GROUP_ENTITY_TYPE_HOUSEHOLD: Group representing [household]\n - GROUP_ENTITY_TYPE_EXTERNAL_CONTAINER: Group representing an external container (e.g., Azure Resource Group, AWS Account).\nSuch groups are managed by the integration connector.",
        "default": "GROUP_ENTITY_TYPE_UNSPECIFIED",
        "enum": [
          "GROUP_ENTITY_TYPE_UNSPECIFIED",
          "GROUP_ENTITY_TYPE_CUSTOMER",
          "GROUP_ENTITY_TYPE_MSP",
          "GROUP_ENTITY_TYPE_SITE",
          "GROUP_ENTITY_TYPE_HOUSEHOLD",
          "GROUP_ENTITY_TYPE_EXTERNAL_CONTAINER"
        ]
      },
      "v1MoveGroupResponse": {
        "type": "object",
        "properties": {
          "group": {
            "$ref": "#/components/schemas/v1Group"
          }
        }
      },
      "v1RenameGroupResponse": {
        "type": "object",
        "properties": {
          "group": {
            "$ref": "#/components/schemas/v1Group"
          }
        }
      }
    },
    "securitySchemes": {
      "Bearer": {
        "type": "apiKey",
        "description": "Type \"Bearer \" and then your API Token",
        "name": "Authorization",
        "in": "header"
      }
    }
  },
  "x-original-swagger-version": "2.0"
}