{
  "openapi": "3.0.0",
  "components": {
    "schemas": {
      "CreateAccessKeyResponse": {
        "properties": {
          "accessKey": {
            "type": "string"
          },
          "created": {
            "description": "formatted as an RFC3339 date-time",
            "example": "2022-03-14T09:48:00Z",
            "format": "date-time",
            "type": "string"
          },
          "expires": {
            "description": "after this deadline the key is no longer valid",
            "example": "2022-03-14T09:48:00Z",
            "format": "date-time",
            "type": "string"
          },
          "id": {
            "example": "4yJ3n3D8E2",
            "format": "uid",
            "pattern": "[1-9a-km-zA-HJ-NP-Z]{1,11}",
            "type": "string"
          },
          "inactivityTimeout": {
            "description": "the key must be used by this time to remain valid",
            "example": "2022-03-14T09:48:00Z",
            "format": "date-time",
            "type": "string"
          },
          "issuedForID": {
            "example": "4yJ3n3D8E2",
            "format": "uid",
            "pattern": "[1-9a-km-zA-HJ-NP-Z]{1,11}",
            "type": "string"
          },
          "issuedForKind": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "providerID": {
            "example": "4yJ3n3D8E2",
            "format": "uid",
            "pattern": "[1-9a-km-zA-HJ-NP-Z]{1,11}",
            "type": "string"
          }
        }
      },
      "CreateGrantResponse": {
        "properties": {
          "created": {
            "description": "formatted as an RFC3339 date-time",
            "example": "2022-03-14T09:48:00Z",
            "format": "date-time",
            "type": "string"
          },
          "createdBy": {
            "description": "id of the user that created the grant",
            "example": "4yJ3n3D8E2",
            "format": "uid",
            "pattern": "[1-9a-km-zA-HJ-NP-Z]{1,11}",
            "type": "string"
          },
          "group": {
            "description": "GroupID for a group being granted access",
            "example": "3zMaadcd2U",
            "format": "uid",
            "pattern": "[1-9a-km-zA-HJ-NP-Z]{1,11}",
            "type": "string"
          },
          "id": {
            "description": "ID of grant created",
            "example": "3w9XyTrkzk",
            "format": "uid",
            "pattern": "[1-9a-km-zA-HJ-NP-Z]{1,11}",
            "type": "string"
          },
          "privilege": {
            "description": "a role or permission",
            "example": "admin",
            "type": "string"
          },
          "resource": {
            "description": "a resource name in Infra's Universal Resource Notation",
            "example": "production.namespace",
            "type": "string"
          },
          "updated": {
            "description": "formatted as an RFC3339 date-time",
            "example": "2022-03-14T09:48:00Z",
            "format": "date-time",
            "type": "string"
          },
          "user": {
            "description": "UserID for a user being granted access",
            "example": "6hNnjfjVcc",
            "format": "uid",
            "pattern": "[1-9a-km-zA-HJ-NP-Z]{1,11}",
            "type": "string"
          },
          "wasCreated": {
            "description": "Indicates that grant was successfully created, false it already existed beforehand",
            "example": "true",
            "type": "boolean"
          }
        }
      },
      "CreateTokenResponse": {
        "properties": {
          "expires": {
            "description": "formatted as an RFC3339 date-time",
            "example": "2022-03-14T09:48:00Z",
            "format": "date-time",
            "type": "string"
          },
          "token": {
            "type": "string"
          }
        }
      },
      "CreateUserResponse": {
        "properties": {
          "id": {
            "description": "User ID",
            "example": "4yJ3n3D8E2",
            "format": "uid",
            "pattern": "[1-9a-km-zA-HJ-NP-Z]{1,11}",
            "type": "string"
          },
          "name": {
            "description": "Email address of the user",
            "example": "bob@example.com",
            "type": "string"
          },
          "oneTimePassword": {
            "description": "One-time password (only returned when self-hosted)",
            "example": "password",
            "type": "string"
          }
        }
      },
      "Destination": {
        "properties": {
          "connected": {
            "description": "Shows if the destination is currently connected",
            "example": "true",
            "type": "boolean"
          },
          "connection": {
            "description": "Object that includes the URL and CA for the destination",
            "properties": {
              "ca": {
                "example": "-----BEGIN CERTIFICATE-----\nMIIDNTCCAh2gAwIBAgIRALRetnpcTo9O3V2fAK3ix+c\n-----END CERTIFICATE-----\n",
                "type": "string"
              },
              "url": {
                "example": "aa60eexample.us-west-2.elb.amazonaws.com",
                "type": "string"
              }
            },
            "required": [
              "ca"
            ],
            "type": "object"
          },
          "created": {
            "description": "Time destination was created",
            "example": "2022-11-10T23:35:22Z",
            "format": "date-time",
            "type": "string"
          },
          "id": {
            "description": "ID of the destination",
            "example": "7a1b26b33F",
            "format": "uid",
            "pattern": "[1-9a-km-zA-HJ-NP-Z]{1,11}",
            "type": "string"
          },
          "kind": {
            "description": "Kind of destination. eg. kubernetes or ssh or postgres",
            "example": "kubernetes",
            "type": "string"
          },
          "lastSeen": {
            "description": "formatted as an RFC3339 date-time",
            "example": "2022-03-14T09:48:00Z",
            "format": "date-time",
            "type": "string"
          },
          "name": {
            "description": "Name of the destination",
            "example": "production-cluster",
            "type": "string"
          },
          "resources": {
            "description": "Destination specific. For Kubernetes, it is the list of namespaces",
            "example": "['default', 'kube-system']",
            "items": {
              "description": "Destination specific. For Kubernetes, it is the list of namespaces",
              "example": "['default', 'kube-system']",
              "type": "string"
            },
            "type": "array"
          },
          "roles": {
            "description": "Destination specific. For Kubernetes, it is the list of cluster roles available on that cluster",
            "example": "['cluster-admin', 'admin', 'edit', 'view', 'exec', 'logs', 'port-forward']",
            "items": {
              "description": "Destination specific. For Kubernetes, it is the list of cluster roles available on that cluster",
              "example": "['cluster-admin', 'admin', 'edit', 'view', 'exec', 'logs', 'port-forward']",
              "type": "string"
            },
            "type": "array"
          },
          "uniqueID": {
            "description": "Unique ID generated by the connector",
            "example": "94c2c570a20311180ec325fd56",
            "type": "string"
          },
          "updated": {
            "description": "Time destination was updated",
            "example": "2022-12-01T19:48:55Z",
            "format": "date-time",
            "type": "string"
          },
          "version": {
            "description": "Application version of the connector for this destination",
            "type": "string"
          }
        }
      },
      "DeviceFlowResponse": {
        "properties": {
          "deviceCode": {
            "description": "a code that a device will use to exchange for an access key after device login is approved",
            "example": "NGU4QWFiNjQ5YmQwNG3YTdmZMEyNzQ3YzQ1YSA",
            "type": "string"
          },
          "expiresIn": {
            "description": "The number of seconds that this set of values is valid",
            "example": "1800",
            "format": "int16",
            "type": "integer"
          },
          "interval": {
            "description": "the number of seconds the device should wait between polling to see if the user has finished logging in",
            "example": "5",
            "format": "int8",
            "type": "integer"
          },
          "userCode": {
            "description": "This is the text the user will enter at the Verification URI",
            "example": "BDSD-HQMK",
            "type": "string"
          },
          "verificationURI": {
            "description": "This is the URL the user needs to enter into their browser to start logging in",
            "example": "https://infrahq.com/device",
            "type": "string"
          }
        }
      },
      "DeviceFlowStatusResponse": {
        "properties": {
          "deviceCode": {
            "example": "",
            "type": "string"
          },
          "login": {
            "properties": {
              "accessKey": {
                "type": "string"
              },
              "expires": {
                "description": "formatted as an RFC3339 date-time",
                "example": "2022-03-14T09:48:00Z",
                "format": "date-time",
                "type": "string"
              },
              "name": {
                "type": "string"
              },
              "organizationName": {
                "type": "string"
              },
              "passwordUpdateRequired": {
                "type": "boolean"
              },
              "userID": {
                "example": "4yJ3n3D8E2",
                "format": "uid",
                "pattern": "[1-9a-km-zA-HJ-NP-Z]{1,11}",
                "type": "string"
              }
            },
            "type": "object"
          },
          "status": {
            "description": "can be one of pending, expired, confirmed",
            "type": "string"
          }
        }
      },
      "EmptyResponse": {},
      "Error": {
        "properties": {
          "code": {
            "format": "int32",
            "type": "integer"
          },
          "fieldErrors": {
            "items": {
              "properties": {
                "errors": {
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                "fieldName": {
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": "array"
          },
          "message": {
            "type": "string"
          }
        }
      },
      "Grant": {
        "properties": {
          "created": {
            "description": "formatted as an RFC3339 date-time",
            "example": "2022-03-14T09:48:00Z",
            "format": "date-time",
            "type": "string"
          },
          "createdBy": {
            "description": "id of the user that created the grant",
            "example": "4yJ3n3D8E2",
            "format": "uid",
            "pattern": "[1-9a-km-zA-HJ-NP-Z]{1,11}",
            "type": "string"
          },
          "group": {
            "description": "GroupID for a group being granted access",
            "example": "3zMaadcd2U",
            "format": "uid",
            "pattern": "[1-9a-km-zA-HJ-NP-Z]{1,11}",
            "type": "string"
          },
          "id": {
            "description": "ID of grant created",
            "example": "3w9XyTrkzk",
            "format": "uid",
            "pattern": "[1-9a-km-zA-HJ-NP-Z]{1,11}",
            "type": "string"
          },
          "privilege": {
            "description": "a role or permission",
            "example": "admin",
            "type": "string"
          },
          "resource": {
            "description": "a resource name in Infra's Universal Resource Notation",
            "example": "production.namespace",
            "type": "string"
          },
          "updated": {
            "description": "formatted as an RFC3339 date-time",
            "example": "2022-03-14T09:48:00Z",
            "format": "date-time",
            "type": "string"
          },
          "user": {
            "description": "UserID for a user being granted access",
            "example": "6hNnjfjVcc",
            "format": "uid",
            "pattern": "[1-9a-km-zA-HJ-NP-Z]{1,11}",
            "type": "string"
          }
        }
      },
      "Group": {
        "properties": {
          "created": {
            "description": "Date the group was created",
            "example": "2022-03-14T09:48:00Z",
            "format": "date-time",
            "type": "string"
          },
          "id": {
            "description": "Group ID",
            "example": "gauEdoYCEU",
            "format": "uid",
            "pattern": "[1-9a-km-zA-HJ-NP-Z]{1,11}",
            "type": "string"
          },
          "name": {
            "description": "Name of the group",
            "example": "admins",
            "type": "string"
          },
          "totalUsers": {
            "description": "Total number of users in the group",
            "example": "14",
            "format": "int",
            "type": "integer"
          },
          "updated": {
            "description": "Date the group was updated",
            "example": "2022-03-14T09:48:00Z",
            "format": "date-time",
            "type": "string"
          }
        }
      },
      "ListResponse_AccessKey": {
        "properties": {
          "count": {
            "description": "Total number of items on the current page",
            "example": "100",
            "format": "int",
            "type": "integer"
          },
          "items": {
            "items": {
              "properties": {
                "created": {
                  "description": "formatted as an RFC3339 date-time",
                  "example": "2022-03-14T09:48:00Z",
                  "format": "date-time",
                  "type": "string"
                },
                "expires": {
                  "description": "key is no longer valid after this time",
                  "example": "2022-03-14T09:48:00Z",
                  "format": "date-time",
                  "type": "string"
                },
                "id": {
                  "description": "ID of the access key",
                  "example": "4yJ3n3D8E2",
                  "format": "uid",
                  "pattern": "[1-9a-km-zA-HJ-NP-Z]{1,11}",
                  "type": "string"
                },
                "inactivityTimeout": {
                  "description": "key must be used by this time to remain valid",
                  "example": "2022-03-14T09:48:00Z",
                  "format": "date-time",
                  "type": "string"
                },
                "issuedForID": {
                  "description": "ID of the entity the key was issued to",
                  "example": "4yJ3n3D8E2",
                  "format": "uid",
                  "pattern": "[1-9a-km-zA-HJ-NP-Z]{1,11}",
                  "type": "string"
                },
                "issuedForKind": {
                  "description": "the kind entity the key was issued for (eg: user, organization, or provider)",
                  "example": "user",
                  "type": "string"
                },
                "issuedForName": {
                  "description": "Name of the user the key was issued to",
                  "example": "admin@example.com",
                  "type": "string"
                },
                "lastUsed": {
                  "description": "formatted as an RFC3339 date-time",
                  "example": "2022-03-14T09:48:00Z",
                  "format": "date-time",
                  "type": "string"
                },
                "name": {
                  "description": "Name of the access key",
                  "example": "cicdkey",
                  "type": "string"
                },
                "providerID": {
                  "description": "ID of the provider if the user is managed by an OIDC provider",
                  "example": "4yJ3n3D8E2",
                  "format": "uid",
                  "pattern": "[1-9a-km-zA-HJ-NP-Z]{1,11}",
                  "type": "string"
                },
                "scopes": {
                  "description": "additional access level scopes that control what an access key can do",
                  "items": {
                    "description": "additional access level scopes that control what an access key can do",
                    "type": "string"
                  },
                  "type": "array"
                }
              },
              "type": "object"
            },
            "type": "array"
          },
          "limit": {
            "description": "Number of objects per page",
            "example": "100",
            "format": "int",
            "type": "integer"
          },
          "page": {
            "description": "Page number retrieved",
            "example": "1",
            "format": "int",
            "type": "integer"
          },
          "totalCount": {
            "description": "Total number of objects",
            "example": "485",
            "format": "int",
            "type": "integer"
          },
          "totalPages": {
            "description": "Total number of pages",
            "example": "5",
            "format": "int",
            "type": "integer"
          }
        }
      },
      "ListResponse_Destination": {
        "properties": {
          "count": {
            "description": "Total number of items on the current page",
            "example": "100",
            "format": "int",
            "type": "integer"
          },
          "items": {
            "items": {
              "properties": {
                "connected": {
                  "description": "Shows if the destination is currently connected",
                  "example": "true",
                  "type": "boolean"
                },
                "connection": {
                  "description": "Object that includes the URL and CA for the destination",
                  "properties": {
                    "ca": {
                      "example": "-----BEGIN CERTIFICATE-----\nMIIDNTCCAh2gAwIBAgIRALRetnpcTo9O3V2fAK3ix+c\n-----END CERTIFICATE-----\n",
                      "type": "string"
                    },
                    "url": {
                      "example": "aa60eexample.us-west-2.elb.amazonaws.com",
                      "type": "string"
                    }
                  },
                  "required": [
                    "ca"
                  ],
                  "type": "object"
                },
                "created": {
                  "description": "Time destination was created",
                  "example": "2022-11-10T23:35:22Z",
                  "format": "date-time",
                  "type": "string"
                },
                "id": {
                  "description": "ID of the destination",
                  "example": "7a1b26b33F",
                  "format": "uid",
                  "pattern": "[1-9a-km-zA-HJ-NP-Z]{1,11}",
                  "type": "string"
                },
                "kind": {
                  "description": "Kind of destination. eg. kubernetes or ssh or postgres",
                  "example": "kubernetes",
                  "type": "string"
                },
                "lastSeen": {
                  "description": "formatted as an RFC3339 date-time",
                  "example": "2022-03-14T09:48:00Z",
                  "format": "date-time",
                  "type": "string"
                },
                "name": {
                  "description": "Name of the destination",
                  "example": "production-cluster",
                  "type": "string"
                },
                "resources": {
                  "description": "Destination specific. For Kubernetes, it is the list of namespaces",
                  "example": "['default', 'kube-system']",
                  "items": {
                    "description": "Destination specific. For Kubernetes, it is the list of namespaces",
                    "example": "['default', 'kube-system']",
                    "type": "string"
                  },
                  "type": "array"
                },
                "roles": {
                  "description": "Destination specific. For Kubernetes, it is the list of cluster roles available on that cluster",
                  "example": "['cluster-admin', 'admin', 'edit', 'view', 'exec', 'logs', 'port-forward']",
                  "items": {
                    "description": "Destination specific. For Kubernetes, it is the list of cluster roles available on that cluster",
                    "example": "['cluster-admin', 'admin', 'edit', 'view', 'exec', 'logs', 'port-forward']",
                    "type": "string"
                  },
                  "type": "array"
                },
                "uniqueID": {
                  "description": "Unique ID generated by the connector",
                  "example": "94c2c570a20311180ec325fd56",
                  "type": "string"
                },
                "updated": {
                  "description": "Time destination was updated",
                  "example": "2022-12-01T19:48:55Z",
                  "format": "date-time",
                  "type": "string"
                },
                "version": {
                  "description": "Application version of the connector for this destination",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": "array"
          },
          "limit": {
            "description": "Number of objects per page",
            "example": "100",
            "format": "int",
            "type": "integer"
          },
          "page": {
            "description": "Page number retrieved",
            "example": "1",
            "format": "int",
            "type": "integer"
          },
          "totalCount": {
            "description": "Total number of objects",
            "example": "485",
            "format": "int",
            "type": "integer"
          },
          "totalPages": {
            "description": "Total number of pages",
            "example": "5",
            "format": "int",
            "type": "integer"
          }
        }
      },
      "ListResponse_Grant": {
        "properties": {
          "count": {
            "description": "Total number of items on the current page",
            "example": "100",
            "format": "int",
            "type": "integer"
          },
          "items": {
            "items": {
              "properties": {
                "created": {
                  "description": "formatted as an RFC3339 date-time",
                  "example": "2022-03-14T09:48:00Z",
                  "format": "date-time",
                  "type": "string"
                },
                "createdBy": {
                  "description": "id of the user that created the grant",
                  "example": "4yJ3n3D8E2",
                  "format": "uid",
                  "pattern": "[1-9a-km-zA-HJ-NP-Z]{1,11}",
                  "type": "string"
                },
                "group": {
                  "description": "GroupID for a group being granted access",
                  "example": "3zMaadcd2U",
                  "format": "uid",
                  "pattern": "[1-9a-km-zA-HJ-NP-Z]{1,11}",
                  "type": "string"
                },
                "id": {
                  "description": "ID of grant created",
                  "example": "3w9XyTrkzk",
                  "format": "uid",
                  "pattern": "[1-9a-km-zA-HJ-NP-Z]{1,11}",
                  "type": "string"
                },
                "privilege": {
                  "description": "a role or permission",
                  "example": "admin",
                  "type": "string"
                },
                "resource": {
                  "description": "a resource name in Infra's Universal Resource Notation",
                  "example": "production.namespace",
                  "type": "string"
                },
                "updated": {
                  "description": "formatted as an RFC3339 date-time",
                  "example": "2022-03-14T09:48:00Z",
                  "format": "date-time",
                  "type": "string"
                },
                "user": {
                  "description": "UserID for a user being granted access",
                  "example": "6hNnjfjVcc",
                  "format": "uid",
                  "pattern": "[1-9a-km-zA-HJ-NP-Z]{1,11}",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": "array"
          },
          "limit": {
            "description": "Number of objects per page",
            "example": "100",
            "format": "int",
            "type": "integer"
          },
          "page": {
            "description": "Page number retrieved",
            "example": "1",
            "format": "int",
            "type": "integer"
          },
          "totalCount": {
            "description": "Total number of objects",
            "example": "485",
            "format": "int",
            "type": "integer"
          },
          "totalPages": {
            "description": "Total number of pages",
            "example": "5",
            "format": "int",
            "type": "integer"
          }
        }
      },
      "ListResponse_Group": {
        "properties": {
          "count": {
            "description": "Total number of items on the current page",
            "example": "100",
            "format": "int",
            "type": "integer"
          },
          "items": {
            "items": {
              "properties": {
                "created": {
                  "description": "Date the group was created",
                  "example": "2022-03-14T09:48:00Z",
                  "format": "date-time",
                  "type": "string"
                },
                "id": {
                  "description": "Group ID",
                  "example": "gauEdoYCEU",
                  "format": "uid",
                  "pattern": "[1-9a-km-zA-HJ-NP-Z]{1,11}",
                  "type": "string"
                },
                "name": {
                  "description": "Name of the group",
                  "example": "admins",
                  "type": "string"
                },
                "totalUsers": {
                  "description": "Total number of users in the group",
                  "example": "14",
                  "format": "int",
                  "type": "integer"
                },
                "updated": {
                  "description": "Date the group was updated",
                  "example": "2022-03-14T09:48:00Z",
                  "format": "date-time",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": "array"
          },
          "limit": {
            "description": "Number of objects per page",
            "example": "100",
            "format": "int",
            "type": "integer"
          },
          "page": {
            "description": "Page number retrieved",
            "example": "1",
            "format": "int",
            "type": "integer"
          },
          "totalCount": {
            "description": "Total number of objects",
            "example": "485",
            "format": "int",
            "type": "integer"
          },
          "totalPages": {
            "description": "Total number of pages",
            "example": "5",
            "format": "int",
            "type": "integer"
          }
        }
      },
      "ListResponse_Organization": {
        "properties": {
          "count": {
            "description": "Total number of items on the current page",
            "example": "100",
            "format": "int",
            "type": "integer"
          },
          "items": {
            "items": {
              "properties": {
                "allowedDomains": {
                  "description": "domains which can be used to login to this organization",
                  "example": "['example.com', 'infrahq.com']",
                  "items": {
                    "description": "domains which can be used to login to this organization",
                    "example": "['example.com', 'infrahq.com']",
                    "type": "string"
                  },
                  "type": "array"
                },
                "created": {
                  "description": "formatted as an RFC3339 date-time",
                  "example": "2022-03-14T09:48:00Z",
                  "format": "date-time",
                  "type": "string"
                },
                "domain": {
                  "type": "string"
                },
                "id": {
                  "example": "4yJ3n3D8E2",
                  "format": "uid",
                  "pattern": "[1-9a-km-zA-HJ-NP-Z]{1,11}",
                  "type": "string"
                },
                "name": {
                  "type": "string"
                },
                "updated": {
                  "description": "formatted as an RFC3339 date-time",
                  "example": "2022-03-14T09:48:00Z",
                  "format": "date-time",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": "array"
          },
          "limit": {
            "description": "Number of objects per page",
            "example": "100",
            "format": "int",
            "type": "integer"
          },
          "page": {
            "description": "Page number retrieved",
            "example": "1",
            "format": "int",
            "type": "integer"
          },
          "totalCount": {
            "description": "Total number of objects",
            "example": "485",
            "format": "int",
            "type": "integer"
          },
          "totalPages": {
            "description": "Total number of pages",
            "example": "5",
            "format": "int",
            "type": "integer"
          }
        }
      },
      "ListResponse_Provider": {
        "properties": {
          "count": {
            "description": "Total number of items on the current page",
            "example": "100",
            "format": "int",
            "type": "integer"
          },
          "items": {
            "items": {
              "properties": {
                "authURL": {
                  "description": "Authorize endpoint for the OIDC provider",
                  "example": "https://example.com/oauth2/v1/authorize",
                  "type": "string"
                },
                "clientID": {
                  "description": "Client ID for the OIDC provider",
                  "example": "0oapn0qwiQPiMIyR35d6",
                  "type": "string"
                },
                "created": {
                  "description": "formatted as an RFC3339 date-time",
                  "example": "2022-03-14T09:48:00Z",
                  "format": "date-time",
                  "type": "string"
                },
                "id": {
                  "description": "Provider ID",
                  "example": "4yJ3n3D8E2",
                  "format": "uid",
                  "pattern": "[1-9a-km-zA-HJ-NP-Z]{1,11}",
                  "type": "string"
                },
                "kind": {
                  "description": "Kind of provider",
                  "example": "oidc",
                  "type": "string"
                },
                "name": {
                  "description": "Name of the provider",
                  "example": "okta",
                  "type": "string"
                },
                "scopes": {
                  "description": "Scopes set in the OIDC provider configuration",
                  "example": "['openid', 'email']",
                  "items": {
                    "description": "Scopes set in the OIDC provider configuration",
                    "example": "['openid', 'email']",
                    "type": "string"
                  },
                  "type": "array"
                },
                "updated": {
                  "description": "formatted as an RFC3339 date-time",
                  "example": "2022-03-14T09:48:00Z",
                  "format": "date-time",
                  "type": "string"
                },
                "url": {
                  "description": "URL of the Infra Server",
                  "example": "infrahq.okta.com",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": "array"
          },
          "limit": {
            "description": "Number of objects per page",
            "example": "100",
            "format": "int",
            "type": "integer"
          },
          "page": {
            "description": "Page number retrieved",
            "example": "1",
            "format": "int",
            "type": "integer"
          },
          "totalCount": {
            "description": "Total number of objects",
            "example": "485",
            "format": "int",
            "type": "integer"
          },
          "totalPages": {
            "description": "Total number of pages",
            "example": "5",
            "format": "int",
            "type": "integer"
          }
        }
      },
      "ListResponse_User": {
        "properties": {
          "count": {
            "description": "Total number of items on the current page",
            "example": "100",
            "format": "int",
            "type": "integer"
          },
          "items": {
            "items": {
              "properties": {
                "created": {
                  "description": "Date the user was created",
                  "example": "2022-03-14T09:48:00Z",
                  "format": "date-time",
                  "type": "string"
                },
                "id": {
                  "description": "User ID",
                  "example": "4ACFkc434M",
                  "format": "uid",
                  "pattern": "[1-9a-km-zA-HJ-NP-Z]{1,11}",
                  "type": "string"
                },
                "lastSeenAt": {
                  "description": "Date the user was last seen",
                  "example": "2022-03-14T09:48:00Z",
                  "format": "date-time",
                  "type": "string"
                },
                "name": {
                  "description": "Name of the user",
                  "example": "bob@example.com",
                  "type": "string"
                },
                "providerNames": {
                  "description": "List of providers this user belongs to",
                  "example": "['okta']",
                  "items": {
                    "description": "List of providers this user belongs to",
                    "example": "['okta']",
                    "type": "string"
                  },
                  "type": "array"
                },
                "publicKeys": {
                  "description": "List of the users public keys",
                  "items": {
                    "description": "List of the users public keys",
                    "properties": {
                      "created": {
                        "description": "formatted as an RFC3339 date-time",
                        "example": "2022-03-14T09:48:00Z",
                        "format": "date-time",
                        "type": "string"
                      },
                      "expires": {
                        "description": "formatted as an RFC3339 date-time",
                        "example": "2022-03-14T09:48:00Z",
                        "format": "date-time",
                        "type": "string"
                      },
                      "fingerprint": {
                        "description": "SHA256 fingerprint of the key",
                        "type": "string"
                      },
                      "id": {
                        "example": "4yJ3n3D8E2",
                        "format": "uid",
                        "pattern": "[1-9a-km-zA-HJ-NP-Z]{1,11}",
                        "type": "string"
                      },
                      "keyType": {
                        "type": "string"
                      },
                      "name": {
                        "type": "string"
                      },
                      "publicKey": {
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "type": "array"
                },
                "sshLoginName": {
                  "description": "Username for SSH destinations",
                  "example": "bob",
                  "type": "string"
                },
                "updated": {
                  "description": "Date the user was updated",
                  "example": "2022-03-14T09:48:00Z",
                  "format": "date-time",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": "array"
          },
          "limit": {
            "description": "Number of objects per page",
            "example": "100",
            "format": "int",
            "type": "integer"
          },
          "page": {
            "description": "Page number retrieved",
            "example": "1",
            "format": "int",
            "type": "integer"
          },
          "totalCount": {
            "description": "Total number of objects",
            "example": "485",
            "format": "int",
            "type": "integer"
          },
          "totalPages": {
            "description": "Total number of pages",
            "example": "5",
            "format": "int",
            "type": "integer"
          }
        }
      },
      "LoginResponse": {
        "properties": {
          "accessKey": {
            "type": "string"
          },
          "expires": {
            "description": "formatted as an RFC3339 date-time",
            "example": "2022-03-14T09:48:00Z",
            "format": "date-time",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "organizationName": {
            "type": "string"
          },
          "passwordUpdateRequired": {
            "type": "boolean"
          },
          "userID": {
            "example": "4yJ3n3D8E2",
            "format": "uid",
            "pattern": "[1-9a-km-zA-HJ-NP-Z]{1,11}",
            "type": "string"
          }
        }
      },
      "Organization": {
        "properties": {
          "allowedDomains": {
            "description": "domains which can be used to login to this organization",
            "example": "['example.com', 'infrahq.com']",
            "items": {
              "description": "domains which can be used to login to this organization",
              "example": "['example.com', 'infrahq.com']",
              "type": "string"
            },
            "type": "array"
          },
          "created": {
            "description": "formatted as an RFC3339 date-time",
            "example": "2022-03-14T09:48:00Z",
            "format": "date-time",
            "type": "string"
          },
          "domain": {
            "type": "string"
          },
          "id": {
            "example": "4yJ3n3D8E2",
            "format": "uid",
            "pattern": "[1-9a-km-zA-HJ-NP-Z]{1,11}",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "updated": {
            "description": "formatted as an RFC3339 date-time",
            "example": "2022-03-14T09:48:00Z",
            "format": "date-time",
            "type": "string"
          }
        }
      },
      "Provider": {
        "properties": {
          "authURL": {
            "description": "Authorize endpoint for the OIDC provider",
            "example": "https://example.com/oauth2/v1/authorize",
            "type": "string"
          },
          "clientID": {
            "description": "Client ID for the OIDC provider",
            "example": "0oapn0qwiQPiMIyR35d6",
            "type": "string"
          },
          "created": {
            "description": "formatted as an RFC3339 date-time",
            "example": "2022-03-14T09:48:00Z",
            "format": "date-time",
            "type": "string"
          },
          "id": {
            "description": "Provider ID",
            "example": "4yJ3n3D8E2",
            "format": "uid",
            "pattern": "[1-9a-km-zA-HJ-NP-Z]{1,11}",
            "type": "string"
          },
          "kind": {
            "description": "Kind of provider",
            "example": "oidc",
            "type": "string"
          },
          "name": {
            "description": "Name of the provider",
            "example": "okta",
            "type": "string"
          },
          "scopes": {
            "description": "Scopes set in the OIDC provider configuration",
            "example": "['openid', 'email']",
            "items": {
              "description": "Scopes set in the OIDC provider configuration",
              "example": "['openid', 'email']",
              "type": "string"
            },
            "type": "array"
          },
          "updated": {
            "description": "formatted as an RFC3339 date-time",
            "example": "2022-03-14T09:48:00Z",
            "format": "date-time",
            "type": "string"
          },
          "url": {
            "description": "URL of the Infra Server",
            "example": "infrahq.okta.com",
            "type": "string"
          }
        }
      },
      "ServerConfiguration": {
        "properties": {
          "baseDomain": {
            "type": "string"
          },
          "google": {
            "properties": {
              "authURL": {
                "description": "Authorize endpoint for the OIDC provider",
                "example": "https://example.com/oauth2/v1/authorize",
                "type": "string"
              },
              "clientID": {
                "description": "Client ID for the OIDC provider",
                "example": "0oapn0qwiQPiMIyR35d6",
                "type": "string"
              },
              "created": {
                "description": "formatted as an RFC3339 date-time",
                "example": "2022-03-14T09:48:00Z",
                "format": "date-time",
                "type": "string"
              },
              "id": {
                "description": "Provider ID",
                "example": "4yJ3n3D8E2",
                "format": "uid",
                "pattern": "[1-9a-km-zA-HJ-NP-Z]{1,11}",
                "type": "string"
              },
              "kind": {
                "description": "Kind of provider",
                "example": "oidc",
                "type": "string"
              },
              "name": {
                "description": "Name of the provider",
                "example": "okta",
                "type": "string"
              },
              "scopes": {
                "description": "Scopes set in the OIDC provider configuration",
                "example": "['openid', 'email']",
                "items": {
                  "description": "Scopes set in the OIDC provider configuration",
                  "example": "['openid', 'email']",
                  "type": "string"
                },
                "type": "array"
              },
              "updated": {
                "description": "formatted as an RFC3339 date-time",
                "example": "2022-03-14T09:48:00Z",
                "format": "date-time",
                "type": "string"
              },
              "url": {
                "description": "URL of the Infra Server",
                "example": "infrahq.okta.com",
                "type": "string"
              }
            },
            "type": "object"
          },
          "isEmailConfigured": {
            "type": "boolean"
          },
          "isSignupEnabled": {
            "type": "boolean"
          },
          "loginDomain": {
            "type": "string"
          }
        }
      },
      "UpdateUserResponse": {
        "properties": {
          "created": {
            "description": "Date the user was created",
            "example": "2022-03-14T09:48:00Z",
            "format": "date-time",
            "type": "string"
          },
          "id": {
            "description": "User ID",
            "example": "4ACFkc434M",
            "format": "uid",
            "pattern": "[1-9a-km-zA-HJ-NP-Z]{1,11}",
            "type": "string"
          },
          "lastSeenAt": {
            "description": "Date the user was last seen",
            "example": "2022-03-14T09:48:00Z",
            "format": "date-time",
            "type": "string"
          },
          "name": {
            "description": "Name of the user",
            "example": "bob@example.com",
            "type": "string"
          },
          "oneTimePassword": {
            "type": "string"
          },
          "providerNames": {
            "description": "List of providers this user belongs to",
            "example": "['okta']",
            "items": {
              "description": "List of providers this user belongs to",
              "example": "['okta']",
              "type": "string"
            },
            "type": "array"
          },
          "publicKeys": {
            "description": "List of the users public keys",
            "items": {
              "description": "List of the users public keys",
              "properties": {
                "created": {
                  "description": "formatted as an RFC3339 date-time",
                  "example": "2022-03-14T09:48:00Z",
                  "format": "date-time",
                  "type": "string"
                },
                "expires": {
                  "description": "formatted as an RFC3339 date-time",
                  "example": "2022-03-14T09:48:00Z",
                  "format": "date-time",
                  "type": "string"
                },
                "fingerprint": {
                  "description": "SHA256 fingerprint of the key",
                  "type": "string"
                },
                "id": {
                  "example": "4yJ3n3D8E2",
                  "format": "uid",
                  "pattern": "[1-9a-km-zA-HJ-NP-Z]{1,11}",
                  "type": "string"
                },
                "keyType": {
                  "type": "string"
                },
                "name": {
                  "type": "string"
                },
                "publicKey": {
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": "array"
          },
          "sshLoginName": {
            "description": "Username for SSH destinations",
            "example": "bob",
            "type": "string"
          },
          "updated": {
            "description": "Date the user was updated",
            "example": "2022-03-14T09:48:00Z",
            "format": "date-time",
            "type": "string"
          }
        }
      },
      "User": {
        "properties": {
          "created": {
            "description": "Date the user was created",
            "example": "2022-03-14T09:48:00Z",
            "format": "date-time",
            "type": "string"
          },
          "id": {
            "description": "User ID",
            "example": "4ACFkc434M",
            "format": "uid",
            "pattern": "[1-9a-km-zA-HJ-NP-Z]{1,11}",
            "type": "string"
          },
          "lastSeenAt": {
            "description": "Date the user was last seen",
            "example": "2022-03-14T09:48:00Z",
            "format": "date-time",
            "type": "string"
          },
          "name": {
            "description": "Name of the user",
            "example": "bob@example.com",
            "type": "string"
          },
          "providerNames": {
            "description": "List of providers this user belongs to",
            "example": "['okta']",
            "items": {
              "description": "List of providers this user belongs to",
              "example": "['okta']",
              "type": "string"
            },
            "type": "array"
          },
          "publicKeys": {
            "description": "List of the users public keys",
            "items": {
              "description": "List of the users public keys",
              "properties": {
                "created": {
                  "description": "formatted as an RFC3339 date-time",
                  "example": "2022-03-14T09:48:00Z",
                  "format": "date-time",
                  "type": "string"
                },
                "expires": {
                  "description": "formatted as an RFC3339 date-time",
                  "example": "2022-03-14T09:48:00Z",
                  "format": "date-time",
                  "type": "string"
                },
                "fingerprint": {
                  "description": "SHA256 fingerprint of the key",
                  "type": "string"
                },
                "id": {
                  "example": "4yJ3n3D8E2",
                  "format": "uid",
                  "pattern": "[1-9a-km-zA-HJ-NP-Z]{1,11}",
                  "type": "string"
                },
                "keyType": {
                  "type": "string"
                },
                "name": {
                  "type": "string"
                },
                "publicKey": {
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": "array"
          },
          "sshLoginName": {
            "description": "Username for SSH destinations",
            "example": "bob",
            "type": "string"
          },
          "updated": {
            "description": "Date the user was updated",
            "example": "2022-03-14T09:48:00Z",
            "format": "date-time",
            "type": "string"
          }
        }
      },
      "UserPublicKey": {
        "properties": {
          "created": {
            "description": "formatted as an RFC3339 date-time",
            "example": "2022-03-14T09:48:00Z",
            "format": "date-time",
            "type": "string"
          },
          "expires": {
            "description": "formatted as an RFC3339 date-time",
            "example": "2022-03-14T09:48:00Z",
            "format": "date-time",
            "type": "string"
          },
          "fingerprint": {
            "description": "SHA256 fingerprint of the key",
            "type": "string"
          },
          "id": {
            "example": "4yJ3n3D8E2",
            "format": "uid",
            "pattern": "[1-9a-km-zA-HJ-NP-Z]{1,11}",
            "type": "string"
          },
          "keyType": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "publicKey": {
            "type": "string"
          }
        }
      },
      "Version": {
        "properties": {
          "version": {
            "type": "string"
          }
        }
      }
    }
  },
  "info": {
    "description": "Infra API",
    "license": {
      "name": "Elastic License v2.0",
      "url": "https://www.elastic.co/licensing/elastic-license"
    },
    "title": "Infra API",
    "version": "0.0.0"
  },
  "paths": {
    "/api/access-keys": {
      "delete": {
        "description": "DeleteAccessKeys",
        "operationId": "DeleteAccessKeys",
        "parameters": [
          {
            "in": "header",
            "name": "Infra-Version",
            "required": true,
            "schema": {
              "description": "Version of the API being requested",
              "example": "0.0.0",
              "format": "\\d+\\.\\d+\\(.\\d+)?(-.\\w(+\\w)?)?",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Authorization",
            "required": true,
            "schema": {
              "description": "Bearer followed by your access key",
              "example": "Bearer ACCESSKEY",
              "format": "Bearer [\\da-zA-Z]{10}\\.[\\da-zA-Z]{24}",
              "type": "string"
            }
          },
          {
            "description": "Name of the access key to delete",
            "example": "cicdkey",
            "in": "query",
            "name": "name",
            "schema": {
              "description": "Name of the access key to delete",
              "example": "cicdkey",
              "format": "[a-zA-Z0-9\\-_.]",
              "maxLength": 256,
              "minLength": 2,
              "type": "string"
            }
          }
        ],
        "responses": {
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized: Requestor is not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden: Requestor does not have the right permissions"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Duplicate Record"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmptyResponse"
                }
              }
            },
            "description": "Success"
          }
        },
        "summary": "DeleteAccessKeys",
        "tags": [
          "Authentication"
        ]
      },
      "get": {
        "description": "ListAccessKeys",
        "operationId": "ListAccessKeys",
        "parameters": [
          {
            "in": "header",
            "name": "Infra-Version",
            "required": true,
            "schema": {
              "description": "Version of the API being requested",
              "example": "0.0.0",
              "format": "\\d+\\.\\d+\\(.\\d+)?(-.\\w(+\\w)?)?",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Authorization",
            "required": true,
            "schema": {
              "description": "Bearer followed by your access key",
              "example": "Bearer ACCESSKEY",
              "format": "Bearer [\\da-zA-Z]{10}\\.[\\da-zA-Z]{24}",
              "type": "string"
            }
          },
          {
            "description": "UserID of the user whose access keys you want to list",
            "in": "query",
            "name": "userID",
            "schema": {
              "description": "UserID of the user whose access keys you want to list",
              "example": "4yJ3n3D8E2",
              "format": "uid",
              "pattern": "[1-9a-km-zA-HJ-NP-Z]{1,11}",
              "type": "string"
            }
          },
          {
            "description": "Name of the user",
            "example": "john@example.com",
            "in": "query",
            "name": "name",
            "schema": {
              "description": "Name of the user",
              "example": "john@example.com",
              "type": "string"
            }
          },
          {
            "description": "Whether to show expired access keys. Defaults to false",
            "example": "true",
            "in": "query",
            "name": "showExpired",
            "schema": {
              "description": "Whether to show expired access keys. Defaults to false",
              "example": "true",
              "type": "boolean"
            }
          },
          {
            "description": "Page number to retrieve",
            "example": "1",
            "in": "query",
            "name": "page",
            "schema": {
              "description": "Page number to retrieve",
              "example": "1",
              "format": "int",
              "minimum": 0,
              "type": "integer"
            }
          },
          {
            "description": "Number of objects to retrieve per page (up to 1000)",
            "example": "100",
            "in": "query",
            "name": "limit",
            "schema": {
              "description": "Number of objects to retrieve per page (up to 1000)",
              "example": "100",
              "format": "int",
              "maximum": 1000,
              "minimum": 0,
              "type": "integer"
            }
          }
        ],
        "responses": {
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized: Requestor is not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden: Requestor does not have the right permissions"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Duplicate Record"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListResponse_AccessKey"
                }
              }
            },
            "description": "Success"
          }
        },
        "summary": "ListAccessKeys",
        "tags": [
          "Authentication"
        ]
      },
      "post": {
        "description": "CreateAccessKey",
        "operationId": "CreateAccessKey",
        "parameters": [
          {
            "in": "header",
            "name": "Infra-Version",
            "required": true,
            "schema": {
              "description": "Version of the API being requested",
              "example": "0.0.0",
              "format": "\\d+\\.\\d+\\(.\\d+)?(-.\\w(+\\w)?)?",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Authorization",
            "required": true,
            "schema": {
              "description": "Bearer followed by your access key",
              "example": "Bearer ACCESSKEY",
              "format": "Bearer [\\da-zA-Z]{10}\\.[\\da-zA-Z]{24}",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "expiry": {
                    "description": "maximum time valid",
                    "example": "72h3m6.5s",
                    "format": "duration",
                    "type": "string"
                  },
                  "inactivityTimeout": {
                    "description": "key must be used within this duration to remain valid",
                    "example": "72h3m6.5s",
                    "format": "duration",
                    "type": "string"
                  },
                  "issuedForID": {
                    "example": "4yJ3n3D8E2",
                    "format": "uid",
                    "pattern": "[1-9a-km-zA-HJ-NP-Z]{1,11}",
                    "type": "string"
                  },
                  "issuedForKind": {
                    "enum": [
                      "user",
                      "provider",
                      "organization"
                    ],
                    "type": "string"
                  },
                  "name": {
                    "format": "[a-zA-Z0-9\\-_.]",
                    "maxLength": 256,
                    "minLength": 2,
                    "type": "string"
                  }
                },
                "required": [
                  "issuedForID",
                  "issuedForKind",
                  "expiry",
                  "inactivityTimeout"
                ],
                "type": "object"
              }
            }
          }
        },
        "responses": {
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized: Requestor is not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden: Requestor does not have the right permissions"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Duplicate Record"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateAccessKeyResponse"
                }
              }
            },
            "description": "Success"
          }
        },
        "summary": "CreateAccessKey",
        "tags": [
          "Authentication"
        ]
      }
    },
    "/api/access-keys/{id}": {
      "delete": {
        "description": "DeleteAccessKey",
        "operationId": "DeleteAccessKey",
        "parameters": [
          {
            "in": "header",
            "name": "Infra-Version",
            "required": true,
            "schema": {
              "description": "Version of the API being requested",
              "example": "0.0.0",
              "format": "\\d+\\.\\d+\\(.\\d+)?(-.\\w(+\\w)?)?",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Authorization",
            "required": true,
            "schema": {
              "description": "Bearer followed by your access key",
              "example": "Bearer ACCESSKEY",
              "format": "Bearer [\\da-zA-Z]{10}\\.[\\da-zA-Z]{24}",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "example": "4yJ3n3D8E2",
              "format": "uid",
              "pattern": "[1-9a-km-zA-HJ-NP-Z]{1,11}",
              "type": "string"
            }
          }
        ],
        "responses": {
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized: Requestor is not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden: Requestor does not have the right permissions"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Duplicate Record"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmptyResponse"
                }
              }
            },
            "description": "Success"
          }
        },
        "summary": "DeleteAccessKey",
        "tags": [
          "Authentication"
        ]
      }
    },
    "/api/destinations": {
      "get": {
        "description": "ListDestinations",
        "operationId": "ListDestinations",
        "parameters": [
          {
            "in": "header",
            "name": "Infra-Version",
            "required": true,
            "schema": {
              "description": "Version of the API being requested",
              "example": "0.0.0",
              "format": "\\d+\\.\\d+\\(.\\d+)?(-.\\w(+\\w)?)?",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Authorization",
            "required": true,
            "schema": {
              "description": "Bearer followed by your access key",
              "example": "Bearer ACCESSKEY",
              "format": "Bearer [\\da-zA-Z]{10}\\.[\\da-zA-Z]{24}",
              "type": "string"
            }
          },
          {
            "description": "Name of the destination",
            "example": "production-cluster",
            "in": "query",
            "name": "name",
            "schema": {
              "description": "Name of the destination",
              "example": "production-cluster",
              "type": "string"
            }
          },
          {
            "description": "Kind of destination. eg. kubernetes or ssh or postgres",
            "example": "kubernetes",
            "in": "query",
            "name": "kind",
            "schema": {
              "description": "Kind of destination. eg. kubernetes or ssh or postgres",
              "example": "kubernetes",
              "type": "string"
            }
          },
          {
            "description": "Unique ID generated by the connector",
            "example": "94c2c570a20311180ec325fd56",
            "in": "query",
            "name": "unique_id",
            "schema": {
              "description": "Unique ID generated by the connector",
              "example": "94c2c570a20311180ec325fd56",
              "type": "string"
            }
          },
          {
            "description": "Page number to retrieve",
            "example": "1",
            "in": "query",
            "name": "page",
            "schema": {
              "description": "Page number to retrieve",
              "example": "1",
              "format": "int",
              "minimum": 0,
              "type": "integer"
            }
          },
          {
            "description": "Number of objects to retrieve per page (up to 1000)",
            "example": "100",
            "in": "query",
            "name": "limit",
            "schema": {
              "description": "Number of objects to retrieve per page (up to 1000)",
              "example": "100",
              "format": "int",
              "maximum": 1000,
              "minimum": 0,
              "type": "integer"
            }
          }
        ],
        "responses": {
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized: Requestor is not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden: Requestor does not have the right permissions"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Duplicate Record"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListResponse_Destination"
                }
              }
            },
            "description": "Success"
          }
        },
        "summary": "ListDestinations",
        "tags": [
          "Destinations"
        ]
      },
      "post": {
        "description": "CreateDestination",
        "operationId": "CreateDestination",
        "parameters": [
          {
            "in": "header",
            "name": "Infra-Version",
            "required": true,
            "schema": {
              "description": "Version of the API being requested",
              "example": "0.0.0",
              "format": "\\d+\\.\\d+\\(.\\d+)?(-.\\w(+\\w)?)?",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Authorization",
            "required": true,
            "schema": {
              "description": "Bearer followed by your access key",
              "example": "Bearer ACCESSKEY",
              "format": "Bearer [\\da-zA-Z]{10}\\.[\\da-zA-Z]{24}",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "connection": {
                    "description": "Object that includes the URL and CA for the destination",
                    "properties": {
                      "ca": {
                        "example": "-----BEGIN CERTIFICATE-----\nMIIDNTCCAh2gAwIBAgIRALRetnpcTo9O3V2fAK3ix+c\n-----END CERTIFICATE-----\n",
                        "type": "string"
                      },
                      "url": {
                        "example": "aa60eexample.us-west-2.elb.amazonaws.com",
                        "type": "string"
                      }
                    },
                    "required": [
                      "ca"
                    ],
                    "type": "object"
                  },
                  "kind": {
                    "description": "Kind of destination. eg. kubernetes or ssh or postgres",
                    "enum": [
                      "kubernetes",
                      "ssh",
                      ""
                    ],
                    "example": "kubernetes",
                    "type": "string"
                  },
                  "name": {
                    "description": "Name of the destination",
                    "example": "production-cluster",
                    "format": "[a-zA-Z0-9\\-_]",
                    "maxLength": 256,
                    "minLength": 2,
                    "type": "string"
                  },
                  "resources": {
                    "items": {
                      "type": "string"
                    },
                    "type": "array"
                  },
                  "roles": {
                    "items": {
                      "type": "string"
                    },
                    "type": "array"
                  },
                  "uniqueID": {
                    "description": "Unique ID used to identify this specific destination",
                    "example": "94c2c570a20311180ec325fd56",
                    "type": "string"
                  },
                  "version": {
                    "description": "Application version of the connector for this destination",
                    "type": "string"
                  }
                },
                "required": [
                  "name"
                ],
                "type": "object"
              }
            }
          }
        },
        "responses": {
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized: Requestor is not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden: Requestor does not have the right permissions"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Duplicate Record"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Destination"
                }
              }
            },
            "description": "Success"
          }
        },
        "summary": "CreateDestination",
        "tags": [
          "Destinations"
        ]
      }
    },
    "/api/destinations/{id}": {
      "delete": {
        "description": "DeleteDestination",
        "operationId": "DeleteDestination",
        "parameters": [
          {
            "in": "header",
            "name": "Infra-Version",
            "required": true,
            "schema": {
              "description": "Version of the API being requested",
              "example": "0.0.0",
              "format": "\\d+\\.\\d+\\(.\\d+)?(-.\\w(+\\w)?)?",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Authorization",
            "required": true,
            "schema": {
              "description": "Bearer followed by your access key",
              "example": "Bearer ACCESSKEY",
              "format": "Bearer [\\da-zA-Z]{10}\\.[\\da-zA-Z]{24}",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "example": "4yJ3n3D8E2",
              "format": "uid",
              "pattern": "[1-9a-km-zA-HJ-NP-Z]{1,11}",
              "type": "string"
            }
          }
        ],
        "responses": {
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized: Requestor is not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden: Requestor does not have the right permissions"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Duplicate Record"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmptyResponse"
                }
              }
            },
            "description": "Success"
          }
        },
        "summary": "DeleteDestination",
        "tags": [
          "Destinations"
        ]
      },
      "get": {
        "description": "GetDestination",
        "operationId": "GetDestination",
        "parameters": [
          {
            "in": "header",
            "name": "Infra-Version",
            "required": true,
            "schema": {
              "description": "Version of the API being requested",
              "example": "0.0.0",
              "format": "\\d+\\.\\d+\\(.\\d+)?(-.\\w(+\\w)?)?",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Authorization",
            "required": true,
            "schema": {
              "description": "Bearer followed by your access key",
              "example": "Bearer ACCESSKEY",
              "format": "Bearer [\\da-zA-Z]{10}\\.[\\da-zA-Z]{24}",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "example": "4yJ3n3D8E2",
              "format": "uid",
              "pattern": "[1-9a-km-zA-HJ-NP-Z]{1,11}",
              "type": "string"
            }
          }
        ],
        "responses": {
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized: Requestor is not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden: Requestor does not have the right permissions"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Duplicate Record"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Destination"
                }
              }
            },
            "description": "Success"
          }
        },
        "summary": "GetDestination",
        "tags": [
          "Destinations"
        ]
      },
      "put": {
        "description": "UpdateDestination",
        "operationId": "UpdateDestination",
        "parameters": [
          {
            "in": "header",
            "name": "Infra-Version",
            "required": true,
            "schema": {
              "description": "Version of the API being requested",
              "example": "0.0.0",
              "format": "\\d+\\.\\d+\\(.\\d+)?(-.\\w(+\\w)?)?",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Authorization",
            "required": true,
            "schema": {
              "description": "Bearer followed by your access key",
              "example": "Bearer ACCESSKEY",
              "format": "Bearer [\\da-zA-Z]{10}\\.[\\da-zA-Z]{24}",
              "type": "string"
            }
          },
          {
            "description": "ID of the destination",
            "example": "7a1b26b33F",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "ID of the destination",
              "example": "7a1b26b33F",
              "format": "uid",
              "pattern": "[1-9a-km-zA-HJ-NP-Z]{1,11}",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "connection": {
                    "description": "Object that includes the URL and CA for the destination",
                    "properties": {
                      "ca": {
                        "example": "-----BEGIN CERTIFICATE-----\nMIIDNTCCAh2gAwIBAgIRALRetnpcTo9O3V2fAK3ix+c\n-----END CERTIFICATE-----\n",
                        "type": "string"
                      },
                      "url": {
                        "example": "aa60eexample.us-west-2.elb.amazonaws.com",
                        "type": "string"
                      }
                    },
                    "required": [
                      "ca"
                    ],
                    "type": "object"
                  },
                  "name": {
                    "description": "Name of the destination",
                    "example": "production-cluster",
                    "format": "[a-zA-Z0-9\\-_]",
                    "maxLength": 256,
                    "minLength": 2,
                    "type": "string"
                  },
                  "resources": {
                    "items": {
                      "type": "string"
                    },
                    "type": "array"
                  },
                  "roles": {
                    "items": {
                      "type": "string"
                    },
                    "type": "array"
                  },
                  "uniqueID": {
                    "description": "Unique ID generated by the connector",
                    "example": "94c2c570a20311180ec325fd56",
                    "type": "string"
                  },
                  "version": {
                    "description": "Application version of the connector for this destination",
                    "type": "string"
                  }
                },
                "required": [
                  "name"
                ],
                "type": "object"
              }
            }
          }
        },
        "responses": {
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized: Requestor is not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden: Requestor does not have the right permissions"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Duplicate Record"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Destination"
                }
              }
            },
            "description": "Success"
          }
        },
        "summary": "UpdateDestination",
        "tags": [
          "Destinations"
        ]
      }
    },
    "/api/device": {
      "post": {
        "description": "StartDeviceFlow",
        "operationId": "StartDeviceFlow",
        "parameters": [
          {
            "in": "header",
            "name": "Infra-Version",
            "required": true,
            "schema": {
              "description": "Version of the API being requested",
              "example": "0.0.0",
              "format": "\\d+\\.\\d+\\(.\\d+)?(-.\\w(+\\w)?)?",
              "type": "string"
            }
          }
        ],
        "responses": {
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized: Requestor is not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden: Requestor does not have the right permissions"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Duplicate Record"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeviceFlowResponse"
                }
              }
            },
            "description": "Success"
          }
        },
        "summary": "StartDeviceFlow",
        "tags": [
          "Authentication"
        ]
      }
    },
    "/api/device/approve": {
      "post": {
        "description": "ApproveDeviceFlow",
        "operationId": "ApproveDeviceFlow",
        "parameters": [
          {
            "in": "header",
            "name": "Infra-Version",
            "required": true,
            "schema": {
              "description": "Version of the API being requested",
              "example": "0.0.0",
              "format": "\\d+\\.\\d+\\(.\\d+)?(-.\\w(+\\w)?)?",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Authorization",
            "required": true,
            "schema": {
              "description": "Bearer followed by your access key",
              "example": "Bearer ACCESSKEY",
              "format": "Bearer [\\da-zA-Z]{10}\\.[\\da-zA-Z]{24}",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "userCode": {
                    "example": "BDSD-HQMK",
                    "format": "[B-DF-HJ-NP-TV-XZ\\-]",
                    "maxLength": 9,
                    "minLength": 8,
                    "type": "string"
                  }
                },
                "type": "object"
              }
            }
          }
        },
        "responses": {
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized: Requestor is not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden: Requestor does not have the right permissions"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Duplicate Record"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmptyResponse"
                }
              }
            },
            "description": "Success"
          }
        },
        "summary": "ApproveDeviceFlow",
        "tags": [
          "Authentication"
        ]
      }
    },
    "/api/device/status": {
      "post": {
        "description": "GetDeviceFlowStatus",
        "operationId": "GetDeviceFlowStatus",
        "parameters": [
          {
            "in": "header",
            "name": "Infra-Version",
            "required": true,
            "schema": {
              "description": "Version of the API being requested",
              "example": "0.0.0",
              "format": "\\d+\\.\\d+\\(.\\d+)?(-.\\w(+\\w)?)?",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "deviceCode": {
                    "format": "[a-zA-Z0-9]",
                    "maxLength": 38,
                    "minLength": 38,
                    "type": "string"
                  }
                },
                "type": "object"
              }
            }
          }
        },
        "responses": {
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized: Requestor is not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden: Requestor does not have the right permissions"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Duplicate Record"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeviceFlowStatusResponse"
                }
              }
            },
            "description": "Success"
          }
        },
        "summary": "GetDeviceFlowStatus",
        "tags": [
          "Authentication"
        ]
      }
    },
    "/api/forgot-domain-request": {
      "post": {
        "description": "RequestForgotDomains",
        "operationId": "RequestForgotDomains",
        "parameters": [
          {
            "in": "header",
            "name": "Infra-Version",
            "required": true,
            "schema": {
              "description": "Version of the API being requested",
              "example": "0.0.0",
              "format": "\\d+\\.\\d+\\(.\\d+)?(-.\\w(+\\w)?)?",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "email": {
                    "format": "email",
                    "type": "string"
                  }
                },
                "required": [
                  "email"
                ],
                "type": "object"
              }
            }
          }
        },
        "responses": {
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized: Requestor is not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden: Requestor does not have the right permissions"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Duplicate Record"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmptyResponse"
                }
              }
            },
            "description": "Success"
          }
        },
        "summary": "RequestForgotDomains",
        "tags": [
          "Organizations"
        ]
      }
    },
    "/api/grants": {
      "get": {
        "description": "ListGrants",
        "operationId": "ListGrants",
        "parameters": [
          {
            "in": "header",
            "name": "Infra-Version",
            "required": true,
            "schema": {
              "description": "Version of the API being requested",
              "example": "0.0.0",
              "format": "\\d+\\.\\d+\\(.\\d+)?(-.\\w(+\\w)?)?",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Authorization",
            "required": true,
            "schema": {
              "description": "Bearer followed by your access key",
              "example": "Bearer ACCESSKEY",
              "format": "Bearer [\\da-zA-Z]{10}\\.[\\da-zA-Z]{24}",
              "type": "string"
            }
          },
          {
            "description": "ID of user granted access",
            "example": "6TjWTAgYYu",
            "in": "query",
            "name": "user",
            "schema": {
              "description": "ID of user granted access",
              "example": "6TjWTAgYYu",
              "format": "uid",
              "pattern": "[1-9a-km-zA-HJ-NP-Z]{1,11}",
              "type": "string"
            }
          },
          {
            "description": "ID of group granted access",
            "example": "6k3Eqcqu6B",
            "in": "query",
            "name": "group",
            "schema": {
              "description": "ID of group granted access",
              "example": "6k3Eqcqu6B",
              "format": "uid",
              "pattern": "[1-9a-km-zA-HJ-NP-Z]{1,11}",
              "type": "string"
            }
          },
          {
            "description": "a resource name",
            "example": "production.namespace",
            "in": "query",
            "name": "resource",
            "schema": {
              "description": "a resource name",
              "example": "production.namespace",
              "type": "string"
            }
          },
          {
            "description": "name of the destination where a connector is installed",
            "example": "production",
            "in": "query",
            "name": "destination",
            "schema": {
              "description": "name of the destination where a connector is installed",
              "example": "production",
              "format": "[a-zA-Z0-9\\-_]",
              "maxLength": 256,
              "minLength": 2,
              "type": "string"
            }
          },
          {
            "description": "a role or permission",
            "example": "view",
            "in": "query",
            "name": "privilege",
            "schema": {
              "description": "a role or permission",
              "example": "view",
              "type": "string"
            }
          },
          {
            "description": "if true, this field includes grants that the user inherits through groups",
            "example": "true",
            "in": "query",
            "name": "showInherited",
            "schema": {
              "description": "if true, this field includes grants that the user inherits through groups",
              "example": "true",
              "type": "boolean"
            }
          },
          {
            "description": "if true, this shows the connector and other internal grants",
            "example": "false",
            "in": "query",
            "name": "showSystem",
            "schema": {
              "description": "if true, this shows the connector and other internal grants",
              "example": "false",
              "type": "boolean"
            }
          },
          {
            "description": "set this to the value of the Last-Update-Index response header to block until the list results have changed",
            "in": "query",
            "name": "lastUpdateIndex",
            "schema": {
              "description": "set this to the value of the Last-Update-Index response header to block until the list results have changed",
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "description": "Page number to retrieve",
            "example": "1",
            "in": "query",
            "name": "page",
            "schema": {
              "description": "Page number to retrieve",
              "example": "1",
              "format": "int",
              "minimum": 0,
              "type": "integer"
            }
          },
          {
            "description": "Number of objects to retrieve per page (up to 1000)",
            "example": "100",
            "in": "query",
            "name": "limit",
            "schema": {
              "description": "Number of objects to retrieve per page (up to 1000)",
              "example": "100",
              "format": "int",
              "maximum": 1000,
              "minimum": 0,
              "type": "integer"
            }
          }
        ],
        "responses": {
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized: Requestor is not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden: Requestor does not have the right permissions"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Duplicate Record"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListResponse_Grant"
                }
              }
            },
            "description": "Success"
          }
        },
        "summary": "ListGrants",
        "tags": [
          "Grants"
        ]
      },
      "patch": {
        "description": "UpdateGrants",
        "operationId": "UpdateGrants",
        "parameters": [
          {
            "in": "header",
            "name": "Infra-Version",
            "required": true,
            "schema": {
              "description": "Version of the API being requested",
              "example": "0.0.0",
              "format": "\\d+\\.\\d+\\(.\\d+)?(-.\\w(+\\w)?)?",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Authorization",
            "required": true,
            "schema": {
              "description": "Bearer followed by your access key",
              "example": "Bearer ACCESSKEY",
              "format": "Bearer [\\da-zA-Z]{10}\\.[\\da-zA-Z]{24}",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "grantsToAdd": {
                    "description": "List of grant objects. See POST api/grants for more",
                    "items": {
                      "description": "List of grant objects. See POST api/grants for more",
                      "oneOf": [
                        {
                          "required": [
                            "user"
                          ]
                        },
                        {
                          "required": [
                            "userName"
                          ]
                        },
                        {
                          "required": [
                            "group"
                          ]
                        },
                        {
                          "required": [
                            "groupName"
                          ]
                        }
                      ],
                      "properties": {
                        "group": {
                          "description": "ID of the group granted access",
                          "example": "6Ti2p7r1h7",
                          "format": "uid",
                          "pattern": "[1-9a-km-zA-HJ-NP-Z]{1,11}",
                          "type": "string"
                        },
                        "groupName": {
                          "description": "Name of the group granted access",
                          "example": "dev",
                          "type": "string"
                        },
                        "privilege": {
                          "description": "a role or permission",
                          "example": "view",
                          "type": "string"
                        },
                        "resource": {
                          "description": "a resource name in Infra's Universal Resource Notation",
                          "example": "production",
                          "type": "string"
                        },
                        "user": {
                          "description": "ID of the user granted access",
                          "example": "6kdoMDd6PA",
                          "format": "uid",
                          "pattern": "[1-9a-km-zA-HJ-NP-Z]{1,11}",
                          "type": "string"
                        },
                        "userName": {
                          "description": "Name of the user granted access",
                          "example": "admin@example.com",
                          "type": "string"
                        }
                      },
                      "required": [
                        "privilege",
                        "resource"
                      ],
                      "type": "object"
                    },
                    "type": "array"
                  },
                  "grantsToRemove": {
                    "description": "List of grant objects. See POST api/grants for more",
                    "items": {
                      "description": "List of grant objects. See POST api/grants for more",
                      "oneOf": [
                        {
                          "required": [
                            "user"
                          ]
                        },
                        {
                          "required": [
                            "userName"
                          ]
                        },
                        {
                          "required": [
                            "group"
                          ]
                        },
                        {
                          "required": [
                            "groupName"
                          ]
                        }
                      ],
                      "properties": {
                        "group": {
                          "description": "ID of the group granted access",
                          "example": "6Ti2p7r1h7",
                          "format": "uid",
                          "pattern": "[1-9a-km-zA-HJ-NP-Z]{1,11}",
                          "type": "string"
                        },
                        "groupName": {
                          "description": "Name of the group granted access",
                          "example": "dev",
                          "type": "string"
                        },
                        "privilege": {
                          "description": "a role or permission",
                          "example": "view",
                          "type": "string"
                        },
                        "resource": {
                          "description": "a resource name in Infra's Universal Resource Notation",
                          "example": "production",
                          "type": "string"
                        },
                        "user": {
                          "description": "ID of the user granted access",
                          "example": "6kdoMDd6PA",
                          "format": "uid",
                          "pattern": "[1-9a-km-zA-HJ-NP-Z]{1,11}",
                          "type": "string"
                        },
                        "userName": {
                          "description": "Name of the user granted access",
                          "example": "admin@example.com",
                          "type": "string"
                        }
                      },
                      "required": [
                        "privilege",
                        "resource"
                      ],
                      "type": "object"
                    },
                    "type": "array"
                  }
                },
                "type": "object"
              }
            }
          }
        },
        "responses": {
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized: Requestor is not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden: Requestor does not have the right permissions"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Duplicate Record"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmptyResponse"
                }
              }
            },
            "description": "Success"
          }
        },
        "summary": "UpdateGrants",
        "tags": [
          "Grants"
        ]
      },
      "post": {
        "description": "CreateGrant",
        "operationId": "CreateGrant",
        "parameters": [
          {
            "in": "header",
            "name": "Infra-Version",
            "required": true,
            "schema": {
              "description": "Version of the API being requested",
              "example": "0.0.0",
              "format": "\\d+\\.\\d+\\(.\\d+)?(-.\\w(+\\w)?)?",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Authorization",
            "required": true,
            "schema": {
              "description": "Bearer followed by your access key",
              "example": "Bearer ACCESSKEY",
              "format": "Bearer [\\da-zA-Z]{10}\\.[\\da-zA-Z]{24}",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "oneOf": [
                  {
                    "required": [
                      "user"
                    ]
                  },
                  {
                    "required": [
                      "userName"
                    ]
                  },
                  {
                    "required": [
                      "group"
                    ]
                  },
                  {
                    "required": [
                      "groupName"
                    ]
                  }
                ],
                "properties": {
                  "group": {
                    "description": "ID of the group granted access",
                    "example": "6Ti2p7r1h7",
                    "format": "uid",
                    "pattern": "[1-9a-km-zA-HJ-NP-Z]{1,11}",
                    "type": "string"
                  },
                  "groupName": {
                    "description": "Name of the group granted access",
                    "example": "dev",
                    "type": "string"
                  },
                  "privilege": {
                    "description": "a role or permission",
                    "example": "view",
                    "type": "string"
                  },
                  "resource": {
                    "description": "a resource name in Infra's Universal Resource Notation",
                    "example": "production",
                    "type": "string"
                  },
                  "user": {
                    "description": "ID of the user granted access",
                    "example": "6kdoMDd6PA",
                    "format": "uid",
                    "pattern": "[1-9a-km-zA-HJ-NP-Z]{1,11}",
                    "type": "string"
                  },
                  "userName": {
                    "description": "Name of the user granted access",
                    "example": "admin@example.com",
                    "type": "string"
                  }
                },
                "required": [
                  "privilege",
                  "resource"
                ],
                "type": "object"
              }
            }
          }
        },
        "responses": {
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized: Requestor is not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden: Requestor does not have the right permissions"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Duplicate Record"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateGrantResponse"
                }
              }
            },
            "description": "Success"
          }
        },
        "summary": "CreateGrant",
        "tags": [
          "Grants"
        ]
      }
    },
    "/api/grants/{id}": {
      "delete": {
        "description": "DeleteGrant",
        "operationId": "DeleteGrant",
        "parameters": [
          {
            "in": "header",
            "name": "Infra-Version",
            "required": true,
            "schema": {
              "description": "Version of the API being requested",
              "example": "0.0.0",
              "format": "\\d+\\.\\d+\\(.\\d+)?(-.\\w(+\\w)?)?",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Authorization",
            "required": true,
            "schema": {
              "description": "Bearer followed by your access key",
              "example": "Bearer ACCESSKEY",
              "format": "Bearer [\\da-zA-Z]{10}\\.[\\da-zA-Z]{24}",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "example": "4yJ3n3D8E2",
              "format": "uid",
              "pattern": "[1-9a-km-zA-HJ-NP-Z]{1,11}",
              "type": "string"
            }
          }
        ],
        "responses": {
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized: Requestor is not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden: Requestor does not have the right permissions"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Duplicate Record"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmptyResponse"
                }
              }
            },
            "description": "Success"
          }
        },
        "summary": "DeleteGrant",
        "tags": [
          "Grants"
        ]
      },
      "get": {
        "description": "GetGrant",
        "operationId": "GetGrant",
        "parameters": [
          {
            "in": "header",
            "name": "Infra-Version",
            "required": true,
            "schema": {
              "description": "Version of the API being requested",
              "example": "0.0.0",
              "format": "\\d+\\.\\d+\\(.\\d+)?(-.\\w(+\\w)?)?",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Authorization",
            "required": true,
            "schema": {
              "description": "Bearer followed by your access key",
              "example": "Bearer ACCESSKEY",
              "format": "Bearer [\\da-zA-Z]{10}\\.[\\da-zA-Z]{24}",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "example": "4yJ3n3D8E2",
              "format": "uid",
              "pattern": "[1-9a-km-zA-HJ-NP-Z]{1,11}",
              "type": "string"
            }
          }
        ],
        "responses": {
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized: Requestor is not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden: Requestor does not have the right permissions"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Duplicate Record"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Grant"
                }
              }
            },
            "description": "Success"
          }
        },
        "summary": "GetGrant",
        "tags": [
          "Grants"
        ]
      }
    },
    "/api/groups": {
      "get": {
        "description": "ListGroups",
        "operationId": "ListGroups",
        "parameters": [
          {
            "in": "header",
            "name": "Infra-Version",
            "required": true,
            "schema": {
              "description": "Version of the API being requested",
              "example": "0.0.0",
              "format": "\\d+\\.\\d+\\(.\\d+)?(-.\\w(+\\w)?)?",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Authorization",
            "required": true,
            "schema": {
              "description": "Bearer followed by your access key",
              "example": "Bearer ACCESSKEY",
              "format": "Bearer [\\da-zA-Z]{10}\\.[\\da-zA-Z]{24}",
              "type": "string"
            }
          },
          {
            "description": "Name of the group to retrieve",
            "example": "admins",
            "in": "query",
            "name": "name",
            "schema": {
              "description": "Name of the group to retrieve",
              "example": "admins",
              "type": "string"
            }
          },
          {
            "description": "UserID of a user who is a member of the group",
            "in": "query",
            "name": "userID",
            "schema": {
              "description": "UserID of a user who is a member of the group",
              "example": "4yJ3n3D8E2",
              "format": "uid",
              "pattern": "[1-9a-km-zA-HJ-NP-Z]{1,11}",
              "type": "string"
            }
          },
          {
            "description": "Page number to retrieve",
            "example": "1",
            "in": "query",
            "name": "page",
            "schema": {
              "description": "Page number to retrieve",
              "example": "1",
              "format": "int",
              "minimum": 0,
              "type": "integer"
            }
          },
          {
            "description": "Number of objects to retrieve per page (up to 1000)",
            "example": "100",
            "in": "query",
            "name": "limit",
            "schema": {
              "description": "Number of objects to retrieve per page (up to 1000)",
              "example": "100",
              "format": "int",
              "maximum": 1000,
              "minimum": 0,
              "type": "integer"
            }
          }
        ],
        "responses": {
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized: Requestor is not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden: Requestor does not have the right permissions"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Duplicate Record"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListResponse_Group"
                }
              }
            },
            "description": "Success"
          }
        },
        "summary": "ListGroups",
        "tags": [
          "Groups"
        ]
      },
      "post": {
        "description": "CreateGroup",
        "operationId": "CreateGroup",
        "parameters": [
          {
            "in": "header",
            "name": "Infra-Version",
            "required": true,
            "schema": {
              "description": "Version of the API being requested",
              "example": "0.0.0",
              "format": "\\d+\\.\\d+\\(.\\d+)?(-.\\w(+\\w)?)?",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Authorization",
            "required": true,
            "schema": {
              "description": "Bearer followed by your access key",
              "example": "Bearer ACCESSKEY",
              "format": "Bearer [\\da-zA-Z]{10}\\.[\\da-zA-Z]{24}",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "name": {
                    "description": "Name of the group",
                    "example": "development",
                    "type": "string"
                  }
                },
                "required": [
                  "name"
                ],
                "type": "object"
              }
            }
          }
        },
        "responses": {
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized: Requestor is not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden: Requestor does not have the right permissions"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Duplicate Record"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Group"
                }
              }
            },
            "description": "Success"
          }
        },
        "summary": "CreateGroup",
        "tags": [
          "Groups"
        ]
      }
    },
    "/api/groups/{id}": {
      "delete": {
        "description": "DeleteGroup",
        "operationId": "DeleteGroup",
        "parameters": [
          {
            "in": "header",
            "name": "Infra-Version",
            "required": true,
            "schema": {
              "description": "Version of the API being requested",
              "example": "0.0.0",
              "format": "\\d+\\.\\d+\\(.\\d+)?(-.\\w(+\\w)?)?",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Authorization",
            "required": true,
            "schema": {
              "description": "Bearer followed by your access key",
              "example": "Bearer ACCESSKEY",
              "format": "Bearer [\\da-zA-Z]{10}\\.[\\da-zA-Z]{24}",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "example": "4yJ3n3D8E2",
              "format": "uid",
              "pattern": "[1-9a-km-zA-HJ-NP-Z]{1,11}",
              "type": "string"
            }
          }
        ],
        "responses": {
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized: Requestor is not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden: Requestor does not have the right permissions"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Duplicate Record"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmptyResponse"
                }
              }
            },
            "description": "Success"
          }
        },
        "summary": "DeleteGroup",
        "tags": [
          "Groups"
        ]
      },
      "get": {
        "description": "GetGroup",
        "operationId": "GetGroup",
        "parameters": [
          {
            "in": "header",
            "name": "Infra-Version",
            "required": true,
            "schema": {
              "description": "Version of the API being requested",
              "example": "0.0.0",
              "format": "\\d+\\.\\d+\\(.\\d+)?(-.\\w(+\\w)?)?",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Authorization",
            "required": true,
            "schema": {
              "description": "Bearer followed by your access key",
              "example": "Bearer ACCESSKEY",
              "format": "Bearer [\\da-zA-Z]{10}\\.[\\da-zA-Z]{24}",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "example": "4yJ3n3D8E2",
              "format": "uid",
              "pattern": "[1-9a-km-zA-HJ-NP-Z]{1,11}",
              "type": "string"
            }
          }
        ],
        "responses": {
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized: Requestor is not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden: Requestor does not have the right permissions"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Duplicate Record"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Group"
                }
              }
            },
            "description": "Success"
          }
        },
        "summary": "GetGroup",
        "tags": [
          "Groups"
        ]
      }
    },
    "/api/groups/{id}/users": {
      "patch": {
        "description": "UpdateUsersInGroup",
        "operationId": "UpdateUsersInGroup",
        "parameters": [
          {
            "in": "header",
            "name": "Infra-Version",
            "required": true,
            "schema": {
              "description": "Version of the API being requested",
              "example": "0.0.0",
              "format": "\\d+\\.\\d+\\(.\\d+)?(-.\\w(+\\w)?)?",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Authorization",
            "required": true,
            "schema": {
              "description": "Bearer followed by your access key",
              "example": "Bearer ACCESSKEY",
              "format": "Bearer [\\da-zA-Z]{10}\\.[\\da-zA-Z]{24}",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "example": "4yJ3n3D8E2",
              "format": "uid",
              "pattern": "[1-9a-km-zA-HJ-NP-Z]{1,11}",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "usersToAdd": {
                    "description": "List of user IDs to add to the group",
                    "example": "[6dYiUyYgKa,6hPY5vqB2R]",
                    "items": {
                      "description": "List of user IDs to add to the group",
                      "example": "[6dYiUyYgKa,6hPY5vqB2R]",
                      "format": "uid",
                      "pattern": "[1-9a-km-zA-HJ-NP-Z]{1,11}",
                      "type": "string"
                    },
                    "type": "array"
                  },
                  "usersToRemove": {
                    "description": "List of  user IDs to remove from the group",
                    "example": "[3w5qrK7ets,4Ajzyzckdn]",
                    "items": {
                      "description": "List of  user IDs to remove from the group",
                      "example": "[3w5qrK7ets,4Ajzyzckdn]",
                      "format": "uid",
                      "pattern": "[1-9a-km-zA-HJ-NP-Z]{1,11}",
                      "type": "string"
                    },
                    "type": "array"
                  }
                },
                "type": "object"
              }
            }
          }
        },
        "responses": {
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized: Requestor is not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden: Requestor does not have the right permissions"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Duplicate Record"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmptyResponse"
                }
              }
            },
            "description": "Success"
          }
        },
        "summary": "UpdateUsersInGroup",
        "tags": [
          "Groups",
          "Users"
        ]
      }
    },
    "/api/login": {
      "post": {
        "description": "Login",
        "operationId": "Login",
        "parameters": [
          {
            "in": "header",
            "name": "Infra-Version",
            "required": true,
            "schema": {
              "description": "Version of the API being requested",
              "example": "0.0.0",
              "format": "\\d+\\.\\d+\\(.\\d+)?(-.\\w(+\\w)?)?",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "oneOf": [
                  {
                    "required": [
                      "accessKey"
                    ]
                  },
                  {
                    "required": [
                      "passwordCredentials"
                    ]
                  },
                  {
                    "required": [
                      "oidc"
                    ]
                  }
                ],
                "properties": {
                  "accessKey": {
                    "type": "string"
                  },
                  "oidc": {
                    "properties": {
                      "code": {
                        "type": "string"
                      },
                      "providerID": {
                        "example": "4yJ3n3D8E2",
                        "format": "uid",
                        "pattern": "[1-9a-km-zA-HJ-NP-Z]{1,11}",
                        "type": "string"
                      },
                      "redirectURL": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "redirectURL",
                      "code"
                    ],
                    "type": "object"
                  },
                  "passwordCredentials": {
                    "properties": {
                      "name": {
                        "type": "string"
                      },
                      "password": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "name",
                      "password"
                    ],
                    "type": "object"
                  }
                },
                "type": "object"
              }
            }
          }
        },
        "responses": {
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized: Requestor is not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden: Requestor does not have the right permissions"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Duplicate Record"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoginResponse"
                }
              }
            },
            "description": "Success"
          }
        },
        "summary": "Login",
        "tags": [
          "Authentication"
        ]
      }
    },
    "/api/logout": {
      "post": {
        "description": "Logout",
        "operationId": "Logout",
        "parameters": [
          {
            "in": "header",
            "name": "Infra-Version",
            "required": true,
            "schema": {
              "description": "Version of the API being requested",
              "example": "0.0.0",
              "format": "\\d+\\.\\d+\\(.\\d+)?(-.\\w(+\\w)?)?",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Authorization",
            "required": true,
            "schema": {
              "description": "Bearer followed by your access key",
              "example": "Bearer ACCESSKEY",
              "format": "Bearer [\\da-zA-Z]{10}\\.[\\da-zA-Z]{24}",
              "type": "string"
            }
          }
        ],
        "responses": {
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized: Requestor is not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden: Requestor does not have the right permissions"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Duplicate Record"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmptyResponse"
                }
              }
            },
            "description": "Success"
          }
        },
        "summary": "Logout",
        "tags": [
          "Authentication"
        ]
      }
    },
    "/api/organizations": {
      "get": {
        "description": "ListOrganizations",
        "operationId": "ListOrganizations",
        "parameters": [
          {
            "in": "header",
            "name": "Infra-Version",
            "required": true,
            "schema": {
              "description": "Version of the API being requested",
              "example": "0.0.0",
              "format": "\\d+\\.\\d+\\(.\\d+)?(-.\\w(+\\w)?)?",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Authorization",
            "required": true,
            "schema": {
              "description": "Bearer followed by your access key",
              "example": "Bearer ACCESSKEY",
              "format": "Bearer [\\da-zA-Z]{10}\\.[\\da-zA-Z]{24}",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "name",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Page number to retrieve",
            "example": "1",
            "in": "query",
            "name": "page",
            "schema": {
              "description": "Page number to retrieve",
              "example": "1",
              "format": "int",
              "minimum": 0,
              "type": "integer"
            }
          },
          {
            "description": "Number of objects to retrieve per page (up to 1000)",
            "example": "100",
            "in": "query",
            "name": "limit",
            "schema": {
              "description": "Number of objects to retrieve per page (up to 1000)",
              "example": "100",
              "format": "int",
              "maximum": 1000,
              "minimum": 0,
              "type": "integer"
            }
          }
        ],
        "responses": {
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized: Requestor is not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden: Requestor does not have the right permissions"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Duplicate Record"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListResponse_Organization"
                }
              }
            },
            "description": "Success"
          }
        },
        "summary": "ListOrganizations",
        "tags": [
          "Organizations"
        ]
      },
      "post": {
        "description": "CreateOrganization",
        "operationId": "CreateOrganization",
        "parameters": [
          {
            "in": "header",
            "name": "Infra-Version",
            "required": true,
            "schema": {
              "description": "Version of the API being requested",
              "example": "0.0.0",
              "format": "\\d+\\.\\d+\\(.\\d+)?(-.\\w(+\\w)?)?",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Authorization",
            "required": true,
            "schema": {
              "description": "Bearer followed by your access key",
              "example": "Bearer ACCESSKEY",
              "format": "Bearer [\\da-zA-Z]{10}\\.[\\da-zA-Z]{24}",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "domain": {
                    "type": "string"
                  },
                  "name": {
                    "format": "[a-zA-Z0-9\\-_.]",
                    "maxLength": 256,
                    "minLength": 2,
                    "type": "string"
                  }
                },
                "required": [
                  "name",
                  "domain"
                ],
                "type": "object"
              }
            }
          }
        },
        "responses": {
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized: Requestor is not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden: Requestor does not have the right permissions"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Duplicate Record"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Organization"
                }
              }
            },
            "description": "Success"
          }
        },
        "summary": "CreateOrganization",
        "tags": [
          "Organizations"
        ]
      }
    },
    "/api/organizations/{id}": {
      "delete": {
        "description": "DeleteOrganization",
        "operationId": "DeleteOrganization",
        "parameters": [
          {
            "in": "header",
            "name": "Infra-Version",
            "required": true,
            "schema": {
              "description": "Version of the API being requested",
              "example": "0.0.0",
              "format": "\\d+\\.\\d+\\(.\\d+)?(-.\\w(+\\w)?)?",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Authorization",
            "required": true,
            "schema": {
              "description": "Bearer followed by your access key",
              "example": "Bearer ACCESSKEY",
              "format": "Bearer [\\da-zA-Z]{10}\\.[\\da-zA-Z]{24}",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "example": "4yJ3n3D8E2",
              "format": "uid",
              "pattern": "[1-9a-km-zA-HJ-NP-Z]{1,11}",
              "type": "string"
            }
          }
        ],
        "responses": {
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized: Requestor is not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden: Requestor does not have the right permissions"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Duplicate Record"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmptyResponse"
                }
              }
            },
            "description": "Success"
          }
        },
        "summary": "DeleteOrganization",
        "tags": [
          "Organizations"
        ]
      },
      "get": {
        "description": "GetOrganization",
        "operationId": "GetOrganization",
        "parameters": [
          {
            "in": "header",
            "name": "Infra-Version",
            "required": true,
            "schema": {
              "description": "Version of the API being requested",
              "example": "0.0.0",
              "format": "\\d+\\.\\d+\\(.\\d+)?(-.\\w(+\\w)?)?",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Authorization",
            "required": true,
            "schema": {
              "description": "Bearer followed by your access key",
              "example": "Bearer ACCESSKEY",
              "format": "Bearer [\\da-zA-Z]{10}\\.[\\da-zA-Z]{24}",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "a uid or the literal self",
              "example": "4yJ3n3D8E2",
              "format": "uid|self",
              "pattern": "[1-9a-km-zA-HJ-NP-Z]{1,11}|self",
              "type": "string"
            }
          }
        ],
        "responses": {
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized: Requestor is not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden: Requestor does not have the right permissions"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Duplicate Record"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Organization"
                }
              }
            },
            "description": "Success"
          }
        },
        "summary": "GetOrganization",
        "tags": [
          "Organizations"
        ]
      },
      "put": {
        "description": "UpdateOrganization",
        "operationId": "UpdateOrganization",
        "parameters": [
          {
            "in": "header",
            "name": "Infra-Version",
            "required": true,
            "schema": {
              "description": "Version of the API being requested",
              "example": "0.0.0",
              "format": "\\d+\\.\\d+\\(.\\d+)?(-.\\w(+\\w)?)?",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Authorization",
            "required": true,
            "schema": {
              "description": "Bearer followed by your access key",
              "example": "Bearer ACCESSKEY",
              "format": "Bearer [\\da-zA-Z]{10}\\.[\\da-zA-Z]{24}",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "example": "4yJ3n3D8E2",
              "format": "uid",
              "pattern": "[1-9a-km-zA-HJ-NP-Z]{1,11}",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "allowedDomains": {
                    "items": {
                      "type": "string"
                    },
                    "type": "array"
                  }
                },
                "required": [
                  "allowedDomains"
                ],
                "type": "object"
              }
            }
          }
        },
        "responses": {
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized: Requestor is not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden: Requestor does not have the right permissions"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Duplicate Record"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Organization"
                }
              }
            },
            "description": "Success"
          }
        },
        "summary": "UpdateOrganization",
        "tags": [
          "Organizations"
        ]
      }
    },
    "/api/password-reset": {
      "post": {
        "description": "VerifiedPasswordReset",
        "operationId": "VerifiedPasswordReset",
        "parameters": [
          {
            "in": "header",
            "name": "Infra-Version",
            "required": true,
            "schema": {
              "description": "Version of the API being requested",
              "example": "0.0.0",
              "format": "\\d+\\.\\d+\\(.\\d+)?(-.\\w(+\\w)?)?",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "password": {
                    "type": "string"
                  },
                  "token": {
                    "format": "[a-zA-Z0-9]",
                    "maxLength": 10,
                    "minLength": 10,
                    "type": "string"
                  }
                },
                "required": [
                  "token",
                  "password"
                ],
                "type": "object"
              }
            }
          }
        },
        "responses": {
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized: Requestor is not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden: Requestor does not have the right permissions"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Duplicate Record"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoginResponse"
                }
              }
            },
            "description": "Success"
          }
        },
        "summary": "VerifiedPasswordReset",
        "tags": [
          "Authentication"
        ]
      }
    },
    "/api/password-reset-request": {
      "post": {
        "description": "RequestPasswordReset",
        "operationId": "RequestPasswordReset",
        "parameters": [
          {
            "in": "header",
            "name": "Infra-Version",
            "required": true,
            "schema": {
              "description": "Version of the API being requested",
              "example": "0.0.0",
              "format": "\\d+\\.\\d+\\(.\\d+)?(-.\\w(+\\w)?)?",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "email": {
                    "format": "email",
                    "type": "string"
                  }
                },
                "required": [
                  "email"
                ],
                "type": "object"
              }
            }
          }
        },
        "responses": {
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized: Requestor is not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden: Requestor does not have the right permissions"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Duplicate Record"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmptyResponse"
                }
              }
            },
            "description": "Success"
          }
        },
        "summary": "RequestPasswordReset",
        "tags": [
          "Authentication"
        ]
      }
    },
    "/api/providers": {
      "get": {
        "description": "ListProviders",
        "operationId": "ListProviders",
        "parameters": [
          {
            "in": "header",
            "name": "Infra-Version",
            "required": true,
            "schema": {
              "description": "Version of the API being requested",
              "example": "0.0.0",
              "format": "\\d+\\.\\d+\\(.\\d+)?(-.\\w(+\\w)?)?",
              "type": "string"
            }
          },
          {
            "description": "Name of the provider",
            "example": "okta",
            "in": "query",
            "name": "name",
            "schema": {
              "description": "Name of the provider",
              "example": "okta",
              "type": "string"
            }
          },
          {
            "description": "Page number to retrieve",
            "example": "1",
            "in": "query",
            "name": "page",
            "schema": {
              "description": "Page number to retrieve",
              "example": "1",
              "format": "int",
              "minimum": 0,
              "type": "integer"
            }
          },
          {
            "description": "Number of objects to retrieve per page (up to 1000)",
            "example": "100",
            "in": "query",
            "name": "limit",
            "schema": {
              "description": "Number of objects to retrieve per page (up to 1000)",
              "example": "100",
              "format": "int",
              "maximum": 1000,
              "minimum": 0,
              "type": "integer"
            }
          }
        ],
        "responses": {
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized: Requestor is not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden: Requestor does not have the right permissions"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Duplicate Record"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListResponse_Provider"
                }
              }
            },
            "description": "Success"
          }
        },
        "summary": "ListProviders",
        "tags": [
          "Providers"
        ]
      },
      "post": {
        "description": "CreateProvider",
        "operationId": "CreateProvider",
        "parameters": [
          {
            "in": "header",
            "name": "Infra-Version",
            "required": true,
            "schema": {
              "description": "Version of the API being requested",
              "example": "0.0.0",
              "format": "\\d+\\.\\d+\\(.\\d+)?(-.\\w(+\\w)?)?",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Authorization",
            "required": true,
            "schema": {
              "description": "Bearer followed by your access key",
              "example": "Bearer ACCESSKEY",
              "format": "Bearer [\\da-zA-Z]{10}\\.[\\da-zA-Z]{24}",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "api": {
                    "properties": {
                      "clientEmail": {
                        "format": "email",
                        "type": "string"
                      },
                      "domainAdminEmail": {
                        "format": "email",
                        "type": "string"
                      },
                      "privateKey": {
                        "example": "-----BEGIN PRIVATE KEY-----\nMIIDNTCCAh2gAwIBAgIRALRetnpcTo9O3V2fAK3ix+c\n-----END PRIVATE KEY-----\n",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "clientID": {
                    "example": "0oapn0qwiQPiMIyR35d6",
                    "type": "string"
                  },
                  "clientSecret": {
                    "example": "jmda5eG93ax3jMDxTGrbHd_TBGT6kgNZtrCugLbU",
                    "type": "string"
                  },
                  "kind": {
                    "enum": [
                      "oidc",
                      "okta",
                      "azure",
                      "google"
                    ],
                    "example": "oidc",
                    "type": "string"
                  },
                  "name": {
                    "example": "okta",
                    "format": "[a-zA-Z0-9\\-_.]",
                    "maxLength": 256,
                    "minLength": 2,
                    "type": "string"
                  },
                  "url": {
                    "example": "infrahq.okta.com",
                    "type": "string"
                  }
                },
                "required": [
                  "url",
                  "clientID",
                  "clientSecret"
                ],
                "type": "object"
              }
            }
          }
        },
        "responses": {
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized: Requestor is not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden: Requestor does not have the right permissions"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Duplicate Record"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Provider"
                }
              }
            },
            "description": "Success"
          }
        },
        "summary": "CreateProvider",
        "tags": [
          "Providers"
        ]
      }
    },
    "/api/providers/{id}": {
      "delete": {
        "description": "DeleteProvider",
        "operationId": "DeleteProvider",
        "parameters": [
          {
            "in": "header",
            "name": "Infra-Version",
            "required": true,
            "schema": {
              "description": "Version of the API being requested",
              "example": "0.0.0",
              "format": "\\d+\\.\\d+\\(.\\d+)?(-.\\w(+\\w)?)?",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Authorization",
            "required": true,
            "schema": {
              "description": "Bearer followed by your access key",
              "example": "Bearer ACCESSKEY",
              "format": "Bearer [\\da-zA-Z]{10}\\.[\\da-zA-Z]{24}",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "example": "4yJ3n3D8E2",
              "format": "uid",
              "pattern": "[1-9a-km-zA-HJ-NP-Z]{1,11}",
              "type": "string"
            }
          }
        ],
        "responses": {
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized: Requestor is not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden: Requestor does not have the right permissions"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Duplicate Record"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmptyResponse"
                }
              }
            },
            "description": "Success"
          }
        },
        "summary": "DeleteProvider",
        "tags": [
          "Providers"
        ]
      },
      "get": {
        "description": "GetProvider",
        "operationId": "GetProvider",
        "parameters": [
          {
            "in": "header",
            "name": "Infra-Version",
            "required": true,
            "schema": {
              "description": "Version of the API being requested",
              "example": "0.0.0",
              "format": "\\d+\\.\\d+\\(.\\d+)?(-.\\w(+\\w)?)?",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "example": "4yJ3n3D8E2",
              "format": "uid",
              "pattern": "[1-9a-km-zA-HJ-NP-Z]{1,11}",
              "type": "string"
            }
          }
        ],
        "responses": {
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized: Requestor is not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden: Requestor does not have the right permissions"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Duplicate Record"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Provider"
                }
              }
            },
            "description": "Success"
          }
        },
        "summary": "GetProvider",
        "tags": [
          "Providers"
        ]
      },
      "patch": {
        "description": "PatchProvider",
        "operationId": "PatchProvider",
        "parameters": [
          {
            "in": "header",
            "name": "Infra-Version",
            "required": true,
            "schema": {
              "description": "Version of the API being requested",
              "example": "0.0.0",
              "format": "\\d+\\.\\d+\\(.\\d+)?(-.\\w(+\\w)?)?",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Authorization",
            "required": true,
            "schema": {
              "description": "Bearer followed by your access key",
              "example": "Bearer ACCESSKEY",
              "format": "Bearer [\\da-zA-Z]{10}\\.[\\da-zA-Z]{24}",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "example": "4yJ3n3D8E2",
              "format": "uid",
              "pattern": "[1-9a-km-zA-HJ-NP-Z]{1,11}",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "clientSecret": {
                    "example": "jmda5eG93ax3jMDxTGrbHd_TBGT6kgNZtrCugLbU",
                    "type": "string"
                  },
                  "name": {
                    "example": "okta",
                    "type": "string"
                  }
                },
                "type": "object"
              }
            }
          }
        },
        "responses": {
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized: Requestor is not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden: Requestor does not have the right permissions"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Duplicate Record"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Provider"
                }
              }
            },
            "description": "Success"
          }
        },
        "summary": "PatchProvider",
        "tags": [
          "Providers"
        ]
      },
      "put": {
        "description": "UpdateProvider",
        "operationId": "UpdateProvider",
        "parameters": [
          {
            "in": "header",
            "name": "Infra-Version",
            "required": true,
            "schema": {
              "description": "Version of the API being requested",
              "example": "0.0.0",
              "format": "\\d+\\.\\d+\\(.\\d+)?(-.\\w(+\\w)?)?",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Authorization",
            "required": true,
            "schema": {
              "description": "Bearer followed by your access key",
              "example": "Bearer ACCESSKEY",
              "format": "Bearer [\\da-zA-Z]{10}\\.[\\da-zA-Z]{24}",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "example": "4yJ3n3D8E2",
              "format": "uid",
              "pattern": "[1-9a-km-zA-HJ-NP-Z]{1,11}",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "api": {
                    "properties": {
                      "clientEmail": {
                        "format": "email",
                        "type": "string"
                      },
                      "domainAdminEmail": {
                        "format": "email",
                        "type": "string"
                      },
                      "privateKey": {
                        "example": "-----BEGIN PRIVATE KEY-----\nMIIDNTCCAh2gAwIBAgIRALRetnpcTo9O3V2fAK3ix+c\n-----END PRIVATE KEY-----\n",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "clientID": {
                    "example": "0oapn0qwiQPiMIyR35d6",
                    "type": "string"
                  },
                  "clientSecret": {
                    "example": "jmda5eG93ax3jMDxTGrbHd_TBGT6kgNZtrCugLbU",
                    "type": "string"
                  },
                  "kind": {
                    "enum": [
                      "oidc",
                      "okta",
                      "azure",
                      "google"
                    ],
                    "example": "oidc",
                    "type": "string"
                  },
                  "name": {
                    "example": "okta",
                    "format": "[a-zA-Z0-9\\-_.]",
                    "maxLength": 256,
                    "minLength": 2,
                    "type": "string"
                  },
                  "url": {
                    "example": "infrahq.okta.com",
                    "type": "string"
                  }
                },
                "required": [
                  "name",
                  "url",
                  "clientID",
                  "clientSecret"
                ],
                "type": "object"
              }
            }
          }
        },
        "responses": {
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized: Requestor is not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden: Requestor does not have the right permissions"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Duplicate Record"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Provider"
                }
              }
            },
            "description": "Success"
          }
        },
        "summary": "UpdateProvider",
        "tags": [
          "Providers"
        ]
      }
    },
    "/api/server-configuration": {
      "get": {
        "description": "GetServerConfiguration",
        "operationId": "GetServerConfiguration",
        "parameters": [
          {
            "in": "header",
            "name": "Infra-Version",
            "required": true,
            "schema": {
              "description": "Version of the API being requested",
              "example": "0.0.0",
              "format": "\\d+\\.\\d+\\(.\\d+)?(-.\\w(+\\w)?)?",
              "type": "string"
            }
          }
        ],
        "responses": {
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized: Requestor is not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden: Requestor does not have the right permissions"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Duplicate Record"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServerConfiguration"
                }
              }
            },
            "description": "Success"
          }
        },
        "summary": "GetServerConfiguration",
        "tags": [
          "Settings"
        ]
      }
    },
    "/api/tokens": {
      "post": {
        "description": "CreateToken",
        "operationId": "CreateToken",
        "parameters": [
          {
            "in": "header",
            "name": "Infra-Version",
            "required": true,
            "schema": {
              "description": "Version of the API being requested",
              "example": "0.0.0",
              "format": "\\d+\\.\\d+\\(.\\d+)?(-.\\w(+\\w)?)?",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Authorization",
            "required": true,
            "schema": {
              "description": "Bearer followed by your access key",
              "example": "Bearer ACCESSKEY",
              "format": "Bearer [\\da-zA-Z]{10}\\.[\\da-zA-Z]{24}",
              "type": "string"
            }
          }
        ],
        "responses": {
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized: Requestor is not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden: Requestor does not have the right permissions"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Duplicate Record"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateTokenResponse"
                }
              }
            },
            "description": "Success"
          }
        },
        "summary": "CreateToken",
        "tags": [
          "Destinations"
        ]
      }
    },
    "/api/users": {
      "get": {
        "description": "ListUsers",
        "operationId": "ListUsers",
        "parameters": [
          {
            "in": "header",
            "name": "Infra-Version",
            "required": true,
            "schema": {
              "description": "Version of the API being requested",
              "example": "0.0.0",
              "format": "\\d+\\.\\d+\\(.\\d+)?(-.\\w(+\\w)?)?",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Authorization",
            "required": true,
            "schema": {
              "description": "Bearer followed by your access key",
              "example": "Bearer ACCESSKEY",
              "format": "Bearer [\\da-zA-Z]{10}\\.[\\da-zA-Z]{24}",
              "type": "string"
            }
          },
          {
            "description": "Name of the user",
            "example": "bob@example.com",
            "in": "query",
            "name": "name",
            "schema": {
              "description": "Name of the user",
              "example": "bob@example.com",
              "type": "string"
            }
          },
          {
            "description": "Group the user belongs to",
            "example": "admins",
            "in": "query",
            "name": "group",
            "schema": {
              "description": "Group the user belongs to",
              "example": "admins",
              "format": "uid",
              "pattern": "[1-9a-km-zA-HJ-NP-Z]{1,11}",
              "type": "string"
            }
          },
          {
            "description": "List of User IDs",
            "in": "query",
            "name": "ids",
            "schema": {
              "description": "List of User IDs",
              "items": {
                "description": "List of User IDs",
                "example": "4yJ3n3D8E2",
                "format": "uid",
                "pattern": "[1-9a-km-zA-HJ-NP-Z]{1,11}",
                "type": "string"
              },
              "type": "array"
            }
          },
          {
            "description": "if true, this shows the connector and other internal users",
            "example": "false",
            "in": "query",
            "name": "showSystem",
            "schema": {
              "description": "if true, this shows the connector and other internal users",
              "example": "false",
              "type": "boolean"
            }
          },
          {
            "description": "Find the user with a public key that matches this SHA256 fingerprint.",
            "in": "query",
            "name": "publicKeyFingerprint",
            "schema": {
              "description": "Find the user with a public key that matches this SHA256 fingerprint.",
              "type": "string"
            }
          },
          {
            "description": "Page number to retrieve",
            "example": "1",
            "in": "query",
            "name": "page",
            "schema": {
              "description": "Page number to retrieve",
              "example": "1",
              "format": "int",
              "minimum": 0,
              "type": "integer"
            }
          },
          {
            "description": "Number of objects to retrieve per page (up to 1000)",
            "example": "100",
            "in": "query",
            "name": "limit",
            "schema": {
              "description": "Number of objects to retrieve per page (up to 1000)",
              "example": "100",
              "format": "int",
              "maximum": 1000,
              "minimum": 0,
              "type": "integer"
            }
          }
        ],
        "responses": {
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized: Requestor is not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden: Requestor does not have the right permissions"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Duplicate Record"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListResponse_User"
                }
              }
            },
            "description": "Success"
          }
        },
        "summary": "ListUsers",
        "tags": [
          "Users"
        ]
      },
      "post": {
        "description": "CreateUser",
        "operationId": "CreateUser",
        "parameters": [
          {
            "in": "header",
            "name": "Infra-Version",
            "required": true,
            "schema": {
              "description": "Version of the API being requested",
              "example": "0.0.0",
              "format": "\\d+\\.\\d+\\(.\\d+)?(-.\\w(+\\w)?)?",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Authorization",
            "required": true,
            "schema": {
              "description": "Bearer followed by your access key",
              "example": "Bearer ACCESSKEY",
              "format": "Bearer [\\da-zA-Z]{10}\\.[\\da-zA-Z]{24}",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "name": {
                    "description": "Email address of the new user",
                    "example": "bob@example.com",
                    "format": "email",
                    "type": "string"
                  }
                },
                "required": [
                  "name"
                ],
                "type": "object"
              }
            }
          }
        },
        "responses": {
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized: Requestor is not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden: Requestor does not have the right permissions"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Duplicate Record"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateUserResponse"
                }
              }
            },
            "description": "Success"
          }
        },
        "summary": "CreateUser",
        "tags": [
          "Users"
        ]
      }
    },
    "/api/users/public-key": {
      "put": {
        "description": "AddUserPublicKey",
        "operationId": "AddUserPublicKey",
        "parameters": [
          {
            "in": "header",
            "name": "Infra-Version",
            "required": true,
            "schema": {
              "description": "Version of the API being requested",
              "example": "0.0.0",
              "format": "\\d+\\.\\d+\\(.\\d+)?(-.\\w(+\\w)?)?",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Authorization",
            "required": true,
            "schema": {
              "description": "Bearer followed by your access key",
              "example": "Bearer ACCESSKEY",
              "format": "Bearer [\\da-zA-Z]{10}\\.[\\da-zA-Z]{24}",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "name": {
                    "description": "Name of the public key, often the name of the device used to create it",
                    "format": "[a-zA-Z0-9\\-_.]",
                    "maxLength": 256,
                    "minLength": 2,
                    "type": "string"
                  },
                  "publicKey": {
                    "type": "string"
                  }
                },
                "required": [
                  "publicKey"
                ],
                "type": "object"
              }
            }
          }
        },
        "responses": {
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized: Requestor is not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden: Requestor does not have the right permissions"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Duplicate Record"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserPublicKey"
                }
              }
            },
            "description": "Success"
          }
        },
        "summary": "AddUserPublicKey",
        "tags": [
          "Users"
        ]
      }
    },
    "/api/users/{id}": {
      "delete": {
        "description": "DeleteUser",
        "operationId": "DeleteUser",
        "parameters": [
          {
            "in": "header",
            "name": "Infra-Version",
            "required": true,
            "schema": {
              "description": "Version of the API being requested",
              "example": "0.0.0",
              "format": "\\d+\\.\\d+\\(.\\d+)?(-.\\w(+\\w)?)?",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Authorization",
            "required": true,
            "schema": {
              "description": "Bearer followed by your access key",
              "example": "Bearer ACCESSKEY",
              "format": "Bearer [\\da-zA-Z]{10}\\.[\\da-zA-Z]{24}",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "example": "4yJ3n3D8E2",
              "format": "uid",
              "pattern": "[1-9a-km-zA-HJ-NP-Z]{1,11}",
              "type": "string"
            }
          }
        ],
        "responses": {
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized: Requestor is not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden: Requestor does not have the right permissions"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Duplicate Record"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmptyResponse"
                }
              }
            },
            "description": "Success"
          }
        },
        "summary": "DeleteUser",
        "tags": [
          "Users"
        ]
      },
      "get": {
        "description": "GetUser",
        "operationId": "GetUser",
        "parameters": [
          {
            "in": "header",
            "name": "Infra-Version",
            "required": true,
            "schema": {
              "description": "Version of the API being requested",
              "example": "0.0.0",
              "format": "\\d+\\.\\d+\\(.\\d+)?(-.\\w(+\\w)?)?",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Authorization",
            "required": true,
            "schema": {
              "description": "Bearer followed by your access key",
              "example": "Bearer ACCESSKEY",
              "format": "Bearer [\\da-zA-Z]{10}\\.[\\da-zA-Z]{24}",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "a uid or the literal self",
              "example": "4yJ3n3D8E2",
              "format": "uid|self",
              "pattern": "[1-9a-km-zA-HJ-NP-Z]{1,11}|self",
              "type": "string"
            }
          }
        ],
        "responses": {
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized: Requestor is not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden: Requestor does not have the right permissions"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Duplicate Record"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/User"
                }
              }
            },
            "description": "Success"
          }
        },
        "summary": "GetUser",
        "tags": [
          "Users"
        ]
      },
      "put": {
        "description": "UpdateUser",
        "operationId": "UpdateUser",
        "parameters": [
          {
            "in": "header",
            "name": "Infra-Version",
            "required": true,
            "schema": {
              "description": "Version of the API being requested",
              "example": "0.0.0",
              "format": "\\d+\\.\\d+\\(.\\d+)?(-.\\w(+\\w)?)?",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Authorization",
            "required": true,
            "schema": {
              "description": "Bearer followed by your access key",
              "example": "Bearer ACCESSKEY",
              "format": "Bearer [\\da-zA-Z]{10}\\.[\\da-zA-Z]{24}",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "example": "4yJ3n3D8E2",
              "format": "uid",
              "pattern": "[1-9a-km-zA-HJ-NP-Z]{1,11}",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "oldPassword": {
                    "description": "Old password for the user. Only required when the access key making this request is not owned by an Infra admin",
                    "example": "oldpassword",
                    "type": "string"
                  },
                  "password": {
                    "description": "New one-time password for the user",
                    "example": "newpassword",
                    "type": "string"
                  }
                },
                "type": "object"
              }
            }
          }
        },
        "responses": {
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized: Requestor is not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden: Requestor does not have the right permissions"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Duplicate Record"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UpdateUserResponse"
                }
              }
            },
            "description": "Success"
          }
        },
        "summary": "UpdateUser",
        "tags": [
          "Users"
        ]
      }
    },
    "/api/version": {
      "get": {
        "description": "Version",
        "operationId": "Version",
        "parameters": [
          {
            "in": "header",
            "name": "Infra-Version",
            "required": true,
            "schema": {
              "description": "Version of the API being requested",
              "example": "0.0.0",
              "format": "\\d+\\.\\d+\\(.\\d+)?(-.\\w(+\\w)?)?",
              "type": "string"
            }
          }
        ],
        "responses": {
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized: Requestor is not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden: Requestor does not have the right permissions"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Duplicate Record"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Version"
                }
              }
            },
            "description": "Success"
          }
        },
        "summary": "Version",
        "tags": [
          "Settings"
        ]
      }
    }
  },
  "servers": [
    {
      "url": "https://api.infrahq.com"
    }
  ]
}
