{
  "x-generator": "NSwag v14.6.3.0 (NJsonSchema v11.5.2.0 (Newtonsoft.Json v13.0.0.0))",
  "openapi": "3.0.0",
  "info": {
    "title": "Seamless REST API Explorer",
    "description": "<p>The <b>Seamless API</b> lets you integrate the Seamless governance and lifecycle features for Microsoft 365 into your apps and workflows. \nWith our secure, scalable, and production-ready endpoints, you can automate actions, access data, and extend Seamless functionality using modern RESTful standards.</p>\n<p>For more details check out the <a href=\"https://docs.seamlesswork.com\" target=\"_blank\">API reference</a></p>\n<br /><br />\n<h3>Compatibility and Breaking Changes</h3>\n<p>We try to evolve the API in a backward-compatible way whenever possible.</p>\n<p>A breaking change is any change that would require an existing client integration to be updated in order to keep working. This can include removing or renaming fields, changing field types, making optional inputs required, or changing behavior in an incompatible way.</p>\n<p>Non-breaking changes include additive updates, such as:</p>\n<ul>\n<li>adding new endpoints</li>\n<li>adding new optional request fields</li>\n<li>adding new response fields</li>\n</ul>\n<h4>Important:</h4>\n<p>Clients should ignore response fields they don’t use or don’t recognize. We may add new fields to responses over time, and this is not considered a breaking change.</p>\n<p>To keep integrations robust, we recommend:</p>\n<ul>\n<li>only parsing the fields you need</li>\n<li>ignoring unknown response properties</li>\n<li>avoiding strict assumptions about response shapes</li>\n</ul>",
    "version": "1.0.0"
  },
  "servers": [
    {
      "url": "https://sml-api.io"
    }
  ],
  "paths": {
    "/token": {
      "post": {
        "tags": [
          "Authentication"
        ],
        "summary": "Get access token",
        "description": "Exchanges your API credentials (Tenant ID, Client ID, and Secret) for a bearer token used to authenticate subsequent requests.",
        "operationId": "GetToken",
        "requestBody": {
          "x-name": "PostTokenRequest",
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PostTokenRequest"
              }
            }
          },
          "required": true,
          "x-position": 1
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PostTokenResponse"
                },
                "example": {
                  "accessToken": "eyEMs...",
                  "tenantId": "00000000-0000-0000-0000-000000000000",
                  "expiresAt": "2026-09-23T11:15:59.2715881Z"
                }
              }
            }
          }
        }
      }
    },
    "/groups": {
      "post": {
        "tags": [
          "Groups"
        ],
        "summary": "Create",
        "description": "Creates a new group based on the selected template.",
        "operationId": "CreateGroup",
        "parameters": [
          {
            "name": "force",
            "in": "query",
            "description": "Optional: If a group with this address already exists, append a random number to the provided mail nickname and continue creation. Defaults to `false`.",
            "schema": {
              "type": "boolean",
              "nullable": true
            }
          },
          {
            "name": "bypassApproval",
            "in": "query",
            "description": "Optional: Bypass approval requirements for this request. Defaults to `false`.",
            "schema": {
              "type": "boolean",
              "nullable": true
            }
          }
        ],
        "requestBody": {
          "x-name": "PostGroupsRequest",
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PostGroupsRequest"
              }
            }
          },
          "required": true,
          "x-position": 1
        },
        "responses": {
          "202": {
            "description": "Accepted",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PostGroupsResponse"
                }
              }
            }
          },
          "400": {
            "description": "Returned as `application/json` when the request is invalid, such as when identities cannot be resolved or a library extension cannot be applied.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Returned as `application/problem+json` when a referenced resource cannot be found, such as the organisation, template, parent group, or a specified user.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Returned as `application/json` when the requested mail nickname already exists and `force=false`.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Returned as `application/problem+json` when an unexpected server error occurs.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "security": [
          {
            "JWTBearerAuth": []
          }
        ]
      }
    },
    "/groups/{groupId}/renew": {
      "patch": {
        "tags": [
          "Groups"
        ],
        "summary": "Renew",
        "description": "Update the group renewal date to the current UTC Date and Time and remove the `Renewal required` status if set.",
        "operationId": "GroupRenew",
        "parameters": [
          {
            "name": "groupId",
            "in": "path",
            "required": true,
            "description": "The object ID of the Group/Team given by Microsoft Entra",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "x-name": "PostGroupRenewRequest",
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PostGroupRenewRequest"
              }
            }
          },
          "required": true,
          "x-position": 1
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PostGroupRenewResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "description": "Server Error"
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "security": [
          {
            "JWTBearerAuth": []
          }
        ]
      }
    },
    "/groups/creationRequests": {
      "post": {
        "tags": [
          "Groups"
        ],
        "summary": "Create request",
        "description": "Create a request for group creation.",
        "operationId": "CreateGroupRequest",
        "requestBody": {
          "x-name": "PostGroupCreationRequestRequest",
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PostGroupCreationRequestRequest"
              }
            }
          },
          "required": true,
          "x-position": 1
        },
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "A group with this mailnickname already exists."
          },
          "500": {
            "description": "Server Error"
          }
        },
        "security": [
          {
            "JWTBearerAuth": []
          }
        ]
      },
      "get": {
        "tags": [
          "Groups"
        ],
        "summary": "List creation requests",
        "description": "Returns a list with group creation requests",
        "operationId": "GetGroupCreationRequests",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetGroupCreationRequestsResponse"
                }
              }
            }
          },
          "500": {
            "description": "Server Error"
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "security": [
          {
            "JWTBearerAuth": []
          }
        ]
      }
    },
    "/groups/{groupId}/archive": {
      "post": {
        "tags": [
          "Groups"
        ],
        "summary": "Archive",
        "description": "Reads the templates archive configuration and applies it to the group",
        "operationId": "ArchiveGroup",
        "parameters": [
          {
            "name": "groupId",
            "in": "path",
            "required": true,
            "description": "The groups object id or mailnickname",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          },
          "404": {
            "description": "Not Found"
          },
          "422": {
            "description": ""
          },
          "500": {
            "description": "Server Error"
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "security": [
          {
            "JWTBearerAuth": []
          }
        ]
      }
    },
    "/groups/{groupId}/name": {
      "patch": {
        "tags": [
          "Groups"
        ],
        "summary": "Update group name",
        "description": "Updates the name of a Microsoft 365 group and it's corresponding SharePoint site.",
        "operationId": "UpdateGroupName",
        "parameters": [
          {
            "name": "groupId",
            "in": "path",
            "required": true,
            "description": "The object ID of the Group/Team given by Microsoft Entra",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "x-name": "PatchUpdateGroupNameRequest",
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PatchUpdateGroupNameRequest"
              }
            }
          },
          "required": true,
          "x-position": 1
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "description": "Server Error"
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "security": [
          {
            "JWTBearerAuth": []
          }
        ]
      }
    },
    "/guests/{guestId}": {
      "patch": {
        "tags": [
          "Guests"
        ],
        "summary": "Update a guest",
        "description": "Updates a guest's properties, such as the primary contact (formerly Responsible), template, name, and company. Removing properties is not currently supported.",
        "operationId": "UpdateGuest",
        "parameters": [
          {
            "name": "guestId",
            "in": "path",
            "required": true,
            "description": "The guest's object ID or case-insensitive email address (resolved on a best-effort basis)",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "x-name": "PatchGuestRequest",
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PatchGuestRequest"
              }
            }
          },
          "required": true,
          "x-position": 1
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "429": {
            "description": "Too Many Requests"
          },
          "500": {
            "description": "Server Error"
          }
        },
        "security": [
          {
            "JWTBearerAuth": []
          }
        ]
      }
    },
    "/groups/creationRequests/{requestId}": {
      "patch": {
        "tags": [
          "Groups"
        ],
        "summary": "Patch creation request",
        "description": "Approve or reject a creation request.",
        "operationId": "UpdateGroupCreationRequest",
        "parameters": [
          {
            "name": "requestId",
            "in": "path",
            "required": true,
            "description": "The id of the creation requset. Use the `GET` endpoint to list all requests",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "x-name": "PatchGroupCreationRequestsRequest",
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PatchGroupCreationRequestsRequest"
              }
            }
          },
          "required": true,
          "x-position": 1
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": ""
          },
          "500": {
            "description": "Server Error"
          }
        },
        "security": [
          {
            "JWTBearerAuth": []
          }
        ]
      },
      "get": {
        "tags": [
          "Groups"
        ],
        "summary": "Get creation request",
        "description": "Returns a single group creation request",
        "operationId": "GetGroupCreationRequest",
        "parameters": [
          {
            "name": "requestId",
            "in": "path",
            "required": true,
            "description": "The id of the request.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GroupCreationRequest"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "description": "Server Error"
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "security": [
          {
            "JWTBearerAuth": []
          }
        ]
      }
    },
    "/groups/{groupId}": {
      "patch": {
        "tags": [
          "Groups"
        ],
        "summary": "Update",
        "description": "Allows to update group properties like the responsible person, deputy, add members and owners to the group",
        "operationId": "UpdateGroup",
        "parameters": [
          {
            "name": "groupId",
            "in": "path",
            "required": true,
            "description": "The object ID of the Group/Team given by Microsoft Entra",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "x-name": "PatchGroupRequest",
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PatchGroupRequest"
              }
            }
          },
          "required": true,
          "x-position": 1
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "description": "Server Error"
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "security": [
          {
            "JWTBearerAuth": []
          }
        ]
      },
      "get": {
        "tags": [
          "Groups"
        ],
        "summary": "Get",
        "description": "Gets a group with extended Seamless information.",
        "operationId": "GetGroup",
        "parameters": [
          {
            "name": "groupId",
            "in": "path",
            "required": true,
            "description": "The groups Id or mailnickname",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "expand",
            "in": "query",
            "description": "Use 'expand=children' to get a list of child workspaces",
            "schema": {
              "type": "string",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetGroupResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "description": "Server Error"
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "security": [
          {
            "JWTBearerAuth": []
          }
        ]
      }
    },
    "/groups/{groupId}/owners": {
      "get": {
        "tags": [
          "Groups"
        ],
        "summary": "List owners",
        "description": "Get a list of the group's owners",
        "operationId": "GetGroupOwners",
        "parameters": [
          {
            "name": "groupId",
            "in": "path",
            "required": true,
            "description": "The groups object id or mailnickname",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetOwnersResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "description": "Server Error"
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "security": [
          {
            "JWTBearerAuth": []
          }
        ]
      }
    },
    "/organisations": {
      "get": {
        "tags": [
          "Organisations"
        ],
        "summary": "List organisations",
        "description": "Retrieves the list of all available Seamless organisations.",
        "operationId": "GetOrganisations",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetOrganisationsResponse"
                }
              }
            }
          },
          "500": {
            "description": "Server Error"
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "security": [
          {
            "JWTBearerAuth": []
          }
        ]
      }
    },
    "/organisations/{idOrIdentifier}": {
      "get": {
        "tags": [
          "Organisations"
        ],
        "summary": "Get organisation",
        "description": "Retrieves a specific Seamless organisation",
        "operationId": "GetOrganisation",
        "parameters": [
          {
            "name": "idOrIdentifier",
            "in": "path",
            "required": true,
            "description": "Organisation id or slug",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetOrganisationResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "description": "Server Error"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "JWTBearerAuth": []
          }
        ]
      }
    },
    "/groups/{groupId}/members": {
      "get": {
        "tags": [
          "Groups"
        ],
        "summary": "List members",
        "description": "Get a list of the group's members",
        "operationId": "GetGroupMembers",
        "parameters": [
          {
            "name": "groupId",
            "in": "path",
            "required": true,
            "description": "The groups object id or mailnickname",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetMembersResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "description": "Server Error"
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "security": [
          {
            "JWTBearerAuth": []
          }
        ]
      }
    },
    "/groups/{groupId}/owners/{userId}": {
      "delete": {
        "tags": [
          "Groups"
        ],
        "summary": "Remove owner",
        "description": "A group must have at least 1 owner, so the last owner cannot be removed.",
        "operationId": "RemoveGroupOwner",
        "parameters": [
          {
            "name": "groupId",
            "in": "path",
            "required": true,
            "description": "The groups object id or mailnickname",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "userId",
            "in": "path",
            "required": true,
            "description": "The Id of the user",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "description": "Server Error"
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "security": [
          {
            "JWTBearerAuth": []
          }
        ]
      }
    },
    "/groups/{groupId}/members/{userId}": {
      "delete": {
        "tags": [
          "Groups"
        ],
        "summary": "Remove member",
        "description": "Remove a member from the group",
        "operationId": "RemoveGroupMember",
        "parameters": [
          {
            "name": "groupId",
            "in": "path",
            "required": true,
            "description": "The groups object id or mailnickname",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "userId",
            "in": "path",
            "required": true,
            "description": "The Id of the user",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "description": "Server Error"
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "security": [
          {
            "JWTBearerAuth": []
          }
        ]
      }
    }
  },
  "components": {
    "schemas": {
      "PostTokenResponse": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "accessToken",
          "tenantId",
          "expiresAt"
        ],
        "properties": {
          "accessToken": {
            "type": "string"
          },
          "tenantId": {
            "type": "string",
            "format": "guid"
          },
          "expiresAt": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "PostTokenRequest": {
        "type": "object",
        "example": {
          "tenantId": "00000000-0000-0000-0000-000000000000",
          "keyId": "013cf0b4-95fe-4197-a6ed-0af0e1651ced",
          "secret": "my-secret-value"
        },
        "additionalProperties": false,
        "required": [
          "tenantId",
          "keyId",
          "secret"
        ],
        "properties": {
          "tenantId": {
            "type": "string",
            "description": "Your tenant id. It can be found in Microsoft Entra",
            "format": "guid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "keyId": {
            "type": "string",
            "description": "The id of the API key that was generated in the <a href=\"https://admin.seamlesswork.com\" target=\"_blank\">Admin center</a>",
            "format": "guid",
            "example": "013cf0b4-95fe-4197-a6ed-0af0e1651ced"
          },
          "secret": {
            "type": "string",
            "description": "The secret of the API key that was generated in the <a href=\"https://admin.seamlesswork.com\" target=\"_blank\">Admin center</a>",
            "example": "my-secret-value"
          }
        }
      },
      "PostGroupsResponse": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "mailNickname",
          "waitingForApproval"
        ],
        "properties": {
          "mailNickname": {
            "type": "string",
            "description": "The mail nickname used to create the group. If `force=false`, this matches the requested mail nickname."
          },
          "waitingForApproval": {
            "type": "boolean",
            "description": "`true` if the group requires approval before creation starts."
          }
        }
      },
      "PostGroupsRequest": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "displayName",
          "mailNickname",
          "responsible",
          "organisationIdOrIdentifier",
          "templateIdOrIdentifier"
        ],
        "properties": {
          "displayName": {
            "type": "string",
            "description": "The display name of the group.",
            "minLength": 1,
            "nullable": false
          },
          "description": {
            "type": "string",
            "description": "Optional: A description for the group.",
            "nullable": true
          },
          "mailNickname": {
            "type": "string",
            "description": "The mail nickname for the group. This becomes the local part of the group's email address and the SharePoint site path.",
            "minLength": 1,
            "pattern": "^[a-zA-Z0-9._%+-]+$",
            "nullable": false
          },
          "responsible": {
            "type": "string",
            "description": "The user principal name of the person responsible for this group. This user is added as an owner.",
            "format": "email",
            "minLength": 1,
            "pattern": "^[^@]+@[^@]+$",
            "nullable": false
          },
          "deputy": {
            "type": "string",
            "description": "Optional: The deputy to add alongside the responsible person.",
            "format": "email",
            "pattern": "^[^@]+@[^@]+$",
            "nullable": true
          },
          "organisationIdOrIdentifier": {
            "type": "string",
            "description": "The ID or identifier of the organisation this group belongs to. Check the admin center or the [List organisations](#tag/organisations/get/organisations)/[Get organisation](#tag/organisations/get/organisations) endpoints for available values.",
            "minLength": 1,
            "nullable": false
          },
          "templateIdOrIdentifier": {
            "type": "string",
            "description": "The ID or identifier of the template this group is based on. Check the admin center or the [List organisations](#tag/organisations/get/organisations)/[Get organisation](#tag/organisations/get/organisations) endpoints for available values in the organisation's templates collection.",
            "minLength": 1,
            "nullable": false
          },
          "owners": {
            "type": "array",
            "description": "Optional: Additional owners to add to the group.",
            "format": "email",
            "pattern": "^[^@]+@[^@]+$",
            "nullable": true,
            "items": {
              "type": "string"
            }
          },
          "members": {
            "type": "array",
            "description": "Optional: Additional members to add to the group.",
            "format": "email",
            "pattern": "^[^@]+@[^@]+$",
            "nullable": true,
            "items": {
              "type": "string"
            }
          },
          "parent": {
            "type": "string",
            "description": "Optional: The ID or mail nickname of the parent group.",
            "nullable": true
          },
          "requestedBy": {
            "type": "string",
            "description": "Optional: The user ID of the person requesting group creation. This is especially useful when approval is enabled. If omitted, an empty GUID is used.",
            "nullable": true
          },
          "extend": {
            "description": "Optional: Additive template extensions. Currently supports SharePoint permissions and library permissions.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/GroupTemplateExtensions"
              }
            ]
          }
        }
      },
      "GroupTemplateExtensions": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "sharePointPermissions": {
            "description": "Optional: SharePointPermissions accepts UPNs, email addresses, or GUIDs for users and groups. Entries are resolved and merged with the template permissions.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/SharePointPermissionExtensions"
              }
            ]
          },
          "libraries": {
            "type": "array",
            "description": "Optional: Adds library-specific permissions. Use the identifier to select the library to extend. Members accepts UPNs, email addresses, or GUIDs for users and groups, which are resolved and merged with the selected library's template permissions.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/LibraryExtension"
            }
          }
        }
      },
      "SharePointPermissionExtensions": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "owners": {
            "type": "array",
            "nullable": true,
            "items": {
              "type": "string"
            }
          },
          "members": {
            "type": "array",
            "nullable": true,
            "items": {
              "type": "string"
            }
          },
          "visitors": {
            "type": "array",
            "nullable": true,
            "items": {
              "type": "string"
            }
          }
        }
      },
      "LibraryExtension": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "identifier"
        ],
        "properties": {
          "identifier": {
            "type": "string"
          },
          "members": {
            "type": "array",
            "nullable": true,
            "items": {
              "type": "string"
            }
          }
        }
      },
      "ErrorResponse": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "statusCode",
          "message",
          "errors"
        ],
        "properties": {
          "statusCode": {
            "type": "integer",
            "format": "int32",
            "default": 400
          },
          "message": {
            "type": "string",
            "default": "One or more errors occurred!"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      },
      "ProblemDetails": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "type",
          "title",
          "status",
          "instance",
          "traceId",
          "errors"
        ],
        "properties": {
          "type": {
            "type": "string",
            "default": "https://www.rfc-editor.org/rfc/rfc7231#section-6.5.1"
          },
          "title": {
            "type": "string",
            "default": "One or more validation errors occurred."
          },
          "status": {
            "type": "integer",
            "format": "int32",
            "default": 400
          },
          "instance": {
            "type": "string",
            "default": "/api/route"
          },
          "traceId": {
            "type": "string",
            "default": "0HMPNHL0JHL76:00000001"
          },
          "detail": {
            "type": "string",
            "nullable": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProblemDetails_Error"
            }
          }
        }
      },
      "ProblemDetails_Error": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "name",
          "reason"
        ],
        "properties": {
          "name": {
            "type": "string",
            "default": "Error or field name"
          },
          "reason": {
            "type": "string",
            "default": "Error reason"
          },
          "code": {
            "type": "string",
            "nullable": true
          },
          "severity": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "PostGroupRenewResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/GroupRenewalResponse"
          },
          {
            "type": "object",
            "additionalProperties": false
          }
        ]
      },
      "GroupRenewalResponse": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "renewedAtUtc",
          "statusWasReset"
        ],
        "properties": {
          "renewedAtUtc": {
            "type": "string",
            "format": "date-time"
          },
          "statusWasReset": {
            "type": "boolean"
          }
        }
      },
      "PostGroupRenewRequest": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "renewedBy"
        ],
        "properties": {
          "renewedBy": {
            "type": "string",
            "description": "The user principal name of the person renewing this group. Can be an object id, UPN or mail address."
          }
        }
      },
      "PostGroupCreationRequestRequest": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "displayName",
          "mailNickname",
          "responsible",
          "organisationIdOrIdentifier",
          "templateIdOrIdentifier",
          "reviewers",
          "requestedBy"
        ],
        "properties": {
          "displayName": {
            "type": "string",
            "description": "The display name of the group",
            "minLength": 1,
            "nullable": false
          },
          "description": {
            "type": "string",
            "description": "Optional: Description of the group",
            "nullable": true
          },
          "mailNickname": {
            "type": "string",
            "description": "The mailnickname without the domain",
            "minLength": 1,
            "pattern": "^[a-zA-Z0-9._%+-]+$",
            "nullable": false
          },
          "responsible": {
            "type": "string",
            "description": "The user principal name of the person responsible for this group. Will be made an owner of the new group",
            "format": "email",
            "minLength": 1,
            "pattern": "^[^@]+@[^@]+$",
            "nullable": false
          },
          "deputy": {
            "type": "string",
            "description": "Optional: A deputy that will be added alongside the responsible person",
            "format": "email",
            "pattern": "^[^@]+@[^@]+$",
            "nullable": true
          },
          "organisationIdOrIdentifier": {
            "type": "string",
            "description": "The slug/identifier or id of the organisation to which this group will belong to",
            "minLength": 1,
            "nullable": false
          },
          "templateIdOrIdentifier": {
            "type": "string",
            "description": "The slug/identifier or id of the template to which this group will belong to",
            "minLength": 1,
            "nullable": false
          },
          "owners": {
            "type": "array",
            "description": "Optional: Additional owners that will be added to this group",
            "format": "email",
            "pattern": "^[^@]+@[^@]+$",
            "nullable": true,
            "items": {
              "type": "string"
            }
          },
          "members": {
            "type": "array",
            "description": "Optional: Additional members that will be added to this group",
            "format": "email",
            "pattern": "^[^@]+@[^@]+$",
            "nullable": true,
            "items": {
              "type": "string"
            }
          },
          "parent": {
            "type": "string",
            "description": "Optional: GroupId or MailNickname of the parent Group Id",
            "nullable": true
          },
          "requestedBy": {
            "type": "string",
            "description": "Optional: Let us know who (User ID) wants to create the group. Especially valuable when approval is enabled. In case it's missing we will use an Empty GUID"
          },
          "reviewers": {
            "type": "array",
            "minLength": 1,
            "nullable": false,
            "items": {
              "type": "string"
            }
          },
          "notificationUrl": {
            "type": "string",
            "description": "Optional: An URL where we will send a notification to with the request. If the template has it's own notification set up, this will result in duplicate notifications.",
            "nullable": true
          },
          "notificationSecret": {
            "type": "string",
            "description": "Optional: A secret we will send along with the notification to know it's from us.",
            "nullable": true
          }
        }
      },
      "PatchUpdateGroupNameRequest": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "name"
        ],
        "properties": {
          "name": {
            "type": "string",
            "description": "The name you want your group to be renamed to"
          }
        }
      },
      "PatchGuestRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "primaryContact": {
            "type": "string",
            "description": "Optional: The user principal name or Microsoft Entra object ID of the primary contact",
            "nullable": true
          },
          "template": {
            "type": "string",
            "description": "Optional: The ID or identifier of the template to assign to the guest",
            "nullable": true
          },
          "firstName": {
            "type": "string",
            "description": "Optional: The guest's first name",
            "nullable": true
          },
          "lastName": {
            "type": "string",
            "description": "Optional: The guest's last name",
            "nullable": true
          },
          "company": {
            "type": "string",
            "description": "Optional: The company the guest is associated with",
            "nullable": true
          },
          "jobTitle": {
            "type": "string",
            "description": "Optional: The guest's job title",
            "nullable": true
          },
          "manager": {
            "type": "string",
            "description": "Optional: The user principal name or object ID of the guest's manager",
            "nullable": true
          },
          "department": {
            "type": "string",
            "description": "Optional: The department the guest belongs to",
            "nullable": true
          },
          "employeeId": {
            "type": "string",
            "description": "Optional: The guest's employee ID",
            "nullable": true
          },
          "officeLocation": {
            "type": "string",
            "description": "Optional: The guest's office location",
            "nullable": true
          },
          "streetAddress": {
            "type": "string",
            "description": "Optional: The guest's street address",
            "nullable": true
          },
          "city": {
            "type": "string",
            "description": "Optional: The city of the guest's address",
            "nullable": true
          },
          "country": {
            "type": "string",
            "description": "Optional: The country of the guest's address",
            "nullable": true
          },
          "state": {
            "type": "string",
            "description": "Optional: The state or province of the guest's address",
            "nullable": true
          },
          "postalCode": {
            "type": "string",
            "description": "Optional: The postal code of the guest's address",
            "nullable": true
          }
        }
      },
      "PatchGroupCreationRequestsRequest": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "status",
          "reviewer"
        ],
        "properties": {
          "status": {
            "type": "string",
            "description": "The status the requests should be in. Valid values are `approved` and `rejected`.",
            "minLength": 1,
            "nullable": false
          },
          "reviewer": {
            "type": "string",
            "description": "The user id of the reviewer.",
            "minLength": 1,
            "nullable": false
          },
          "rejectionReason": {
            "type": "string",
            "description": "An optional reason when rejecting the creation. Ignored on acceptance.",
            "nullable": true
          }
        }
      },
      "PatchGroupRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "members": {
            "type": "array",
            "description": "Optional: A list of users to be added as members to the group. This method returns a 400 Bad Request response code when the object is already a member of the group. This method returns a 404 Not Found response code when the object being added doesn't exist.",
            "nullable": true,
            "items": {
              "type": "string"
            }
          },
          "owners": {
            "type": "array",
            "description": "Optional: A list of users to be added as owners to the group. This method returns a 400 Bad Request response code when the object is already a member of the group. This method returns a 404 Not Found response code when the object being added doesn't exist.",
            "nullable": true,
            "items": {
              "type": "string"
            }
          },
          "responsible": {
            "type": "string",
            "description": "Optional: Updates the responsible person to this user and adds it as an owner to the group. It does NOT remove any permissions of the previous responsible person",
            "nullable": true
          },
          "deputy": {
            "type": "string",
            "description": "Optional: Updates the deputy to this user and adds it as a member to the group. It does NOT remove any permissions of the previous deputy",
            "nullable": true
          },
          "lifecycle": {
            "type": "string",
            "description": "Optional: Update the lifecycle of a group. Allowed values are `active`, `inactive` or `closed`",
            "nullable": true
          }
        }
      },
      "GetOwnersResponse": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "users"
        ],
        "properties": {
          "users": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Owner"
            }
          }
        }
      },
      "Owner": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "nullable": true
          },
          "displayName": {
            "type": "string",
            "nullable": true
          },
          "mail": {
            "type": "string",
            "nullable": true
          },
          "userPrincipalName": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "GetOrganisationsResponse": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "organisations"
        ],
        "properties": {
          "organisations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GetOrganisationsResponse_Organisation"
            }
          }
        }
      },
      "GetOrganisationsResponse_Organisation": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "id",
          "name",
          "templates"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "identifier": {
            "type": "string",
            "nullable": true
          },
          "groups": {
            "type": "array",
            "nullable": true,
            "items": {
              "type": "string"
            }
          },
          "templates": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GetOrganisationsResponse_Template"
            }
          }
        }
      },
      "GetOrganisationsResponse_Template": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "id",
          "name"
        ],
        "properties": {
          "id": {
            "type": "string",
            "format": "guid"
          },
          "name": {
            "type": "string"
          },
          "identifier": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "GetOrganisationResponse": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "id",
          "name",
          "templates"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "identifier": {
            "type": "string",
            "nullable": true
          },
          "groups": {
            "type": "array",
            "nullable": true,
            "items": {
              "type": "string"
            }
          },
          "templates": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GetOrganisationResponse_Template"
            }
          }
        }
      },
      "GetOrganisationResponse_Template": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "id",
          "name"
        ],
        "properties": {
          "id": {
            "type": "string",
            "format": "guid"
          },
          "name": {
            "type": "string"
          },
          "identifier": {
            "type": "string",
            "nullable": true
          },
          "mailNicknamePattern": {
            "type": "string",
            "nullable": true
          },
          "displayNamePattern": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "GetOrganisationRequest": {
        "type": "object",
        "additionalProperties": false
      },
      "GetMembersResponse": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "users"
        ],
        "properties": {
          "users": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Member"
            }
          }
        }
      },
      "Member": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "nullable": true
          },
          "displayName": {
            "type": "string",
            "nullable": true
          },
          "mail": {
            "type": "string",
            "nullable": true
          },
          "userPrincipalName": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "GetGroupCreationRequestsResponse": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "requests"
        ],
        "properties": {
          "requests": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GroupCreationRequest"
            }
          }
        }
      },
      "GroupCreationRequest": {
        "allOf": [
          {
            "$ref": "#/components/schemas/RequestBase"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "group"
            ],
            "properties": {
              "group": {
                "$ref": "#/components/schemas/NewTeamsTeam"
              }
            }
          }
        ]
      },
      "NewTeamsTeam": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "tenantName",
          "displayName",
          "mailNickname",
          "responsible",
          "organisationalUnit",
          "template",
          "visibility",
          "hideGroupInOutlook",
          "welcomeEmailDisabled",
          "enableGroupLifecyclePolicy",
          "enableBlockDownload",
          "seamlessProvisioning",
          "memberSettings",
          "messagingSettings",
          "guestSettings",
          "channels",
          "createTeam",
          "libraries"
        ],
        "properties": {
          "tenantId": {
            "type": "string",
            "format": "guid",
            "nullable": true
          },
          "tenantName": {
            "type": "string"
          },
          "displayName": {
            "type": "string"
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "iconUrl": {
            "type": "string",
            "format": "uri",
            "nullable": true
          },
          "mailNickname": {
            "type": "string"
          },
          "owners": {
            "type": "array",
            "nullable": true,
            "items": {
              "type": "string",
              "format": "guid"
            }
          },
          "members": {
            "type": "array",
            "nullable": true,
            "items": {
              "type": "string",
              "format": "guid"
            }
          },
          "templateFolderPath": {
            "type": "string",
            "nullable": true
          },
          "siteAssetsNotebookTemplatePath": {
            "type": "string",
            "nullable": true
          },
          "allowToAddGuests": {
            "type": "boolean",
            "nullable": true
          },
          "responsible": {
            "type": "string",
            "format": "guid"
          },
          "deputy": {
            "type": "string",
            "format": "guid",
            "nullable": true
          },
          "organisationalUnit": {
            "type": "string",
            "format": "guid"
          },
          "template": {
            "type": "string",
            "format": "guid"
          },
          "visibility": {
            "type": "string"
          },
          "hideGroupInOutlook": {
            "type": "boolean"
          },
          "welcomeEmailDisabled": {
            "type": "boolean"
          },
          "enableGroupLifecyclePolicy": {
            "type": "boolean"
          },
          "enableBlockDownload": {
            "type": "boolean"
          },
          "additionalSharePointPermissions": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/AdditionalSharePointPermissions"
              }
            ]
          },
          "seamlessProvisioning": {
            "type": "boolean"
          },
          "memberSettings": {
            "$ref": "#/components/schemas/MemberSettings"
          },
          "messagingSettings": {
            "$ref": "#/components/schemas/MessagingSettings"
          },
          "guestSettings": {
            "$ref": "#/components/schemas/GuestSettings"
          },
          "channels": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Channel"
            }
          },
          "createTeam": {
            "type": "boolean"
          },
          "parentId": {
            "type": "string",
            "format": "guid",
            "nullable": true
          },
          "libraries": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Library"
            }
          },
          "notify": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/WebhookSetting"
              }
            ]
          }
        }
      },
      "AdditionalSharePointPermissions": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "owners": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/Identity"
            }
          },
          "members": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/Identity"
            }
          },
          "visitors": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/Identity"
            }
          }
        }
      },
      "Identity": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "id",
          "type"
        ],
        "properties": {
          "id": {
            "type": "string",
            "format": "guid"
          },
          "label": {
            "type": "string",
            "nullable": true
          },
          "type": {
            "$ref": "#/components/schemas/IdentityType"
          }
        }
      },
      "IdentityType": {
        "type": "integer",
        "description": "",
        "x-enumNames": [
          "User",
          "Unifiedgroup",
          "Securitygroup"
        ],
        "enum": [
          0,
          1,
          2
        ]
      },
      "MemberSettings": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "allowCreatePrivateChannels",
          "allowCreateUpdateChannels",
          "allowDeleteChannels",
          "allowAddRemoveApps",
          "allowCreateUpdateRemoveTabs",
          "allowCreateUpdateRemoveConnectors"
        ],
        "properties": {
          "allowCreatePrivateChannels": {
            "type": "boolean"
          },
          "allowCreateUpdateChannels": {
            "type": "boolean"
          },
          "allowDeleteChannels": {
            "type": "boolean"
          },
          "allowAddRemoveApps": {
            "type": "boolean"
          },
          "allowCreateUpdateRemoveTabs": {
            "type": "boolean"
          },
          "allowCreateUpdateRemoveConnectors": {
            "type": "boolean"
          }
        }
      },
      "MessagingSettings": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "allowUserEditMessages",
          "allowUserDeleteMessages",
          "allowOwnerDeleteMessages"
        ],
        "properties": {
          "allowUserEditMessages": {
            "type": "boolean"
          },
          "allowUserDeleteMessages": {
            "type": "boolean"
          },
          "allowOwnerDeleteMessages": {
            "type": "boolean"
          }
        }
      },
      "GuestSettings": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "allowCreateUpdateChannels",
          "allowDeleteChannels"
        ],
        "properties": {
          "allowCreateUpdateChannels": {
            "type": "boolean"
          },
          "allowDeleteChannels": {
            "type": "boolean"
          }
        }
      },
      "Channel": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "displayName",
          "membershipType"
        ],
        "properties": {
          "displayName": {
            "type": "string"
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "templateFolderPath": {
            "type": "string",
            "nullable": true
          },
          "membershipType": {
            "type": "string"
          },
          "owners": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/Identity"
            }
          },
          "members": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/Identity"
            }
          }
        }
      },
      "Library": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "displayName",
          "breakRoleInheritance",
          "keepMembers",
          "keepVisitors"
        ],
        "properties": {
          "displayName": {
            "type": "string"
          },
          "slug": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "templateFolderPath": {
            "type": "string",
            "nullable": true
          },
          "breakRoleInheritance": {
            "type": "boolean"
          },
          "keepMembers": {
            "type": "boolean"
          },
          "keepVisitors": {
            "type": "boolean"
          },
          "usersAndGroups": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/Identity"
            }
          }
        }
      },
      "WebhookSetting": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "targetUrl": {
            "type": "string",
            "nullable": true
          },
          "secret": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "RequestBase": {
        "type": "object",
        "x-abstract": true,
        "additionalProperties": false,
        "required": [
          "id",
          "tenantId",
          "status",
          "requestedAt",
          "requestedBy",
          "reviewers"
        ],
        "properties": {
          "id": {
            "type": "string",
            "format": "guid"
          },
          "tenantId": {
            "type": "string",
            "format": "guid"
          },
          "status": {
            "$ref": "#/components/schemas/RequestStatus"
          },
          "requestedAt": {
            "type": "string",
            "format": "date-time"
          },
          "requestedBy": {
            "type": "string",
            "format": "guid"
          },
          "reviewers": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "guid"
            }
          },
          "reviewedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "reviewedBy": {
            "type": "string",
            "format": "guid",
            "nullable": true
          },
          "rejectionReason": {
            "type": "string",
            "nullable": true
          },
          "ttl": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          }
        }
      },
      "RequestStatus": {
        "type": "string",
        "description": "",
        "x-enumNames": [
          "Requested",
          "Pending",
          "Approved",
          "Rejected",
          "Processed"
        ],
        "enum": [
          "Requested",
          "Pending",
          "Approved",
          "Rejected",
          "Processed"
        ]
      },
      "GetGroupResponse": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "id",
          "displayName",
          "mail",
          "mailNickname"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "displayName": {
            "type": "string"
          },
          "mail": {
            "type": "string"
          },
          "mailNickname": {
            "type": "string"
          },
          "organisation": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/TemplateBaseData"
              }
            ]
          },
          "template": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/TemplateBaseData"
              }
            ]
          },
          "responsible": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/UserBase"
              }
            ]
          },
          "deputy": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/UserBase"
              }
            ]
          },
          "parentGroupId": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/GroupStatusFlag"
              }
            ]
          },
          "lifecycle": {
            "type": "string",
            "nullable": true
          },
          "children": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/Child"
            }
          }
        }
      },
      "TemplateBaseData": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "id",
          "name"
        ],
        "properties": {
          "id": {
            "type": "string",
            "format": "guid"
          },
          "name": {
            "type": "string"
          },
          "slug": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "UserBase": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "id"
        ],
        "properties": {
          "id": {
            "type": "string",
            "format": "guid"
          },
          "displayName": {
            "type": "string",
            "nullable": true
          },
          "mail": {
            "type": "string",
            "nullable": true
          },
          "firstname": {
            "type": "string",
            "nullable": true
          },
          "lastname": {
            "type": "string",
            "nullable": true
          },
          "userPrincipalName": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "GroupStatusFlag": {
        "type": "integer",
        "description": "",
        "x-enumFlags": true,
        "x-enumNames": [
          "None",
          "MinGroupOwners",
          "RenewalRequired",
          "SensitivityLabelChange",
          "VisibilityChange",
          "GuestsAllowedChange"
        ],
        "enum": [
          0,
          1,
          2,
          4,
          8,
          16
        ]
      },
      "Child": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "id"
        ],
        "properties": {
          "id": {
            "type": "string",
            "format": "guid"
          },
          "displayName": {
            "type": "string",
            "nullable": true
          },
          "mail": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/GroupStatusFlag"
              }
            ]
          },
          "lifecycle": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "GetGroupRequest": {
        "type": "object",
        "additionalProperties": false
      }
    },
    "securitySchemes": {
      "JWTBearerAuth": {
        "type": "http",
        "description": "Enter a JWT token to authorize the requests...",
        "scheme": "Bearer",
        "bearerFormat": "JWT"
      }
    }
  },
  "tags": [
    {
      "name": "Authentication",
      "description": "All other endpoints require a <b>bearer</b> token. Use the <a href=\"https://admin.seamlesswork.com\" target=\"_blank\">Admin center</a> to get an Id and Secret to exchange it for a bearer token."
    },
    {
      "name": "Organisations",
      "description": "Get organisation information"
    },
    {
      "name": "Provisioning",
      "description": "Create and update Groups"
    }
  ]
}