Location Service API 2.0

Content type
OpenAPI specifications
Product line
ClearID
Version
2.0
Language
English
Applies to
Genetec ClearID

Location Service API 2.0

Use this API to manage locations.

{
  "openapi": "3.0.1",
  "info": {
    "title": "Location Service API",
    "description": "Use this API to manage locations.",
    "termsOfService": "https://www.genetec.com/legal/cloudtos",
    "license": {
      "name": "Source Code License Agreement",
      "url": "https://www.genetec.com/legal/eula"
    },
    "version": "2"
  },
  "paths": {
    "/api/v2/accounts/{accountId}/locations/{locationId}/accesses": {
      "get": {
        "tags": [
          "Access"
        ],
        "summary": "Get accesses (Identities and Teams) by their accountId and locationId.",
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "description": "The account in which the location belongs in.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "locationId",
            "in": "path",
            "description": "The location id to find.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Genetec.SaaS.Iams.LocationService.Business.Models.Accesses.V1.AccessesModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Genetec.SaaS.Iams.LocationService.Business.Models.Accesses.V1.AccessesModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Genetec.SaaS.Iams.LocationService.Business.Models.Accesses.V1.AccessesModel"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": [
              "access"
            ]
          }
        ]
      },
      "delete": {
        "tags": [
          "Access"
        ],
        "summary": "Remove accesses from a location",
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "description": "The account in which the location belongs in.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "locationId",
            "in": "path",
            "description": "The location id.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Accesses to revoke from the location. WARNING: Time part is ignored for the DateTimes specified in this model.",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/Genetec.SaaS.Iams.LocationService.Business.Models.Accesses.V1.RevokeAccessesModel"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Genetec.SaaS.Iams.LocationService.Business.Models.Accesses.V1.RevokeAccessesModel"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Genetec.SaaS.Iams.LocationService.Business.Models.Accesses.V1.RevokeAccessesModel"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Genetec.SaaS.Iams.LocationService.Business.Models.Accesses.V1.RevokeAccessesModel"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success"
          }
        },
        "security": [
          {
            "oauth2": [
              "access"
            ]
          }
        ]
      },
      "patch": {
        "tags": [
          "Access"
        ],
        "summary": "Grant access to a location",
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "description": "The account in which the location belongs in.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "locationId",
            "in": "path",
            "description": "The location id.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Accesses to add to the location. WARNING: Time part is ignored for the DateTimes specified in this model.",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/Genetec.SaaS.Iams.LocationService.Business.Models.Accesses.V2.GrantAccessesModel"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Genetec.SaaS.Iams.LocationService.Business.Models.Accesses.V2.GrantAccessesModel"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Genetec.SaaS.Iams.LocationService.Business.Models.Accesses.V2.GrantAccessesModel"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Genetec.SaaS.Iams.LocationService.Business.Models.Accesses.V2.GrantAccessesModel"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Genetec.SaaS.Iams.LocationService.Business.Models.Accesses.V1.AccessesModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Genetec.SaaS.Iams.LocationService.Business.Models.Accesses.V1.AccessesModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Genetec.SaaS.Iams.LocationService.Business.Models.Accesses.V1.AccessesModel"
                }
              }
            }
          },
          "202": {
            "description": "The accesses model is returned. The accesses are set in Security Center asynchronously."
          }
        },
        "deprecated": true,
        "security": [
          {
            "oauth2": [
              "access"
            ]
          }
        ]
      }
    },
    "/api/v2/accounts/{accountId}/locations/{locationId}/accesses/visitors": {
      "get": {
        "tags": [
          "Access"
        ],
        "summary": "Get visitor accesses by their accountId and locationId.",
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "description": "The account in which the location belongs in.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "locationId",
            "in": "path",
            "description": "The location id to find.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Genetec.SaaS.Iams.LocationService.Business.Models.Accesses.V1.VisitorAccessesModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Genetec.SaaS.Iams.LocationService.Business.Models.Accesses.V1.VisitorAccessesModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Genetec.SaaS.Iams.LocationService.Business.Models.Accesses.V1.VisitorAccessesModel"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": [
              "access"
            ]
          }
        ]
      }
    },
    "/api/v2/accounts/{accountId}/locations/{locationId}/accesses/ids": {
      "delete": {
        "tags": [
          "Access"
        ],
        "summary": "Remove accesses from a location",
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "description": "The account in which the location belongs in.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "locationId",
            "in": "path",
            "description": "The location id.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Accesses to revoke from the location. WARNING: Time part is ignored for the DateTimes specified in this model.",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/Genetec.SaaS.Iams.LocationService.Business.Models.Accesses.V1.RevokeAccessIdsModel"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Genetec.SaaS.Iams.LocationService.Business.Models.Accesses.V1.RevokeAccessIdsModel"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Genetec.SaaS.Iams.LocationService.Business.Models.Accesses.V1.RevokeAccessIdsModel"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Genetec.SaaS.Iams.LocationService.Business.Models.Accesses.V1.RevokeAccessIdsModel"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success"
          }
        },
        "security": [
          {
            "oauth2": [
              "access"
            ]
          }
        ]
      }
    },
    "/api/v2/accounts/{accountId}/locations/{locationId}/accesses/teams": {
      "delete": {
        "tags": [
          "Access"
        ],
        "summary": "Remove team accesses from a location",
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "description": "The account in which the location belongs in.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "locationId",
            "in": "path",
            "description": "The location id.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Accesses to revoke from the location. WARNING: Time part is ignored for the DateTimes specified in this model.",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/Genetec.SaaS.Iams.LocationService.Business.Models.Accesses.V1.RevokeTeamAccessesModel"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Genetec.SaaS.Iams.LocationService.Business.Models.Accesses.V1.RevokeTeamAccessesModel"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Genetec.SaaS.Iams.LocationService.Business.Models.Accesses.V1.RevokeTeamAccessesModel"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Genetec.SaaS.Iams.LocationService.Business.Models.Accesses.V1.RevokeTeamAccessesModel"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success"
          }
        },
        "security": [
          {
            "oauth2": [
              "access"
            ]
          }
        ]
      },
      "patch": {
        "tags": [
          "Access"
        ],
        "summary": "Grant team accesses to a location",
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "description": "The account in which the location belongs in.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "locationId",
            "in": "path",
            "description": "The location id.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Accesses to add to the location. WARNING: Time part is ignored for the DateTimes specified in this model.",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/Genetec.SaaS.Iams.LocationService.Business.Models.Accesses.V2.GrantTeamAccessesModel"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Genetec.SaaS.Iams.LocationService.Business.Models.Accesses.V2.GrantTeamAccessesModel"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Genetec.SaaS.Iams.LocationService.Business.Models.Accesses.V2.GrantTeamAccessesModel"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Genetec.SaaS.Iams.LocationService.Business.Models.Accesses.V2.GrantTeamAccessesModel"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Genetec.SaaS.Iams.LocationService.Business.Models.Accesses.V1.AccessesModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Genetec.SaaS.Iams.LocationService.Business.Models.Accesses.V1.AccessesModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Genetec.SaaS.Iams.LocationService.Business.Models.Accesses.V1.AccessesModel"
                }
              }
            }
          },
          "202": {
            "description": "The accesses model is returned. The accesses are set in Security Center asynchronously."
          }
        },
        "security": [
          {
            "oauth2": [
              "access"
            ]
          }
        ]
      }
    },
    "/api/v2/accounts/{accountId}/locations/{locationId}/accesses/teams/ids": {
      "delete": {
        "tags": [
          "Access"
        ],
        "summary": "Remove team accesses from a location",
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "description": "The account in which the location belongs in.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "locationId",
            "in": "path",
            "description": "The location id.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Accesses to revoke from the location. WARNING: Time part is ignored for the DateTimes specified in this model.",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/Genetec.SaaS.Iams.LocationService.Business.Models.Accesses.V1.RevokeTeamAccessIdsModel"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Genetec.SaaS.Iams.LocationService.Business.Models.Accesses.V1.RevokeTeamAccessIdsModel"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Genetec.SaaS.Iams.LocationService.Business.Models.Accesses.V1.RevokeTeamAccessIdsModel"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Genetec.SaaS.Iams.LocationService.Business.Models.Accesses.V1.RevokeTeamAccessIdsModel"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success"
          }
        },
        "security": [
          {
            "oauth2": [
              "access"
            ]
          }
        ]
      }
    },
    "/api/v2/accounts/{accountId}/locations": {
      "post": {
        "tags": [
          "Locations"
        ],
        "summary": "Create a new location in an account.",
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "description": "The account in which the location belongs in.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Information of the location to create.",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/Genetec.SaaS.Iams.LocationService.Business.Models.Locations.CreateLocationModel"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Genetec.SaaS.Iams.LocationService.Business.Models.Locations.CreateLocationModel"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Genetec.SaaS.Iams.LocationService.Business.Models.Locations.CreateLocationModel"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Genetec.SaaS.Iams.LocationService.Business.Models.Locations.CreateLocationModel"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success"
          },
          "201": {
            "description": "The location model is created."
          }
        },
        "security": [
          {
            "oauth2": [
              "access"
            ]
          }
        ]
      },
      "get": {
        "tags": [
          "Locations"
        ],
        "summary": "List locations by its accountId",
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "description": "The account in which locations belongs in.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Query",
            "in": "query",
            "description": "Search query for documents",
            "schema": {
              "maxLength": 255,
              "minLength": 1,
              "type": "string"
            }
          },
          {
            "name": "Skip",
            "in": "query",
            "description": "Page index.",
            "schema": {
              "maximum": 100000,
              "minimum": 0,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "Take",
            "in": "query",
            "description": "Page size.",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "SiteId",
            "in": "query",
            "description": "Site Id of the location.",
            "schema": {
              "maxLength": 255,
              "minLength": 0,
              "type": "string"
            }
          },
          {
            "name": "Visibility",
            "in": "query",
            "description": "Visibility. Possible values: 'Private', 'Public' or can be empty.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "OwnerIds",
            "in": "query",
            "description": "List of owner ids to filter on.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "OrderByColumn",
            "in": "query",
            "description": "The property name to order the results.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "OrderBy",
            "in": "query",
            "description": "Order the result ascending or descending",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "IncludeOnlyEditable",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "include",
            "in": "query",
            "description": "Fields to add. IsDeleted, CreationDateUtc",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The location model is returned.",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Genetec.SaaS.Iams.LocationService.Business.Models.Locations.SearchLocationModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Genetec.SaaS.Iams.LocationService.Business.Models.Locations.SearchLocationModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Genetec.SaaS.Iams.LocationService.Business.Models.Locations.SearchLocationModel"
                }
              }
            }
          },
          "404": {
            "description": "The location is not found."
          }
        },
        "security": [
          {
            "oauth2": [
              "access"
            ]
          }
        ]
      }
    },
    "/api/v2/accounts/{accountId}/locations/{locationId}": {
      "get": {
        "tags": [
          "Locations"
        ],
        "summary": "Get a location by its accountId and locationId",
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "description": "The account in which the location belongs in.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "locationId",
            "in": "path",
            "description": "The location id to find.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "include",
            "in": "query",
            "description": "Fields to add. DesiredState, UserPermissions, CommitOrdinal, VisitConfigurations",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The location model is returned.",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Genetec.SaaS.Iams.LocationService.Business.Models.Locations.LocationModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Genetec.SaaS.Iams.LocationService.Business.Models.Locations.LocationModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Genetec.SaaS.Iams.LocationService.Business.Models.Locations.LocationModel"
                }
              }
            }
          },
          "404": {
            "description": "The location is not found."
          }
        },
        "security": [
          {
            "oauth2": [
              "access"
            ]
          }
        ]
      },
      "patch": {
        "tags": [
          "Locations"
        ],
        "summary": "Partially update a location in an account.",
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "description": "The account in which the location belongs in.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "locationId",
            "in": "path",
            "description": "The id of the location to patch.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "include",
            "in": "query",
            "description": "Fields to add",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        ],
        "requestBody": {
          "description": "Information of the location to patch.",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/Genetec.SaaS.Iams.LocationService.Business.Models.Locations.PatchLocationModel"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Genetec.SaaS.Iams.LocationService.Business.Models.Locations.PatchLocationModel"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Genetec.SaaS.Iams.LocationService.Business.Models.Locations.PatchLocationModel"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Genetec.SaaS.Iams.LocationService.Business.Models.Locations.PatchLocationModel"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The location info model is returned.",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Genetec.SaaS.Iams.LocationService.Business.Models.Locations.LocationModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Genetec.SaaS.Iams.LocationService.Business.Models.Locations.LocationModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Genetec.SaaS.Iams.LocationService.Business.Models.Locations.LocationModel"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": [
              "access"
            ]
          }
        ]
      },
      "put": {
        "tags": [
          "Locations"
        ],
        "summary": "Update a location in an account.",
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "description": "The account in which the location belongs in.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "locationId",
            "in": "path",
            "description": "The id of the location to update.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "include",
            "in": "query",
            "description": "Fields to add",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        ],
        "requestBody": {
          "description": "Information of the location to update.",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/Genetec.SaaS.Iams.LocationService.Business.Models.Locations.UpdateLocationModel"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Genetec.SaaS.Iams.LocationService.Business.Models.Locations.UpdateLocationModel"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Genetec.SaaS.Iams.LocationService.Business.Models.Locations.UpdateLocationModel"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Genetec.SaaS.Iams.LocationService.Business.Models.Locations.UpdateLocationModel"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The location info model is returned."
          }
        },
        "security": [
          {
            "oauth2": [
              "access"
            ]
          }
        ]
      },
      "delete": {
        "tags": [
          "Locations"
        ],
        "summary": "Delete a location in an account.",
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "description": "The account in which the location belongs in.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "locationId",
            "in": "path",
            "description": "The id of the location to update.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          },
          "204": {
            "description": "The location is deleted."
          }
        },
        "security": [
          {
            "oauth2": [
              "access"
            ]
          }
        ]
      }
    },
    "/api/v2/accounts/{accountId}/locations/{locationId}/info": {
      "get": {
        "tags": [
          "Locations"
        ],
        "summary": "Get a location's public information",
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "description": "The account in which the location belongs in.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "locationId",
            "in": "path",
            "description": "The location id to find.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The location information model is returned.",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Genetec.SaaS.Iams.LocationService.Business.Models.Locations.LocationInfoModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Genetec.SaaS.Iams.LocationService.Business.Models.Locations.LocationInfoModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Genetec.SaaS.Iams.LocationService.Business.Models.Locations.LocationInfoModel"
                }
              }
            }
          },
          "404": {
            "description": "The location is not found."
          }
        },
        "security": [
          {
            "oauth2": [
              "access"
            ]
          }
        ]
      }
    },
    "/api/v2/accounts/{accountId}/locations/{locationId}/Synchronize": {
      "post": {
        "tags": [
          "Locations"
        ],
        "summary": "Launch a synchronization for a location.",
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "description": "The account in which the location belongs in.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "locationId",
            "in": "path",
            "description": "The location id to find.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          },
          "202": {
            "description": "The location synchronization is started."
          }
        },
        "security": [
          {
            "oauth2": [
              "access"
            ]
          }
        ]
      }
    },
    "/api/v2/accounts/{accountId}/locations/owned": {
      "post": {
        "tags": [
          "Locations"
        ],
        "summary": "Return locations owned by given identities. Delegates are also handled.",
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "description": "The account in which the location belongs in.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "The identities identifiers.",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            },
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The location model is returned.",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Genetec.SaaS.Iams.LocationService.Business.Models.Locations.SearchLocationModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Genetec.SaaS.Iams.LocationService.Business.Models.Locations.SearchLocationModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Genetec.SaaS.Iams.LocationService.Business.Models.Locations.SearchLocationModel"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": [
              "access"
            ]
          }
        ]
      }
    },
    "/api/v2/accounts/{accountId}/locations/{locationId}/schedules": {
      "get": {
        "tags": [
          "Schedules"
        ],
        "summary": "Get a location's schedules.",
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "description": "The account in which the location belongs in.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "locationId",
            "in": "path",
            "description": "The location id to find.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Genetec.SaaS.Iams.LocationService.Business.Models.Schedules.SchedulesListModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Genetec.SaaS.Iams.LocationService.Business.Models.Schedules.SchedulesListModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Genetec.SaaS.Iams.LocationService.Business.Models.Schedules.SchedulesListModel"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": [
              "access"
            ]
          }
        ]
      },
      "delete": {
        "tags": [
          "Schedules"
        ],
        "summary": "Remove schedules from a location",
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "description": "The account in which the location belongs in.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "locationId",
            "in": "path",
            "description": "The location id.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Schedules list to remove from the location.",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/Genetec.SaaS.Iams.LocationService.Business.Models.Schedules.UpdateSchedulesModel"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Genetec.SaaS.Iams.LocationService.Business.Models.Schedules.UpdateSchedulesModel"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Genetec.SaaS.Iams.LocationService.Business.Models.Schedules.UpdateSchedulesModel"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Genetec.SaaS.Iams.LocationService.Business.Models.Schedules.UpdateSchedulesModel"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success"
          }
        },
        "security": [
          {
            "oauth2": [
              "access"
            ]
          }
        ]
      },
      "patch": {
        "tags": [
          "Schedules"
        ],
        "summary": "Add schedules to a location",
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "description": "The account in which the location belongs in.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "locationId",
            "in": "path",
            "description": "The location id.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Schedules list to add to the location.",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/Genetec.SaaS.Iams.LocationService.Business.Models.Schedules.UpdateSchedulesModel"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Genetec.SaaS.Iams.LocationService.Business.Models.Schedules.UpdateSchedulesModel"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Genetec.SaaS.Iams.LocationService.Business.Models.Schedules.UpdateSchedulesModel"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Genetec.SaaS.Iams.LocationService.Business.Models.Schedules.UpdateSchedulesModel"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success"
          }
        },
        "security": [
          {
            "oauth2": [
              "access"
            ]
          }
        ]
      }
    },
    "/api/v2/accounts/{accountId}/locations/{locationId}/visitconfigurations": {
      "put": {
        "tags": [
          "VisitConfigurations"
        ],
        "summary": "Update visit configurations for a location.",
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "description": "The account in which the visit configurations belongs in.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "locationId",
            "in": "path",
            "description": "The location in which the visit configurations belongs to.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Visit configurations",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/Genetec.SaaS.Iams.LocationService.Business.Models.VisitConfigurations.UpdateVisitConfigurationsModel"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Genetec.SaaS.Iams.LocationService.Business.Models.VisitConfigurations.UpdateVisitConfigurationsModel"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Genetec.SaaS.Iams.LocationService.Business.Models.VisitConfigurations.UpdateVisitConfigurationsModel"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Genetec.SaaS.Iams.LocationService.Business.Models.VisitConfigurations.UpdateVisitConfigurationsModel"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Genetec.SaaS.Iams.LocationService.Business.Models.VisitConfigurations.VisitConfigurationsModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Genetec.SaaS.Iams.LocationService.Business.Models.VisitConfigurations.VisitConfigurationsModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Genetec.SaaS.Iams.LocationService.Business.Models.VisitConfigurations.VisitConfigurationsModel"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": [
              "access"
            ]
          }
        ]
      },
      "get": {
        "tags": [
          "VisitConfigurations"
        ],
        "summary": "Get visit configurations by it's accountId and locationId",
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "description": "The account in which the visit configurations belongs in.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "locationId",
            "in": "path",
            "description": "The location in which the visit configurations belongs to.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Genetec.SaaS.Iams.LocationService.Business.Models.VisitConfigurations.VisitConfigurationsModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Genetec.SaaS.Iams.LocationService.Business.Models.VisitConfigurations.VisitConfigurationsModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Genetec.SaaS.Iams.LocationService.Business.Models.VisitConfigurations.VisitConfigurationsModel"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": [
              "access"
            ]
          }
        ]
      }
    }
  },
  "components": {
    "schemas": {
      "Genetec.SaaS.Iams.LocationService.Business.Models.AccessRules.AccessRuleModel": {
        "type": "object",
        "properties": {
          "accountId": {
            "type": "string",
            "nullable": true
          },
          "locationId": {
            "type": "string",
            "nullable": true
          },
          "scheduleId": {
            "type": "string",
            "nullable": true
          },
          "accessRuleId": {
            "type": "string",
            "nullable": true
          },
          "state": {
            "type": "string",
            "nullable": true
          },
          "locationOrdinal": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "accessRuleSyncOrdinal": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "isDeleted": {
            "type": "boolean"
          },
          "version": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "Genetec.SaaS.Iams.LocationService.Business.Models.Accesses.V1.AccessModel": {
        "type": "object",
        "properties": {
          "accessId": {
            "type": "string",
            "nullable": true
          },
          "identityId": {
            "type": "string",
            "nullable": true
          },
          "scheduleId": {
            "type": "string",
            "nullable": true
          },
          "startDateTimeUtc": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "endDateTimeUtc": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "accessRequestId": {
            "type": "string",
            "nullable": true
          },
          "approvedById": {
            "type": "string",
            "nullable": true
          },
          "approverComment": {
            "type": "string",
            "nullable": true
          },
          "approvedDateTimeUtc": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "approverPrincipalType": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Genetec.SaaS.Iams.LocationService.Business.Models.Accesses.V1.AccessesModel": {
        "type": "object",
        "properties": {
          "accessModels": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Genetec.SaaS.Iams.LocationService.Business.Models.Accesses.V1.AccessModel"
            },
            "nullable": true
          },
          "teamAccessModels": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Genetec.SaaS.Iams.LocationService.Business.Models.Accesses.V1.TeamAccessModel"
            },
            "nullable": true
          },
          "ordinal": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Genetec.SaaS.Iams.LocationService.Business.Models.Accesses.V1.RevokeAccessIdModel": {
        "required": [
          "accessId",
          "identityId",
          "scheduleId"
        ],
        "type": "object",
        "properties": {
          "accessId": {
            "maxLength": 100,
            "minLength": 0,
            "type": "string"
          },
          "scheduleId": {
            "maxLength": 36,
            "minLength": 0,
            "type": "string"
          },
          "identityId": {
            "maxLength": 36,
            "minLength": 0,
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "Genetec.SaaS.Iams.LocationService.Business.Models.Accesses.V1.RevokeAccessIdsModel": {
        "required": [
          "revokeAccessModels"
        ],
        "type": "object",
        "properties": {
          "revokeAccessModels": {
            "minItems": 1,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Genetec.SaaS.Iams.LocationService.Business.Models.Accesses.V1.RevokeAccessIdModel"
            }
          },
          "description": {
            "maxLength": 300,
            "minLength": 0,
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Genetec.SaaS.Iams.LocationService.Business.Models.Accesses.V1.RevokeAccessModel": {
        "required": [
          "identityId",
          "scheduleId"
        ],
        "type": "object",
        "properties": {
          "scheduleId": {
            "maxLength": 36,
            "minLength": 0,
            "type": "string"
          },
          "identityId": {
            "maxLength": 36,
            "minLength": 0,
            "type": "string"
          },
          "startDateTimeUtc": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "endDateTimeUtc": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Genetec.SaaS.Iams.LocationService.Business.Models.Accesses.V1.RevokeAccessesModel": {
        "required": [
          "revokeAccessModels"
        ],
        "type": "object",
        "properties": {
          "revokeAccessModels": {
            "minItems": 1,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Genetec.SaaS.Iams.LocationService.Business.Models.Accesses.V1.RevokeAccessModel"
            }
          },
          "description": {
            "maxLength": 300,
            "minLength": 0,
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Genetec.SaaS.Iams.LocationService.Business.Models.Accesses.V1.RevokeTeamAccessIdModel": {
        "required": [
          "accessId",
          "scheduleId",
          "teamId"
        ],
        "type": "object",
        "properties": {
          "accessId": {
            "maxLength": 100,
            "minLength": 0,
            "type": "string"
          },
          "scheduleId": {
            "maxLength": 36,
            "minLength": 0,
            "type": "string"
          },
          "teamId": {
            "maxLength": 36,
            "minLength": 0,
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "Genetec.SaaS.Iams.LocationService.Business.Models.Accesses.V1.RevokeTeamAccessIdsModel": {
        "required": [
          "revokeTeamAccessModels"
        ],
        "type": "object",
        "properties": {
          "revokeTeamAccessModels": {
            "minItems": 1,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Genetec.SaaS.Iams.LocationService.Business.Models.Accesses.V1.RevokeTeamAccessIdModel"
            }
          },
          "description": {
            "maxLength": 300,
            "minLength": 0,
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Genetec.SaaS.Iams.LocationService.Business.Models.Accesses.V1.RevokeTeamAccessModel": {
        "required": [
          "scheduleId",
          "teamId"
        ],
        "type": "object",
        "properties": {
          "scheduleId": {
            "maxLength": 36,
            "minLength": 0,
            "type": "string"
          },
          "teamId": {
            "maxLength": 36,
            "minLength": 0,
            "type": "string"
          },
          "startDateTimeUtc": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "endDateTimeUtc": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Genetec.SaaS.Iams.LocationService.Business.Models.Accesses.V1.RevokeTeamAccessesModel": {
        "required": [
          "revokeTeamAccessModels"
        ],
        "type": "object",
        "properties": {
          "revokeTeamAccessModels": {
            "minItems": 1,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Genetec.SaaS.Iams.LocationService.Business.Models.Accesses.V1.RevokeTeamAccessModel"
            }
          },
          "description": {
            "maxLength": 300,
            "minLength": 0,
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Genetec.SaaS.Iams.LocationService.Business.Models.Accesses.V1.TeamAccessModel": {
        "type": "object",
        "properties": {
          "accessId": {
            "type": "string",
            "nullable": true
          },
          "teamId": {
            "type": "string",
            "nullable": true
          },
          "scheduleId": {
            "type": "string",
            "nullable": true
          },
          "startDateTimeUtc": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "endDateTimeUtc": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "accessRequestId": {
            "type": "string",
            "nullable": true
          },
          "approvedById": {
            "type": "string",
            "nullable": true
          },
          "approverComment": {
            "type": "string",
            "nullable": true
          },
          "approvedDateTimeUtc": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "approverPrincipalType": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Genetec.SaaS.Iams.LocationService.Business.Models.Accesses.V1.VisitorAccessModel": {
        "type": "object",
        "properties": {
          "visitorId": {
            "type": "string",
            "nullable": true
          },
          "scheduleId": {
            "type": "string",
            "nullable": true
          },
          "visitEventId": {
            "type": "string",
            "nullable": true
          },
          "visitRequestId": {
            "type": "string",
            "nullable": true
          },
          "startDateTimeUtc": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "endDateTimeUtc": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Genetec.SaaS.Iams.LocationService.Business.Models.Accesses.V1.VisitorAccessesModel": {
        "type": "object",
        "properties": {
          "visitorAccessModels": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Genetec.SaaS.Iams.LocationService.Business.Models.Accesses.V1.VisitorAccessModel"
            },
            "nullable": true
          },
          "ordinal": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Genetec.SaaS.Iams.LocationService.Business.Models.Accesses.V2.GrantAccessesModel": {
        "required": [
          "description",
          "identityIds",
          "scheduleIds"
        ],
        "type": "object",
        "properties": {
          "scheduleIds": {
            "maxItems": 10,
            "minItems": 1,
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "identityIds": {
            "minItems": 1,
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "startDateTimeUtc": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "endDateTimeUtc": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "description": {
            "maxLength": 300,
            "minLength": 0,
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "Genetec.SaaS.Iams.LocationService.Business.Models.Accesses.V2.GrantTeamAccessesModel": {
        "required": [
          "description",
          "scheduleIds",
          "teamIds"
        ],
        "type": "object",
        "properties": {
          "scheduleIds": {
            "maxItems": 10,
            "minItems": 1,
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "teamIds": {
            "minItems": 1,
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "startDateTimeUtc": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "endDateTimeUtc": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "description": {
            "maxLength": 300,
            "minLength": 0,
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "Genetec.SaaS.Iams.LocationService.Business.Models.DesiredStates.CreateDesiredStateModel": {
        "type": "object",
        "properties": {
          "scheduleIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Genetec.SaaS.Iams.LocationService.Business.Models.DesiredStates.DesiredStateModel": {
        "type": "object",
        "properties": {
          "areaId": {
            "type": "string",
            "nullable": true
          },
          "scheduleIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "createdBy": {
            "type": "string",
            "nullable": true
          },
          "lastModifiedBy": {
            "type": "string",
            "nullable": true
          },
          "creationDateUtc": {
            "type": "string",
            "format": "date-time"
          },
          "lastModificationDateUtc": {
            "type": "string",
            "format": "date-time"
          },
          "eTag": {
            "type": "string",
            "nullable": true
          },
          "ordinal": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "accessRules": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Genetec.SaaS.Iams.LocationService.Business.Models.AccessRules.AccessRuleModel"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Genetec.SaaS.Iams.LocationService.Business.Models.Identity.IdentityModel": {
        "required": [
          "identityId"
        ],
        "type": "object",
        "properties": {
          "identityId": {
            "minLength": 1,
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "Genetec.SaaS.Iams.LocationService.Business.Models.Locations.CreateLocationModel": {
        "required": [
          "name",
          "siteId",
          "synchronizationTimeUtc",
          "systemObjectId",
          "visibility"
        ],
        "type": "object",
        "properties": {
          "systemObjectId": {
            "minLength": 1,
            "type": "string",
            "description": "The id of the system associated to the location."
          },
          "siteId": {
            "minLength": 1,
            "type": "string",
            "description": "The id of the site associated to the location."
          },
          "accessRequestWorkflowType": {
            "type": "string",
            "description": "Indicates the workflow to be followed for access request approval.",
            "nullable": true
          },
          "desiredStateModel": {
            "$ref": "#/components/schemas/Genetec.SaaS.Iams.LocationService.Business.Models.DesiredStates.CreateDesiredStateModel"
          },
          "name": {
            "maxLength": 100,
            "minLength": 0,
            "type": "string",
            "description": "The name of the location."
          },
          "synchronizationTimeUtc": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "date-time"
            },
            "description": "The time when the location is synchronized daily in UTC."
          },
          "description": {
            "maxLength": 300,
            "minLength": 0,
            "type": "string",
            "description": "The description of the location.",
            "nullable": true
          },
          "externalId": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "An external id. Can be used to find the location.",
            "nullable": true
          },
          "tags": {
            "maxItems": 20,
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "The tags for the location.",
            "nullable": true
          },
          "visibility": {
            "minLength": 1,
            "type": "string",
            "description": "Indicates the level of visibility for the location."
          },
          "approvers": {
            "maxItems": 20,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Genetec.SaaS.Iams.LocationService.Business.Models.Identity.IdentityModel"
            },
            "description": "The list of approvers principal ids for the location.",
            "nullable": true
          },
          "owners": {
            "maxItems": 20,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Genetec.SaaS.Iams.LocationService.Business.Models.Identity.IdentityModel"
            },
            "description": "The list of owners principal ids for the location.",
            "nullable": true
          },
          "ordinal": {
            "type": "string",
            "description": "The version of the location.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Genetec.SaaS.Iams.LocationService.Business.Models.Locations.LocationInfoModel": {
        "type": "object",
        "properties": {
          "locationId": {
            "type": "string",
            "description": "The unique identifier of the location.",
            "nullable": true
          },
          "name": {
            "type": "string",
            "description": "The name of the location.",
            "nullable": true
          },
          "displayName": {
            "type": "string",
            "description": "The display name of the location used for visits.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Genetec.SaaS.Iams.LocationService.Business.Models.Locations.LocationModel": {
        "required": [
          "name",
          "synchronizationTimeUtc",
          "visibility"
        ],
        "type": "object",
        "properties": {
          "locationId": {
            "type": "string",
            "description": "The unique identifier of the location.",
            "nullable": true
          },
          "systemObjectId": {
            "type": "string",
            "description": "The id of the system associated to the location.",
            "nullable": true
          },
          "siteId": {
            "type": "string",
            "description": "The id of the site associated to the location.",
            "nullable": true
          },
          "regionId": {
            "type": "string",
            "description": "The id of the region associated to the location.",
            "nullable": true
          },
          "provisioningAttributes": {
            "maxItems": 20,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Genetec.SaaS.Iams.LocationService.Business.Models.Locations.ProvisioningAttributeModel"
            },
            "description": "The provisioning attributes of the location.",
            "nullable": true
          },
          "desiredState": {
            "$ref": "#/components/schemas/Genetec.SaaS.Iams.LocationService.Business.Models.DesiredStates.DesiredStateModel"
          },
          "userPermissions": {
            "$ref": "#/components/schemas/Genetec.SaaS.Iams.LocationService.Business.Models.Locations.UserPermissionsModel"
          },
          "createdBy": {
            "type": "string",
            "description": "The principal id of the user who created the location.",
            "nullable": true
          },
          "lastModifiedBy": {
            "type": "string",
            "description": "The principal id of the user who last modified the location.",
            "nullable": true
          },
          "creationDateUtc": {
            "type": "string",
            "description": "The creation date of the location in UTC.",
            "format": "date-time"
          },
          "lastModificationDateUtc": {
            "type": "string",
            "description": "The last modification date of the location in UTC.",
            "format": "date-time"
          },
          "eTag": {
            "type": "string",
            "description": "The hash version of the location.\r\nMust be specified to update a location.",
            "nullable": true
          },
          "accessRequestWorkflowType": {
            "type": "string",
            "description": "Indicates the workflow to be followed for access request approval.",
            "nullable": true
          },
          "ordinal": {
            "type": "integer",
            "description": "Ordinal of the entity",
            "format": "int64",
            "nullable": true
          },
          "visitConfigurations": {
            "$ref": "#/components/schemas/Genetec.SaaS.Iams.LocationService.Business.Models.VisitConfigurations.VisitConfigurationsModel"
          },
          "name": {
            "maxLength": 100,
            "minLength": 0,
            "type": "string",
            "description": "The name of the location."
          },
          "synchronizationTimeUtc": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "date-time"
            },
            "description": "The time when the location is synchronized daily in UTC."
          },
          "description": {
            "maxLength": 300,
            "minLength": 0,
            "type": "string",
            "description": "The description of the location.",
            "nullable": true
          },
          "externalId": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "An external id. Can be used to find the location.",
            "nullable": true
          },
          "tags": {
            "maxItems": 20,
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "The tags for the location.",
            "nullable": true
          },
          "visibility": {
            "minLength": 1,
            "type": "string",
            "description": "Indicates the level of visibility for the location."
          },
          "approvers": {
            "maxItems": 20,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Genetec.SaaS.Iams.LocationService.Business.Models.Identity.IdentityModel"
            },
            "description": "The list of approvers principal ids for the location.",
            "nullable": true
          },
          "owners": {
            "maxItems": 20,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Genetec.SaaS.Iams.LocationService.Business.Models.Identity.IdentityModel"
            },
            "description": "The list of owners principal ids for the location.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Genetec.SaaS.Iams.LocationService.Business.Models.Locations.PatchLocationModel": {
        "required": [
          "eTag"
        ],
        "type": "object",
        "properties": {
          "name": {
            "maxLength": 100,
            "minLength": 0,
            "type": "string",
            "description": "The name of the location.",
            "nullable": true
          },
          "description": {
            "maxLength": 300,
            "minLength": 0,
            "type": "string",
            "description": "The description of the location.",
            "nullable": true
          },
          "externalId": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "An external id. Can be used to find the identity.",
            "nullable": true
          },
          "eTag": {
            "minLength": 1,
            "type": "string",
            "description": "The hash version of the location.\r\nMust be specified to update a location."
          },
          "tags": {
            "maxItems": 20,
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "The tags for the location.",
            "nullable": true
          },
          "provisioningAttributes": {
            "maxItems": 20,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Genetec.SaaS.Iams.LocationService.Business.Models.Locations.ProvisioningAttributeModel"
            },
            "description": "The provisioning attributes of the location.",
            "nullable": true
          },
          "synchronizationTimeUtc": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "date-time"
            },
            "description": "The time when the location is synchronized daily in UTC.",
            "nullable": true
          },
          "accessRequestWorkflowType": {
            "type": "string",
            "description": "Indicates the workflow to be followed for access request approval.",
            "nullable": true
          },
          "visibility": {
            "type": "string",
            "description": "Indicates the level of visibility for the location.",
            "nullable": true
          },
          "approvers": {
            "maxItems": 20,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Genetec.SaaS.Iams.LocationService.Business.Models.Identity.IdentityModel"
            },
            "description": "The list of approvers principal ids for the location.",
            "nullable": true
          },
          "owners": {
            "maxItems": 20,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Genetec.SaaS.Iams.LocationService.Business.Models.Identity.IdentityModel"
            },
            "description": "The list of owners principal ids for the location.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Genetec.SaaS.Iams.LocationService.Business.Models.Locations.ProvisioningAttributeModel": {
        "required": [
          "attribute",
          "scheduleId"
        ],
        "type": "object",
        "properties": {
          "attribute": {
            "maxLength": 150,
            "minLength": 1,
            "type": "string"
          },
          "scheduleId": {
            "minLength": 1,
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "Genetec.SaaS.Iams.LocationService.Business.Models.Locations.SearchLocationModel": {
        "type": "object",
        "properties": {
          "results": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Genetec.SaaS.Iams.LocationService.Business.Models.Locations.SearchLocationModel.LocationSearchProxyModel"
            },
            "nullable": true
          },
          "totalItems": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "Genetec.SaaS.Iams.LocationService.Business.Models.Locations.SearchLocationModel.LocationSearchProxyModel": {
        "type": "object",
        "properties": {
          "accountId": {
            "type": "string",
            "nullable": true
          },
          "systemObjectId": {
            "type": "string",
            "nullable": true
          },
          "siteId": {
            "type": "string",
            "nullable": true
          },
          "locationId": {
            "type": "string",
            "nullable": true
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "visibility": {
            "type": "string",
            "nullable": true
          },
          "approvers": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "owners": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "siteOwners": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "isDeleted": {
            "type": "boolean",
            "nullable": true
          },
          "creationDateUtc": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Genetec.SaaS.Iams.LocationService.Business.Models.Locations.UpdateLocationModel": {
        "required": [
          "accessRequestWorkflowType",
          "eTag",
          "name",
          "synchronizationTimeUtc",
          "visibility"
        ],
        "type": "object",
        "properties": {
          "provisioningAttributes": {
            "maxItems": 20,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Genetec.SaaS.Iams.LocationService.Business.Models.Locations.ProvisioningAttributeModel"
            },
            "description": "The provisioning attributes of the location.",
            "nullable": true
          },
          "accessRequestWorkflowType": {
            "minLength": 1,
            "type": "string",
            "description": "Indicates the workflow to be followed for access request approval."
          },
          "eTag": {
            "minLength": 1,
            "type": "string",
            "description": "The hash version of the location.\r\nMust be specified to update a location."
          },
          "name": {
            "maxLength": 100,
            "minLength": 0,
            "type": "string",
            "description": "The name of the location."
          },
          "synchronizationTimeUtc": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "date-time"
            },
            "description": "The time when the location is synchronized daily in UTC."
          },
          "description": {
            "maxLength": 300,
            "minLength": 0,
            "type": "string",
            "description": "The description of the location.",
            "nullable": true
          },
          "externalId": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "An external id. Can be used to find the location.",
            "nullable": true
          },
          "tags": {
            "maxItems": 20,
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "The tags for the location.",
            "nullable": true
          },
          "visibility": {
            "minLength": 1,
            "type": "string",
            "description": "Indicates the level of visibility for the location."
          },
          "approvers": {
            "maxItems": 20,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Genetec.SaaS.Iams.LocationService.Business.Models.Identity.IdentityModel"
            },
            "description": "The list of approvers principal ids for the location.",
            "nullable": true
          },
          "owners": {
            "maxItems": 20,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Genetec.SaaS.Iams.LocationService.Business.Models.Identity.IdentityModel"
            },
            "description": "The list of owners principal ids for the location.",
            "nullable": true
          },
          "ordinal": {
            "type": "string",
            "description": "The version of the location.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Genetec.SaaS.Iams.LocationService.Business.Models.Locations.UserPermissionsModel": {
        "type": "object",
        "properties": {
          "canEditName": {
            "type": "boolean"
          },
          "canEditDescription": {
            "type": "boolean"
          },
          "canEditTags": {
            "type": "boolean"
          },
          "canEditProvisioningAttributes": {
            "type": "boolean"
          },
          "canEditVisibility": {
            "type": "boolean"
          },
          "canEditVisitConfigurations": {
            "type": "boolean"
          },
          "canManageApprovers": {
            "type": "boolean"
          },
          "canManageOwners": {
            "type": "boolean"
          },
          "canManageSchedules": {
            "type": "boolean"
          },
          "canManageAccesses": {
            "type": "boolean"
          },
          "canDeleteLocation": {
            "type": "boolean"
          },
          "canEditAccessRequestWorkflowType": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "Genetec.SaaS.Iams.LocationService.Business.Models.Schedules.ScheduleModel": {
        "type": "object",
        "properties": {
          "scheduleId": {
            "type": "string",
            "nullable": true
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "state": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Genetec.SaaS.Iams.LocationService.Business.Models.Schedules.SchedulesListModel": {
        "type": "object",
        "properties": {
          "schedules": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Genetec.SaaS.Iams.LocationService.Business.Models.Schedules.ScheduleModel"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Genetec.SaaS.Iams.LocationService.Business.Models.Schedules.UpdateSchedulesModel": {
        "required": [
          "scheduleIds"
        ],
        "type": "object",
        "properties": {
          "scheduleIds": {
            "minItems": 1,
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "forceSynchronizationNow": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "Genetec.SaaS.Iams.LocationService.Business.Models.VisitConfigurations.UpdateVisitConfigurationsModel": {
        "required": [
          "displayName",
          "eTag",
          "isDefaultVisitLocation",
          "isVisitable",
          "visitRequestWorkflow"
        ],
        "type": "object",
        "properties": {
          "isVisitable": {
            "type": "boolean",
            "description": "Can the location be visited"
          },
          "isDefaultVisitLocation": {
            "type": "boolean",
            "description": "Should this location be added as a default location to visitor requests"
          },
          "displayName": {
            "maxLength": 100,
            "minLength": 0,
            "type": "string",
            "description": "Name to display on visits"
          },
          "visitRequestWorkflow": {
            "minLength": 1,
            "type": "string",
            "description": "Visit workflow type\r\nExample : AutoApprove, UseLocationApprovers, UseVisitConfigurationsApprovers"
          },
          "visitApprovers": {
            "maxItems": 20,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Genetec.SaaS.Iams.LocationService.Business.Models.Identity.IdentityModel"
            },
            "description": "List of identityIds which can approve visit requests.\r\nRequired when using UseVisitConfigurationsApprovers visit request workflow",
            "nullable": true
          },
          "eTag": {
            "minLength": 1,
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "Genetec.SaaS.Iams.LocationService.Business.Models.VisitConfigurations.VisitConfigurationsModel": {
        "type": "object",
        "properties": {
          "isVisitable": {
            "type": "boolean"
          },
          "isDefaultVisitLocation": {
            "type": "boolean"
          },
          "displayName": {
            "type": "string",
            "nullable": true
          },
          "visitRequestWorkflow": {
            "type": "string",
            "nullable": true
          },
          "visitApprovers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Genetec.SaaS.Iams.LocationService.Business.Models.Identity.IdentityModel"
            },
            "nullable": true
          },
          "eTag": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      }
    },
    "securitySchemes": {
      "oauth2": {
        "type": "oauth2",
        "flows": {
          "implicit": {
            "authorizationUrl": "https://sts-demo.clearid.io/connect/authorize",
            "scopes": {
              "openid": "openid"
            }
          }
        }
      }
    }
  }
}