{
  "openapi" : "3.0.1",
  "info" : {
    "title" : "Namazu Elements",
    "description" : "Namazu Elements Core APIs",
    "contact" : {
      "name" : "Namazu Studios",
      "url" : "https://namazustudios.com",
      "email" : "info@namazustudios.com"
    }
  },
  "externalDocs" : {
    "description" : "Please see the Namazu Elements Manual for more information.",
    "url" : "https://namazustudios.com/docs"
  },
  "security" : [ {
    "auth_bearer" : [ ]
  }, {
    "session_secret" : [ ]
  } ],
  "paths" : {
    "/verify" : {
      "get" : {
        "summary" : "Complete Email Verification",
        "description" : "Completes email verification by consuming the single-use token from a verification link. Moves the associated UID status to VERIFIED.",
        "operationId" : "completeVerification",
        "parameters" : [ {
          "name" : "token",
          "in" : "query",
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/UserUid"
                }
              }
            }
          }
        }
      }
    },
    "/ios/receipt" : {
      "post" : {
        "description" : "Upload Apple IAP Receipt. Returns a list of RewardIssuances, which may contain already-redeemed issuances.",
        "operationId" : "uploadAppleIapReceipt",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/CreateAppleIapReceipt"
              }
            }
          }
        },
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/RewardIssuance"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/application/{applicationNameOrId}/configuration" : {
      "get" : {
        "summary" : "Searches application profiles",
        "description" : "Searches all instances of ApplicationProfiles associated with  the application.  The search query may be a full text search.",
        "operationId" : "getApplicationProfiles",
        "parameters" : [ {
          "name" : "applicationNameOrId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "offset",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0
          }
        }, {
          "name" : "count",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 20
          }
        }, {
          "name" : "search",
          "in" : "query",
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/PaginationApplicationConfiguration"
                }
              }
            }
          }
        }
      }
    },
    "/application" : {
      "get" : {
        "summary" : "Search Applications",
        "description" : "Performs a full-text search of all applications known to the server.  As with other full-text endpoints this allows for pagination and offset.",
        "operationId" : "getApplications",
        "parameters" : [ {
          "name" : "offset",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0
          }
        }, {
          "name" : "count",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 20
          }
        }, {
          "name" : "search",
          "in" : "query",
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/PaginationApplication"
                }
              }
            }
          }
        }
      },
      "post" : {
        "summary" : "Creates a New Application",
        "description" : "Gets the metadata for a single application.  This may include more specific details not available in the bulk-get or fetch operation.",
        "operationId" : "createApplication",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/CreateApplicationRequest"
              }
            }
          }
        },
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Application"
                }
              }
            }
          }
        }
      }
    },
    "/application/{nameOrId}" : {
      "get" : {
        "summary" : "Get an Application",
        "description" : "Gets the metadata for a single application.  This may include more specific details not available in the bulk-get or fetch operation.",
        "operationId" : "getApplication",
        "parameters" : [ {
          "name" : "nameOrId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Application"
                }
              }
            }
          }
        }
      },
      "put" : {
        "summary" : "Updates an Application",
        "description" : "Performs an update to an existing application known to the server.",
        "operationId" : "updateApplication",
        "parameters" : [ {
          "name" : "nameOrId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/UpdateApplicationRequest"
              }
            }
          }
        },
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Application"
                }
              }
            }
          }
        }
      },
      "delete" : {
        "summary" : "Deletes an Application",
        "description" : "Deletes a specific application known to the server.",
        "operationId" : "deleteApplication",
        "parameters" : [ {
          "name" : "nameOrId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "*/*" : { }
            }
          }
        }
      }
    },
    "/application/{applicationNameOrId}/configuration/facebook" : {
      "post" : {
        "summary" : "Creates a new Facebook ApplicationConfiguration",
        "description" : "Creates a new Facebook ApplicationConfiguration with the specific ID or application.",
        "operationId" : "createFacebookApplicationConfiguration",
        "parameters" : [ {
          "name" : "applicationNameOrId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/FacebookApplicationConfiguration"
              }
            }
          }
        },
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/FacebookApplicationConfiguration"
                }
              }
            }
          }
        }
      }
    },
    "/application/{applicationNameOrId}/configuration/facebook/{applicationConfigurationNameOrId}" : {
      "get" : {
        "summary" : "Gets a Facebook Application Configuration",
        "description" : "Gets a single Facebook application based on unique name or ID.",
        "operationId" : "getFacebookApplicationConfiguration",
        "parameters" : [ {
          "name" : "applicationNameOrId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "applicationConfigurationNameOrId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/FacebookApplicationConfiguration"
                }
              }
            }
          }
        }
      },
      "put" : {
        "summary" : "Updates a Facebook ApplicationConfiguration",
        "description" : "Updates an existing Facebook Application profile if it is known to the server.",
        "operationId" : "updateFacebookApplicationConfiguration",
        "parameters" : [ {
          "name" : "applicationNameOrId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "applicationConfigurationNameOrId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/FacebookApplicationConfiguration"
              }
            }
          }
        },
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/FacebookApplicationConfiguration"
                }
              }
            }
          }
        }
      },
      "delete" : {
        "summary" : "Deletes a Facebook ApplicationConfiguration",
        "description" : "Deletes an existing Facebook Application profile if it is known to the server.",
        "operationId" : "deleteFacebookApplicationConfiguration",
        "parameters" : [ {
          "name" : "applicationNameOrId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "applicationConfigurationNameOrId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : { }
            }
          }
        }
      }
    },
    "/application/{applicationNameOrId}/configuration/firebase" : {
      "post" : {
        "summary" : "Creates a new Firebase ApplicationConfiguration",
        "description" : "Creates a new Firebase ApplicationConfiguration with the specific ID or application.",
        "operationId" : "createFirebaseApplicationConfiguration",
        "parameters" : [ {
          "name" : "applicationNameOrId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/FirebaseApplicationConfiguration"
              }
            }
          }
        },
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/FirebaseApplicationConfiguration"
                }
              }
            }
          }
        }
      }
    },
    "/application/{applicationNameOrId}/configuration/firebase/{applicationConfigurationNameOrId}" : {
      "get" : {
        "summary" : "Gets a Firebase Application Configuration",
        "description" : "Gets a single Firebase application based on unique name or ID.",
        "operationId" : "getFirebaseApplicationConfiguration",
        "parameters" : [ {
          "name" : "applicationNameOrId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "applicationConfigurationNameOrId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/FirebaseApplicationConfiguration"
                }
              }
            }
          }
        }
      },
      "put" : {
        "summary" : "Updates a Firebase ApplicationConfiguration",
        "description" : "Updates an existing Firebase Application profile if it is known to the server.",
        "operationId" : "updateFirebaseApplicationConfiguration",
        "parameters" : [ {
          "name" : "applicationNameOrId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "applicationConfigurationNameOrId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/FirebaseApplicationConfiguration"
              }
            }
          }
        },
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/FirebaseApplicationConfiguration"
                }
              }
            }
          }
        }
      },
      "delete" : {
        "summary" : "Deletes a Firebase ApplicationConfiguration",
        "description" : "Deletes an existing Firebase Application profile if it is known to the server.",
        "operationId" : "deleteFirebaseApplicationConfiguration",
        "parameters" : [ {
          "name" : "applicationNameOrId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "applicationConfigurationNameOrId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : { }
            }
          }
        }
      }
    },
    "/application/{applicationNameOrId}/configuration/google_play" : {
      "post" : {
        "summary" : "Creates a new Google Play ApplicationConfiguration",
        "description" : "Creates a new GooglePlay ApplicationConfiguration with the specific ID or application.",
        "operationId" : "createGooglePlayApplicationConfiguration",
        "parameters" : [ {
          "name" : "applicationNameOrId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/GooglePlayApplicationConfiguration"
              }
            }
          }
        },
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/GooglePlayApplicationConfiguration"
                }
              }
            }
          }
        }
      }
    },
    "/application/{applicationNameOrId}/configuration/google_play/{applicationConfigurationNameOrId}" : {
      "get" : {
        "summary" : "Gets a Google Play Application Configuration",
        "description" : "Gets a single Google Play application based on unique name or ID.",
        "operationId" : "getGooglePlayApplicationConfiguration",
        "parameters" : [ {
          "name" : "applicationNameOrId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "applicationConfigurationNameOrId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/GooglePlayApplicationConfiguration"
                }
              }
            }
          }
        }
      },
      "put" : {
        "summary" : "Updates a Google Play ApplicationConfiguration",
        "description" : "Updates an existing Google Play Application profile if it is known to the server.",
        "operationId" : "updateGooglePlayApplicationConfiguration",
        "parameters" : [ {
          "name" : "applicationNameOrId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "applicationConfigurationNameOrId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/GooglePlayApplicationConfiguration"
              }
            }
          }
        },
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/GooglePlayApplicationConfiguration"
                }
              }
            }
          }
        }
      },
      "delete" : {
        "summary" : "Deletes a Google Play ApplicationConfiguration",
        "description" : "Deletes an existing Google Play Application profile if it is known to the server.",
        "operationId" : "deleteGooglePlayApplicationConfiguration",
        "parameters" : [ {
          "name" : "applicationNameOrId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "applicationConfigurationNameOrId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : { }
            }
          }
        }
      }
    },
    "/application/{applicationNameOrId}/configuration/google_play/{applicationConfigurationNameOrId}/product_bundles" : {
      "put" : {
        "summary" : "Updates the ProductBundle",
        "description" : "Updates the ProductBundle for the given ApplicationConfiguration",
        "operationId" : "updateProductBundleForGooglePlayApplicationConfiguration",
        "parameters" : [ {
          "name" : "applicationNameOrId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "applicationConfigurationNameOrId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "*/*" : {
              "schema" : {
                "type" : "array",
                "items" : {
                  "$ref" : "#/components/schemas/ProductBundle"
                }
              }
            }
          }
        },
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApplicationConfiguration"
                }
              }
            }
          }
        }
      }
    },
    "/application/{applicationNameOrId}/configuration/ios" : {
      "post" : {
        "summary" : "Creates a new iOS ApplicationConfiguration",
        "description" : "Creates a new iOS ApplicationConfiguration with the specific ID or application.",
        "operationId" : "createIosApplicationConfiguration",
        "parameters" : [ {
          "name" : "applicationNameOrId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/IosApplicationConfiguration"
              }
            }
          }
        },
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/IosApplicationConfiguration"
                }
              }
            }
          }
        }
      }
    },
    "/application/{applicationNameOrId}/configuration/ios/{applicationConfigurationNameOrId}" : {
      "get" : {
        "summary" : "Gets a iOS Application Configuration",
        "description" : "Gets a single iOS application based on unique name or ID.",
        "operationId" : "getIosApplicationConfiguration",
        "parameters" : [ {
          "name" : "applicationNameOrId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "applicationConfigurationNameOrId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/IosApplicationConfiguration"
                }
              }
            }
          }
        }
      },
      "put" : {
        "summary" : "Updates a iOS ApplicationConfiguration",
        "description" : "Updates an existing iOS Application profile if it is known to the server.",
        "operationId" : "updateIosApplicationConfiguration",
        "parameters" : [ {
          "name" : "applicationNameOrId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "applicationConfigurationNameOrId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/IosApplicationConfiguration"
              }
            }
          }
        },
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/IosApplicationConfiguration"
                }
              }
            }
          }
        }
      },
      "delete" : {
        "summary" : "Deletes a iOS ApplicationConfiguration",
        "description" : "Deletes an existing iOS Application profile if it is known to the server.",
        "operationId" : "deleteIosApplicationConfiguration",
        "parameters" : [ {
          "name" : "applicationNameOrId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "applicationConfigurationNameOrId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : { }
            }
          }
        }
      }
    },
    "/application/{applicationNameOrId}/configuration/ios/{applicationConfigurationNameOrId}/product_bundles" : {
      "put" : {
        "summary" : "Updates the ProductBundle",
        "description" : "Updates the ProductBundle for the given ApplicationConfiguration",
        "operationId" : "updateProductBundleForIosApplicationConfiguration",
        "parameters" : [ {
          "name" : "applicationNameOrId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "applicationConfigurationNameOrId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "type" : "array",
                "items" : {
                  "$ref" : "#/components/schemas/ProductBundle"
                }
              }
            }
          }
        },
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApplicationConfiguration"
                }
              }
            }
          }
        }
      }
    },
    "/application/{applicationNameOrId}/configuration/matchmaking" : {
      "post" : {
        "summary" : "Creates a new iOS ApplicationConfiguration",
        "description" : "Creates a new iOS ApplicationConfiguration with the specific ID or application.",
        "operationId" : "createMatchmakingApplicationConfiguration",
        "parameters" : [ {
          "name" : "applicationNameOrId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/MatchmakingApplicationConfiguration"
              }
            }
          }
        },
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/MatchmakingApplicationConfiguration"
                }
              }
            }
          }
        }
      }
    },
    "/application/{applicationNameOrId}/configuration/matchmaking/{applicationConfigurationNameOrId}" : {
      "get" : {
        "summary" : "Gets a iOS Application Configuration",
        "description" : "Gets a single iOS application based on unique name or ID.",
        "operationId" : "getMatchmakingApplicationConfiguration",
        "parameters" : [ {
          "name" : "applicationNameOrId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "applicationConfigurationNameOrId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/MatchmakingApplicationConfiguration"
                }
              }
            }
          }
        }
      },
      "put" : {
        "summary" : "Updates a iOS ApplicationConfiguration",
        "description" : "Updates an existing iOS Application profile if it is known to the server.",
        "operationId" : "updateMatchmakingApplicationConfiguration",
        "parameters" : [ {
          "name" : "applicationNameOrId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "applicationConfigurationNameOrId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/MatchmakingApplicationConfiguration"
              }
            }
          }
        },
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/MatchmakingApplicationConfiguration"
                }
              }
            }
          }
        }
      },
      "delete" : {
        "summary" : "Deletes a iOS ApplicationConfiguration",
        "description" : "Deletes an existing iOS Application profile if it is known to the server.",
        "operationId" : "deleteMatchmakingApplicationConfiguration",
        "parameters" : [ {
          "name" : "applicationNameOrId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "applicationConfigurationNameOrId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : { }
            }
          }
        }
      }
    },
    "/application/{applicationNameOrId}/configuration/oculus" : {
      "post" : {
        "summary" : "Creates a new Oculus ApplicationConfiguration",
        "description" : "Creates a new Oculus ApplicationConfiguration with the specific ID or application.",
        "operationId" : "createOculusApplicationConfiguration",
        "parameters" : [ {
          "name" : "applicationNameOrId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/OculusApplicationConfiguration"
              }
            }
          }
        },
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/OculusApplicationConfiguration"
                }
              }
            }
          }
        }
      }
    },
    "/application/{applicationNameOrId}/configuration/oculus/{applicationConfigurationNameOrId}" : {
      "get" : {
        "summary" : "Gets a Oculus Application Configuration",
        "description" : "Gets a single Oculus application based on unique name or ID.",
        "operationId" : "getOculusApplicationConfiguration",
        "parameters" : [ {
          "name" : "applicationNameOrId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "applicationConfigurationNameOrId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/OculusApplicationConfiguration"
                }
              }
            }
          }
        }
      },
      "put" : {
        "summary" : "Updates a Oculus ApplicationConfiguration",
        "description" : "Updates an existing Oculus Application profile if it is known to the server.",
        "operationId" : "updateOculusApplicationConfiguration",
        "parameters" : [ {
          "name" : "applicationNameOrId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "applicationConfigurationNameOrId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/OculusApplicationConfiguration"
              }
            }
          }
        },
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/OculusApplicationConfiguration"
                }
              }
            }
          }
        }
      },
      "delete" : {
        "summary" : "Deletes a Oculus ApplicationConfiguration",
        "description" : "Deletes an existing Oculus Application profile if it is known to the server.",
        "operationId" : "deleteOculusApplicationConfiguration",
        "parameters" : [ {
          "name" : "applicationNameOrId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "applicationConfigurationNameOrId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : { }
            }
          }
        }
      }
    },
    "/application/{applicationNameOrId}/configuration/psn" : {
      "post" : {
        "summary" : "Creates a new PSN ApplicationConfiguration",
        "description" : "Creates a new PSN ApplicationConfiguration with the specific ID or application.",
        "operationId" : "createPSNApplicationConfiguration",
        "parameters" : [ {
          "name" : "applicationNameOrId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/PSNApplicationConfiguration"
              }
            }
          }
        },
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/PSNApplicationConfiguration"
                }
              }
            }
          }
        }
      }
    },
    "/application/{applicationNameOrId}/configuration/psn/{applicationConfigurationNameOrId}" : {
      "get" : {
        "summary" : "Gets a PSN Application Configuration",
        "description" : "Gets a single PSN application based on unique name or ID.",
        "operationId" : "getPSNApplicationConfiguration",
        "parameters" : [ {
          "name" : "applicationNameOrId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "applicationConfigurationNameOrId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/PSNApplicationConfiguration"
                }
              }
            }
          }
        }
      },
      "put" : {
        "summary" : "Updates a PSN ApplicationConfiguration",
        "description" : "Updates an existing PSN Application profile if it is known to the server.",
        "operationId" : "updatePSNApplicationConfiguration",
        "parameters" : [ {
          "name" : "applicationNameOrId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "applicationConfigurationNameOrId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/PSNApplicationConfiguration"
              }
            }
          }
        },
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/PSNApplicationConfiguration"
                }
              }
            }
          }
        }
      },
      "delete" : {
        "summary" : "Deletes a PSN ApplicationConfiguration",
        "description" : "Deletes an existing PSN Application profile if it is known to the server.",
        "operationId" : "deletePSNApplicationConfiguration",
        "parameters" : [ {
          "name" : "applicationNameOrId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "applicationConfigurationNameOrId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : { }
            }
          }
        }
      }
    },
    "/application/{applicationNameOrId}/configuration/steam" : {
      "post" : {
        "summary" : "Creates a new Steam ApplicationConfiguration",
        "description" : "Creates a new Steam ApplicationConfiguration for the specified application.",
        "operationId" : "createSteamApplicationConfiguration",
        "parameters" : [ {
          "name" : "applicationNameOrId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/SteamApplicationConfiguration"
              }
            }
          }
        },
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/SteamApplicationConfiguration"
                }
              }
            }
          }
        }
      }
    },
    "/application/{applicationNameOrId}/configuration/steam/{applicationConfigurationNameOrId}" : {
      "get" : {
        "summary" : "Gets a Steam Application Configuration",
        "description" : "Gets a single Steam application configuration based on unique name or ID.",
        "operationId" : "getSteamApplicationConfiguration",
        "parameters" : [ {
          "name" : "applicationNameOrId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "applicationConfigurationNameOrId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/SteamApplicationConfiguration"
                }
              }
            }
          }
        }
      },
      "put" : {
        "summary" : "Updates a Steam ApplicationConfiguration",
        "description" : "Updates an existing Steam application configuration if it is known to the server.",
        "operationId" : "updateSteamApplicationConfiguration",
        "parameters" : [ {
          "name" : "applicationNameOrId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "applicationConfigurationNameOrId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/SteamApplicationConfiguration"
              }
            }
          }
        },
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/SteamApplicationConfiguration"
                }
              }
            }
          }
        }
      },
      "delete" : {
        "summary" : "Deletes a Steam ApplicationConfiguration",
        "description" : "Deletes an existing Steam application configuration if it is known to the server.",
        "operationId" : "deleteSteamApplicationConfiguration",
        "parameters" : [ {
          "name" : "applicationNameOrId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "applicationConfigurationNameOrId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : { }
            }
          }
        }
      }
    },
    "/auth_scheme/custom" : {
      "get" : {
        "summary" : "Lists all auth schemes in the system",
        "description" : "Requires SUPERUSER access. Gets a pagination of Auth Schemes for the given query.",
        "operationId" : "getCustomAuthSchemes",
        "parameters" : [ {
          "name" : "offset",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0
          }
        }, {
          "name" : "count",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 20
          }
        }, {
          "name" : "tags",
          "in" : "query",
          "schema" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/PaginationAuthScheme"
                }
              }
            }
          }
        }
      },
      "post" : {
        "summary" : "Creates a new Auth Scheme",
        "description" : "Creates a new Auth Scheme, from the data in the given auth scheme request",
        "operationId" : "createCustomAuthScheme",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/CreateAuthSchemeRequest"
              }
            }
          }
        },
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/CreateAuthSchemeResponse"
                }
              }
            }
          }
        }
      }
    },
    "/auth_scheme/custom/{authSchemeId}" : {
      "get" : {
        "summary" : "Gets a specific Auth Scheme",
        "description" : "Gets a specific Auth Scheme by the authSchemeId.",
        "operationId" : "getCustomAuthScheme",
        "parameters" : [ {
          "name" : "authSchemeId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/AuthScheme"
                }
              }
            }
          }
        }
      },
      "put" : {
        "summary" : "Updates an Auth Scheme",
        "description" : "Updates an Auth Scheme with the specified data in the auth scheme request.",
        "operationId" : "updateCustomAuthScheme",
        "parameters" : [ {
          "name" : "authSchemeId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/UpdateAuthSchemeRequest"
              }
            }
          }
        },
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/UpdateAuthSchemeResponse"
                }
              }
            }
          }
        }
      },
      "delete" : {
        "summary" : "Deletes an Auth Scheme",
        "description" : "Deletes an Auth Scheme with the specified id.",
        "operationId" : "deleteCustomAuthScheme",
        "parameters" : [ {
          "name" : "authSchemeId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : { }
            }
          }
        }
      }
    },
    "/auth/oauth2" : {
      "post" : {
        "summary" : "Creates a Session using OAuth2",
        "description" : "Begins a session by accepting a session request with parameters matching the specified OAuth2 Scheme. Upon successful validation against the scheme provided in the path, this will return a Session which can be used for authentication. If there is no User associated with the supplied credentials, this will implicitly create a new account and will include that account information in the response. If there is an account, or this method receives an existing session key, this will link to the existing scheme if the account was not previously linked.",
        "operationId" : "createOAuth2Session",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/OAuth2SessionRequest"
              }
            }
          }
        },
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/SessionCreation"
                }
              }
            }
          }
        }
      }
    },
    "/auth_scheme/oauth2" : {
      "get" : {
        "summary" : "Lists all auth schemes in the system",
        "description" : "Requires SUPERUSER access. Gets a pagination of Auth Schemes for the given query.",
        "operationId" : "getOauth2AuthSchemes",
        "parameters" : [ {
          "name" : "offset",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0
          }
        }, {
          "name" : "count",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 20
          }
        }, {
          "name" : "tags",
          "in" : "query",
          "schema" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/PaginationOAuth2AuthScheme"
                }
              }
            }
          }
        }
      },
      "post" : {
        "summary" : "Creates a new Auth Scheme",
        "description" : "Creates a new Auth Scheme, from the data in the given auth scheme request",
        "operationId" : "createOauth2AuthScheme",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/CreateOrUpdateOAuth2AuthSchemeRequest"
              }
            }
          }
        },
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/CreateOrUpdateOAuth2AuthSchemeResponse"
                }
              }
            }
          }
        }
      }
    },
    "/auth_scheme/oauth2/{oAuth2AuthSchemeId}" : {
      "get" : {
        "summary" : "Gets a specific Auth Scheme",
        "description" : "Gets a specific Auth Scheme by the oAuth2AuthSchemeId.",
        "operationId" : "getOauth2AuthScheme",
        "parameters" : [ {
          "name" : "oAuth2AuthSchemeId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/OAuth2AuthScheme"
                }
              }
            }
          }
        }
      },
      "put" : {
        "summary" : "Updates an Auth Scheme",
        "description" : "Updates an Auth Scheme with the specified data in the auth scheme request.",
        "operationId" : "updateOauth2AuthScheme",
        "parameters" : [ {
          "name" : "oAuth2AuthSchemeId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/CreateOrUpdateOAuth2AuthSchemeRequest"
              }
            }
          }
        },
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/CreateOrUpdateOAuth2AuthSchemeResponse"
                }
              }
            }
          }
        }
      },
      "delete" : {
        "summary" : "Deletes an Auth Scheme",
        "description" : "Deletes an Auth Scheme with the specified id.",
        "operationId" : "deleteOauth2AuthScheme",
        "parameters" : [ {
          "name" : "oAuth2AuthSchemeId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : { }
            }
          }
        }
      }
    },
    "/auth/oidc" : {
      "post" : {
        "summary" : "Creates a Session using OIDC",
        "description" : "Begins a session by accepting a JWT. Upon successful validation against the scheme provided in the path, this will return a Session which can be used for authentication. If there is no User associated with the supplied credentials, this will implicitly create a new account and will include that account information in the response. If there is an account, or this method receives an existing session key, this will link to the existing scheme if the account was not previously linked.",
        "operationId" : "createOidcSession",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/OidcSessionRequest"
              }
            }
          }
        },
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/SessionCreation"
                }
              }
            }
          }
        }
      }
    },
    "/auth_scheme/oidc" : {
      "get" : {
        "summary" : "Lists all auth schemes in the system",
        "description" : "Requires SUPERUSER access. Gets a pagination of Auth Schemes for the given query.",
        "operationId" : "getOidcAuthSchemes",
        "parameters" : [ {
          "name" : "offset",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0
          }
        }, {
          "name" : "count",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 20
          }
        }, {
          "name" : "tags",
          "in" : "query",
          "schema" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/PaginationOidcAuthScheme"
                }
              }
            }
          }
        }
      },
      "post" : {
        "summary" : "Creates a new Auth Scheme",
        "description" : "Creates a new Auth Scheme, from the data in the given auth scheme request",
        "operationId" : "createOidcAuthScheme",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/CreateOrUpdateOidcAuthSchemeRequest"
              }
            }
          }
        },
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/CreateOrUpdateOidcAuthSchemeResponse"
                }
              }
            }
          }
        }
      }
    },
    "/auth_scheme/oidc/{oidcAuthSchemeId}" : {
      "get" : {
        "summary" : "Gets a specific Auth Scheme",
        "description" : "Gets a specific Auth Scheme by the oidcAuthSchemeId.",
        "operationId" : "getOidcAuthScheme",
        "parameters" : [ {
          "name" : "oidcAuthSchemeId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/OidcAuthScheme"
                }
              }
            }
          }
        }
      },
      "put" : {
        "summary" : "Updates an Auth Scheme",
        "description" : "Updates an Auth Scheme with the specified data in the auth scheme request.",
        "operationId" : "updateOidcAuthScheme",
        "parameters" : [ {
          "name" : "oidcAuthSchemeId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/CreateOrUpdateOidcAuthSchemeRequest"
              }
            }
          }
        },
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/CreateOrUpdateOidcAuthSchemeResponse"
                }
              }
            }
          }
        }
      },
      "delete" : {
        "summary" : "Deletes an Auth Scheme",
        "description" : "Deletes an Auth Scheme with the specified id.",
        "operationId" : "deleteOidcAuthScheme",
        "parameters" : [ {
          "name" : "oidcAuthSchemeId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : { }
            }
          }
        }
      }
    },
    "/oidc/{provider}/callback" : {
      "get" : {
        "summary" : "OIDC provider redirect target",
        "description" : "Not called by game clients. The provider redirects the system browser here after the user completes (or denies) authorization.",
        "operationId" : "callback",
        "parameters" : [ {
          "name" : "provider",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "code",
          "in" : "query",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "state",
          "in" : "query",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "error",
          "in" : "query",
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "text/html" : { }
            }
          }
        }
      }
    },
    "/auth_scheme/oidc_provider" : {
      "get" : {
        "summary" : "Lists all OIDC provider configurations",
        "description" : "Requires SUPERUSER access. Gets a pagination of OIDC provider configurations.",
        "operationId" : "getProviderConfigurations",
        "parameters" : [ {
          "name" : "offset",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0
          }
        }, {
          "name" : "count",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 20
          }
        }, {
          "name" : "tags",
          "in" : "query",
          "schema" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/PaginationOidcProviderConfiguration"
                }
              }
            }
          }
        }
      },
      "post" : {
        "summary" : "Creates a new OIDC provider configuration",
        "description" : "Requires SUPERUSER access. Resolves the discovery document at the supplied discoveryUrl and auto-provisions the matching OIDC auth scheme by issuer, so a single request fully activates a new provider (e.g. Twitch) with no code changes.",
        "operationId" : "createProviderConfiguration",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/CreateOrUpdateOidcProviderConfigurationRequest"
              }
            }
          }
        },
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/CreateOrUpdateOidcProviderConfigurationResponse"
                }
              }
            }
          }
        }
      }
    },
    "/auth_scheme/oidc_provider/{providerConfigurationId}" : {
      "get" : {
        "summary" : "Gets a specific OIDC provider configuration",
        "operationId" : "getProviderConfiguration",
        "parameters" : [ {
          "name" : "providerConfigurationId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/OidcProviderConfiguration"
                }
              }
            }
          }
        }
      },
      "put" : {
        "summary" : "Updates an OIDC provider configuration",
        "operationId" : "updateProviderConfiguration",
        "parameters" : [ {
          "name" : "providerConfigurationId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/CreateOrUpdateOidcProviderConfigurationRequest"
              }
            }
          }
        },
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/CreateOrUpdateOidcProviderConfigurationResponse"
                }
              }
            }
          }
        }
      },
      "delete" : {
        "summary" : "Deletes an OIDC provider configuration",
        "operationId" : "deleteProviderConfiguration",
        "parameters" : [ {
          "name" : "providerConfigurationId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "*/*" : { }
            }
          }
        }
      }
    },
    "/oidc/session" : {
      "post" : {
        "summary" : "Begins an OIDC login attempt, or validates a possessed id_token directly",
        "description" : "Supplying only 'provider' starts a pending browser-redirect login attempt and returns an id plus the authorize URL to open in the system browser. Additionally supplying 'idToken' instead validates it directly and returns a completed session synchronously, sharing validation code with the callback path.",
        "operationId" : "createOidcSession_1",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/OidcLoginAttemptRequest"
              }
            }
          }
        },
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : { }
            }
          }
        }
      }
    },
    "/oidc/session/{id}" : {
      "get" : {
        "summary" : "Polls a pending OIDC login attempt",
        "description" : "Returns COMPLETE with the session exactly once, on the poll that first observes completion; a subsequent poll for the same id, or a poll for an unknown/expired id, returns 404.",
        "operationId" : "pollOidcSession",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/OidcLoginAttemptStatusResponse"
                }
              }
            }
          }
        }
      }
    },
    "/blockchain/omni/smart_contract" : {
      "get" : {
        "summary" : "Gets  contracts.",
        "description" : "Gets a pagination of  SmartContracts.",
        "operationId" : "getSmartContracts",
        "parameters" : [ {
          "name" : "offset",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0
          }
        }, {
          "name" : "count",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 20
          }
        }, {
          "name" : "api",
          "in" : "query",
          "schema" : {
            "type" : "string",
            "enum" : [ "NEO", "ETHEREUM", "SOLANA", "FLOW", "NEAR" ]
          }
        }, {
          "name" : "network",
          "in" : "query",
          "schema" : {
            "type" : "array",
            "items" : {
              "type" : "string",
              "enum" : [ "NEO", "NEO_TEST", "ETHEREUM", "ETHEREUM_TEST", "BSC", "BSC_TEST", "POLYGON", "POLYGON_TEST", "SOLANA", "SOLANA_TEST", "FLOW", "FLOW_TEST", "NEAR", "NEAR_TEST" ]
            }
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/PaginationSmartContract"
                }
              }
            }
          }
        }
      },
      "post" : {
        "summary" : "Patches a  Smart Contract",
        "description" : "Patches a  Smart Contract entry, associated with the specified deployed script hash.",
        "operationId" : "createSmartContract",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/CreateSmartContractRequest"
              }
            }
          }
        },
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/SmartContract"
                }
              }
            }
          }
        }
      }
    },
    "/blockchain/omni/smart_contract/{contractId}" : {
      "get" : {
        "summary" : "Gets a specific  Smart Contract",
        "description" : "Gets a specific  Smart Contract by contractId.",
        "operationId" : "getSmartContract",
        "parameters" : [ {
          "name" : "contractId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/SmartContract"
                }
              }
            }
          }
        }
      },
      "put" : {
        "summary" : "Patches a  Smart Contract",
        "description" : "Patches a  Smart Contract entry, associated with the specified deployed script hash.",
        "operationId" : "updateSmartContract",
        "parameters" : [ {
          "name" : "contractId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/UpdateSmartContractRequest"
              }
            }
          }
        },
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/SmartContract"
                }
              }
            }
          }
        }
      },
      "delete" : {
        "summary" : "Deletes a  Smart Contract",
        "description" : "Deletes a  Smart Contract with the specified contractId.",
        "operationId" : "deleteContract",
        "parameters" : [ {
          "name" : "contractId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : { }
            }
          }
        }
      }
    },
    "/blockchain/omni/vault" : {
      "get" : {
        "summary" : "Gets  vaults. Optionally filtered for a specific user",
        "description" : "Gets a pagination of  Wallets. Optionally a user Id can be specified to filter for a given user.",
        "operationId" : "getVaults",
        "parameters" : [ {
          "name" : "offset",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0
          }
        }, {
          "name" : "count",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 20
          }
        }, {
          "name" : "userId",
          "in" : "query",
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/PaginationVault"
                }
              }
            }
          }
        }
      },
      "post" : {
        "summary" : "Creates a new  Vault",
        "description" : "Creates a new  Vault, associated with the given user.",
        "operationId" : "createVault",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/CreateVaultRequest"
              }
            }
          }
        },
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Vault"
                }
              }
            }
          }
        }
      }
    },
    "/blockchain/omni/vault/{vaultId}" : {
      "get" : {
        "summary" : "Gets a specific  Vault",
        "description" : "Gets a specific  Vault by Id.",
        "operationId" : "getVault",
        "parameters" : [ {
          "name" : "vaultId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Vault"
                }
              }
            }
          }
        }
      },
      "put" : {
        "summary" : "Updates a  Vault",
        "description" : "Updates a  Vault with the specified name or id.",
        "operationId" : "updateVault",
        "parameters" : [ {
          "name" : "vaultId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/UpdateVaultRequest"
              }
            }
          }
        },
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Vault"
                }
              }
            }
          }
        }
      },
      "delete" : {
        "summary" : "Deletes a  Vault",
        "description" : "Deletes a  Vault with the specified id.",
        "operationId" : "deleteVault",
        "parameters" : [ {
          "name" : "vaultId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : { }
            }
          }
        }
      }
    },
    "/blockchain/omni/vault/{vaultId}/wallet" : {
      "get" : {
        "summary" : "Gets  wallets. Optionally filtered for a specific user",
        "description" : "Gets a pagination of  Wallets. Optionally a user Id can be specified to filter for a given user.",
        "operationId" : "getWallets",
        "parameters" : [ {
          "name" : "offset",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0
          }
        }, {
          "name" : "count",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 20
          }
        }, {
          "name" : "userId",
          "in" : "query",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "api",
          "in" : "query",
          "schema" : {
            "type" : "string",
            "enum" : [ "NEO", "ETHEREUM", "SOLANA", "FLOW", "NEAR" ]
          }
        }, {
          "name" : "network",
          "in" : "query",
          "schema" : {
            "type" : "array",
            "items" : {
              "type" : "string",
              "enum" : [ "NEO", "NEO_TEST", "ETHEREUM", "ETHEREUM_TEST", "BSC", "BSC_TEST", "POLYGON", "POLYGON_TEST", "SOLANA", "SOLANA_TEST", "FLOW", "FLOW_TEST", "NEAR", "NEAR_TEST" ]
            }
          }
        }, {
          "name" : "vaultId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/PaginationWallet"
                }
              }
            }
          }
        }
      },
      "post" : {
        "summary" : "Creates a new  Wallet",
        "description" : "Creates a new  Wallet, associated with the given user.",
        "operationId" : "createWallet",
        "parameters" : [ {
          "name" : "vaultId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/CreateWalletRequest"
              }
            }
          }
        },
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Wallet"
                }
              }
            }
          }
        }
      }
    },
    "/blockchain/omni/vault/{vaultId}/wallet/{walletId}" : {
      "get" : {
        "summary" : "Gets a specific  Wallet",
        "description" : "Gets a specific  Wallet by Id.",
        "operationId" : "getWalletForVault",
        "parameters" : [ {
          "name" : "vaultId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "walletId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Wallet"
                }
              }
            }
          }
        }
      },
      "put" : {
        "summary" : "Updates a  Wallet",
        "description" : "Updates a  Wallet with the specified name or id.",
        "operationId" : "updateWallet",
        "parameters" : [ {
          "name" : "vaultId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "walletId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/UpdateWalletRequest"
              }
            }
          }
        },
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Wallet"
                }
              }
            }
          }
        }
      },
      "delete" : {
        "summary" : "Deletes a  Wallet",
        "description" : "Deletes a  Wallet with the specified id.",
        "operationId" : "deleteWallet",
        "parameters" : [ {
          "name" : "vaultId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "walletId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : { }
            }
          }
        }
      }
    },
    "/blockchain/omni/wallet/{walletId}" : {
      "get" : {
        "summary" : "Gets a specific  Wallet",
        "description" : "Gets a specific  Wallet by Id.",
        "operationId" : "getWallet",
        "parameters" : [ {
          "name" : "walletId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Wallet"
                }
              }
            }
          }
        }
      }
    },
    "/deployment/{applicationId}" : {
      "get" : {
        "operationId" : "getDeployments",
        "parameters" : [ {
          "name" : "applicationId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/PaginationDeployment"
                }
              }
            }
          }
        }
      },
      "post" : {
        "operationId" : "createNewDeployment",
        "parameters" : [ {
          "name" : "applicationId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/CreateDeploymentRequest"
              }
            }
          }
        },
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Deployment"
                }
              }
            }
          }
        }
      }
    },
    "/deployment/{applicationId}/{deploymentId}" : {
      "get" : {
        "operationId" : "getDeployment",
        "parameters" : [ {
          "name" : "applicationId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "deploymentId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Deployment"
                }
              }
            }
          }
        }
      },
      "delete" : {
        "operationId" : "deleteDeployment",
        "parameters" : [ {
          "name" : "applicationId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "deploymentId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "*/*" : { }
            }
          }
        }
      }
    },
    "/deployment/{applicationId}/current" : {
      "get" : {
        "operationId" : "getCurrentDeployment",
        "parameters" : [ {
          "name" : "applicationId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Deployment"
                }
              }
            }
          }
        }
      }
    },
    "/deployment/{applicationId}/{version}" : {
      "put" : {
        "operationId" : "updateDeployment",
        "parameters" : [ {
          "name" : "applicationId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "version",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/UpdateDeploymentRequest"
              }
            }
          }
        },
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Deployment"
                }
              }
            }
          }
        }
      }
    },
    "/codegen" : {
      "post" : {
        "summary" : "Generate Client API Code",
        "description" : "Generates API code for use on the client. Will generate Elements core if no application is specified in the request body.The generated code will always be returned in JSON format. To get a YAML representation, use the Oas3DocumentationResource directly, such as /api/rest/openapi.yaml",
        "operationId" : "generateCode",
        "requestBody" : {
          "content" : {
            "*/*" : {
              "schema" : {
                "$ref" : "#/components/schemas/CodegenRequest"
              }
            }
          }
        },
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/octet-stream" : { }
            }
          }
        }
      }
    },
    "/elements/deployment" : {
      "get" : {
        "operationId" : "getElementDeployments",
        "parameters" : [ {
          "name" : "offset",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0
          }
        }, {
          "name" : "count",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 20
          }
        }, {
          "name" : "search",
          "in" : "query",
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/PaginationElementDeployment"
                }
              }
            }
          }
        }
      },
      "post" : {
        "operationId" : "createElementDeployment",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/CreateElementDeploymentRequest"
              }
            }
          }
        },
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ElementDeployment"
                }
              }
            }
          }
        }
      }
    },
    "/elements/deployment/{deploymentId}" : {
      "get" : {
        "operationId" : "getElementDeployment",
        "parameters" : [ {
          "name" : "deploymentId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ElementDeployment"
                }
              }
            }
          }
        }
      },
      "put" : {
        "operationId" : "updateElementDeployment",
        "parameters" : [ {
          "name" : "deploymentId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/UpdateElementDeploymentRequest"
              }
            }
          }
        },
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ElementDeployment"
                }
              }
            }
          }
        }
      },
      "delete" : {
        "operationId" : "deleteElementDeployment",
        "parameters" : [ {
          "name" : "deploymentId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "*/*" : { }
            }
          }
        }
      }
    },
    "/elements/builtin_spi" : {
      "get" : {
        "operationId" : "getAllBuiltinSpis",
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/ElementSpi"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/elements/container" : {
      "get" : {
        "operationId" : "getAllContainers",
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/ElementContainerStatus"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/elements/features" : {
      "get" : {
        "operationId" : "getAllFeatures",
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/ElementFeature"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/elements/runtime" : {
      "get" : {
        "operationId" : "getAllRuntimes",
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/ElementRuntimeStatus"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/elements/system" : {
      "get" : {
        "operationId" : "getAllSystemElements",
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/ElementMetadata"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/elm/inspector/artifact/{coordinates}" : {
      "get" : {
        "summary" : "Inspects the artifact with the supplied coordinates.",
        "operationId" : "getElementPathRecordForArtifact",
        "parameters" : [ {
          "name" : "coordinates",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string",
            "description" : "The coordinates of the ELM artifact."
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/ElementPathRecordMetadata"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/elm/inspector/large_object/{largeObjectId}" : {
      "get" : {
        "summary" : "Inspects the artifact with the supplied large object id.",
        "operationId" : "getElementPathRecordForLargeObjectId",
        "parameters" : [ {
          "name" : "largeObjectId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string",
            "description" : "The the large object ID of the ELM."
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/ElementPathRecordMetadata"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/elm/inspector/upload" : {
      "post" : {
        "summary" : "Inspects an ELM file uploaded via multipart form.",
        "operationId" : "inspectUploadedElm",
        "requestBody" : {
          "content" : {
            "multipart/form-data" : {
              "schema" : {
                "type" : "object",
                "properties" : {
                  "elm" : {
                    "type" : "object",
                    "description" : "The ELM file to inspect."
                  }
                }
              }
            }
          }
        },
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/ElementPathRecordMetadata"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/followee/{profileId}" : {
      "get" : {
        "summary" : "Search Followees",
        "description" : "Searches for all profiles that are being followed by the given profile id.",
        "operationId" : "getFollowees",
        "parameters" : [ {
          "name" : "profileId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "offset",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0
          }
        }, {
          "name" : "count",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 20
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/PaginationProfile"
                }
              }
            }
          }
        }
      }
    },
    "/follower/{profileId}" : {
      "get" : {
        "summary" : "Search Followers",
        "description" : "Searches all followers in the system and returning the metadata for all matches against the given profile id.",
        "operationId" : "getFollowers",
        "parameters" : [ {
          "name" : "profileId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "offset",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0
          }
        }, {
          "name" : "count",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 20
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/PaginationProfile"
                }
              }
            }
          }
        }
      },
      "post" : {
        "summary" : "Creates a Follower relationship between two profiles.",
        "description" : "Supplying the follower object, this will store the information supplied in the body of the request.",
        "operationId" : "createFollower",
        "parameters" : [ {
          "name" : "profileId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/CreateFollowerRequest"
              }
            }
          }
        },
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : { }
            }
          }
        }
      }
    },
    "/follower/{profileId}/{profileToUnfollowId}" : {
      "delete" : {
        "summary" : "Deletes a Follower relationship",
        "operationId" : "deleteFollower",
        "parameters" : [ {
          "name" : "profileId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "profileToUnfollowId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : { }
            }
          }
        }
      }
    },
    "/follower/{profileId}/{followedId}" : {
      "get" : {
        "summary" : "Gets a specific profile using the ID of the profile and followed id.",
        "operationId" : "getFollower",
        "parameters" : [ {
          "name" : "profileId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "followedId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Profile"
                }
              }
            }
          }
        }
      }
    },
    "/friend/{friendId}" : {
      "get" : {
        "summary" : "Gets a Specific Friend",
        "description" : "Gets a specific friend using the ID of the friend.",
        "operationId" : "getFriend",
        "parameters" : [ {
          "name" : "friendId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Friend"
                }
              }
            }
          }
        }
      },
      "delete" : {
        "summary" : "Deletes a Friend",
        "description" : "Once a friend is deleted, re-creating a friend will set the friendship status to outgoing.",
        "operationId" : "deleteFriendRegistration",
        "parameters" : [ {
          "name" : "friendId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : { }
            }
          }
        }
      }
    },
    "/friend" : {
      "get" : {
        "summary" : "Search Friends",
        "description" : "Searches all friends in the system and returning the metadata for all matches against the given search filter.",
        "operationId" : "getFriends",
        "parameters" : [ {
          "name" : "offset",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0
          }
        }, {
          "name" : "count",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 20
          }
        }, {
          "name" : "search",
          "in" : "query",
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/PaginationFriend"
                }
              }
            }
          }
        }
      }
    },
    "/item" : {
      "get" : {
        "summary" : "Retrieves all Items",
        "description" : "Searches all items and returns all matching items, filtered by the passed in search parameters.  If multiple tags are specified, then all items that contain at least one of the passed in tags is returned.",
        "operationId" : "getItems",
        "parameters" : [ {
          "name" : "offset",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0
          }
        }, {
          "name" : "count",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 20
          }
        }, {
          "name" : "tags",
          "in" : "query",
          "schema" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          }
        }, {
          "name" : "category",
          "in" : "query",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "search",
          "in" : "query",
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/PaginationItem"
                }
              }
            }
          }
        }
      },
      "post" : {
        "summary" : "Creates a new digital Item",
        "description" : "Supplying an item object, this will create a new item with a newly assigned unique id.  The Item representation returned in the response body is a representation of the Item as persisted with a unique identifier signed and with its fields properly normalized.  The supplied item object submitted with the request must have a name property that is unique across all items.",
        "operationId" : "createItem",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/CreateItemRequest"
              }
            }
          }
        },
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Item"
                }
              }
            }
          }
        }
      }
    },
    "/item/{identifier}" : {
      "get" : {
        "summary" : "Retrieves a single Item by id or by name",
        "description" : "Looks up an item by the passed in identifier",
        "operationId" : "getItemByIdentifier",
        "parameters" : [ {
          "name" : "identifier",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Item"
                }
              }
            }
          }
        }
      },
      "put" : {
        "summary" : "Updates a single Item",
        "description" : "Supplying an item, this will update the Item identified by the identifier in the path with contents from the passed in request body. ",
        "operationId" : "updateItem",
        "parameters" : [ {
          "name" : "identifier",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/UpdateItemRequest"
              }
            }
          }
        },
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Item"
                }
              }
            }
          }
        }
      },
      "delete" : {
        "summary" : "Delete the item as identified by the given item name/id",
        "description" : "Delete the item as identified by the given item name/id",
        "operationId" : "deleteItem",
        "parameters" : [ {
          "name" : "identifier",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : { }
            }
          }
        }
      }
    },
    "/product/bundle" : {
      "get" : {
        "summary" : "Gets a paginated list of Product Bundles.",
        "description" : "Returns all Product Bundles, optionally filtered by application and/or schema.",
        "operationId" : "getProductBundles",
        "parameters" : [ {
          "name" : "applicationNameOrId",
          "in" : "query",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "schema",
          "in" : "query",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "productId",
          "in" : "query",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "tag",
          "in" : "query",
          "schema" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          }
        }, {
          "name" : "offset",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0
          }
        }, {
          "name" : "count",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 20
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/PaginationProductBundle"
                }
              }
            }
          }
        }
      },
      "post" : {
        "summary" : "Creates a new Product Bundle.",
        "description" : "Creates a new Product Bundle mapping an application + provider schema + productId to a set of rewards.",
        "operationId" : "createProductBundle",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/ProductBundle"
              }
            }
          }
        },
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : { }
            }
          }
        }
      }
    },
    "/product/bundle/{id}" : {
      "get" : {
        "summary" : "Gets a Product Bundle by its database id.",
        "description" : "Returns the Product Bundle identified by the given database id.",
        "operationId" : "getProductBundle",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProductBundle"
                }
              }
            }
          }
        }
      },
      "put" : {
        "summary" : "Updates an existing Product Bundle.",
        "description" : "Updates the Product Bundle identified by the given database id.",
        "operationId" : "updateProductBundle",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/ProductBundle"
              }
            }
          }
        },
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProductBundle"
                }
              }
            }
          }
        }
      },
      "delete" : {
        "summary" : "Deletes a Product Bundle.",
        "description" : "Permanently removes the Product Bundle identified by the given database id.",
        "operationId" : "deleteProductBundle",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "*/*" : { }
            }
          }
        }
      }
    },
    "/product/bundle/{applicationNameOrId}/{schema}/{productId}" : {
      "get" : {
        "summary" : "Gets a Product Bundle by application, schema, and productId.",
        "description" : "Returns the Product Bundle matching the given application, provider schema and product id.",
        "operationId" : "getProductBundleByKey",
        "parameters" : [ {
          "name" : "applicationNameOrId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "schema",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "productId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProductBundle"
                }
              }
            }
          }
        }
      }
    },
    "/product/sku/schema" : {
      "get" : {
        "summary" : "Gets a paginated list of Product SKU Schemas.",
        "description" : "Returns all registered payment-provider schema identifiers.",
        "operationId" : "getProductSkuSchemas",
        "parameters" : [ {
          "name" : "offset",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0
          }
        }, {
          "name" : "count",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 20
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/PaginationProductSkuSchema"
                }
              }
            }
          }
        }
      },
      "post" : {
        "summary" : "Creates a new Product SKU Schema.",
        "description" : "Registers a payment-provider schema identifier. Returns an existing record if the schema value already exists.",
        "operationId" : "createProductSkuSchema",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/ProductSkuSchema"
              }
            }
          }
        },
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : { }
            }
          }
        }
      }
    },
    "/product/sku/schema/{id}" : {
      "get" : {
        "summary" : "Gets a Product SKU Schema by id.",
        "description" : "Returns the schema identifier with the given database id.",
        "operationId" : "getProductSkuSchema",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProductSkuSchema"
                }
              }
            }
          }
        }
      },
      "delete" : {
        "summary" : "Deletes a Product SKU Schema.",
        "description" : "Permanently removes the schema identifier with the given database id.",
        "operationId" : "deleteProductSkuSchema",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "*/*" : { }
            }
          }
        }
      }
    },
    "/google/purchase" : {
      "post" : {
        "summary" : "Upload Google Play IAP Receipt data (package name, product id and Google Play-issued purchase token). Returns a list of RewardIssuances, some or all of which may be already redeemed.",
        "operationId" : "uploadGooglePlayIapPurchase",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/CreateGooglePlayIapReceipt"
              }
            }
          }
        },
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/RewardIssuance"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/index/build" : {
      "post" : {
        "summary" : "Builds all indexes.",
        "operationId" : "buildIndexes",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/BuildIndexRequest"
              }
            }
          }
        },
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : { }
            }
          }
        }
      }
    },
    "/index/plan" : {
      "get" : {
        "summary" : "Gets all index plans.",
        "operationId" : "getPlans",
        "parameters" : [ {
          "name" : "offset",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0
          }
        }, {
          "name" : "count",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 20
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/PaginationIndexPlanObject"
                }
              }
            }
          }
        }
      }
    },
    "/inventory/advanced/{inventoryItemId}" : {
      "get" : {
        "summary" : "Gets inventory item for the specified item",
        "description" : "Gets the first (primary) inventory item for the specified item",
        "operationId" : "getAdvancedInventoryItem",
        "parameters" : [ {
          "name" : "inventoryItemId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/InventoryItem"
                }
              }
            }
          }
        }
      },
      "put" : {
        "summary" : "Updates an inventory item for the specified item",
        "description" : "Updates an inventory item for the specified item",
        "operationId" : "updateAdvancedInventoryItem",
        "parameters" : [ {
          "name" : "inventoryItemId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/UpdateInventoryItemRequest"
              }
            }
          }
        },
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/InventoryItem"
                }
              }
            }
          }
        }
      },
      "delete" : {
        "summary" : "Delete the inventory item as identified by the given item name/id",
        "description" : "Delete the inventory item as identified by the given item name/id",
        "operationId" : "deleteAdvancedInventoryItem",
        "parameters" : [ {
          "name" : "inventoryItemId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : { }
            }
          }
        }
      },
      "patch" : {
        "summary" : "Adjust the quantity of the inventory item for the specified item.",
        "description" : "Adjust the quantity of the first (primary) inventory item for the specified item.  This implicitly will create the InventoryItem if it does not exist.  The inventory item value",
        "operationId" : "adjustAdvancedInventoryItemQuantity",
        "parameters" : [ {
          "name" : "inventoryItemId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/AdvancedInventoryItemQuantityAdjustment"
              }
            }
          }
        },
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/InventoryItem"
                }
              }
            }
          }
        }
      }
    },
    "/inventory/advanced" : {
      "get" : {
        "summary" : "Search inventory items",
        "description" : "Searches all inventory items in the system and returns the metadata for all matches against the given search filter.",
        "operationId" : "getAdvancedInventoryItems",
        "parameters" : [ {
          "name" : "offset",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0
          }
        }, {
          "name" : "count",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 20
          }
        }, {
          "name" : "userId",
          "in" : "query",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "search",
          "in" : "query",
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/PaginationInventoryItem"
                }
              }
            }
          }
        }
      },
      "post" : {
        "summary" : "Create an inventory item for the specified item",
        "description" : "Create an inventory item for the specified item",
        "operationId" : "createAdvancedInventoryItem",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/CreateAdvancedInventoryItemRequest"
              }
            }
          }
        },
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/InventoryItem"
                }
              }
            }
          }
        }
      }
    },
    "/inventory/distinct" : {
      "get" : {
        "summary" : "Search inventory items",
        "description" : "Searches all inventory items in the system and returns the metadata for all matches against the given search filter.",
        "operationId" : "getDistinctInventoryItems",
        "parameters" : [ {
          "name" : "offset",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0
          }
        }, {
          "name" : "count",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 20
          }
        }, {
          "name" : "userId",
          "in" : "query",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "profileId",
          "in" : "query",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "search",
          "in" : "query",
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/PaginationDistinctInventoryItem"
                }
              }
            }
          }
        }
      },
      "post" : {
        "summary" : "Create an inventory item for the specified item",
        "description" : "Create an inventory item for the specified item",
        "operationId" : "createDistinctInventoryItem",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/CreateDistinctInventoryItemRequest"
              }
            }
          }
        },
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/DistinctInventoryItem"
                }
              }
            }
          }
        }
      }
    },
    "/inventory/distinct/{distinctInventoryItemId}" : {
      "put" : {
        "summary" : "Updates an inventory item for the specified item",
        "description" : "Updates an inventory item for the specified item",
        "operationId" : "updateDistinctInventoryItem",
        "parameters" : [ {
          "name" : "distinctInventoryItemId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/UpdateDistinctInventoryItemRequest"
              }
            }
          }
        },
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/DistinctInventoryItem"
                }
              }
            }
          }
        }
      },
      "delete" : {
        "summary" : "Delete the inventory item as identified by the given item name/id",
        "description" : "Delete the inventory item as identified by the given item name/id",
        "operationId" : "deleteDistinctInventoryItem",
        "parameters" : [ {
          "name" : "distinctInventoryItemId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : { }
            }
          }
        }
      }
    },
    "/inventory/distinct/{inventoryItemId}" : {
      "get" : {
        "summary" : "Gets inventory item for the specified item",
        "description" : "Gets the first (primary) inventory item for the specified item",
        "operationId" : "getDistinctInventoryItem",
        "parameters" : [ {
          "name" : "inventoryItemId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/DistinctInventoryItem"
                }
              }
            }
          }
        }
      }
    },
    "/inventory/ledger" : {
      "get" : {
        "summary" : "Query the item audit ledger",
        "description" : "Returns paginated ledger entries for a specific inventory item or user, sorted most-recent first. Exactly one of inventoryItemId or userId must be supplied. All other parameters are optional filters.",
        "operationId" : "getLedgerEntries",
        "parameters" : [ {
          "name" : "inventoryItemId",
          "in" : "query",
          "description" : "Filter entries for a specific inventory item ID.",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "userId",
          "in" : "query",
          "description" : "Filter entries for a specific user ID (across all their inventory items).",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "eventType",
          "in" : "query",
          "description" : "Optional event type filter. When omitted, all event types are returned.",
          "schema" : {
            "type" : "string",
            "description" : "The type of lifecycle event recorded in an item ledger entry.",
            "enum" : [ "CREATED", "QUANTITY_ADJUSTED", "QUANTITY_SET", "DELETED", "METADATA_UPDATED", "ITEM_CREATED", "ITEM_UPDATED", "ITEM_DELETED" ]
          }
        }, {
          "name" : "from",
          "in" : "query",
          "description" : "Optional inclusive lower bound as epoch milliseconds. When omitted, no lower bound is applied.",
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        }, {
          "name" : "to",
          "in" : "query",
          "description" : "Optional inclusive upper bound as epoch milliseconds. When omitted, no upper bound is applied.",
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        }, {
          "name" : "offset",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0
          }
        }, {
          "name" : "count",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 20
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/PaginationItemLedgerEntry"
                }
              }
            }
          }
        }
      }
    },
    "/inventory/simple/{inventoryItemId}" : {
      "get" : {
        "summary" : "Gets inventory item for the specified item",
        "description" : "Gets the first (primary) inventory item for the specified item",
        "operationId" : "getSimpleInventoryItem",
        "parameters" : [ {
          "name" : "inventoryItemId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/InventoryItem"
                }
              }
            }
          }
        }
      },
      "put" : {
        "summary" : "Updates an inventory item for the specified item",
        "description" : "Updates an inventory item for the specified item",
        "operationId" : "updateSimpleInventoryItem",
        "parameters" : [ {
          "name" : "inventoryItemId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/UpdateInventoryItemRequest"
              }
            }
          }
        },
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/InventoryItem"
                }
              }
            }
          }
        }
      },
      "delete" : {
        "summary" : "Delete the inventory item as identified by the given item name/id",
        "description" : "Delete the inventory item as identified by the given item name/id",
        "operationId" : "deleteSimpleInventoryItem",
        "parameters" : [ {
          "name" : "inventoryItemId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : { }
            }
          }
        }
      },
      "patch" : {
        "summary" : "Adjust the quantity of the inventory item for the specified item.",
        "description" : "Adjust the quantity of the first (primary) inventory item for the specified item.  This implicitly will create the InventoryItem if it does not exist.  The inventory item value",
        "operationId" : "adjustSimpleInventoryItemQuantity",
        "parameters" : [ {
          "name" : "inventoryItemId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/SimpleInventoryItemQuantityAdjustment"
              }
            }
          }
        },
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/InventoryItem"
                }
              }
            }
          }
        }
      }
    },
    "/inventory/simple" : {
      "get" : {
        "summary" : "Search inventory items",
        "description" : "Searches all inventory items in the system and returns the metadata for all matches against the given search filter.",
        "operationId" : "getSimpleInventoryItems",
        "parameters" : [ {
          "name" : "offset",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0
          }
        }, {
          "name" : "count",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 20
          }
        }, {
          "name" : "userId",
          "in" : "query",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "search",
          "in" : "query",
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/PaginationInventoryItem"
                }
              }
            }
          }
        }
      },
      "post" : {
        "summary" : "Create an inventory item for the specified item",
        "description" : "Create an inventory item for the specified item",
        "operationId" : "createSimpleInventoryItem",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/CreateSimpleInventoryItemRequest"
              }
            }
          }
        },
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/InventoryItem"
                }
              }
            }
          }
        }
      }
    },
    "/invite" : {
      "post" : {
        "summary" : "Match normalized phone numbers with requested list",
        "description" : "Both phones from request and from DB are normalized and compared.",
        "operationId" : "getMatchedUserProfilesWithPhoneNumbers",
        "parameters" : [ {
          "name" : "offset",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0
          }
        }, {
          "name" : "count",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 20
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/InviteViaPhonesRequest"
              }
            }
          }
        },
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/InviteViaPhonesResponse"
                }
              }
            }
          }
        }
      }
    },
    "/large_object_mp" : {
      "post" : {
        "summary" : "Creates a LargeObject with content",
        "operationId" : "createMultipartLargeObject",
        "requestBody" : {
          "content" : {
            "multipart/form-data" : {
              "schema" : {
                "type" : "object",
                "properties" : {
                  "object" : {
                    "$ref" : "#/components/schemas/FormDataBodyPart"
                  },
                  "metadata" : {
                    "$ref" : "#/components/schemas/CreateLargeObjectRequest"
                  }
                }
              }
            }
          }
        },
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/LargeObject"
                }
              }
            }
          }
        }
      }
    },
    "/large_object" : {
      "get" : {
        "summary" : "Get a LargeObject",
        "operationId" : "getLargeObjects",
        "parameters" : [ {
          "name" : "offset",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0
          }
        }, {
          "name" : "count",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 20
          }
        }, {
          "name" : "search",
          "in" : "query",
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/PaginationLargeObject"
                }
              }
            }
          }
        }
      },
      "post" : {
        "summary" : "Creates a LargeObject",
        "operationId" : "createLargeObject",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/CreateLargeObjectRequest"
              }
            }
          }
        },
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/LargeObject"
                }
              }
            }
          }
        }
      }
    },
    "/large_object/from_url" : {
      "post" : {
        "summary" : "Creates a LargeObject from provided URL",
        "operationId" : "createLargeObjectFromUrl",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/CreateLargeObjectFromUrlRequest"
              }
            }
          }
        },
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/LargeObject"
                }
              }
            }
          }
        }
      }
    },
    "/large_object/{largeObjectId}" : {
      "get" : {
        "summary" : "Get a LargeObject",
        "operationId" : "getLargeObject",
        "parameters" : [ {
          "name" : "largeObjectId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/LargeObject"
                }
              }
            }
          }
        }
      },
      "put" : {
        "summary" : "Updates a LargeObject",
        "operationId" : "updateLargeObject",
        "parameters" : [ {
          "name" : "largeObjectId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/UpdateLargeObjectRequest"
              }
            }
          }
        },
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/LargeObject"
                }
              }
            }
          }
        }
      },
      "delete" : {
        "summary" : "Deletes a LargeObject",
        "operationId" : "deleteLargeObject",
        "parameters" : [ {
          "name" : "largeObjectId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : { }
            }
          }
        }
      }
    },
    "/large_object/{largeObjectId}/content" : {
      "put" : {
        "summary" : "Updates a LargeObject content",
        "operationId" : "updateLargeObjectContents",
        "parameters" : [ {
          "name" : "largeObjectId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "multipart/form-data" : {
              "schema" : {
                "type" : "object",
                "properties" : {
                  "file" : {
                    "$ref" : "#/components/schemas/FormDataContentDisposition"
                  }
                }
              }
            }
          }
        },
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/LargeObject"
                }
              }
            }
          }
        }
      }
    },
    "/leaderboard" : {
      "get" : {
        "summary" : "Search Leaderboards",
        "description" : "Performs a full-text search of all leaderboards known to the server.  As with other full-text endpoints this allows for pagination and offset.",
        "operationId" : "getLeaderboards",
        "parameters" : [ {
          "name" : "offset",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0
          }
        }, {
          "name" : "count",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 20
          }
        }, {
          "name" : "search",
          "in" : "query",
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/PaginationLeaderboard"
                }
              }
            }
          }
        }
      },
      "post" : {
        "summary" : "Creates a New Leaderboard",
        "description" : "Gets the metadata for a single leaderboard.  This may include more specific details not available in the bulk-get or fetch operation.",
        "operationId" : "createLeaderboard",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/CreateLeaderboardRequest"
              }
            }
          }
        },
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Leaderboard"
                }
              }
            }
          }
        }
      }
    },
    "/leaderboard/{nameOrId}" : {
      "get" : {
        "summary" : "Get an Leaderboard",
        "description" : "Gets the metadata for a single leaderboard.  This may include more specific details not availble in the bulk-get or fetch operation.",
        "operationId" : "getLeaderboard",
        "parameters" : [ {
          "name" : "nameOrId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Leaderboard"
                }
              }
            }
          }
        }
      },
      "put" : {
        "summary" : "Updates an Leaderboard",
        "description" : "Performs an update to an existing leaderboard known to the server.",
        "operationId" : "updateLeaderboard",
        "parameters" : [ {
          "name" : "nameOrId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/UpdateLeaderboardRequest"
              }
            }
          }
        },
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Leaderboard"
                }
              }
            }
          }
        }
      },
      "delete" : {
        "summary" : "Deletes an Leaderboard",
        "description" : "Deletes a specific leaderboard known to the server.",
        "operationId" : "deleteLeaderboard",
        "parameters" : [ {
          "name" : "nameOrId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "*/*" : { }
            }
          }
        }
      }
    },
    "/rank/global/{leaderboardNameOrId}" : {
      "get" : {
        "summary" : "Gets Rank Among all Players",
        "description" : "Gets the current Profile's rank among all players for the particular leaderboard.",
        "operationId" : "getGlobalRankTabular",
        "parameters" : [ {
          "name" : "leaderboardNameOrId",
          "in" : "path",
          "description" : "Specifies the leaderboard name or ID.",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "leaderboardEpoch",
          "in" : "query",
          "description" : "Specifies the epoch for the leaderboard. If not provided, the current epoch will be used by default for epochal leaderboards. This value will be ignored for all-time leaderboards. Set this value to 0 to explicitly reference the current epoch (when applicable).",
          "schema" : {
            "type" : "integer",
            "format" : "int64",
            "default" : 0
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "text/csv" : {
                "schema" : {
                  "$ref" : "#/components/schemas/TabulationRankRow"
                }
              }
            }
          }
        }
      }
    },
    "/rank/friends/{leaderboardNameOrId}" : {
      "get" : {
        "summary" : "Gets Rank among Friends",
        "description" : "Gets the current Profile's rank among friends for the particular leaderboard.",
        "operationId" : "getRankAmongFriends",
        "parameters" : [ {
          "name" : "offset",
          "in" : "query",
          "description" : "May be negative to place the requested player in the middle of the page.",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0
          }
        }, {
          "name" : "count",
          "in" : "query",
          "description" : "The number of results to return in the page.",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 20
          }
        }, {
          "name" : "relative",
          "in" : "query",
          "description" : "Indicates whether or not to fetch results in a relative fashion.",
          "schema" : {
            "type" : "boolean",
            "default" : false
          }
        }, {
          "name" : "leaderboardEpoch",
          "in" : "query",
          "description" : "Specifies the epoch for the leaderboard. If no value is provided, the current epoch will befetched.",
          "schema" : {
            "type" : "integer",
            "format" : "int64",
            "default" : 0
          }
        }, {
          "name" : "leaderboardNameOrId",
          "in" : "path",
          "description" : "Specifies the leaderboard name or ID.",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/PaginationRank"
                }
              }
            }
          }
        }
      }
    },
    "/rank/mutual_followers/{leaderboardNameOrId}" : {
      "get" : {
        "summary" : "Gets Rank among Mutual Followers",
        "description" : "Gets the current Profile's rank among mutual followers for the particular leaderboard.",
        "operationId" : "getRankAmongMutualFollowers",
        "parameters" : [ {
          "name" : "offset",
          "in" : "query",
          "description" : "May be negative to place the requested player in the middle of the page.",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0
          }
        }, {
          "name" : "count",
          "in" : "query",
          "description" : "The number of results to return in the page.",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 20
          }
        }, {
          "name" : "relative",
          "in" : "query",
          "description" : "Indicates whether or not to fetch results in a relative fashion.",
          "schema" : {
            "type" : "boolean",
            "default" : false
          }
        }, {
          "name" : "leaderboardEpoch",
          "in" : "query",
          "description" : "Specifies the epoch for the leaderboard. If no value is provided, the current epoch will befetched.",
          "schema" : {
            "type" : "integer",
            "format" : "int64",
            "default" : 0
          }
        }, {
          "name" : "leaderboardNameOrId",
          "in" : "path",
          "description" : "Specifies the leaderboard name or ID.",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/PaginationRank"
                }
              }
            }
          }
        }
      }
    },
    "/score/{leaderboardNameOrId}" : {
      "post" : {
        "summary" : "Creates a New Score",
        "description" : "Posts a single score for the currently logged-in profile. Conceptually, this is creationg a new resource, however the server may opt to overwrite the existing identifier if it sees fit.",
        "operationId" : "createScore",
        "parameters" : [ {
          "name" : "leaderboardNameOrId",
          "in" : "path",
          "description" : "The name or id of the leaderboard.",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/Score"
              }
            }
          }
        },
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Score"
                }
              }
            }
          }
        }
      }
    },
    "/multi_match" : {
      "get" : {
        "summary" : "List MultiMatches",
        "description" : "Lists all matches available.  Under most circumstances, this will requires that a profile be made available to the request.  The server may choose to return an error if no suitable profile can be determined.",
        "operationId" : "getMatches",
        "parameters" : [ {
          "name" : "offset",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0
          }
        }, {
          "name" : "count",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 20
          }
        }, {
          "name" : "search",
          "in" : "query",
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/PaginationMultiMatch"
                }
              }
            }
          }
        }
      },
      "post" : {
        "summary" : "Creates a MultiMatch",
        "description" : "This method accepts an instance of MultiMatch and creates a new DB entry for it. Though it is generally recommended to create a new MultiMatch via matchmaking code in an Element, it can be created via REST for the purposes of testing or custom workflows.",
        "operationId" : "createMatch",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/MultiMatch"
              }
            }
          }
        },
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/MultiMatch"
                }
              }
            }
          }
        }
      },
      "delete" : {
        "summary" : "Deletes a MultiMatch",
        "description" : "Deletes and permanently removes all MultiMatches from he server.  This effectively will cancel any pending request for a match.  If a game is currently being played against the match, the server may reject the request to delete the match until the game concludes.",
        "operationId" : "deleteAllMatches",
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : { }
            }
          }
        }
      }
    },
    "/multi_match/{matchId}" : {
      "get" : {
        "summary" : "Gets a Specific MultiMatch",
        "description" : "Gets a specific match given the match's unique ID.  Additionally, it is possible to instruct the API to wait for a period of time before sending the response.  The request will intentionally hang until the requested MultiMatch with ID has been updated in the database.",
        "operationId" : "getMatch",
        "parameters" : [ {
          "name" : "matchId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/MultiMatch"
                }
              }
            }
          }
        }
      },
      "put" : {
        "summary" : "Updates a MultiMatch",
        "description" : "This method accepts an instance of MultiMatch and updates the DB entry for it that matches the matchId. Though it is generally recommended to update a MultiMatch via matchmaking code in an Element, it can be updated via REST for the purposes of testing or custom workflows.",
        "operationId" : "updateMatch",
        "parameters" : [ {
          "name" : "matchId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/MultiMatch"
              }
            }
          }
        },
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/MultiMatch"
                }
              }
            }
          }
        }
      },
      "delete" : {
        "summary" : "Deletes a MultiMatch",
        "description" : "Deletes and permanently removes the MultiMatch from he server.  This effectively will cancel any pending request for a match.  If a game is currently being played against the match, the server may reject the request to delete the match until the game concludes.",
        "operationId" : "deleteMatch",
        "parameters" : [ {
          "name" : "matchId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : { }
            }
          }
        }
      }
    },
    "/meta/facebook" : {
      "get" : {
        "summary" : "Fetches the facebook iap receipt with the matching database id.",
        "operationId" : "getFacebookIapReceipts",
        "parameters" : [ {
          "name" : "offset",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0
          }
        }, {
          "name" : "count",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 20
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/PaginationFacebookIapReceipt"
                }
              }
            }
          }
        }
      },
      "post" : {
        "summary" : "Attempts to create the Facebook IAP Receipt data.",
        "operationId" : "createFacebookIapReceipt",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/FacebookIapReceipt"
              }
            }
          }
        },
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/FacebookIapReceipt"
                }
              }
            }
          }
        }
      }
    },
    "/meta/facebook/{id}" : {
      "get" : {
        "summary" : "Fetches the facebook iap receipt with the matching database id.",
        "operationId" : "getFacebookIapReceipt",
        "parameters" : [ {
          "name" : "{id}",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/FacebookIapReceipt"
                }
              }
            }
          }
        }
      }
    },
    "/meta/facebook/verify" : {
      "post" : {
        "summary" : "Attempts to verify the Facebook IAP Receipt data.Returns a list of RewardIssuances, some or all of which may be already redeemed.",
        "operationId" : "redeemFacebookIapPurchase",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/FacebookIapReceipt"
              }
            }
          }
        },
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/RewardIssuance"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/meta/oculus/consume" : {
      "post" : {
        "summary" : "Attempts to consume the Oculus IAP Receipt data. Returns the result of the consume action.",
        "operationId" : "consumeOculusIapPurchase",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/OculusIapReceipt"
              }
            }
          }
        },
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/OculusIapConsumeResponse"
                }
              }
            }
          }
        }
      }
    },
    "/meta/oculus" : {
      "get" : {
        "summary" : "Fetches the oculus iap receipt with the matching database id.",
        "operationId" : "getOculusIapReceipts",
        "parameters" : [ {
          "name" : "offset",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0
          }
        }, {
          "name" : "count",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 20
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/PaginationOculusIapReceipt"
                }
              }
            }
          }
        }
      },
      "post" : {
        "summary" : "Attempts to create the Oculus IAP Receipt data.",
        "operationId" : "createOculusIapReceipt",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/OculusIapReceipt"
              }
            }
          }
        },
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/OculusIapReceipt"
                }
              }
            }
          }
        }
      }
    },
    "/meta/oculus/{id}" : {
      "get" : {
        "summary" : "Fetches the oculus iap receipt with the matching database id.",
        "operationId" : "getOculusIapReceipt",
        "parameters" : [ {
          "name" : "{id}",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/OculusIapReceipt"
                }
              }
            }
          }
        }
      }
    },
    "/meta/oculus/reward" : {
      "get" : {
        "summary" : "Attempts to verify the Oculus IAP Receipt data.Returns a list of RewardIssuances, some or all of which may be already redeemed.",
        "operationId" : "getRewardIssuancesForOculusIapReceipt",
        "requestBody" : {
          "content" : {
            "*/*" : {
              "schema" : {
                "$ref" : "#/components/schemas/OculusIapReceipt"
              }
            }
          }
        },
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/RewardIssuance"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/meta/oculus/verify" : {
      "post" : {
        "summary" : "Attempts to verify the Oculus IAP Receipt data.Returns the result of the verification.",
        "operationId" : "verifyOculusIapPurchase",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/OculusIapReceipt"
              }
            }
          }
        },
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/OculusIapVerifyReceiptResponse"
                }
              }
            }
          }
        }
      }
    },
    "/metadata" : {
      "get" : {
        "summary" : "Search Metadata",
        "description" : "Searches all metadata in the system and returning all matches against the given search filter.",
        "operationId" : "getMetadataObjects",
        "parameters" : [ {
          "name" : "offset",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0
          }
        }, {
          "name" : "count",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 20
          }
        }, {
          "name" : "search",
          "in" : "query",
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/PaginationMetadata"
                }
              }
            }
          }
        }
      },
      "post" : {
        "summary" : "Creates a new Metadata object",
        "description" : "Creates a new Metadata object with the provided details.",
        "operationId" : "createMetadata",
        "requestBody" : {
          "content" : {
            "*/*" : {
              "schema" : {
                "$ref" : "#/components/schemas/CreateMetadataRequest"
              }
            }
          }
        },
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Metadata"
                }
              }
            }
          }
        }
      }
    },
    "/metadata/{id}" : {
      "get" : {
        "summary" : "Gets a specific Metadata object",
        "description" : "Gets a specific metadata object by name or id.",
        "operationId" : "getMetadataObject",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Metadata"
                }
              }
            }
          }
        }
      },
      "put" : {
        "summary" : "Updates a specific Metadata object",
        "description" : "Updates a specific metadata object by name or id.",
        "operationId" : "updateMetadata",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "*/*" : {
              "schema" : {
                "$ref" : "#/components/schemas/UpdateMetadataRequest"
              }
            }
          }
        },
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Metadata"
                }
              }
            }
          }
        }
      },
      "delete" : {
        "summary" : "Deletes a specific Metadata object",
        "description" : "Deletes a specific metadata object by name or id.",
        "operationId" : "deleteMetadata",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : { }
            }
          }
        }
      }
    },
    "/mission" : {
      "get" : {
        "summary" : "Search Missions",
        "description" : "Searches all missions in the system and returning a number of matches against the given search filter, delimited by the offset and count.",
        "operationId" : "getMissions",
        "parameters" : [ {
          "name" : "offset",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0
          }
        }, {
          "name" : "count",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 20
          }
        }, {
          "name" : "tags",
          "in" : "query",
          "schema" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          }
        }, {
          "name" : "search",
          "in" : "query",
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/PaginationMission"
                }
              }
            }
          }
        }
      },
      "post" : {
        "summary" : "Creates a new mission",
        "description" : "Supplying a mission object, this will create a new mission with a newly assigned unique id.  The Mission representation returned in the response body is a representation of the Mission as persisted with a unique identifier assigned and with its fields properly normalized.  The supplied mission object submitted with the request must have a name property that is unique across all items.",
        "operationId" : "createMission",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/CreateMissionRequest"
              }
            }
          }
        },
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Mission"
                }
              }
            }
          }
        }
      }
    },
    "/mission/{missionNameOrId}" : {
      "get" : {
        "summary" : "Retrieves a single Mission by id or by name",
        "description" : "Looks up a mission by the passed in identifier",
        "operationId" : "getMissionByNameOrId",
        "parameters" : [ {
          "name" : "missionNameOrId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Mission"
                }
              }
            }
          }
        }
      },
      "put" : {
        "summary" : "Updates an entire single Mission",
        "description" : "Supplying a mission, this will update the Mission identified by the name or ID in the path with contents from the passed in request body. ",
        "operationId" : "updateMission",
        "parameters" : [ {
          "name" : "missionNameOrId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/UpdateMissionRequest"
              }
            }
          }
        },
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Mission"
                }
              }
            }
          }
        }
      },
      "delete" : {
        "summary" : "Deletes the Mission identified by id or by name",
        "description" : "Deletes a mission by the passed in identifier",
        "operationId" : "deleteMission",
        "parameters" : [ {
          "name" : "missionNameOrId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : { }
            }
          }
        }
      }
    },
    "/progress" : {
      "get" : {
        "summary" : "Gets Rank Among all Players",
        "description" : "Gets the current Profile's rank among all players for the particular leaderboard.",
        "operationId" : "getProgressTabular",
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "text/csv" : {
                "schema" : {
                  "$ref" : "#/components/schemas/TabulationProgressRow"
                }
              }
            }
          }
        }
      },
      "post" : {
        "summary" : "Creates a new progress",
        "description" : "This will create a new progress with a compound id of the profile and mission.  The Progress representation returned in the response body is a representation of the Progress as persisted with a unique identifier assigned and with its fields properly normalized.",
        "operationId" : "createProgress",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/CreateProgressRequest"
              }
            }
          }
        },
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Progress"
                }
              }
            }
          }
        }
      }
    },
    "/progress/progress/{progressId}" : {
      "delete" : {
        "summary" : "Deletes the Progress identified by id",
        "description" : "Deletes a progress by the passed in identifier",
        "operationId" : "deleteProgress",
        "parameters" : [ {
          "name" : "progressId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : { }
            }
          }
        }
      }
    },
    "/progress/{progressId}" : {
      "get" : {
        "summary" : "Retrieves a single Progress by id",
        "description" : "Looks up a progress by the passed in identifier",
        "operationId" : "getProgressByNameOrId",
        "parameters" : [ {
          "name" : "progressId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Progress"
                }
              }
            }
          }
        }
      },
      "put" : {
        "summary" : "Updates a single Progress",
        "description" : "This will update the Progress identified by the ID in the path with contents from the passed in request body. ",
        "operationId" : "updateProgress",
        "parameters" : [ {
          "name" : "progressId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/UpdateProgressRequest"
              }
            }
          }
        },
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Progress"
                }
              }
            }
          }
        }
      }
    },
    "/reward_issuance/{rewardIssuanceId}" : {
      "get" : {
        "summary" : "Retrieves a single RewardIssuance by id.",
        "operationId" : "getRewardIssuance",
        "parameters" : [ {
          "name" : "rewardIssuanceId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/RewardIssuance"
                }
              }
            }
          }
        }
      }
    },
    "/reward_issuance" : {
      "get" : {
        "summary" : "Retrieves the current user's reward issuances, optionally filtered by the given state.",
        "operationId" : "getRewardIssuances",
        "parameters" : [ {
          "name" : "offset",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0
          }
        }, {
          "name" : "count",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 20
          }
        }, {
          "name" : "states",
          "in" : "query",
          "schema" : {
            "type" : "array",
            "items" : {
              "type" : "string",
              "enum" : [ "ISSUED", "REDEEMED" ]
            }
          }
        }, {
          "name" : "tags",
          "in" : "query",
          "schema" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/PaginationRewardIssuance"
                }
              }
            }
          }
        }
      }
    },
    "/reward_issuance/{rewardIssuanceId}/redeem" : {
      "put" : {
        "summary" : "Redeems the RewardIssuance.",
        "operationId" : "redeemRewardIssuance",
        "parameters" : [ {
          "name" : "rewardIssuanceId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/RewardIssuanceRedemptionResult"
                }
              }
            }
          }
        }
      }
    },
    "/reward_issuance/redeem" : {
      "put" : {
        "summary" : "Redeems the given list of RewardIssuances.",
        "operationId" : "redeemRewardIssuances",
        "requestBody" : {
          "content" : {
            "*/*" : {
              "schema" : {
                "type" : "array",
                "items" : {
                  "type" : "string"
                }
              }
            }
          }
        },
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/RewardIssuanceRedemptionResult"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/schedule/{scheduleNameOrId}/event" : {
      "get" : {
        "summary" : "Search ScheduleEvents",
        "description" : "Searches all schedules in the system and returning a number of matches against the given search filter, delimited by the offset and count.",
        "operationId" : "getScheduleEvents",
        "parameters" : [ {
          "name" : "scheduleNameOrId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "offset",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0
          }
        }, {
          "name" : "count",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 20
          }
        }, {
          "name" : "tags",
          "in" : "query",
          "schema" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          }
        }, {
          "name" : "search",
          "in" : "query",
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/PaginationScheduleEvent"
                }
              }
            }
          }
        }
      },
      "post" : {
        "summary" : "Creates a new schedule",
        "description" : "Supplying a schedule object, this will create a new schedule with a newly assigned unique id.  The ScheduleEvent representation returned in the response body is a representation of the ScheduleEvent as persisted with a unique identifier assigned and with its fields properly normalized.  The supplied schedule object submitted with the request must have a name property that is unique across all items.",
        "operationId" : "createScheduleEvent",
        "parameters" : [ {
          "name" : "scheduleNameOrId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/CreateScheduleEventRequest"
              }
            }
          }
        },
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ScheduleEvent"
                }
              }
            }
          }
        }
      }
    },
    "/schedule/{scheduleNameOrId}/event/{scheduleEventId}" : {
      "get" : {
        "summary" : "Retrieves a single ScheduleEvent by id or by name",
        "description" : "Looks up a schedule by the passed in identifier",
        "operationId" : "getScheduleEventByNameOrId",
        "parameters" : [ {
          "name" : "scheduleNameOrId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "scheduleEventId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ScheduleEvent"
                }
              }
            }
          }
        }
      },
      "put" : {
        "summary" : "Updates an entire single ScheduleEvent",
        "description" : "Supplying a schedule, this will update the ScheduleEvent identified by the name or ID in the path with contents from the passed in request body. ",
        "operationId" : "updateScheduleEvent",
        "parameters" : [ {
          "name" : "scheduleNameOrId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "scheduleEventId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/UpdateScheduleEventRequest"
              }
            }
          }
        },
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ScheduleEvent"
                }
              }
            }
          }
        }
      },
      "delete" : {
        "summary" : "Deletes the ScheduleEvent identified by id or by name",
        "description" : "Deletes a schedule by the passed in identifier",
        "operationId" : "deleteScheduleEvent",
        "parameters" : [ {
          "name" : "scheduleNameOrId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "scheduleEventId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : { }
            }
          }
        }
      }
    },
    "/schedule/{scheduleNameOrId}/progress" : {
      "get" : {
        "summary" : "Gets all Progresses assigned via this schedule",
        "description" : "Fetches all current assignments to the currently logged-in profile.",
        "operationId" : "getScheduleProgresses",
        "parameters" : [ {
          "name" : "scheduleNameOrId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "offset",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0
          }
        }, {
          "name" : "count",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 20
          }
        }, {
          "name" : "tags",
          "in" : "query",
          "schema" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/PaginationProgress"
                }
              }
            }
          }
        }
      }
    },
    "/schedule" : {
      "get" : {
        "summary" : "Search Schedules",
        "description" : "Searches all schedules in the system and returning a number of matches against the given search filter, delimited by the offset and count.",
        "operationId" : "getSchedules",
        "parameters" : [ {
          "name" : "offset",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0
          }
        }, {
          "name" : "count",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 20
          }
        }, {
          "name" : "tags",
          "in" : "query",
          "schema" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          }
        }, {
          "name" : "search",
          "in" : "query",
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/PaginationSchedule"
                }
              }
            }
          }
        }
      },
      "post" : {
        "summary" : "Creates a new schedule",
        "description" : "Supplying a schedule object, this will create a new schedule with a newly assigned unique id.  The Schedule representation returned in the response body is a representation of the Schedule as persisted with a unique identifier assigned and with its fields properly normalized.  The supplied schedule object submitted with the request must have a name property that is unique across all items.",
        "operationId" : "createSchedule",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/CreateScheduleRequest"
              }
            }
          }
        },
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Schedule"
                }
              }
            }
          }
        }
      }
    },
    "/schedule/{scheduleNameOrId}" : {
      "get" : {
        "summary" : "Retrieves a single Schedule by id or by name",
        "description" : "Looks up a schedule by the passed in identifier",
        "operationId" : "getScheduleByNameOrId",
        "parameters" : [ {
          "name" : "scheduleNameOrId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Schedule"
                }
              }
            }
          }
        }
      },
      "put" : {
        "summary" : "Updates an entire single Schedule",
        "description" : "Supplying a schedule, this will update the Schedule identified by the name or ID in the path with contents from the passed in request body. ",
        "operationId" : "updateSchedule",
        "parameters" : [ {
          "name" : "scheduleNameOrId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/UpdateScheduleRequest"
              }
            }
          }
        },
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Schedule"
                }
              }
            }
          }
        }
      },
      "delete" : {
        "summary" : "Deletes the Schedule identified by id or by name",
        "description" : "Deletes a schedule by the passed in identifier",
        "operationId" : "deleteSchedule",
        "parameters" : [ {
          "name" : "scheduleNameOrId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : { }
            }
          }
        }
      }
    },
    "/notification/fcm" : {
      "post" : {
        "summary" : "Creates an FCM Registration Token",
        "description" : "Supplying FCM registration token, this will create a new token based on the information supplied to the endpoint.  The response will contain the token as it was written to the database.  Clients may subsequently update the token string with new values as they are issued by Firebase.",
        "operationId" : "createFCMRegistration",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/FCMRegistration"
              }
            }
          }
        },
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/FCMRegistration"
                }
              }
            }
          }
        }
      }
    },
    "/notification/fcm/{fcmRegistrationId}" : {
      "put" : {
        "summary" : "Update an FCM Registration Token",
        "description" : "Supplying FCM registration token, this will update the token string with the supplied values.  Clients may update the same registration with a different token issued with Firebase if they wish to simply retain the association with the ",
        "operationId" : "updateRegistration",
        "parameters" : [ {
          "name" : "fcmRegistrationId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/FCMRegistration"
              }
            }
          }
        },
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/FCMRegistration"
                }
              }
            }
          }
        }
      },
      "delete" : {
        "operationId" : "deleteFCMRegistration",
        "parameters" : [ {
          "name" : "fcmRegistrationId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : { }
            }
          }
        }
      }
    },
    "/profile" : {
      "get" : {
        "summary" : "Search Profiles",
        "description" : "Searches all users in the system and returning the metadata for all matches against the given search filter. Optionally provide `before` and `after` params to specify a time range [`after`, `before`] for last-logged-in profiles matching in that range (inclusive). If `before` is not specified (or a negative number is provided) but `after` is valid, the query will return all records successive to the given `after` timestamp. Similarly, if `after` is not specified (or a negative number is provided) but `before` is valid, the query will return all records preceding the given `before` timestamp. Note that search and time range parameters currently cannot be combined in the same query.",
        "operationId" : "getProfiles",
        "parameters" : [ {
          "name" : "offset",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0
          }
        }, {
          "name" : "count",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 20
          }
        }, {
          "name" : "before",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        }, {
          "name" : "after",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        }, {
          "name" : "application",
          "in" : "query",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "user",
          "in" : "query",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "search",
          "in" : "query",
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/PaginationProfile"
                }
              }
            }
          }
        }
      },
      "post" : {
        "summary" : "Creates a Profile",
        "description" : "Supplying the create profile request, this will update the profile with the new information supplied in the body of the request. This will fire an event, dev.getelements.elements.service.profile.created, from the event manifest.",
        "operationId" : "createProfile",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/CreateProfileRequest"
              }
            }
          }
        },
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Profile"
                }
              }
            }
          }
        }
      }
    },
    "/profile/{profileId}" : {
      "put" : {
        "summary" : "Updates a Profile",
        "description" : "Supplying an update request will attempt to update the profile.  The call will return the profile as it was written to the database.",
        "operationId" : "updateProfile",
        "parameters" : [ {
          "name" : "profileId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/UpdateProfileRequest"
              }
            }
          }
        },
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Profile"
                }
              }
            }
          }
        }
      },
      "delete" : {
        "summary" : "Deletes a Profile",
        "description" : "Deletes and permanently removes the Profile from the server.  The server maykeep some record around to preserve relationships and references, but this profile will not be accessible again until it is recreated.",
        "operationId" : "deactivateProfile",
        "parameters" : [ {
          "name" : "profileId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "*/*" : { }
            }
          }
        }
      }
    },
    "/profile/current" : {
      "get" : {
        "summary" : "Gets the current Profile",
        "description" : "This is a special endpoing which fetches the current Profile based on current auth credentials.  This considers the currently loggged-in Dser as well as the Application or Application Configuration against which the User is operating.  This may not be availble, in which case the appopraite error is rasied.",
        "operationId" : "getCurrentProfile",
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Profile"
                }
              }
            }
          }
        }
      }
    },
    "/profile/{name}" : {
      "get" : {
        "summary" : "Gets a Specific Profile",
        "description" : "Gets a specific profile by profile ID.",
        "operationId" : "getProfile",
        "parameters" : [ {
          "name" : "name",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Profile"
                }
              }
            }
          }
        }
      }
    },
    "/profile/{profileId}/image" : {
      "put" : {
        "summary" : "Updates a Profile image object",
        "operationId" : "updateProfileImage",
        "parameters" : [ {
          "name" : "profileId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/UpdateProfileImageRequest"
              }
            }
          }
        },
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Profile"
                }
              }
            }
          }
        }
      }
    },
    "/receipt" : {
      "get" : {
        "summary" : "Gets a Receipt pagination.",
        "description" : "Retrieves a pagination of Receipt objects for the given user (SUPERUSER level), or the current user (USER level).Can search by originalTransactionId or scheme.",
        "operationId" : "getReceipts",
        "parameters" : [ {
          "name" : "userId",
          "in" : "query",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "offset",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0
          }
        }, {
          "name" : "count",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 20
          }
        }, {
          "name" : "search",
          "in" : "query",
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/PaginationReceipt"
                }
              }
            }
          }
        }
      },
      "post" : {
        "summary" : "Creates a Receipt",
        "description" : "Creates a new Receipt record.",
        "operationId" : "createReceipt",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/CreateReceiptRequest"
              }
            }
          }
        },
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Receipt"
                }
              }
            }
          }
        }
      }
    },
    "/receipt/{id}" : {
      "get" : {
        "summary" : "Gets a Receipt by its id.",
        "description" : "Gets a Receipt using the database id provided in the URL path.",
        "operationId" : "getReceipt",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Receipt"
                }
              }
            }
          }
        }
      },
      "delete" : {
        "summary" : "Deletes a Receipt",
        "description" : "Deletes and permanently removes the Receipt from the server.",
        "operationId" : "deleteReceipt",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "*/*" : { }
            }
          }
        }
      }
    },
    "/save_data" : {
      "get" : {
        "summary" : "Search Save Data Documents",
        "description" : "Gets all save data documents available to the user.",
        "operationId" : "getSaveDataDocuments",
        "parameters" : [ {
          "name" : "offset",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0
          }
        }, {
          "name" : "count",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 20
          }
        }, {
          "name" : "userId",
          "in" : "query",
          "schema" : {
            "type" : "string",
            "default" : ""
          }
        }, {
          "name" : "profileId",
          "in" : "query",
          "schema" : {
            "type" : "string",
            "default" : ""
          }
        }, {
          "name" : "search",
          "in" : "query",
          "schema" : {
            "type" : "string",
            "default" : ""
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/PaginationSaveDataDocument"
                }
              }
            }
          }
        }
      },
      "post" : {
        "summary" : "Creates a save data document.",
        "description" : "Gets a single save data document.",
        "operationId" : "createSaveDocument",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/CreateSaveDataDocumentRequest"
              }
            }
          }
        },
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/SaveDataDocument"
                }
              }
            }
          }
        }
      }
    },
    "/save_data/{saveDataDocumentId}" : {
      "put" : {
        "summary" : "Creates a save data document.",
        "description" : "Gets a single save data document.",
        "operationId" : "updateSaveDocument",
        "parameters" : [ {
          "name" : "saveDataDocumentId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/UpdateSaveDataDocumentRequest"
              }
            }
          }
        },
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/SaveDataDocument"
                }
              }
            }
          }
        }
      },
      "delete" : {
        "summary" : "Deletes a save data document",
        "operationId" : "deleteSaveDocument",
        "parameters" : [ {
          "name" : "saveDataDocumentId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "*/*" : { }
            }
          }
        }
      }
    },
    "/save_data/profile/{profileId}/{slot}" : {
      "get" : {
        "summary" : "Get save data document.",
        "description" : "Gets a single save data document based on Profile ID and slot. This is a convenience method whichallows the client to fetch a save data based on slot an profile id.",
        "operationId" : "getProfileSaveDataDocumentBySlot",
        "parameters" : [ {
          "name" : "profileId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "slot",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/SaveDataDocument"
                }
              }
            }
          }
        }
      }
    },
    "/save_data/{id}" : {
      "get" : {
        "summary" : "Get save data document.",
        "description" : "Gets a single save data document",
        "operationId" : "getSaveDataDocument",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/SaveDataDocument"
                }
              }
            }
          }
        }
      }
    },
    "/save_data/user/{userId}/{slot}" : {
      "get" : {
        "summary" : "Get save data document.",
        "description" : "Gets a single save data document based on UserID and slot. This is a convenience method whichallows the client to fetch a save data based on slot an user id.",
        "operationId" : "getUserSaveDataDocumentBySlot",
        "parameters" : [ {
          "name" : "userId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "slot",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/SaveDataDocument"
                }
              }
            }
          }
        }
      }
    },
    "/metadata_spec" : {
      "get" : {
        "summary" : "Get Metadata Specs",
        "description" : "Gets a pagination of Metadata Specs for the given query.",
        "operationId" : "getMetadataSpecs",
        "parameters" : [ {
          "name" : "offset",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0
          }
        }, {
          "name" : "count",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 20
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/PaginationMetadataSpec"
                }
              }
            }
          }
        }
      },
      "post" : {
        "summary" : "Creates a new Metadata Spec definition",
        "description" : "Creates a new Metadata Spec definition.",
        "operationId" : "createMetadataSpec",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/CreateMetadataSpecRequest"
              }
            }
          }
        },
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/MetadataSpec"
                }
              }
            }
          }
        }
      }
    },
    "/metadata_spec/{metadataSpecId}" : {
      "put" : {
        "summary" : "Updates a Metadata Spec",
        "description" : "Updates a MetadataSpec with the specified id.",
        "operationId" : "updateMetadataSpec",
        "parameters" : [ {
          "name" : "metadataSpecId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/UpdateMetadataSpecRequest"
              }
            }
          }
        },
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/MetadataSpec"
                }
              }
            }
          }
        }
      },
      "delete" : {
        "summary" : "Deletes a MetadataSpec",
        "description" : "Deletes a MetadataSpec with the specified id.",
        "operationId" : "deleteMetadataSpec",
        "parameters" : [ {
          "name" : "metadataSpecId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : { }
            }
          }
        }
      }
    },
    "/metadata_spec/{metadataSpecName}/editor.json" : {
      "get" : {
        "summary" : "Gets a specific Metadata Editor Schema",
        "description" : "Gets a specific Metadata Editor Schema backed by the supplied MetadataSpec by name.",
        "operationId" : "getEditorSchema",
        "parameters" : [ {
          "name" : "metadataSpecName",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/EditorSchema"
                }
              }
            }
          }
        }
      }
    },
    "/metadata_spec/{metadataSpecName}/schema.json" : {
      "get" : {
        "summary" : "Gets a specific JSON Schema",
        "description" : "Gets a specific JSON Schema backed by the supplied MetadataSpec by name.",
        "operationId" : "getJsonSchema",
        "parameters" : [ {
          "name" : "metadataSpecName",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/JsonSchema"
                }
              }
            }
          }
        }
      }
    },
    "/metadata_spec/{metadataSpecNameOrId}" : {
      "get" : {
        "summary" : "Gets a specific Metadata Spec",
        "description" : "Gets a specific MetadataSpec by name or Id.",
        "operationId" : "getMetadataSpec",
        "parameters" : [ {
          "name" : "metadataSpecNameOrId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/MetadataSpec"
                }
              }
            }
          }
        }
      }
    },
    "/mock_session" : {
      "post" : {
        "summary" : "Creates a Mock Session",
        "description" : "Begins a session by accepting a mock session request.  The request must be made with an authenticated super-user.",
        "operationId" : "createMockSession",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/MockSessionRequest"
              }
            }
          }
        },
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/MockSessionCreation"
                }
              }
            }
          }
        }
      }
    },
    "/session/{sessionSecret}" : {
      "delete" : {
        "summary" : "Destroys the Session",
        "operationId" : "blacklistSession",
        "parameters" : [ {
          "name" : "sessionSecret",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "*/*" : { }
            }
          }
        }
      }
    },
    "/session" : {
      "post" : {
        "summary" : "Creates a Session",
        "description" : "Begins a session by accepting both the UserID and the Password.  Upon successful completion of this call, the user will be added to the current HTTP session.  If the session expires, the user will have to reestablish the session by supplying credentials again.  This is most useful for applications delivered in a web page.",
        "operationId" : "createUsernamePasswordSession",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/UsernamePasswordSessionRequest"
              }
            }
          }
        },
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/SessionCreation"
                }
              }
            }
          }
        }
      }
    },
    "/health" : {
      "get" : {
        "summary" : "Performs the health check.",
        "description" : "Performs the health check for the server. What this actually does is deployment and implementation specific. However, any successful response code should indicate that the service is capable of servicing requests. Any unsuccessful error codes should indicate that the instance has internal issues and should be taken offline.",
        "operationId" : "getServerHealth",
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/HealthStatus"
                }
              }
            }
          }
        }
      }
    },
    "/version" : {
      "get" : {
        "summary" : "Show Server Version Information",
        "description" : "Returns information about the current server version.  This should always return theversion metadata.  This information is only known in packaged releases.",
        "operationId" : "getVersion",
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Version"
                }
              }
            }
          }
        }
      }
    },
    "/steam/purchase" : {
      "post" : {
        "summary" : "Verify a Steam IAP purchase by order ID and return a list of RewardIssuances. The order ID is validated against the Steam ISteamMicroTxn API using the publisher key and app ID stored in the application's SteamApplicationConfiguration. Some or all of the returned RewardIssuances may already be redeemed.",
        "operationId" : "uploadSteamIapPurchase",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/CreateSteamIapReceipt"
              }
            }
          }
        },
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/RewardIssuance"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/user/password/reset/complete" : {
      "post" : {
        "summary" : "Complete Password Reset",
        "description" : "Validates the reset token and sets the new password. All existing sessions are invalidated. Returns 400 if the token is invalid or expired.",
        "operationId" : "completeReset",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/CompletePasswordResetRequest"
              }
            }
          }
        },
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : { }
            }
          }
        }
      }
    },
    "/user/password/reset/request" : {
      "post" : {
        "summary" : "Request Password Reset",
        "description" : "Sends a password reset link to the given email address if an account exists. Always returns 200 to prevent user enumeration.",
        "operationId" : "requestReset",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/PasswordResetRequest"
              }
            }
          }
        },
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : { }
            }
          }
        }
      }
    },
    "/signup" : {
      "post" : {
        "summary" : "Sign Up a User",
        "description" : "Supplying the user create request object, this will create a new user.",
        "operationId" : "signUpUser",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/UserCreateRequest"
              }
            }
          }
        },
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/UserCreateResponse"
                }
              }
            }
          }
        },
        "deprecated" : true
      }
    },
    "/signup/session" : {
      "post" : {
        "summary" : "Sign Up a User",
        "description" : "Supplying the UserCreateRequest object, this will create a new user and create a session for it.  If any Profiles are supplied, the first one will be selected for the session creation.",
        "operationId" : "signUpUserAndCreateSession",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/UserCreateRequest"
              }
            }
          }
        },
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/SessionCreation"
                }
              }
            }
          }
        }
      }
    },
    "/user/me/email/verify" : {
      "post" : {
        "summary" : "Request Email Verification",
        "description" : "Sends a verification link to the given email address associated with the current user.",
        "operationId" : "requestVerification",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/EmailVerificationRequest"
              }
            }
          }
        },
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/UserUid"
                }
              }
            }
          }
        }
      }
    },
    "/user/me/link/email-password" : {
      "post" : {
        "summary" : "Link Email+Password Credentials",
        "description" : "Links email+password credentials to the currently authenticated user. The email must first be verified via POST /user/me/email/verify.",
        "operationId" : "linkEmailPassword",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/LinkEmailPasswordRequest"
              }
            }
          }
        },
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/User"
                }
              }
            }
          }
        }
      }
    },
    "/user/me/link/oauth2" : {
      "post" : {
        "summary" : "Link OAuth2 Identity",
        "description" : "Links an external OAuth2 identity to the currently authenticated user. Requires an active user session. Returns the updated session information.",
        "operationId" : "linkOAuth2",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/OAuth2SessionRequest"
              }
            }
          }
        },
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/SessionCreation"
                }
              }
            }
          }
        }
      }
    },
    "/user/me/link/oidc" : {
      "post" : {
        "summary" : "Link OIDC Identity",
        "description" : "Links an external OIDC identity to the currently authenticated user. Requires an active user session. Returns the updated session information.",
        "operationId" : "linkOidc",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/OidcSessionRequest"
              }
            }
          }
        },
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/SessionCreation"
                }
              }
            }
          }
        }
      }
    },
    "/user/me/link/username-password" : {
      "post" : {
        "summary" : "Link Username+Password Credentials",
        "description" : "Links username+password credentials to the currently authenticated user. If the account has no username yet, the supplied username is claimed. If a username is already set it must match; name changes must be done explicitly.",
        "operationId" : "linkUsernamePassword",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/LinkUsernamePasswordRequest"
              }
            }
          }
        },
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/User"
                }
              }
            }
          }
        }
      }
    },
    "/user" : {
      "get" : {
        "summary" : "Search Users",
        "description" : "Searches all users in the system and returning the metadata for all matches against the given search filter.",
        "operationId" : "getUsers",
        "parameters" : [ {
          "name" : "offset",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0
          }
        }, {
          "name" : "count",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 20
          }
        }, {
          "name" : "search",
          "in" : "query",
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/PaginationUser"
                }
              }
            }
          }
        }
      },
      "post" : {
        "summary" : "Creates a User",
        "description" : "Supplying the user object, this will update the user with the new information supplied in the body of the request.  Optionally, the user's password may be provided in the User object.",
        "operationId" : "createUser",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/UserCreateRequest"
              }
            }
          }
        },
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/UserCreateResponse"
                }
              }
            }
          }
        }
      }
    },
    "/user/{name}" : {
      "get" : {
        "summary" : "Gets a Specific User",
        "description" : "Gets a specific user by name, email, or unique user ID.",
        "operationId" : "getUser",
        "parameters" : [ {
          "name" : "name",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/User"
                }
              }
            }
          }
        }
      },
      "delete" : {
        "summary" : "Deletes a User",
        "description" : "Deletes and permanently removes the user from the server.  The server may keep some metadata as necessary to avoid data inconsistency.  However, the user has been deleted from the client standpoint and will not be accessible through any of the existing APIs.",
        "operationId" : "deactivateUser",
        "parameters" : [ {
          "name" : "name",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "*/*" : { }
            }
          }
        }
      }
    },
    "/user/me" : {
      "get" : {
        "summary" : "Gets the current User",
        "description" : "A special endpoint used to get the current user for the request.  The current user is typically associated with the session but may be derived any other way.  This is essentially an alias for using GET /user/myUserId",
        "operationId" : "getCurrentUser",
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/User"
                }
              }
            }
          }
        }
      }
    },
    "/user/{userId}" : {
      "put" : {
        "summary" : "Updates a User",
        "description" : "Supplying the user object, this will update the user with the new information supplied in the body of the request.  Optionally, the user's password may be provided in the User object.",
        "operationId" : "updateUser",
        "parameters" : [ {
          "name" : "userId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/UserUpdateRequest"
              }
            }
          }
        },
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/User"
                }
              }
            }
          }
        }
      }
    },
    "/user/{userId}/password" : {
      "put" : {
        "summary" : "Updates a User's Password",
        "description" : "Supplying the UserUpdatePasswordRequest, this will attempt to update the user's password only if they supply the correct existing password.",
        "operationId" : "updateUserPassword",
        "parameters" : [ {
          "name" : "userId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/UserUpdatePasswordRequest"
              }
            }
          }
        },
        "responses" : {
          "default" : {
            "description" : "default response",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/SessionCreation"
                }
              }
            }
          }
        }
      }
    }
  },
  "components" : {
    "schemas" : {
      "UserUid" : {
        "type" : "object",
        "properties" : {
          "scheme" : {
            "type" : "string",
            "description" : "The scheme id mapped associated with the OID value. Schemes prepended with dev.getelements are reserved."
          },
          "id" : {
            "type" : "string",
            "description" : "The id associated with this scheme."
          },
          "userId" : {
            "type" : "string",
            "description" : "The id of the user associated with this User UID."
          },
          "verificationStatus" : {
            "type" : "string",
            "description" : "The verification status of this UID.",
            "enum" : [ "UNVERIFIED", "PENDING", "VERIFIED" ]
          }
        }
      },
      "Item" : {
        "required" : [ "category", "description", "displayName", "name" ],
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "string"
          },
          "name" : {
            "pattern" : "[^_]\\w+",
            "type" : "string"
          },
          "tags" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "displayName" : {
            "type" : "string"
          },
          "description" : {
            "type" : "string"
          },
          "category" : {
            "type" : "string",
            "enum" : [ "FUNGIBLE", "DISTINCT" ]
          },
          "metadataSpec" : {
            "$ref" : "#/components/schemas/MetadataSpec"
          },
          "metadata" : {
            "type" : "object",
            "additionalProperties" : {
              "type" : "object"
            }
          },
          "publicVisible" : {
            "type" : "boolean"
          }
        },
        "description" : "The Item to be issued upon redemption."
      },
      "MetadataSpec" : {
        "required" : [ "name", "properties", "type" ],
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "string",
            "description" : "The unique ID of the schema itself."
          },
          "name" : {
            "type" : "string",
            "description" : "The Name of the schema."
          },
          "type" : {
            "type" : "string",
            "description" : "The type of the tab itself.",
            "enum" : [ "STRING", "NUMBER", "BOOLEAN", "ARRAY", "ENUM", "OBJECT", "TAGS" ]
          },
          "properties" : {
            "type" : "array",
            "description" : "The tabs of the metadata spec.",
            "items" : {
              "$ref" : "#/components/schemas/MetadataSpecProperty"
            }
          }
        },
        "description" : "Represents a spec for metadata."
      },
      "MetadataSpecProperty" : {
        "required" : [ "displayName", "name", "type" ],
        "type" : "object",
        "properties" : {
          "name" : {
            "pattern" : "\\w+",
            "type" : "string",
            "description" : "The unique name of the field"
          },
          "displayName" : {
            "type" : "string",
            "description" : "The display name of the field"
          },
          "type" : {
            "type" : "string",
            "description" : "The field type",
            "enum" : [ "STRING", "NUMBER", "BOOLEAN", "ARRAY", "ENUM", "OBJECT", "TAGS" ]
          },
          "required" : {
            "type" : "boolean",
            "description" : "True if the field is required."
          },
          "placeholder" : {
            "type" : "string",
            "description" : "The placeholder description when displaying in the editor."
          },
          "defaultValue" : {
            "type" : "object",
            "description" : "The default description, null if left unspecified."
          },
          "properties" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/MetadataSpecProperty"
            }
          }
        },
        "description" : "The tabs of the metadata spec."
      },
      "RewardIssuance" : {
        "required" : [ "state", "user" ],
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "string",
            "description" : "The unique ID of the issuance."
          },
          "user" : {
            "$ref" : "#/components/schemas/User"
          },
          "state" : {
            "type" : "string",
            "description" : "The state of the reward. On creation, this is automatically assigned to be ISSUED. If the current value of the state is REDEEMED, then the state is no longer allowed to be updated. This valuemay not be directly modified--the redeem DAO method should be used instead to perform the redemption process.",
            "enum" : [ "ISSUED", "REDEEMED" ]
          },
          "item" : {
            "$ref" : "#/components/schemas/Item"
          },
          "itemQuantity" : {
            "type" : "integer",
            "description" : "The amount of Items to be set/added to the InventoryItem upon redemption.",
            "format" : "int32"
          },
          "context" : {
            "type" : "string",
            "description" : "A generic String used to uniquely identify the RewardIssuance issuance. If the RewardIssuance is created by the client, this value must be specified to prevent erroneous duplicate issuances. E.g. if the client successfully submits an issuance but fails to receive the response, the client is expected to submit a new issuance with the same context string. Similarly, the client application should have safeguards in place in the event of a crash to prevent duplicate submissions: e.g. ensuring that the context string is unchanged when performing multiple issuances of the same RewardIssuance. If the RewardIssuance is generated by the server, this will be defined automatically. The context cannot be updated after creation. Note that an context defined via the API should not begin with 'server.' as that is a protected namespace."
          },
          "type" : {
            "type" : "string",
            "description" : "Defines whether multiple issuances for the given user+reward+context may occur. If the type is set to NON_PERSISTENT, at most one ISSUED RewardIssuance may exist in the server at a time for a given user and context. If the type is set to PERSISTENT, at most one ISSUED or REDEEMED RewardIssuance may exist in the server for a given user and context, i.e. once a PERSISTENT RewardIssuance has been submitted, a new one may never be submitted and will be rejected by the server. Note that this value cannot be updated. By default, this will be set to NON_PERSISTENT.",
            "enum" : [ "PERSISTENT", "NON_PERSISTENT" ]
          },
          "source" : {
            "type" : "string",
            "description" : "Identifies the source of the issuance, e.g. 'Client', 'IAP', 'Leaderboard'. This may be specified manually by the client if desired. Note that this value cannot be updated."
          },
          "metadata" : {
            "type" : "object",
            "additionalProperties" : {
              "type" : "object",
              "description" : "Metadata for the issuance. May be optionally defined by the client on creation. If the source is a server-side value, then a predefined structure will always be followed that provides additional information as to the source of the issuance (e.g. mission progress/step information)."
            },
            "description" : "Metadata for the issuance. May be optionally defined by the client on creation. If the source is a server-side value, then a predefined structure will always be followed that provides additional information as to the source of the issuance (e.g. mission progress/step information)."
          },
          "tags" : {
            "type" : "array",
            "description" : "The tags used to categorize this Reward Issuance.",
            "items" : {
              "type" : "string",
              "description" : "The tags used to categorize this Reward Issuance."
            }
          },
          "expirationTimestamp" : {
            "type" : "integer",
            "description" : "Optionally define when the issuance should expire. This value may be updated to extend when the expiration occurs. When set, this value must be greater than the current time on the server.Note that the record may not actually be deleted for up to sixty seconds after the time noted in thetimestamp.",
            "format" : "int64"
          },
          "uuid" : {
            "type" : "string",
            "description" : "Internal unique identifier generated and assigned on creation."
          }
        },
        "description" : "Represents a Reward that has been issued but has not yet been claimed by the user.  The reward is assigned a unique ID to ensure that it may not have been applied more than once."
      },
      "User" : {
        "required" : [ "level" ],
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "string",
            "description" : "The user's database assigned unique ID."
          },
          "name" : {
            "pattern" : "^(?![0-9a-fA-F]{24}$)[^\\s\\p{Cc}\\p{Cf}]{1,50}$",
            "type" : "string",
            "description" : "A unique name for the user."
          },
          "firstName" : {
            "pattern" : "^\\p{L}[\\p{L}\\p{M}\\p{N} '\\-.]{0,49}$",
            "type" : "string",
            "description" : "The user's first name"
          },
          "lastName" : {
            "pattern" : "^\\p{L}[\\p{L}\\p{M}\\p{N} '\\-.]{0,49}$",
            "type" : "string",
            "description" : "The user's last name"
          },
          "email" : {
            "pattern" : "^(.+)@(.+)$",
            "type" : "string",
            "description" : "The user's email."
          },
          "primaryPhoneNb" : {
            "pattern" : "([\\.\\+\\-\\s\\/()]*[0-9][\\.\\+\\-\\s\\/()]*){8,15}",
            "type" : "string",
            "description" : "The user's phone number."
          },
          "level" : {
            "type" : "string",
            "description" : "The user's access level.",
            "enum" : [ "UNPRIVILEGED", "USER", "SUPERUSER" ]
          },
          "linkedAccounts" : {
            "uniqueItems" : true,
            "type" : "array",
            "description" : "List of linked account or auth scheme names.",
            "items" : {
              "type" : "string",
              "description" : "List of linked account or auth scheme names."
            }
          },
          "displayName" : {
            "type" : "string",
            "description" : "The user's display name, as reported by an OIDC provider. Never overwrites an existing value; only filled in if previously blank."
          },
          "linkedAccountProfiles" : {
            "type" : "object",
            "additionalProperties" : {
              "type" : "object",
              "additionalProperties" : {
                "type" : "string",
                "description" : "Per-linked-OIDC-scheme snapshot of the standard OIDC profile-scope claims that scheme most recently reported, keyed by the auth scheme name."
              },
              "description" : "Per-linked-OIDC-scheme snapshot of the standard OIDC profile-scope claims that scheme most recently reported, keyed by the auth scheme name."
            },
            "description" : "Per-linked-OIDC-scheme snapshot of the standard OIDC profile-scope claims that scheme most recently reported, keyed by the auth scheme name."
          }
        },
        "description" : "The User associated with this Profile."
      },
      "CreateAppleIapReceipt" : {
        "required" : [ "receiptData" ],
        "type" : "object",
        "properties" : {
          "receiptData" : {
            "type" : "string",
            "description" : "The base64-encoded string of the raw IAP receipt."
          },
          "createAppleIapReceiptEnvironment" : {
            "type" : "string",
            "enum" : [ "SANDBOX", "PRODUCTION" ]
          }
        }
      },
      "Application" : {
        "required" : [ "name" ],
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "string"
          },
          "name" : {
            "pattern" : "[^_]\\w+",
            "type" : "string"
          },
          "description" : {
            "type" : "string"
          },
          "gitBranch" : {
            "type" : "string"
          },
          "scriptRepoUrl" : {
            "type" : "string"
          },
          "httpDocumentationUrl" : {
            "type" : "string"
          },
          "httpDocumentationUiUrl" : {
            "type" : "string"
          },
          "httpTunnelEndpointUrl" : {
            "type" : "string"
          },
          "attributes" : {
            "type" : "object",
            "additionalProperties" : {
              "type" : "object"
            }
          },
          "applicationConfiguration" : {
            "$ref" : "#/components/schemas/ApplicationConfiguration"
          }
        }
      },
      "ApplicationConfiguration" : {
        "required" : [ "name", "parent", "type" ],
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "string",
            "description" : "The database assigned ID for the application configuration."
          },
          "name" : {
            "pattern" : "[^_]\\w+",
            "type" : "string",
            "description" : "The application-configuration specific unique ID. Unique per application per category."
          },
          "type" : {
            "type" : "string",
            "description" : "The fully-qualified Java type of ApplicationConfiguration."
          },
          "description" : {
            "type" : "string"
          },
          "parent" : {
            "$ref" : "#/components/schemas/Application"
          }
        }
      },
      "PaginationApplicationConfiguration" : {
        "type" : "object",
        "properties" : {
          "offset" : {
            "type" : "integer",
            "format" : "int32"
          },
          "total" : {
            "type" : "integer",
            "format" : "int32"
          },
          "approximation" : {
            "type" : "boolean"
          },
          "objects" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/ApplicationConfiguration"
            }
          }
        }
      },
      "CreateApplicationRequest" : {
        "required" : [ "name" ],
        "type" : "object",
        "properties" : {
          "name" : {
            "pattern" : "[^_]\\w+",
            "type" : "string"
          },
          "description" : {
            "type" : "string"
          },
          "attributes" : {
            "type" : "object",
            "additionalProperties" : {
              "type" : "object"
            }
          }
        }
      },
      "PaginationApplication" : {
        "type" : "object",
        "properties" : {
          "offset" : {
            "type" : "integer",
            "format" : "int32"
          },
          "total" : {
            "type" : "integer",
            "format" : "int32"
          },
          "approximation" : {
            "type" : "boolean"
          },
          "objects" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/Application"
            }
          }
        }
      },
      "UpdateApplicationRequest" : {
        "required" : [ "name" ],
        "type" : "object",
        "properties" : {
          "name" : {
            "pattern" : "[^_]\\w+",
            "type" : "string"
          },
          "description" : {
            "type" : "string"
          },
          "attributes" : {
            "type" : "object",
            "additionalProperties" : {
              "type" : "object"
            }
          }
        }
      },
      "FacebookApplicationConfiguration" : {
        "required" : [ "applicationId", "applicationSecret", "name", "parent", "type" ],
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "string",
            "description" : "The database assigned ID for the application configuration."
          },
          "name" : {
            "pattern" : "[^_]\\w+",
            "type" : "string",
            "description" : "The application-configuration specific unique ID. Unique per application per category."
          },
          "type" : {
            "type" : "string",
            "description" : "The fully-qualified Java type of ApplicationConfiguration."
          },
          "description" : {
            "type" : "string"
          },
          "parent" : {
            "$ref" : "#/components/schemas/Application"
          },
          "applicationId" : {
            "type" : "string",
            "description" : "The AppID as it appears in the Facebook Developer Console"
          },
          "applicationSecret" : {
            "type" : "string",
            "description" : "The App Secret as it appears in the Facebook Developer Console"
          },
          "builtinApplicationPermissions" : {
            "type" : "array",
            "description" : "The set of built-in permissions connected clients will need to request.",
            "items" : {
              "type" : "string",
              "description" : "The set of built-in permissions connected clients will need to request."
            }
          },
          "productBundles" : {
            "type" : "array",
            "description" : "The list of product bundles that may be rewarded upon successful IAP transactions.",
            "items" : {
              "$ref" : "#/components/schemas/ProductBundle"
            }
          }
        },
        "description" : "Houses the various parameters required which allow communication with the Facebook API."
      },
      "ProductBundle" : {
        "required" : [ "productId", "schema" ],
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "string",
            "description" : "The database id of this Product Bundle."
          },
          "schema" : {
            "type" : "string",
            "description" : "The purchase provider schema in reverse-dns notation, e.g. com.apple.appstore."
          },
          "application" : {
            "$ref" : "#/components/schemas/Application"
          },
          "productId" : {
            "type" : "string",
            "description" : "The product id as defined in the purchase provider's catalog."
          },
          "displayName" : {
            "type" : "string",
            "description" : "The title of the product bundle to display to end users."
          },
          "description" : {
            "type" : "string",
            "description" : "The description of the product bundle to display to end users."
          },
          "productBundleRewards" : {
            "type" : "array",
            "description" : "The list of rewards issued when this bundle is purchased.",
            "items" : {
              "$ref" : "#/components/schemas/ProductBundleReward"
            }
          },
          "metadata" : {
            "type" : "object",
            "additionalProperties" : {
              "type" : "object",
              "description" : "Application-specific metadata."
            },
            "description" : "Application-specific metadata."
          },
          "display" : {
            "type" : "boolean",
            "description" : "Whether or not the frontend should display this product bundle to end users."
          },
          "tags" : {
            "type" : "array",
            "description" : "Searchable tags associated with this product bundle.",
            "items" : {
              "type" : "string",
              "description" : "Searchable tags associated with this product bundle."
            }
          }
        },
        "description" : "Defines the digital goods issued when a specific product is purchased."
      },
      "ProductBundleReward" : {
        "required" : [ "itemId" ],
        "type" : "object",
        "properties" : {
          "itemId" : {
            "type" : "string",
            "description" : "The id of the item to be rewarded."
          },
          "quantity" : {
            "type" : "integer",
            "description" : "The quantity of the item to be rewarded. Null for DISTINCT items; positive integer for FUNGIBLE items.",
            "format" : "int32"
          }
        },
        "description" : "The list of rewards issued when this bundle is purchased."
      },
      "FirebaseApplicationConfiguration" : {
        "required" : [ "name", "parent", "projectId", "serviceAccountCredentials", "type" ],
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "string",
            "description" : "The database assigned ID for the application configuration."
          },
          "name" : {
            "pattern" : "[^_]\\w+",
            "type" : "string",
            "description" : "The application-configuration specific unique ID. Unique per application per category."
          },
          "type" : {
            "type" : "string",
            "description" : "The fully-qualified Java type of ApplicationConfiguration."
          },
          "description" : {
            "type" : "string"
          },
          "parent" : {
            "$ref" : "#/components/schemas/Application"
          },
          "projectId" : {
            "type" : "string",
            "description" : "The contents of the serviceAccountCredentials.json file."
          },
          "serviceAccountCredentials" : {
            "type" : "string",
            "description" : "The contents of the serviceAccountCredentials.json file."
          }
        }
      },
      "GooglePlayApplicationConfiguration" : {
        "required" : [ "name", "parent", "type" ],
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "string",
            "description" : "The database assigned ID for the application configuration."
          },
          "name" : {
            "pattern" : "[^_]\\w+",
            "type" : "string",
            "description" : "The application-configuration specific unique ID. Unique per application per category."
          },
          "type" : {
            "type" : "string",
            "description" : "The fully-qualified Java type of ApplicationConfiguration."
          },
          "description" : {
            "type" : "string"
          },
          "parent" : {
            "$ref" : "#/components/schemas/Application"
          },
          "applicationId" : {
            "type" : "string"
          },
          "jsonKey" : {
            "type" : "object",
            "additionalProperties" : {
              "type" : "object"
            }
          },
          "productBundles" : {
            "type" : "array",
            "description" : "The list of product bundles that may be rewarded upon successful IAP transactions.",
            "items" : {
              "$ref" : "#/components/schemas/ProductBundle"
            }
          }
        }
      },
      "IosApplicationConfiguration" : {
        "required" : [ "applicationId", "name", "parent", "type" ],
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "string",
            "description" : "The database assigned ID for the application configuration."
          },
          "name" : {
            "pattern" : "[^_]\\w+",
            "type" : "string",
            "description" : "The application-configuration specific unique ID. Unique per application per category."
          },
          "type" : {
            "type" : "string",
            "description" : "The fully-qualified Java type of ApplicationConfiguration."
          },
          "description" : {
            "type" : "string"
          },
          "parent" : {
            "$ref" : "#/components/schemas/Application"
          },
          "applicationId" : {
            "type" : "string"
          },
          "productBundles" : {
            "type" : "array",
            "description" : "The list of product bundles that may be rewarded upon successful IAP transactions.",
            "items" : {
              "$ref" : "#/components/schemas/ProductBundle"
            }
          }
        },
        "description" : "Configuration for the iOS Application Configuration"
      },
      "CallbackDefinition" : {
        "required" : [ "method", "service" ],
        "type" : "object",
        "properties" : {
          "method" : {
            "pattern" : "^\\S+$",
            "type" : "string",
            "description" : "Specifies the method to invoke."
          },
          "service" : {
            "$ref" : "#/components/schemas/ElementServiceReference"
          }
        },
        "description" : "Defines a script method and a module to invoke."
      },
      "ElementServiceReference" : {
        "required" : [ "elementName" ],
        "type" : "object",
        "properties" : {
          "elementName" : {
            "type" : "string",
            "description" : "The name of the Element to reference."
          },
          "serviceType" : {
            "pattern" : "^[A-Za-z_][A-Za-z0-9_]*(\\.[A-Za-z_][A-Za-z0-9_]*)*$",
            "type" : "string",
            "description" : "Specifies the type of the service within the Element. May be null."
          },
          "serviceName" : {
            "pattern" : "^\\S+$",
            "type" : "string",
            "description" : "Specifies the name of the service within the Element. May be null."
          }
        },
        "description" : "Describes the matchmaker (dev.getelements.elements.sdk.dao.Matchmaker) to use for this configuration."
      },
      "MatchmakingApplicationConfiguration" : {
        "required" : [ "name", "parent", "type" ],
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "string",
            "description" : "The database assigned ID for the application configuration."
          },
          "name" : {
            "pattern" : "[^_]\\w+",
            "type" : "string",
            "description" : "The application-configuration specific unique ID. Unique per application per category."
          },
          "type" : {
            "type" : "string",
            "description" : "The fully-qualified Java type of ApplicationConfiguration."
          },
          "description" : {
            "type" : "string"
          },
          "parent" : {
            "$ref" : "#/components/schemas/Application"
          },
          "success" : {
            "$ref" : "#/components/schemas/CallbackDefinition"
          },
          "matchmaker" : {
            "$ref" : "#/components/schemas/ElementServiceReference"
          },
          "maxProfiles" : {
            "minimum" : 2,
            "type" : "integer",
            "description" : "The maximum number of profiles that can be matched in a single match. ",
            "format" : "int32"
          },
          "lingerSeconds" : {
            "minimum" : 0,
            "type" : "integer",
            "description" : "The amount of time a match will linger after it is marked as expired.",
            "format" : "int32"
          },
          "timeoutSeconds" : {
            "minimum" : 0,
            "type" : "integer",
            "description" : "The absolute timeout of the match. A match will be automatically deleted after this amount of time.",
            "format" : "int32"
          },
          "metadata" : {
            "type" : "object",
            "additionalProperties" : {
              "type" : "object",
              "description" : "The metadata for this matchmaking configuration. This will be copied to the match when it is created."
            },
            "description" : "The metadata for this matchmaking configuration. This will be copied to the match when it is created."
          },
          "metadataSpec" : {
            "$ref" : "#/components/schemas/MetadataSpec"
          }
        },
        "description" : "This configures the matchmaking system for the application. This defines the queue name and the Matchmacker to use when finding players to match. Currently FIFO is builtin and is the default."
      },
      "OculusApplicationConfiguration" : {
        "required" : [ "applicationId", "applicationSecret", "name", "parent", "type" ],
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "string",
            "description" : "The database assigned ID for the application configuration."
          },
          "name" : {
            "pattern" : "[^_]\\w+",
            "type" : "string",
            "description" : "The application-configuration specific unique ID. Unique per application per category."
          },
          "type" : {
            "type" : "string",
            "description" : "The fully-qualified Java type of ApplicationConfiguration."
          },
          "description" : {
            "type" : "string"
          },
          "parent" : {
            "$ref" : "#/components/schemas/Application"
          },
          "applicationId" : {
            "type" : "string",
            "description" : "The AppID as it appears in the Facebook Developer Console"
          },
          "applicationSecret" : {
            "type" : "string",
            "description" : "The App Secret as it appears in the Facebook Developer Console"
          },
          "builtinApplicationPermissions" : {
            "type" : "array",
            "description" : "The set of built-in permissions connected clients will need to request.",
            "items" : {
              "type" : "string",
              "description" : "The set of built-in permissions connected clients will need to request."
            }
          },
          "productBundles" : {
            "type" : "array",
            "description" : "The list of product bundles that may be rewarded upon successful IAP transactions.",
            "items" : {
              "$ref" : "#/components/schemas/ProductBundle"
            }
          }
        },
        "description" : "Houses the various parameters required which allow communication with the Oculus API."
      },
      "PSNApplicationConfiguration" : {
        "required" : [ "clientSecret", "name", "npIdentifier", "parent", "type" ],
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "string",
            "description" : "The database assigned ID for the application configuration."
          },
          "name" : {
            "pattern" : "[^_]\\w+",
            "type" : "string",
            "description" : "The application-configuration specific unique ID. Unique per application per category."
          },
          "type" : {
            "type" : "string",
            "description" : "The fully-qualified Java type of ApplicationConfiguration."
          },
          "description" : {
            "type" : "string"
          },
          "parent" : {
            "$ref" : "#/components/schemas/Application"
          },
          "npIdentifier" : {
            "pattern" : "^\\S+$",
            "type" : "string"
          },
          "clientSecret" : {
            "pattern" : "^\\S+$",
            "type" : "string"
          }
        }
      },
      "SteamApplicationConfiguration" : {
        "required" : [ "appId", "name", "parent", "publisherKey", "type" ],
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "string",
            "description" : "The database assigned ID for the application configuration."
          },
          "name" : {
            "pattern" : "[^_]\\w+",
            "type" : "string",
            "description" : "The application-configuration specific unique ID. Unique per application per category."
          },
          "type" : {
            "type" : "string",
            "description" : "The fully-qualified Java type of ApplicationConfiguration."
          },
          "description" : {
            "type" : "string"
          },
          "parent" : {
            "$ref" : "#/components/schemas/Application"
          },
          "publisherKey" : {
            "type" : "string",
            "description" : "The Steam Publisher Web API Key, used to authenticate server-side calls to the Steam Microtransaction API (ISteamMicroTxn)."
          },
          "appId" : {
            "type" : "string",
            "description" : "The Steam AppID for the game as it appears in the Steamworks partner portal."
          },
          "productBundles" : {
            "type" : "array",
            "description" : "The list of product bundles that may be rewarded upon successful IAP transactions.",
            "items" : {
              "$ref" : "#/components/schemas/ProductBundle"
            }
          }
        },
        "description" : "Houses the various parameters required which allow communication with the Steam Microtransaction API."
      },
      "AuthScheme" : {
        "required" : [ "algorithm", "allowedIssuers", "audience", "publicKey", "tags", "userLevel" ],
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "string",
            "description" : "The unique ID of the auth scheme."
          },
          "audience" : {
            "type" : "string",
            "description" : "A unique name used to identify the scheme within the instance of Elements."
          },
          "publicKey" : {
            "pattern" : "^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$",
            "type" : "string",
            "description" : "A base-64 encoded string representing an x509 encoded public key."
          },
          "algorithm" : {
            "type" : "string",
            "description" : "The digital signature matching the public key format.",
            "enum" : [ "RSA_256", "RSA_384", "RSA_512" ]
          },
          "userLevel" : {
            "type" : "string",
            "description" : "The highest permitted user level this particular scheme will authorize.",
            "enum" : [ "UNPRIVILEGED", "USER", "SUPERUSER" ]
          },
          "tags" : {
            "type" : "array",
            "description" : "The tags used to tag this auth scheme.",
            "items" : {
              "type" : "string",
              "description" : "The tags used to tag this auth scheme."
            }
          },
          "allowedIssuers" : {
            "type" : "array",
            "description" : "A list of issuers allowed to use this scheme.",
            "items" : {
              "type" : "string",
              "description" : "A list of issuers allowed to use this scheme."
            }
          }
        },
        "description" : "The full JSON response as described in AuthScheme"
      },
      "CreateAuthSchemeResponse" : {
        "required" : [ "publicKey", "scheme" ],
        "type" : "object",
        "properties" : {
          "scheme" : {
            "$ref" : "#/components/schemas/AuthScheme"
          },
          "publicKey" : {
            "type" : "string",
            "description" : "The Base64 public key that was either given or generated during creation. See https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/security/spec/X509EncodedKeySpec.html for details on the specifics of the format."
          },
          "privateKey" : {
            "type" : "string",
            "description" : "The Base64 public key that was either given or generated during creation. See https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/security/spec/PKCS8EncodedKeySpec.html for details on the specifics of the format."
          }
        },
        "description" : "Represents a response from creating an Auth Scheme for an Application."
      },
      "CreateAuthSchemeRequest" : {
        "required" : [ "algorithm", "allowedIssuers", "audience", "tags", "userLevel" ],
        "type" : "object",
        "properties" : {
          "audience" : {
            "type" : "string",
            "description" : "The JWT audience for the scheme. Must be unique."
          },
          "publicKey" : {
            "pattern" : "^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$",
            "type" : "string",
            "description" : "The Base64 public key that was either given or generated during creation. See https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/security/spec/X509EncodedKeySpec.html for details on the specifics of the format."
          },
          "algorithm" : {
            "type" : "string",
            "enum" : [ "RSA_256", "RSA_384", "RSA_512" ]
          },
          "userLevel" : {
            "type" : "string",
            "description" : "The highest permitted user level this particular scheme will authorize.",
            "enum" : [ "UNPRIVILEGED", "USER", "SUPERUSER" ]
          },
          "tags" : {
            "type" : "array",
            "description" : "A list of tags used to index the auth scheme.",
            "items" : {
              "type" : "string",
              "description" : "A list of tags used to index the auth scheme."
            }
          },
          "allowedIssuers" : {
            "type" : "array",
            "description" : "The list of issuers allowed to use this scheme.",
            "items" : {
              "type" : "string",
              "description" : "The list of issuers allowed to use this scheme."
            }
          }
        },
        "description" : "Represents a request to create an Auth Scheme for an Application."
      },
      "PaginationAuthScheme" : {
        "type" : "object",
        "properties" : {
          "offset" : {
            "type" : "integer",
            "format" : "int32"
          },
          "total" : {
            "type" : "integer",
            "format" : "int32"
          },
          "approximation" : {
            "type" : "boolean"
          },
          "objects" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/AuthScheme"
            }
          }
        }
      },
      "UpdateAuthSchemeResponse" : {
        "required" : [ "publicKey" ],
        "type" : "object",
        "properties" : {
          "scheme" : {
            "$ref" : "#/components/schemas/AuthScheme"
          },
          "publicKey" : {
            "type" : "string",
            "description" : "The Base64 public key that was either given or generated during creation. See https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/security/spec/X509EncodedKeySpec.html for details on the specifics of the format."
          },
          "privateKey" : {
            "type" : "string",
            "description" : "The Base64 public key that was either given or generated during creation. See https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/security/spec/PKCS8EncodedKeySpec.html for details on the specifics of the format."
          }
        },
        "description" : "Represents a response from updating an Auth Scheme for an Application."
      },
      "UpdateAuthSchemeRequest" : {
        "required" : [ "algorithm", "allowedIssuers", "audience", "tags", "userLevel" ],
        "type" : "object",
        "properties" : {
          "audience" : {
            "type" : "string",
            "description" : "The JWT audience for the scheme. Must be unique."
          },
          "regenerate" : {
            "type" : "boolean",
            "description" : "If set to true, Elements will regenerate the key and pubKey must be null or omitted"
          },
          "publicKey" : {
            "pattern" : "^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$",
            "type" : "string",
            "description" : "The Base64 public key that was either given or generated during creation. See https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/security/spec/X509EncodedKeySpec.html for details on the specifics of the format."
          },
          "algorithm" : {
            "type" : "string",
            "description" : "The algorithm that Elements will use with the supplied key.",
            "enum" : [ "RSA_256", "RSA_384", "RSA_512" ]
          },
          "userLevel" : {
            "type" : "string",
            "description" : "The highest permitted user level this particular scheme will authorize.",
            "enum" : [ "UNPRIVILEGED", "USER", "SUPERUSER" ]
          },
          "tags" : {
            "type" : "array",
            "description" : "The list of tags for tagging the auth scheme.",
            "items" : {
              "type" : "string",
              "description" : "The list of tags for tagging the auth scheme."
            }
          },
          "allowedIssuers" : {
            "type" : "array",
            "description" : "The list of issuers allowed to use this scheme.",
            "items" : {
              "type" : "string",
              "description" : "The list of issuers allowed to use this scheme."
            }
          }
        },
        "description" : "Represents a request to update an Auth Scheme for an Application."
      },
      "LargeObjectReference" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "string",
            "description" : "The unique ID of the LargeObject."
          },
          "url" : {
            "type" : "string",
            "description" : "The URL where the binary contents of the LargeObject may be read."
          },
          "mimeType" : {
            "type" : "string",
            "description" : "The MIME type of the LargeObject."
          },
          "state" : {
            "type" : "string",
            "description" : "Represents the state of the large object.",
            "enum" : [ "EMPTY", "UPLOADED" ]
          },
          "lastModified" : {
            "type" : "string",
            "description" : "Date of last modification",
            "format" : "date-time"
          }
        },
        "description" : "Image object stored in EL large objects storage."
      },
      "Profile" : {
        "required" : [ "displayName" ],
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "string",
            "description" : "The unique ID of the profile itself."
          },
          "user" : {
            "$ref" : "#/components/schemas/User"
          },
          "application" : {
            "$ref" : "#/components/schemas/Application"
          },
          "imageUrl" : {
            "type" : "string",
            "description" : "A URL to the image of the profile.  (ie the User's Avatar)."
          },
          "imageObject" : {
            "$ref" : "#/components/schemas/LargeObjectReference"
          },
          "displayName" : {
            "pattern" : "[^ '\\-_.][A-Za-z0-9 '\\-_.]+$",
            "type" : "string",
            "description" : "A non-unique display name for this profile."
          },
          "metadata" : {
            "type" : "object",
            "additionalProperties" : {
              "type" : "object",
              "description" : "An object containing arbitrary player metadata as key-value pairs."
            },
            "description" : "An object containing arbitrary player metadata as key-value pairs."
          },
          "lastLogin" : {
            "type" : "integer",
            "description" : "The last time this profile has been logged in by the user.",
            "format" : "int64"
          }
        }
      },
      "Session" : {
        "required" : [ "user" ],
        "type" : "object",
        "properties" : {
          "user" : {
            "$ref" : "#/components/schemas/User"
          },
          "profile" : {
            "$ref" : "#/components/schemas/Profile"
          },
          "application" : {
            "$ref" : "#/components/schemas/Application"
          },
          "expiry" : {
            "type" : "integer",
            "format" : "int64"
          }
        },
        "description" : "The Session object generated by the request."
      },
      "SessionCreation" : {
        "type" : "object",
        "properties" : {
          "sessionSecret" : {
            "type" : "string",
            "description" : "The Session Secret to pass to subsequent requests through headers."
          },
          "session" : {
            "$ref" : "#/components/schemas/Session"
          }
        }
      },
      "OAuth2SessionRequest" : {
        "required" : [ "schemeId" ],
        "type" : "object",
        "properties" : {
          "schemeId" : {
            "minLength" : 1,
            "type" : "string",
            "description" : "The OAuth2 scheme ID to use."
          },
          "requestParameters" : {
            "type" : "object",
            "additionalProperties" : {
              "type" : "string",
              "description" : "The request parameters to be used in the token validation request. These will automatically be mapped to the corresponding query param/header/body value defined in the auth scheme."
            },
            "description" : "The request parameters to be used in the token validation request. These will automatically be mapped to the corresponding query param/header/body value defined in the auth scheme."
          },
          "requestHeaders" : {
            "type" : "object",
            "additionalProperties" : {
              "type" : "string",
              "description" : "The request headers to be used in the token validation request. This should adhere to any headers marked as fromClient in the auth scheme.Deprecated: All key/values can now be placed in the requestParameters and they will be mapped automatically.\nInternally, this is combined with requestParameters for backwards compatibility."
            },
            "description" : "The request headers to be used in the token validation request. This should adhere to any headers marked as fromClient in the auth scheme.Deprecated: All key/values can now be placed in the requestParameters and they will be mapped automatically.\nInternally, this is combined with requestParameters for backwards compatibility."
          },
          "profileId" : {
            "type" : "string",
            "description" : "The profile ID to assign to the session."
          },
          "profileSelector" : {
            "type" : "string",
            "description" : "A query string to select the profile to use. NOTE: This will not be run if a profileId is specified."
          }
        }
      },
      "CreateOrUpdateOAuth2AuthSchemeResponse" : {
        "type" : "object",
        "properties" : {
          "scheme" : {
            "$ref" : "#/components/schemas/OAuth2AuthScheme"
          }
        },
        "description" : "Represents a response from updating an Auth Scheme for an Application."
      },
      "OAuth2AuthScheme" : {
        "required" : [ "method", "name", "validationUrl" ],
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "string",
            "description" : "The unique ID of the auth scheme."
          },
          "name" : {
            "type" : "string",
            "description" : "A unique name used to identify the scheme within the instance of Elements. If using the same OAuth2 provider (e.g. Steam), it is recommended to suffix the name for each application when using multitenancy, e.g. steam_game1, steam_game2, etc."
          },
          "validationUrl" : {
            "type" : "string",
            "description" : "The URL to send the user token validation request to."
          },
          "headers" : {
            "type" : "array",
            "description" : "The headers required for the validation request.",
            "items" : {
              "$ref" : "#/components/schemas/OAuth2RequestKeyValue"
            }
          },
          "params" : {
            "type" : "array",
            "description" : "The query parameters required for the validation request.",
            "items" : {
              "$ref" : "#/components/schemas/OAuth2RequestKeyValue"
            }
          },
          "body" : {
            "type" : "array",
            "description" : "The body parameters for the validation request when using POST.\nFor FORM_URL_ENCODED, these become form fields (key=value&...).",
            "items" : {
              "$ref" : "#/components/schemas/OAuth2RequestKeyValue"
            }
          },
          "responseIdMapping" : {
            "type" : "string",
            "description" : "Determines how to map the user id in the response. Will search the response for the corresponding key. For example, if the response is structured like:  {\"response\": { \"params\" : { \"steamid\" : <id> } } } then you only need to input \"steamid\". Ignored if one of the parameters is marked as user id."
          },
          "responseValidMapping" : {
            "type" : "string",
            "description" : "Optional key in the response whose value indicates whether the token/user is valid.\nFor example: \"is_valid\", \"active\", or \"success\".\nIf not set, only the HTTP status code is used.\n"
          },
          "responseValidExpectedValue" : {
            "type" : "string",
            "description" : "Optional expected value for the validation field.\nIf null:\n  - boolean true is treated as success\n  - non-empty/non-null for non-boolean values is treated as success.\nIf set, the field's string value must equal this.\n"
          },
          "validStatusCodes" : {
            "type" : "array",
            "description" : "HTTP status codes that are considered \"processable\" for validation.\nAny other status is treated as failure before inspecting the body.\nDefaults to [200].\n",
            "items" : {
              "type" : "integer",
              "description" : "HTTP status codes that are considered \"processable\" for validation.\nAny other status is treated as failure before inspecting the body.\nDefaults to [200].\n",
              "format" : "int32"
            }
          },
          "method" : {
            "type" : "string",
            "description" : "HTTP method for the validation request (GET or POST).",
            "enum" : [ "GET", "POST" ]
          },
          "bodyType" : {
            "type" : "string",
            "description" : "How to encode the request body when using POST.\nFORM_URL_ENCODED corresponds to application/x-www-form-urlencoded.",
            "enum" : [ "NONE", "FORM_URL_ENCODED", "JSON" ]
          }
        },
        "description" : "The full JSON response as described in AuthScheme"
      },
      "OAuth2RequestKeyValue" : {
        "type" : "object",
        "properties" : {
          "key" : {
            "type" : "string",
            "description" : "The key."
          },
          "value" : {
            "type" : "string",
            "description" : "The value."
          },
          "fromClient" : {
            "type" : "boolean",
            "description" : "If this value should be received from the client, or predefined and stored in the DB."
          },
          "userId" : {
            "type" : "boolean",
            "description" : "If true, this parameter's resolved value is treated as the external user identifier\nto link to your internal user id.\nOnly one parameter should have this set to true per scheme.\n"
          }
        },
        "description" : "The body parameters for the validation request when using POST.\nFor FORM_URL_ENCODED, these become form fields (key=value&...)."
      },
      "CreateOrUpdateOAuth2AuthSchemeRequest" : {
        "required" : [ "method", "name", "validationUrl" ],
        "type" : "object",
        "properties" : {
          "name" : {
            "type" : "string",
            "description" : "A unique name used to identify the scheme within the instance of Elements. If using the same OAuth2 provider (e.g. Steam), it is recommended to suffix the name for each application when using multitenancy, e.g. steam_game1, steam_game2, etc."
          },
          "validationUrl" : {
            "type" : "string",
            "description" : "The URL to send the user token validation request to."
          },
          "headers" : {
            "type" : "array",
            "description" : "The headers required for the validation request.",
            "items" : {
              "$ref" : "#/components/schemas/OAuth2RequestKeyValue"
            }
          },
          "params" : {
            "type" : "array",
            "description" : "The query parameters required for the validation request.",
            "items" : {
              "$ref" : "#/components/schemas/OAuth2RequestKeyValue"
            }
          },
          "body" : {
            "type" : "array",
            "description" : "The body parameters for the validation request when using POST.\nFor FORM_URL_ENCODED, these become form fields (key=value&...).",
            "items" : {
              "$ref" : "#/components/schemas/OAuth2RequestKeyValue"
            }
          },
          "responseIdMapping" : {
            "type" : "string",
            "description" : "Determines how to map the user id in the response. Will search the response for the corresponding key. For example, if the response is structured like:  {\"response\": { \"params\" : { \"steamid\" : <id> } } } then you only need to input \"steamid\". Ignored if one of the parameters is marked as user id."
          },
          "responseValidMapping" : {
            "type" : "string",
            "description" : "Optional key in the response whose value indicates whether the token/user is valid.\nFor example: \"is_valid\", \"active\", or \"success\".\nIf not set, only the HTTP status code is used.\n"
          },
          "responseValidExpectedValue" : {
            "type" : "string",
            "description" : "Optional expected value for the validation field.\nIf null:\n  - boolean true is treated as success\n  - non-empty/non-null for non-boolean values is treated as success.\nIf set, the field's string value must equal this.\n"
          },
          "validStatusCodes" : {
            "type" : "array",
            "description" : "HTTP status codes that are considered \"processable\" for validation.\nAny other status is treated as failure before inspecting the body.\nDefaults to [200].\n",
            "items" : {
              "type" : "integer",
              "description" : "HTTP status codes that are considered \"processable\" for validation.\nAny other status is treated as failure before inspecting the body.\nDefaults to [200].\n",
              "format" : "int32"
            }
          },
          "method" : {
            "type" : "string",
            "description" : "HTTP method for the validation request (GET or POST).",
            "enum" : [ "GET", "POST" ]
          },
          "bodyType" : {
            "type" : "string",
            "description" : "How to encode the request body when using POST.\nFORM_URL_ENCODED corresponds to application/x-www-form-urlencoded.",
            "enum" : [ "NONE", "FORM_URL_ENCODED", "JSON" ]
          }
        },
        "description" : "Represents a request to update an Auth Scheme for an Application."
      },
      "PaginationOAuth2AuthScheme" : {
        "type" : "object",
        "properties" : {
          "offset" : {
            "type" : "integer",
            "format" : "int32"
          },
          "total" : {
            "type" : "integer",
            "format" : "int32"
          },
          "approximation" : {
            "type" : "boolean"
          },
          "objects" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/OAuth2AuthScheme"
            }
          }
        }
      },
      "OidcSessionRequest" : {
        "required" : [ "jwt" ],
        "type" : "object",
        "properties" : {
          "jwt" : {
            "minLength" : 1,
            "type" : "string",
            "description" : "The JWT to parse"
          },
          "profileId" : {
            "type" : "string",
            "description" : "The profile ID to assign to the session."
          },
          "profileSelector" : {
            "type" : "string",
            "description" : "A query string to select the profile to use. NOTE: This will not be run if a profileId is specified."
          }
        }
      },
      "CreateOrUpdateOidcAuthSchemeResponse" : {
        "type" : "object",
        "properties" : {
          "scheme" : {
            "$ref" : "#/components/schemas/OidcAuthScheme"
          }
        },
        "description" : "Represents a response from updating an Auth Scheme for an Application."
      },
      "JWK" : {
        "type" : "object",
        "properties" : {
          "alg" : {
            "type" : "string",
            "description" : "Algorithm (e.g. RS256)"
          },
          "kid" : {
            "type" : "string",
            "description" : "Key id (unique to issuer)"
          },
          "kty" : {
            "type" : "string",
            "description" : "Key type (e.g. RSA)"
          },
          "use" : {
            "type" : "string",
            "description" : "The intended use (e.g. sig)"
          },
          "e" : {
            "type" : "string",
            "description" : "Base64url encoded exponent"
          },
          "n" : {
            "type" : "string",
            "description" : "Pub key modulus"
          }
        },
        "description" : "A set of JWKs containing the keys required to validate JWT signatures."
      },
      "OidcAuthScheme" : {
        "required" : [ "issuer", "keys" ],
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "string",
            "description" : "The unique ID of the auth scheme."
          },
          "name" : {
            "type" : "string",
            "description" : "The unique name of the auth scheme."
          },
          "issuer" : {
            "type" : "string",
            "description" : "A unique name used to identify the scheme within the instance of Elements. When validating from an external source (e.g. Google or Apple SSO), must match the 'iss' property of the decoded JWT."
          },
          "keys" : {
            "type" : "array",
            "description" : "A set of JWKs containing the keys required to validate JWT signatures.",
            "items" : {
              "$ref" : "#/components/schemas/JWK"
            }
          },
          "keysUrl" : {
            "type" : "string",
            "description" : "The URL for the JWK data. Will attempt to refresh keys if the kid cannot be found in the collection."
          },
          "mediaType" : {
            "type" : "string",
            "description" : "The JWK format. Defaults to application/json"
          },
          "keysFetchedAt" : {
            "type" : "integer",
            "description" : "The epoch second at which 'keys' was last refreshed. Server-managed; not settable via the create/update API.",
            "format" : "int64"
          }
        },
        "description" : "The full JSON response as described in AuthScheme"
      },
      "CreateOrUpdateOidcAuthSchemeRequest" : {
        "required" : [ "issuer", "keys", "name" ],
        "type" : "object",
        "properties" : {
          "name" : {
            "type" : "string",
            "description" : "The name used when linking the scheme to the user."
          },
          "issuer" : {
            "type" : "string",
            "description" : "A unique name used to identify the scheme within the instance of Elements. When validating from an external source (e.g. Google or Apple SSO), must match the 'iss' property of the decoded JWT."
          },
          "keys" : {
            "type" : "array",
            "description" : "A set of JWKs containing the keys required to validate JWT signatures.",
            "items" : {
              "$ref" : "#/components/schemas/JWK"
            }
          },
          "keysUrl" : {
            "type" : "string",
            "description" : "The URL for the JWK data. Will attempt to refresh keys if the kid cannot be found in the collection."
          },
          "mediaType" : {
            "type" : "string",
            "description" : "The JWK format. Defaults to application/json"
          }
        },
        "description" : "Represents a request to update an Auth Scheme for an Application."
      },
      "PaginationOidcAuthScheme" : {
        "type" : "object",
        "properties" : {
          "offset" : {
            "type" : "integer",
            "format" : "int32"
          },
          "total" : {
            "type" : "integer",
            "format" : "int32"
          },
          "approximation" : {
            "type" : "boolean"
          },
          "objects" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/OidcAuthScheme"
            }
          }
        }
      },
      "CreateOrUpdateOidcProviderConfigurationResponse" : {
        "type" : "object",
        "properties" : {
          "configuration" : {
            "$ref" : "#/components/schemas/OidcProviderConfiguration"
          },
          "issuer" : {
            "type" : "string",
            "description" : "The issuer resolved from the provider's discovery document, confirming discovery succeeded."
          },
          "authorizationEndpoint" : {
            "type" : "string",
            "description" : "The authorization endpoint resolved from the provider's discovery document."
          },
          "tokenEndpoint" : {
            "type" : "string",
            "description" : "The token endpoint resolved from the provider's discovery document."
          }
        },
        "description" : "Represents a response from creating or updating an OIDC provider configuration. The client secret is never included in the returned configuration."
      },
      "OidcProviderConfiguration" : {
        "required" : [ "clientId", "clientSecret", "discoveryUrl", "name", "redirectUri" ],
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "string",
            "description" : "The unique ID of the provider configuration."
          },
          "name" : {
            "minLength" : 1,
            "type" : "string",
            "description" : "A unique, lowercase, URL-safe identifier for the provider (e.g. 'twitch'). Used as the 'provider' path segment and request body value for the OIDC session endpoints."
          },
          "discoveryUrl" : {
            "minLength" : 1,
            "type" : "string",
            "description" : "The provider's OIDC discovery document URL, e.g. https://id.twitch.tv/oauth2/.well-known/openid-configuration. The issuer, authorization endpoint, token endpoint, and JWKS URI are all resolved from this document."
          },
          "clientId" : {
            "minLength" : 1,
            "type" : "string",
            "description" : "The OAuth2 client id registered with the provider."
          },
          "clientSecret" : {
            "minLength" : 1,
            "type" : "string",
            "description" : "The OAuth2 client secret registered with the provider. Never returned in API responses."
          },
          "scopes" : {
            "type" : "array",
            "description" : "The OAuth2 scopes to request during authorization.",
            "items" : {
              "type" : "string",
              "description" : "The OAuth2 scopes to request during authorization."
            }
          },
          "redirectUri" : {
            "minLength" : 1,
            "type" : "string",
            "description" : "The full, literal redirect URI registered with the provider (e.g. https://api.example.com/oidc/twitch/callback). Must exactly match the value registered with the provider and is reused byte-for-byte in both the authorize request and the token exchange."
          },
          "extraAuthorizeParams" : {
            "type" : "object",
            "additionalProperties" : {
              "type" : "string",
              "description" : "Additional provider-specific query parameters to include in the authorize request (e.g. Twitch's 'claims' parameter to request email/preferred_username in the id_token)."
            },
            "description" : "Additional provider-specific query parameters to include in the authorize request (e.g. Twitch's 'claims' parameter to request email/preferred_username in the id_token)."
          },
          "tokenEndpointAuthMethod" : {
            "type" : "string",
            "description" : "How the client authenticates to the token endpoint during authorization code exchange.",
            "enum" : [ "CLIENT_SECRET_BASIC", "CLIENT_SECRET_POST" ]
          },
          "successRedirectUrl" : {
            "type" : "string",
            "description" : "Optional. If set, GET /oidc/{provider}/callback redirects the browser here on a successful login instead of rendering the default success page. Server-authoritative: not overridable per login attempt."
          },
          "errorRedirectUrl" : {
            "type" : "string",
            "description" : "Optional. If set, GET /oidc/{provider}/callback redirects the browser here on a failed login instead of rendering the default error page. Server-authoritative: not overridable per login attempt."
          }
        },
        "description" : "The created or updated provider configuration, with the client secret cleared."
      },
      "CreateOrUpdateOidcProviderConfigurationRequest" : {
        "required" : [ "clientId", "discoveryUrl", "name" ],
        "type" : "object",
        "properties" : {
          "name" : {
            "minLength" : 1,
            "type" : "string",
            "description" : "A unique, lowercase, URL-safe identifier for the provider (e.g. 'twitch')."
          },
          "discoveryUrl" : {
            "minLength" : 1,
            "type" : "string",
            "description" : "The provider's OIDC discovery document URL."
          },
          "clientId" : {
            "minLength" : 1,
            "type" : "string",
            "description" : "The OAuth2 client id registered with the provider."
          },
          "clientSecret" : {
            "type" : "string",
            "description" : "The OAuth2 client secret registered with the provider. Required on create; on update, leave blank to keep the existing secret unchanged."
          },
          "scopes" : {
            "type" : "array",
            "description" : "The OAuth2 scopes to request during authorization.",
            "items" : {
              "type" : "string",
              "description" : "The OAuth2 scopes to request during authorization."
            }
          },
          "redirectUri" : {
            "type" : "string",
            "description" : "The full, literal redirect URI registered with the provider. If left blank, defaults to this server's built-in OIDC callback URI for the provider (i.e. '{this server}/oidc/{provider}/callback')."
          },
          "extraAuthorizeParams" : {
            "type" : "object",
            "additionalProperties" : {
              "type" : "string",
              "description" : "Additional provider-specific query parameters to include in the authorize request."
            },
            "description" : "Additional provider-specific query parameters to include in the authorize request."
          },
          "tokenEndpointAuthMethod" : {
            "type" : "string",
            "description" : "How the client authenticates to the token endpoint during authorization code exchange.",
            "enum" : [ "CLIENT_SECRET_BASIC", "CLIENT_SECRET_POST" ]
          },
          "successRedirectUrl" : {
            "type" : "string",
            "description" : "Optional. If set, GET /oidc/{provider}/callback redirects the browser here on a successful login instead of rendering the default success page. Server-authoritative: not overridable per login attempt."
          },
          "errorRedirectUrl" : {
            "type" : "string",
            "description" : "Optional. If set, GET /oidc/{provider}/callback redirects the browser here on a failed login instead of rendering the default error page. Server-authoritative: not overridable per login attempt."
          }
        },
        "description" : "Represents a request to create or update an OIDC provider configuration."
      },
      "PaginationOidcProviderConfiguration" : {
        "type" : "object",
        "properties" : {
          "offset" : {
            "type" : "integer",
            "format" : "int32"
          },
          "total" : {
            "type" : "integer",
            "format" : "int32"
          },
          "approximation" : {
            "type" : "boolean"
          },
          "objects" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/OidcProviderConfiguration"
            }
          }
        }
      },
      "OidcLoginAttemptRequest" : {
        "required" : [ "provider" ],
        "type" : "object",
        "properties" : {
          "provider" : {
            "minLength" : 1,
            "type" : "string",
            "description" : "The provider identifier (e.g. 'twitch')."
          },
          "idToken" : {
            "type" : "string",
            "description" : "An already-possessed id_token to validate directly, skipping the browser-redirect flow."
          }
        },
        "description" : "Starts a browser-redirect OIDC login attempt, or, if idToken is supplied, validates a possessed id_token directly and returns a completed session synchronously."
      },
      "OidcLoginAttemptStatusResponse" : {
        "type" : "object",
        "properties" : {
          "status" : {
            "type" : "string",
            "description" : "The state of a pending OIDC login attempt.",
            "enum" : [ "PENDING", "COMPLETE", "FAILED", "EXPIRED" ]
          },
          "session" : {
            "$ref" : "#/components/schemas/SessionCreation"
          },
          "reason" : {
            "type" : "string",
            "description" : "A human-readable failure reason. Only set when status is FAILED."
          }
        },
        "description" : "The current state of a pending OIDC login attempt."
      },
      "SmartContract" : {
        "required" : [ "addresses", "displayName", "name", "vault" ],
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "string",
            "description" : "The Elements database id of the contract."
          },
          "name" : {
            "pattern" : "[^_]\\w+",
            "type" : "string",
            "description" : "The unique symbolic name of the smart contract."
          },
          "displayName" : {
            "type" : "string",
            "description" : "The name given to this contract for display purposes."
          },
          "addresses" : {
            "type" : "object",
            "additionalProperties" : {
              "$ref" : "#/components/schemas/SmartContractAddress"
            },
            "description" : "The addresses of the contract from the blockchain. Depending on the network or protocol this may have several meanings. For example, this may be the script has for the Ethereum network."
          },
          "vault" : {
            "$ref" : "#/components/schemas/Vault"
          },
          "metadata" : {
            "type" : "object",
            "additionalProperties" : {
              "type" : "object",
              "description" : "Any metadata for this contract."
            },
            "description" : "Any metadata for this contract."
          }
        },
        "description" : "Represents a smart contract."
      },
      "SmartContractAddress" : {
        "type" : "object",
        "properties" : {
          "address" : {
            "type" : "string"
          }
        },
        "description" : "The address of the contract from the blockchain. Depending on the network or protocol this may have several meanings and vary depending on the specific API or network."
      },
      "Vault" : {
        "required" : [ "displayName", "key", "user" ],
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "string",
            "description" : "The system assigned unique id of the vault."
          },
          "user" : {
            "$ref" : "#/components/schemas/User"
          },
          "displayName" : {
            "type" : "string",
            "description" : "The display name given to this vault."
          },
          "key" : {
            "$ref" : "#/components/schemas/VaultKey"
          }
        }
      },
      "VaultKey" : {
        "required" : [ "algorithm", "privateKey", "publicKey" ],
        "type" : "object",
        "properties" : {
          "algorithm" : {
            "type" : "string",
            "description" : "Specifies the private key encryption algorithm used to secure the vault.",
            "enum" : [ "RSA_256", "RSA_384", "RSA_512" ]
          },
          "publicKey" : {
            "type" : "string",
            "description" : "The public key portion of the vault key."
          },
          "privateKey" : {
            "type" : "string",
            "description" : "The private key portion of the vault key."
          },
          "encrypted" : {
            "type" : "boolean",
            "description" : "The flag to indicate if the key is encrypted or not."
          },
          "encryption" : {
            "type" : "object",
            "additionalProperties" : {
              "type" : "object",
              "description" : "The Vault's encryption metadata. This is specific to the encryption type used."
            },
            "description" : "The Vault's encryption metadata. This is specific to the encryption type used."
          }
        },
        "description" : "The Vault's key. The vault secures each vault with this key."
      },
      "CreateSmartContractRequest" : {
        "required" : [ "addresses", "displayName", "name", "vaultId" ],
        "type" : "object",
        "properties" : {
          "name" : {
            "pattern" : "^\\S+$",
            "type" : "string",
            "description" : "The unique symbolic name of the smart contract."
          },
          "displayName" : {
            "type" : "string",
            "description" : "The name given to this contract for display purposes."
          },
          "addresses" : {
            "type" : "object",
            "additionalProperties" : {
              "$ref" : "#/components/schemas/SmartContractAddress"
            },
            "description" : "The address of the contract from the blockchain. Depending on the network or protocol this may have several meanings and vary depending on the specific API or network."
          },
          "vaultId" : {
            "type" : "string",
            "description" : "The Elements database id of the wallet containing the default account to be used for contract related requests."
          },
          "metadata" : {
            "type" : "object",
            "additionalProperties" : {
              "type" : "object",
              "description" : "Any metadata for this contract."
            },
            "description" : "Any metadata for this contract."
          }
        },
        "description" : "Creates a smart contract."
      },
      "PaginationSmartContract" : {
        "type" : "object",
        "properties" : {
          "offset" : {
            "type" : "integer",
            "format" : "int32"
          },
          "total" : {
            "type" : "integer",
            "format" : "int32"
          },
          "approximation" : {
            "type" : "boolean"
          },
          "objects" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/SmartContract"
            }
          }
        }
      },
      "UpdateSmartContractRequest" : {
        "required" : [ "addresses", "displayName", "name", "vaultId" ],
        "type" : "object",
        "properties" : {
          "name" : {
            "pattern" : "^\\S+$",
            "type" : "string",
            "description" : "The unique symbolic name of the smart contract."
          },
          "displayName" : {
            "type" : "string",
            "description" : "The name given to this contract for display purposes."
          },
          "addresses" : {
            "type" : "object",
            "additionalProperties" : {
              "$ref" : "#/components/schemas/SmartContractAddress"
            },
            "description" : "The address of the contract from the blockchain. Depending on the network or protocol this may have several meanings and vary depending on the specific API or network."
          },
          "vaultId" : {
            "type" : "string",
            "description" : "The Elements database id of the wallet containing the default account to be used for contract related requests."
          },
          "metadata" : {
            "type" : "object",
            "additionalProperties" : {
              "type" : "object",
              "description" : "Any metadata for this contract."
            },
            "description" : "Any metadata for this contract."
          }
        },
        "description" : "Updates a smart contract."
      },
      "CreateVaultRequest" : {
        "required" : [ "displayName", "userId" ],
        "type" : "object",
        "properties" : {
          "userId" : {
            "type" : "string",
            "description" : "The elements-defined user ID to own the vault."
          },
          "displayName" : {
            "type" : "string",
            "description" : "A user-defined name for the vault. This is used simply for the user's reference and has no bearing  onthe vault's functionality."
          },
          "passphrase" : {
            "type" : "string",
            "description" : "The passphrase used to to encrypt the vault. If empty, then the vault will not be encrypted. Some configurations may opt to disallow encryption entirely."
          },
          "algorithm" : {
            "type" : "string",
            "description" : "The encryption algorithm used to secure the vault. Once crated, a vault will contains a private/public key pair which will be used to encrypt the wallets within the vault.",
            "enum" : [ "RSA_256", "RSA_384", "RSA_512" ]
          }
        }
      },
      "PaginationVault" : {
        "type" : "object",
        "properties" : {
          "offset" : {
            "type" : "integer",
            "format" : "int32"
          },
          "total" : {
            "type" : "integer",
            "format" : "int32"
          },
          "approximation" : {
            "type" : "boolean"
          },
          "objects" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/Vault"
            }
          }
        }
      },
      "UpdateVaultRequest" : {
        "required" : [ "displayName", "userId" ],
        "type" : "object",
        "properties" : {
          "displayName" : {
            "type" : "string",
            "description" : "A user-defined name for the vault. This is used simply for the user's reference and has no bearing  onthe vault's functionality."
          },
          "userId" : {
            "type" : "string",
            "description" : "The elements-defined user ID to own the vault."
          },
          "passphrase" : {
            "type" : "string",
            "description" : "The current passphrase for the vault. If left null, no updates to the passphrase will be made. If not-null, then the new password must also not be null."
          },
          "newPassphrase" : {
            "type" : "string",
            "description" : "The updated passphrase for the vault. If left null, no updates to the passphrase will be made. If not-null, then the password must also not be null."
          }
        }
      },
      "Wallet" : {
        "required" : [ "accounts", "api", "displayName", "networks", "user", "vault" ],
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "string",
            "description" : "The system assigned unique id of the wallet."
          },
          "user" : {
            "$ref" : "#/components/schemas/User"
          },
          "vault" : {
            "$ref" : "#/components/schemas/Vault"
          },
          "displayName" : {
            "type" : "string",
            "description" : "The name given to this wallet."
          },
          "api" : {
            "type" : "string",
            "description" : "The protocol used wiht this wallet.",
            "enum" : [ "NEO", "ETHEREUM", "SOLANA", "FLOW", "NEAR" ]
          },
          "networks" : {
            "maxItems" : 2147483647,
            "minItems" : 1,
            "type" : "array",
            "description" : "The networks associated with this wallet.",
            "items" : {
              "type" : "string",
              "description" : "The networks associated with this wallet.",
              "enum" : [ "NEO", "NEO_TEST", "ETHEREUM", "ETHEREUM_TEST", "BSC", "BSC_TEST", "POLYGON", "POLYGON_TEST", "SOLANA", "SOLANA_TEST", "FLOW", "FLOW_TEST", "NEAR", "NEAR_TEST" ]
            }
          },
          "preferredAccount" : {
            "minimum" : 0,
            "type" : "integer",
            "description" : "The default account. Must not be larger than the count of identities.",
            "format" : "int32"
          },
          "accounts" : {
            "maxItems" : 2147483647,
            "minItems" : 1,
            "type" : "array",
            "description" : "The list of account pairs included in this wallet.",
            "items" : {
              "$ref" : "#/components/schemas/WalletAccount"
            }
          }
        }
      },
      "WalletAccount" : {
        "required" : [ "address" ],
        "type" : "object",
        "properties" : {
          "address" : {
            "type" : "string",
            "description" : "The Wallet Address - id public identity. Required."
          },
          "privateKey" : {
            "type" : "string",
            "description" : "The Wallet Account - id private identity. May be null if the wallet is for receive only."
          },
          "encrypted" : {
            "type" : "boolean",
            "description" : "Indicates if this identity is encrypted."
          }
        },
        "description" : "The list of account pairs included in this wallet."
      },
      "CreateWalletRequest" : {
        "required" : [ "accounts", "api", "displayName", "networks" ],
        "type" : "object",
        "properties" : {
          "displayName" : {
            "type" : "string",
            "description" : "A user-defined name for the wallet. This is used simply for the user's reference and has no bearing  onthe wallet's functionality."
          },
          "api" : {
            "type" : "string",
            "description" : "The protocol of this wallet. Once set, this cannot be unset.",
            "enum" : [ "NEO", "ETHEREUM", "SOLANA", "FLOW", "NEAR" ]
          },
          "networks" : {
            "type" : "array",
            "description" : "The networks associated with this wallet. All must support the Wallet's protocol.",
            "items" : {
              "type" : "string",
              "description" : "The networks associated with this wallet. All must support the Wallet's protocol.",
              "enum" : [ "NEO", "NEO_TEST", "ETHEREUM", "ETHEREUM_TEST", "BSC", "BSC_TEST", "POLYGON", "POLYGON_TEST", "SOLANA", "SOLANA_TEST", "FLOW", "FLOW_TEST", "NEAR", "NEAR_TEST" ]
            }
          },
          "preferredAccount" : {
            "minimum" : 0,
            "type" : "integer",
            "description" : "The default identity. Must not be larger than the count of identities.",
            "format" : "int32"
          },
          "accounts" : {
            "maxItems" : 25,
            "minItems" : 1,
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/CreateWalletRequestAccount"
            }
          }
        },
        "description" : "Creates a new custodial wallet."
      },
      "CreateWalletRequestAccount" : {
        "type" : "object",
        "properties" : {
          "generate" : {
            "type" : "boolean",
            "description" : "Flag which indicates if the account should be generated or imported."
          },
          "address" : {
            "type" : "string",
            "description" : "The Wallet Address - id public identity. Must be null for generated wallets."
          },
          "privateKey" : {
            "type" : "string",
            "description" : "The Wallet Account - id private identity. May be null if the wallet is for receive only."
          }
        },
        "description" : "Specifies a Custodial Wallet Account Creating a Wallet"
      },
      "PaginationWallet" : {
        "type" : "object",
        "properties" : {
          "offset" : {
            "type" : "integer",
            "format" : "int32"
          },
          "total" : {
            "type" : "integer",
            "format" : "int32"
          },
          "approximation" : {
            "type" : "boolean"
          },
          "objects" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/Wallet"
            }
          }
        }
      },
      "UpdateWalletRequest" : {
        "required" : [ "networks" ],
        "type" : "object",
        "properties" : {
          "displayName" : {
            "type" : "string",
            "description" : "The new display name of the wallet."
          },
          "preferredAccount" : {
            "minimum" : 1,
            "type" : "integer",
            "description" : "The default identity. Must not be larger than the count of identities.",
            "format" : "int32"
          },
          "networks" : {
            "maxItems" : 2147483647,
            "minItems" : 1,
            "type" : "array",
            "description" : "The networks associated with this wallet. All must support the Wallet's protocol.",
            "items" : {
              "type" : "string",
              "description" : "The networks associated with this wallet. All must support the Wallet's protocol.",
              "enum" : [ "NEO", "NEO_TEST", "ETHEREUM", "ETHEREUM_TEST", "BSC", "BSC_TEST", "POLYGON", "POLYGON_TEST", "SOLANA", "SOLANA_TEST", "FLOW", "FLOW_TEST", "NEAR", "NEAR_TEST" ]
            }
          }
        },
        "description" : "Updates a Wallet."
      },
      "Deployment" : {
        "required" : [ "application", "id", "revision", "version" ],
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "string",
            "description" : "The unique ID of the deployment itself."
          },
          "version" : {
            "type" : "string",
            "description" : "The deployment version. Allows for overriding versions with new content."
          },
          "revision" : {
            "type" : "string",
            "description" : "The revision that this deployment points to."
          },
          "application" : {
            "$ref" : "#/components/schemas/Application"
          }
        }
      },
      "CreateDeploymentRequest" : {
        "required" : [ "revision", "version" ],
        "type" : "object",
        "properties" : {
          "version" : {
            "type" : "string"
          },
          "revision" : {
            "type" : "string"
          }
        }
      },
      "PaginationDeployment" : {
        "type" : "object",
        "properties" : {
          "offset" : {
            "type" : "integer",
            "format" : "int32"
          },
          "total" : {
            "type" : "integer",
            "format" : "int32"
          },
          "approximation" : {
            "type" : "boolean"
          },
          "objects" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/Deployment"
            }
          }
        }
      },
      "UpdateDeploymentRequest" : {
        "required" : [ "revision" ],
        "type" : "object",
        "properties" : {
          "revision" : {
            "type" : "string"
          }
        }
      },
      "CodegenRequest" : {
        "type" : "object",
        "properties" : {
          "elementSpecUrl" : {
            "type" : "string",
            "description" : "The URL for the Element OpenApi spec. Usually /app/rest/elementName/openapi.json"
          },
          "language" : {
            "type" : "string",
            "description" : "The target language that you want to generate the code to."
          },
          "packageName" : {
            "type" : "string",
            "description" : "The package name to set the generated code to. E.g. com.mycompany.mygame.Elements"
          },
          "options" : {
            "type" : "string",
            "description" : "Any additional options that you want to pass to the generator"
          }
        }
      },
      "ElementArtifactRepository" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "string",
            "description" : "The identifier of the repository. This is typically a unique name used to reference the repository when providing credentials."
          },
          "url" : {
            "type" : "string",
            "description" : "This is the URL for the repository."
          }
        },
        "description" : "Defines an artifact repository with its identifier and URL. Artifact repositories are used to store and retrieve Java artifacts such as libraries, and dependencies, and other build outputs. Namazu Elements permits the use of multiple artifact repositories to resolve artifacts required for Elements."
      },
      "ElementDeployment" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "string",
            "description" : "The database unique identifier of the Element deployment."
          },
          "application" : {
            "$ref" : "#/components/schemas/Application"
          },
          "elm" : {
            "$ref" : "#/components/schemas/LargeObjectReference"
          },
          "pathSpiBuiltins" : {
            "type" : "object",
            "additionalProperties" : {
              "type" : "array",
              "description" : "Map of element paths to builtin SPI configurations. This allow for an individual SPI specification for each Element contained within the ELM file in the large object.",
              "items" : {
                "type" : "string",
                "description" : "Map of element paths to builtin SPI configurations. This allow for an individual SPI specification for each Element contained within the ELM file in the large object."
              }
            },
            "description" : "Map of element paths to builtin SPI configurations. This allow for an individual SPI specification for each Element contained within the ELM file in the large object."
          },
          "pathSpiClassPaths" : {
            "type" : "object",
            "additionalProperties" : {
              "type" : "array",
              "description" : "Map of element paths to a custom SPI class paths. This allows for an individual SPI specification for each Element contained within the ELM file in the large object.",
              "items" : {
                "type" : "string",
                "description" : "Map of element paths to a custom SPI class paths. This allows for an individual SPI specification for each Element contained within the ELM file in the large object."
              }
            },
            "description" : "Map of element paths to a custom SPI class paths. This allows for an individual SPI specification for each Element contained within the ELM file in the large object."
          },
          "pathAttributes" : {
            "type" : "object",
            "additionalProperties" : {
              "type" : "object",
              "additionalProperties" : {
                "type" : "object",
                "description" : "Map of element paths to their custom attributes. The key is the path inside the ELM for each Element in the ELM file, and the value is a map of custom attributes to pass to that specific element at load time via the AttributesLoader mechanism."
              },
              "description" : "Map of element paths to their custom attributes. The key is the path inside the ELM for each Element in the ELM file, and the value is a map of custom attributes to pass to that specific element at load time via the AttributesLoader mechanism."
            },
            "description" : "Map of element paths to their custom attributes. The key is the path inside the ELM for each Element in the ELM file, and the value is a map of custom attributes to pass to that specific element at load time via the AttributesLoader mechanism."
          },
          "elements" : {
            "type" : "array",
            "description" : "List of Element definitions specifying the classpaths and artifacts for each Element to deploy. Each definition can specify either Maven artifact coordinates (API, SPI, Element lists) or a single ELM artifact coordinate.",
            "items" : {
              "$ref" : "#/components/schemas/ElementPathDefinition"
            }
          },
          "packages" : {
            "type" : "array",
            "description" : "List of Element package definitions specifying ELM artifacts to deploy with per-path attribute configuration. Each package can contain multiple elements with individualized attribute mappings.",
            "items" : {
              "$ref" : "#/components/schemas/ElementPackageDefinition"
            }
          },
          "useDefaultRepositories" : {
            "type" : "boolean",
            "description" : "Flag indicating whether to use the default artifact repositories in addition to any provided. The actual repositories included will be those defined by the system's default configuration at deployment time."
          },
          "repositories" : {
            "type" : "array",
            "description" : "List of artifact repositories to use for resolving the specified artifacts and their dependencies. All artifacts and their dependencies must be found within these repositories.",
            "items" : {
              "$ref" : "#/components/schemas/ElementArtifactRepository"
            }
          },
          "state" : {
            "type" : "string",
            "description" : "The state of the deployment.",
            "enum" : [ "UNLOADED", "ENABLED", "DISABLED" ]
          },
          "version" : {
            "type" : "integer",
            "description" : "Monotonically increasing version number, updated on each modification. Used to detect changes without comparing all fields.",
            "format" : "int64"
          }
        },
        "description" : "Represents the deployment configuration for an Element within the system. This includes details about the application context, artifacts to be included, and repositories for artifact resolution."
      },
      "ElementPackageDefinition" : {
        "required" : [ "elmArtifact" ],
        "type" : "object",
        "properties" : {
          "elmArtifact" : {
            "type" : "string",
            "description" : "The ELM artifact coordinate to resolve and deploy. This ELM file will be downloaded, extracted, and its contents organized into the deployment directory structure."
          },
          "pathSpiBuiltins" : {
            "type" : "object",
            "additionalProperties" : {
              "type" : "array",
              "description" : "Map of element paths to builtin SPI configurations. This allow for an individual SPI specification for each Element contained within the ELM file in the large object.",
              "items" : {
                "type" : "string",
                "description" : "Map of element paths to builtin SPI configurations. This allow for an individual SPI specification for each Element contained within the ELM file in the large object."
              }
            },
            "description" : "Map of element paths to builtin SPI configurations. This allow for an individual SPI specification for each Element contained within the ELM file in the large object."
          },
          "pathSpiClassPaths" : {
            "type" : "object",
            "additionalProperties" : {
              "type" : "array",
              "description" : "Map of element paths to a custom SPI class paths. This allows for an individual SPI specification for each Element contained within the ELM file in the specified ELM artifact.",
              "items" : {
                "type" : "string",
                "description" : "Map of element paths to a custom SPI class paths. This allows for an individual SPI specification for each Element contained within the ELM file in the specified ELM artifact."
              }
            },
            "description" : "Map of element paths to a custom SPI class paths. This allows for an individual SPI specification for each Element contained within the ELM file in the specified ELM artifact."
          },
          "pathAttributes" : {
            "type" : "object",
            "additionalProperties" : {
              "type" : "object",
              "additionalProperties" : {
                "type" : "object",
                "description" : "Map of element paths to their custom attributes. The key is the inside the ELM for each Element inside the ELM file. and the value is a map of custom attributes to pass to that specific element at load time via the AttributesLoader mechanism."
              },
              "description" : "Map of element paths to their custom attributes. The key is the inside the ELM for each Element inside the ELM file. and the value is a map of custom attributes to pass to that specific element at load time via the AttributesLoader mechanism."
            },
            "description" : "Map of element paths to their custom attributes. The key is the inside the ELM for each Element inside the ELM file. and the value is a map of custom attributes to pass to that specific element at load time via the AttributesLoader mechanism."
          }
        },
        "description" : "Defines a package of Elements from a single ELM artifact with per-path attribute configuration. This allows multiple element paths within an ELM to have different attribute configurations."
      },
      "ElementPathDefinition" : {
        "type" : "object",
        "properties" : {
          "path" : {
            "pattern" : "[^/\\\\]+",
            "type" : "string",
            "description" : "The single directory name where this element will be deployed within the deployment directory structure. Must not contain '/' as it represents a single path segment. This is optional and can be assigned at deployment time."
          },
          "apiArtifacts" : {
            "type" : "array",
            "description" : "List of API artifact coordinates. These artifacts will be loaded into a shared API classloader accessible to all Elements. Ignored if elmArtifact is specified.",
            "items" : {
              "type" : "string",
              "description" : "List of API artifact coordinates. These artifacts will be loaded into a shared API classloader accessible to all Elements. Ignored if elmArtifact is specified."
            }
          },
          "spiBuiltins" : {
            "type" : "array",
            "description" : "List of SPI (Service Provider Implementation) builtins. These provide the implementation of Element framework services.",
            "items" : {
              "type" : "string",
              "description" : "List of SPI (Service Provider Implementation) builtins. These provide the implementation of Element framework services."
            }
          },
          "spiArtifacts" : {
            "type" : "array",
            "description" : "List of SPI (Service Provider Implementation) artifact coordinates. These provide the implementation of Element framework services.",
            "items" : {
              "type" : "string",
              "description" : "List of SPI (Service Provider Implementation) artifact coordinates. These provide the implementation of Element framework services."
            }
          },
          "elementArtifacts" : {
            "type" : "array",
            "description" : "List of Element implementation artifact coordinates. These contain the actual Element code.",
            "items" : {
              "type" : "string",
              "description" : "List of Element implementation artifact coordinates. These contain the actual Element code."
            }
          },
          "attributes" : {
            "type" : "object",
            "additionalProperties" : {
              "type" : "object",
              "description" : "Custom attributes specific to this element path. These key-value pairs will be passed to the Element at load time via the AttributesLoader mechanism, allowing per-element configuration beyond the deployment-wide attributes."
            },
            "description" : "Custom attributes specific to this element path. These key-value pairs will be passed to the Element at load time via the AttributesLoader mechanism, allowing per-element configuration beyond the deployment-wide attributes."
          }
        },
        "description" : "Defines the classpath configuration for Elements within a deployment. Can specify either Maven artifact coordinates (api, spi, element lists) or a single ELM artifact coordinate."
      },
      "CreateElementDeploymentRequest" : {
        "type" : "object",
        "properties" : {
          "applicationNameOrId" : {
            "type" : "string",
            "description" : "The application name or ID. May be null. If null, then the Element will be scoped to the global or root element registry making it visible to all Applications. If specific to an Application, then this will be be visible only to Elements within that Application."
          },
          "elements" : {
            "type" : "array",
            "description" : "List of Element definitions specifying the classpaths and artifacts for each Element to deploy. Each definition can specify either Maven artifact coordinates (API, SPI, Element lists) or a single ELM artifact coordinate.",
            "items" : {
              "$ref" : "#/components/schemas/ElementPathDefinition"
            }
          },
          "packages" : {
            "type" : "array",
            "description" : "List of Element package definitions specifying ELM artifacts to deploy with per-path attribute configuration. Each package can contain multiple elements with individualized attribute mappings.",
            "items" : {
              "$ref" : "#/components/schemas/ElementPackageDefinition"
            }
          },
          "useDefaultRepositories" : {
            "type" : "boolean",
            "description" : "Flag indicating whether to use the default artifact repositories in addition to any provided. The actual repositories included will be those defined by the system's default configuration at deployment time."
          },
          "repositories" : {
            "type" : "array",
            "description" : "List of artifact repositories to use for resolving the specified artifacts and their dependencies. All artifacts and their dependencies must be found within these repositories.",
            "items" : {
              "$ref" : "#/components/schemas/ElementArtifactRepository"
            }
          },
          "pathAttributes" : {
            "type" : "object",
            "additionalProperties" : {
              "type" : "object",
              "additionalProperties" : {
                "type" : "object",
                "description" : "Map of element paths to their custom attributes. The key is the path inside the ELM for each Element in the ELM file, and the value is a map of custom attributes to pass to that specific element at load time via the AttributesLoader mechanism."
              },
              "description" : "Map of element paths to their custom attributes. The key is the path inside the ELM for each Element in the ELM file, and the value is a map of custom attributes to pass to that specific element at load time via the AttributesLoader mechanism."
            },
            "description" : "Map of element paths to their custom attributes. The key is the path inside the ELM for each Element in the ELM file, and the value is a map of custom attributes to pass to that specific element at load time via the AttributesLoader mechanism."
          },
          "pathSpiBuiltins" : {
            "type" : "object",
            "additionalProperties" : {
              "type" : "array",
              "description" : "Map of element paths to builtin SPI configurations. This allows for an individual SPI specification for each Element contained within the ELM file in the large object.",
              "items" : {
                "type" : "string",
                "description" : "Map of element paths to builtin SPI configurations. This allows for an individual SPI specification for each Element contained within the ELM file in the large object."
              }
            },
            "description" : "Map of element paths to builtin SPI configurations. This allows for an individual SPI specification for each Element contained within the ELM file in the large object."
          },
          "pathSpiClassPaths" : {
            "type" : "object",
            "additionalProperties" : {
              "type" : "array",
              "description" : "Map of element paths to a custom SPI class paths. This allows for an individual SPI specification for each Element contained within the ELM file in the large object.",
              "items" : {
                "type" : "string",
                "description" : "Map of element paths to a custom SPI class paths. This allows for an individual SPI specification for each Element contained within the ELM file in the large object."
              }
            },
            "description" : "Map of element paths to a custom SPI class paths. This allows for an individual SPI specification for each Element contained within the ELM file in the large object."
          },
          "state" : {
            "type" : "string",
            "description" : "The state of the deployment.",
            "enum" : [ "UNLOADED", "ENABLED", "DISABLED" ]
          }
        },
        "description" : "Request to create a new Element with specified artifacts and their repositories. All artifacts specified must exist in the repositories provided. Additionally, the repositories must include any dependencies required by the artifacts and all dependencies of those dependencies, and so on. The system will resolve all dependencies transitively."
      },
      "PaginationElementDeployment" : {
        "type" : "object",
        "properties" : {
          "offset" : {
            "type" : "integer",
            "format" : "int32"
          },
          "total" : {
            "type" : "integer",
            "format" : "int32"
          },
          "approximation" : {
            "type" : "boolean"
          },
          "objects" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/ElementDeployment"
            }
          }
        }
      },
      "UpdateElementDeploymentRequest" : {
        "required" : [ "state" ],
        "type" : "object",
        "properties" : {
          "elements" : {
            "type" : "array",
            "description" : "List of Element definitions specifying the classpaths and artifacts for each Element to deploy. Each definition can specify either Maven artifact coordinates (API, SPI, Element lists) or a single ELM artifact coordinate.",
            "items" : {
              "$ref" : "#/components/schemas/ElementPathDefinition"
            }
          },
          "packages" : {
            "type" : "array",
            "description" : "List of Element package definitions specifying ELM artifacts to deploy with per-path attribute configuration. Each package can contain multiple elements with individualized attribute mappings.",
            "items" : {
              "$ref" : "#/components/schemas/ElementPackageDefinition"
            }
          },
          "useDefaultRepositories" : {
            "type" : "boolean",
            "description" : "Flag indicating whether to use the default artifact repositories in addition to any provided. The actual repositories included will be those defined by the system's default configuration at deployment time."
          },
          "repositories" : {
            "type" : "array",
            "description" : "List of artifact repositories to use for resolving the specified artifacts and their dependencies. All artifacts and their dependencies must be found within these repositories.",
            "items" : {
              "$ref" : "#/components/schemas/ElementArtifactRepository"
            }
          },
          "pathAttributes" : {
            "type" : "object",
            "additionalProperties" : {
              "type" : "object",
              "additionalProperties" : {
                "type" : "object",
                "description" : "Map of element paths to their custom attributes. The key is the path inside the ELM for each Element in the ELM file, and the value is a map of custom attributes to pass to that specific element at load time via the AttributesLoader mechanism."
              },
              "description" : "Map of element paths to their custom attributes. The key is the path inside the ELM for each Element in the ELM file, and the value is a map of custom attributes to pass to that specific element at load time via the AttributesLoader mechanism."
            },
            "description" : "Map of element paths to their custom attributes. The key is the path inside the ELM for each Element in the ELM file, and the value is a map of custom attributes to pass to that specific element at load time via the AttributesLoader mechanism."
          },
          "pathSpiBuiltins" : {
            "type" : "object",
            "additionalProperties" : {
              "type" : "array",
              "description" : "Map of element paths to builtin SPI configurations. This allows for an individual SPI specification for each Element contained within the ELM file in the large object.",
              "items" : {
                "type" : "string",
                "description" : "Map of element paths to builtin SPI configurations. This allows for an individual SPI specification for each Element contained within the ELM file in the large object."
              }
            },
            "description" : "Map of element paths to builtin SPI configurations. This allows for an individual SPI specification for each Element contained within the ELM file in the large object."
          },
          "pathSpiClassPaths" : {
            "type" : "object",
            "additionalProperties" : {
              "type" : "array",
              "description" : "Map of element paths to a custom SPI class paths. This allows for an individual SPI specification for each Element contained within the ELM file in the large object.",
              "items" : {
                "type" : "string",
                "description" : "Map of element paths to a custom SPI class paths. This allows for an individual SPI specification for each Element contained within the ELM file in the large object."
              }
            },
            "description" : "Map of element paths to a custom SPI class paths. This allows for an individual SPI specification for each Element contained within the ELM file in the large object."
          },
          "state" : {
            "type" : "string",
            "description" : "The state of the deployment.",
            "enum" : [ "UNLOADED", "ENABLED", "DISABLED" ]
          }
        },
        "description" : "Request to update a new Element with specified artifacts and their repositories. All artifacts specified must exist in the repositories provided. Additionally, the repositories must include any dependencies required by the artifacts and all dependencies of those dependencies, and so on. The system will resolve all dependencies transitively."
      },
      "ElementSpi" : {
        "required" : [ "coordinates", "description", "id", "version" ],
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "string",
            "description" : "The well known ID."
          },
          "version" : {
            "type" : "string",
            "description" : "The version which is compatible with the specified artifacts."
          },
          "description" : {
            "type" : "string",
            "description" : "Briefly describes this spi and its intended use case."
          },
          "coordinates" : {
            "type" : "array",
            "description" : "The Maven coordinates of the artifacts to load.",
            "items" : {
              "type" : "string",
              "description" : "The Maven coordinates of the artifacts to load."
            }
          }
        },
        "description" : "An Element Loader SPI Implementation."
      },
      "ElementContainerStatus" : {
        "type" : "object",
        "properties" : {
          "runtime" : {
            "$ref" : "#/components/schemas/ElementRuntimeStatus"
          },
          "status" : {
            "type" : "string",
            "description" : "A string indicating the status of the container."
          },
          "uris" : {
            "uniqueItems" : true,
            "type" : "array",
            "description" : "The URIs served by this container.",
            "items" : {
              "type" : "string",
              "description" : "The URIs served by this container.",
              "format" : "uri"
            }
          },
          "logs" : {
            "type" : "array",
            "description" : "A list of logs related to the deployment of the container.",
            "items" : {
              "type" : "string",
              "description" : "A list of logs related to the deployment of the container."
            }
          },
          "warnings" : {
            "type" : "array",
            "description" : "A list of warnings produced during container mounting.",
            "items" : {
              "type" : "string",
              "description" : "A list of warnings produced during container mounting."
            }
          },
          "elements" : {
            "type" : "array",
            "description" : "A list of Elements included in the container.",
            "items" : {
              "$ref" : "#/components/schemas/ElementMetadata"
            }
          }
        },
        "description" : "Provides the status for containers running within one or more Elements. A container is registered with the main server and exposes endpoints via the listed URIs. Only Elements serving data will be visible here."
      },
      "ElementDefaultAttributeRecord" : {
        "type" : "object",
        "properties" : {
          "name" : {
            "type" : "string"
          },
          "value" : {
            "type" : "string"
          },
          "description" : {
            "type" : "string"
          },
          "sensitive" : {
            "type" : "boolean"
          }
        }
      },
      "ElementDefinitionMetadata" : {
        "type" : "object",
        "properties" : {
          "name" : {
            "type" : "string"
          },
          "recursive" : {
            "type" : "boolean"
          },
          "additionalPackages" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/ElementPackageRecord"
            }
          },
          "loader" : {
            "type" : "string"
          }
        }
      },
      "ElementDependencyMetadata" : {
        "type" : "object",
        "properties" : {
          "value" : {
            "type" : "string"
          },
          "selector" : {
            "type" : "string"
          }
        }
      },
      "ElementEventConsumerMetadata" : {
        "type" : "object",
        "properties" : {
          "serviceType" : {
            "type" : "string"
          },
          "serviceName" : {
            "type" : "string"
          },
          "eventName" : {
            "type" : "string"
          },
          "methodName" : {
            "type" : "string"
          }
        }
      },
      "ElementEventProducerMetadata" : {
        "type" : "object",
        "properties" : {
          "name" : {
            "type" : "string"
          },
          "description" : {
            "type" : "string"
          },
          "parameters" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          }
        }
      },
      "ElementManifestRecord" : {
        "type" : "object",
        "properties" : {
          "version" : {
            "$ref" : "#/components/schemas/SystemVersion"
          },
          "builtinSpis" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          }
        },
        "description" : "A mapping of paths to manifests of loaded elements."
      },
      "ElementMetadata" : {
        "type" : "object",
        "properties" : {
          "type" : {
            "type" : "string",
            "enum" : [ "ISOLATED_CLASSPATH", "SHARED_CLASSPATH" ]
          },
          "definition" : {
            "$ref" : "#/components/schemas/ElementDefinitionMetadata"
          },
          "services" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/ElementServiceMetadata"
            }
          },
          "producedEvents" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/ElementEventProducerMetadata"
            }
          },
          "consumedEvents" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/ElementEventConsumerMetadata"
            }
          },
          "dependencies" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/ElementDependencyMetadata"
            }
          },
          "attributes" : {
            "type" : "object",
            "additionalProperties" : {
              "type" : "object"
            }
          },
          "defaultAttributes" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/ElementDefaultAttributeRecord"
            }
          },
          "requiredAttributes" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/ElementRequiredAttributeRecord"
            }
          },
          "elementPath" : {
            "type" : "string"
          },
          "sourceElmArtifact" : {
            "type" : "string"
          }
        }
      },
      "ElementPackageRecord" : {
        "type" : "object",
        "properties" : {
          "name" : {
            "type" : "string"
          },
          "recursive" : {
            "type" : "boolean"
          }
        }
      },
      "ElementRequiredAttributeRecord" : {
        "type" : "object",
        "properties" : {
          "name" : {
            "type" : "string"
          },
          "description" : {
            "type" : "string"
          },
          "sensitive" : {
            "type" : "boolean"
          }
        }
      },
      "ElementRuntimeStatus" : {
        "type" : "object",
        "properties" : {
          "deployment" : {
            "$ref" : "#/components/schemas/ElementDeployment"
          },
          "status" : {
            "type" : "string",
            "description" : "The status of the runtime."
          },
          "elementPaths" : {
            "type" : "array",
            "description" : "A readout of element paths loaded with this.",
            "items" : {
              "type" : "string",
              "description" : "A readout of element paths loaded with this."
            }
          },
          "deploymentFiles" : {
            "type" : "array",
            "description" : "A readout of temporary files that are associated with the deployment.",
            "items" : {
              "type" : "string",
              "description" : "A readout of temporary files that are associated with the deployment."
            }
          },
          "logs" : {
            "type" : "array",
            "description" : "A list of logs related to the deployment of the runtime.",
            "items" : {
              "type" : "string",
              "description" : "A list of logs related to the deployment of the runtime."
            }
          },
          "warnings" : {
            "type" : "array",
            "description" : "A list of warnings related to the deployment of the runtime.",
            "items" : {
              "type" : "string",
              "description" : "A list of warnings related to the deployment of the runtime."
            }
          },
          "errors" : {
            "type" : "array",
            "description" : "A list of errors related to the deployment of the runtime.",
            "items" : {
              "type" : "string",
              "description" : "A list of errors related to the deployment of the runtime."
            }
          },
          "elements" : {
            "type" : "array",
            "description" : "A list of Elements included in the runtime.",
            "items" : {
              "$ref" : "#/components/schemas/ElementMetadata"
            }
          },
          "failedElements" : {
            "type" : "array",
            "description" : "A list of Elements that failed to load, preserving their declared required and default attributes so that missing configuration can be identified even when an element cannot initialise.",
            "items" : {
              "$ref" : "#/components/schemas/ElementMetadata"
            }
          },
          "elementManifests" : {
            "type" : "object",
            "additionalProperties" : {
              "$ref" : "#/components/schemas/ElementManifestRecord"
            },
            "description" : "A mapping of paths to manifests of loaded elements."
          }
        },
        "description" : "Reports the status of an element runtime, which is a deployed in-memory Element. An in-memory Element may or may not expose endpoints but can still be loaded in memory."
      },
      "ElementServiceExportMetadata" : {
        "type" : "object",
        "properties" : {
          "exposed" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "name" : {
            "type" : "string"
          }
        }
      },
      "ElementServiceImplementationMetadata" : {
        "type" : "object",
        "properties" : {
          "type" : {
            "type" : "string"
          },
          "expose" : {
            "type" : "boolean"
          }
        }
      },
      "ElementServiceMetadata" : {
        "type" : "object",
        "properties" : {
          "implementation" : {
            "$ref" : "#/components/schemas/ElementServiceImplementationMetadata"
          },
          "export" : {
            "$ref" : "#/components/schemas/ElementServiceExportMetadata"
          }
        }
      },
      "SystemVersion" : {
        "type" : "object",
        "properties" : {
          "version" : {
            "type" : "string"
          },
          "revision" : {
            "type" : "string"
          },
          "timestamp" : {
            "type" : "string"
          }
        },
        "description" : "The version of the Element"
      },
      "ElementFeature" : {
        "type" : "object",
        "properties" : {
          "name" : {
            "type" : "string",
            "description" : "The name of the feature. Used as an internal reference."
          },
          "description" : {
            "type" : "string",
            "description" : "A brief description of what it permits to the Elements."
          }
        },
        "description" : "Reports a particular permitted feature of the system and what can be exposed to Elements"
      },
      "ElementManifestMetadata" : {
        "type" : "object",
        "properties" : {
          "version" : {
            "$ref" : "#/components/schemas/SystemVersion"
          },
          "builtinSpis" : {
            "type" : "array",
            "description" : "The builtin SPIs requested by this element.",
            "items" : {
              "type" : "string",
              "description" : "The builtin SPIs requested by this element."
            }
          }
        },
        "description" : "The Element manifest."
      },
      "ElementPathRecordMetadata" : {
        "type" : "object",
        "properties" : {
          "path" : {
            "type" : "string",
            "description" : "The path inside the ELM file."
          },
          "api" : {
            "type" : "array",
            "description" : "The API path inside the ELM file.",
            "items" : {
              "type" : "string",
              "description" : "The API path inside the ELM file."
            }
          },
          "spi" : {
            "type" : "array",
            "description" : "The SPI path inside the ELM file.",
            "items" : {
              "type" : "string",
              "description" : "The SPI path inside the ELM file."
            }
          },
          "lib" : {
            "type" : "array",
            "description" : "The library path inside the ELM file.",
            "items" : {
              "type" : "string",
              "description" : "The library path inside the ELM file."
            }
          },
          "classpath" : {
            "type" : "array",
            "description" : "The classpath path inside the ELM file.",
            "items" : {
              "type" : "string",
              "description" : "The classpath path inside the ELM file."
            }
          },
          "attributes" : {
            "type" : "object",
            "additionalProperties" : {
              "type" : "object",
              "description" : "The the attributes specified in the ELM file."
            },
            "description" : "The the attributes specified in the ELM file."
          },
          "manifest" : {
            "$ref" : "#/components/schemas/ElementManifestMetadata"
          }
        },
        "description" : "Describes the path of an ELM distribution."
      },
      "PaginationProfile" : {
        "type" : "object",
        "properties" : {
          "offset" : {
            "type" : "integer",
            "format" : "int32"
          },
          "total" : {
            "type" : "integer",
            "format" : "int32"
          },
          "approximation" : {
            "type" : "boolean"
          },
          "objects" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/Profile"
            }
          }
        }
      },
      "CreateFollowerRequest" : {
        "required" : [ "followedId" ],
        "type" : "object",
        "properties" : {
          "followedId" : {
            "type" : "string",
            "description" : "The profile id which to follow."
          }
        },
        "description" : "Represents a request to follow a player Follower."
      },
      "Friend" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "string",
            "description" : "The unique ID of the friendship."
          },
          "user" : {
            "$ref" : "#/components/schemas/User"
          },
          "friendship" : {
            "type" : "string",
            "description" : "The friendship type.",
            "enum" : [ "NONE", "OUTGOING", "INCOMING", "MUTUAL" ]
          },
          "profiles" : {
            "type" : "array",
            "description" : "The profiles which are associated with the friend user.",
            "items" : {
              "$ref" : "#/components/schemas/Profile"
            }
          }
        },
        "description" : "Represents a player's friend.  This includes the basic information of the friend as well as the friendship type, profiles he or she has across games, and "
      },
      "PaginationFriend" : {
        "type" : "object",
        "properties" : {
          "offset" : {
            "type" : "integer",
            "format" : "int32"
          },
          "total" : {
            "type" : "integer",
            "format" : "int32"
          },
          "approximation" : {
            "type" : "boolean"
          },
          "objects" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/Friend"
            }
          }
        }
      },
      "CreateItemRequest" : {
        "required" : [ "category", "description", "displayName", "name" ],
        "type" : "object",
        "properties" : {
          "name" : {
            "pattern" : "[^_]\\w+",
            "type" : "string"
          },
          "displayName" : {
            "type" : "string"
          },
          "description" : {
            "type" : "string"
          },
          "category" : {
            "type" : "string",
            "enum" : [ "FUNGIBLE", "DISTINCT" ]
          },
          "tags" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "metadataSpecId" : {
            "type" : "string"
          },
          "metadata" : {
            "type" : "object",
            "additionalProperties" : {
              "type" : "object"
            }
          },
          "publicVisible" : {
            "type" : "boolean"
          },
          "metadataSpec" : {
            "type" : "string",
            "writeOnly" : true
          }
        }
      },
      "PaginationItem" : {
        "type" : "object",
        "properties" : {
          "offset" : {
            "type" : "integer",
            "format" : "int32"
          },
          "total" : {
            "type" : "integer",
            "format" : "int32"
          },
          "approximation" : {
            "type" : "boolean"
          },
          "objects" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/Item"
            }
          }
        }
      },
      "UpdateItemRequest" : {
        "required" : [ "description", "displayName", "name" ],
        "type" : "object",
        "properties" : {
          "name" : {
            "pattern" : "[^_]\\w+",
            "type" : "string"
          },
          "displayName" : {
            "type" : "string"
          },
          "description" : {
            "type" : "string"
          },
          "tags" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "metadataSpec" : {
            "$ref" : "#/components/schemas/MetadataSpec"
          },
          "metadata" : {
            "type" : "object",
            "additionalProperties" : {
              "type" : "object"
            }
          },
          "publicVisible" : {
            "type" : "boolean"
          }
        }
      },
      "PaginationProductBundle" : {
        "type" : "object",
        "properties" : {
          "offset" : {
            "type" : "integer",
            "format" : "int32"
          },
          "total" : {
            "type" : "integer",
            "format" : "int32"
          },
          "approximation" : {
            "type" : "boolean"
          },
          "objects" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/ProductBundle"
            }
          }
        }
      },
      "ProductSkuSchema" : {
        "required" : [ "schema" ],
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "string",
            "description" : "The database id of this Product SKU Schema."
          },
          "schema" : {
            "type" : "string",
            "description" : "The purchase provider schema in reverse-dns notation, e.g. com.apple.appstore."
          }
        },
        "description" : "A registered payment-provider schema identifier."
      },
      "PaginationProductSkuSchema" : {
        "type" : "object",
        "properties" : {
          "offset" : {
            "type" : "integer",
            "format" : "int32"
          },
          "total" : {
            "type" : "integer",
            "format" : "int32"
          },
          "approximation" : {
            "type" : "boolean"
          },
          "objects" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/ProductSkuSchema"
            }
          }
        }
      },
      "CreateGooglePlayIapReceipt" : {
        "required" : [ "packageName", "productId", "purchaseToken" ],
        "type" : "object",
        "properties" : {
          "packageName" : {
            "type" : "string",
            "description" : "The package name of the app. Note that this may be different from the applicationId/uniqueIdentifier which is why it should be provided with the request."
          },
          "productId" : {
            "type" : "string",
            "description" : "The product id purchased by the user, e.g. `com.namazustudios.example_app.pack_10_coins`."
          },
          "purchaseToken" : {
            "type" : "string",
            "description" : "The token issued to the user upon successful Google Play purchase transaction."
          }
        }
      },
      "BuildIndexRequest" : {
        "type" : "object",
        "properties" : {
          "plan" : {
            "type" : "boolean",
            "description" : "Set to true to plan the index building."
          },
          "toIndex" : {
            "type" : "array",
            "description" : "Set to true to perform the index building.",
            "items" : {
              "type" : "string",
              "description" : "Set to true to perform the index building.",
              "enum" : [ "DISTINCT_INVENTORY_ITEM", "METADATA" ]
            }
          }
        },
        "description" : "Starts a new indexing operation."
      },
      "IndexMetadataObject" : {
        "type" : "object",
        "properties" : {
          "identifier" : {
            "type" : "object"
          }
        }
      },
      "IndexPlanObject" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "string"
          },
          "state" : {
            "type" : "string",
            "enum" : [ "READY", "PROCESSING", "APPLIED" ]
          },
          "steps" : {
            "$ref" : "#/components/schemas/IndexPlanStepObject"
          }
        }
      },
      "IndexPlanStepObject" : {
        "type" : "object",
        "properties" : {
          "description" : {
            "type" : "string"
          },
          "operation" : {
            "type" : "string",
            "enum" : [ "CREATE", "LEAVE_AS_IS", "REPLACE", "DELETE" ]
          },
          "indexMetadata" : {
            "$ref" : "#/components/schemas/IndexMetadataObject"
          }
        }
      },
      "PaginationIndexPlanObject" : {
        "type" : "object",
        "properties" : {
          "offset" : {
            "type" : "integer",
            "format" : "int32"
          },
          "total" : {
            "type" : "integer",
            "format" : "int32"
          },
          "approximation" : {
            "type" : "boolean"
          },
          "objects" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/IndexPlanObject"
            }
          }
        }
      },
      "InventoryItem" : {
        "required" : [ "item", "priority", "quantity", "user" ],
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "string",
            "description" : "The unique ID of the inventory item itself."
          },
          "user" : {
            "$ref" : "#/components/schemas/User"
          },
          "item" : {
            "$ref" : "#/components/schemas/Item"
          },
          "quantity" : {
            "minimum" : 0,
            "type" : "integer",
            "description" : "The quantity of the Item in inventory",
            "format" : "int32"
          },
          "priority" : {
            "type" : "integer",
            "description" : "The priority of this Item grouping in inventory (for stacked/packaged inventory support)",
            "format" : "int32"
          }
        },
        "description" : "Should the redemption be successful, the Inventory Item that was updated. Otherwise, null."
      },
      "AdvancedInventoryItemQuantityAdjustment" : {
        "required" : [ "quantityDelta", "userId" ],
        "type" : "object",
        "properties" : {
          "userId" : {
            "type" : "string",
            "description" : "The User whose inventory to modify.ß"
          },
          "quantityDelta" : {
            "type" : "integer",
            "description" : "The delta to be applied to the inventory item quantity (positive or negative)",
            "format" : "int32"
          },
          "priority" : {
            "minimum" : 0,
            "type" : "integer",
            "description" : "The priority slot for the item.",
            "format" : "int32"
          }
        }
      },
      "CreateAdvancedInventoryItemRequest" : {
        "required" : [ "itemId", "userId" ],
        "type" : "object",
        "properties" : {
          "userId" : {
            "type" : "string",
            "description" : "The User ID"
          },
          "itemId" : {
            "type" : "string",
            "description" : "The item to reference."
          },
          "quantity" : {
            "minimum" : 0,
            "type" : "integer",
            "description" : "The quantity of the Item in inventory",
            "format" : "int32"
          },
          "priority" : {
            "minimum" : 0,
            "type" : "integer",
            "description" : "The priority slot for the item.",
            "format" : "int32"
          }
        }
      },
      "PaginationInventoryItem" : {
        "type" : "object",
        "properties" : {
          "offset" : {
            "type" : "integer",
            "format" : "int32"
          },
          "total" : {
            "type" : "integer",
            "format" : "int32"
          },
          "approximation" : {
            "type" : "boolean"
          },
          "objects" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/InventoryItem"
            }
          }
        }
      },
      "UpdateInventoryItemRequest" : {
        "type" : "object",
        "properties" : {
          "quantity" : {
            "minimum" : 1,
            "type" : "integer",
            "description" : "The quantity of the Item in inventory",
            "format" : "int32"
          }
        }
      },
      "DistinctInventoryItem" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "string",
            "description" : "The unique ID of the inventory item itself."
          },
          "item" : {
            "$ref" : "#/components/schemas/Item"
          },
          "user" : {
            "$ref" : "#/components/schemas/User"
          },
          "profile" : {
            "$ref" : "#/components/schemas/Profile"
          },
          "metadata" : {
            "type" : "object",
            "additionalProperties" : {
              "type" : "object"
            }
          }
        }
      },
      "CreateDistinctInventoryItemRequest" : {
        "required" : [ "itemId" ],
        "type" : "object",
        "properties" : {
          "itemId" : {
            "type" : "string",
            "description" : "The digital goods item id."
          },
          "userId" : {
            "type" : "string",
            "description" : "The id of the User owning this inventory item id."
          },
          "profileId" : {
            "type" : "string",
            "description" : "The the profileid of hte Profile owning this inventory item."
          },
          "metadata" : {
            "type" : "object",
            "additionalProperties" : {
              "type" : "object"
            }
          }
        }
      },
      "PaginationDistinctInventoryItem" : {
        "type" : "object",
        "properties" : {
          "offset" : {
            "type" : "integer",
            "format" : "int32"
          },
          "total" : {
            "type" : "integer",
            "format" : "int32"
          },
          "approximation" : {
            "type" : "boolean"
          },
          "objects" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/DistinctInventoryItem"
            }
          }
        }
      },
      "UpdateDistinctInventoryItemRequest" : {
        "type" : "object",
        "properties" : {
          "userId" : {
            "type" : "string",
            "description" : "The id of the User owning this inventory item id."
          },
          "profileId" : {
            "type" : "string",
            "description" : "The the profile id of hte Profile owning this inventory item."
          },
          "metadata" : {
            "type" : "object",
            "additionalProperties" : {
              "type" : "object"
            }
          }
        }
      },
      "ItemLedgerEntry" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "string",
            "description" : "The unique ID of this ledger entry."
          },
          "inventoryItemId" : {
            "type" : "string",
            "description" : "ID of the inventory item affected; null for item-catalog events."
          },
          "itemCategory" : {
            "type" : "string",
            "description" : "The inventory category (FUNGIBLE or DISTINCT); null for item-catalog events.",
            "enum" : [ "FUNGIBLE", "DISTINCT" ]
          },
          "itemId" : {
            "type" : "string",
            "description" : "ID of the item definition."
          },
          "userId" : {
            "type" : "string",
            "description" : "ID of the user who owns the inventory item; null for item-catalog events."
          },
          "actorId" : {
            "type" : "string",
            "description" : "ID of the user who performed the action; null when triggered by a system or plugin without a user context."
          },
          "eventType" : {
            "type" : "string",
            "description" : "The type of lifecycle event recorded in an item ledger entry.",
            "enum" : [ "CREATED", "QUANTITY_ADJUSTED", "QUANTITY_SET", "DELETED", "METADATA_UPDATED", "ITEM_CREATED", "ITEM_UPDATED", "ITEM_DELETED" ]
          },
          "timestamp" : {
            "type" : "integer",
            "description" : "Epoch milliseconds when the event occurred.",
            "format" : "int64"
          },
          "quantityBefore" : {
            "type" : "integer",
            "description" : "Quantity before the change; populated for QUANTITY_ADJUSTED events only.",
            "format" : "int32"
          },
          "quantityAfter" : {
            "type" : "integer",
            "description" : "Quantity after the change; populated for CREATED, QUANTITY_ADJUSTED, and QUANTITY_SET events.",
            "format" : "int32"
          },
          "metadataBefore" : {
            "type" : "object",
            "additionalProperties" : {
              "type" : "object",
              "description" : "Metadata snapshot before the change; populated for METADATA_UPDATED events only."
            },
            "description" : "Metadata snapshot before the change; populated for METADATA_UPDATED events only."
          },
          "metadataAfter" : {
            "type" : "object",
            "additionalProperties" : {
              "type" : "object",
              "description" : "Metadata snapshot after the change; populated for METADATA_UPDATED events only."
            },
            "description" : "Metadata snapshot after the change; populated for METADATA_UPDATED events only."
          }
        },
        "description" : "An immutable audit record for a single inventory or item-catalog lifecycle event."
      },
      "PaginationItemLedgerEntry" : {
        "type" : "object",
        "properties" : {
          "offset" : {
            "type" : "integer",
            "format" : "int32"
          },
          "total" : {
            "type" : "integer",
            "format" : "int32"
          },
          "approximation" : {
            "type" : "boolean"
          },
          "objects" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/ItemLedgerEntry"
            }
          }
        }
      },
      "SimpleInventoryItemQuantityAdjustment" : {
        "required" : [ "quantityDelta", "userId" ],
        "type" : "object",
        "properties" : {
          "userId" : {
            "type" : "string",
            "description" : "The User whose inventory to modify.ß"
          },
          "quantityDelta" : {
            "type" : "integer",
            "description" : "The delta to be applied to the inventory item quantity (positive or negative)",
            "format" : "int32"
          }
        }
      },
      "CreateSimpleInventoryItemRequest" : {
        "required" : [ "itemId", "userId" ],
        "type" : "object",
        "properties" : {
          "userId" : {
            "type" : "string",
            "description" : "The User ID"
          },
          "itemId" : {
            "type" : "string",
            "description" : "The item to reference."
          },
          "quantity" : {
            "minimum" : 1,
            "type" : "integer",
            "description" : "The quantity of the Item in inventory",
            "format" : "int32"
          }
        }
      },
      "InviteViaPhonesResponse" : {
        "type" : "object",
        "properties" : {
          "matched" : {
            "type" : "array",
            "description" : "The list of objects representing matched phone numbers",
            "items" : {
              "$ref" : "#/components/schemas/PhoneMatchedInvitation"
            }
          }
        },
        "description" : "Represents a response to invite users with phone numbers list"
      },
      "PhoneMatchedInvitation" : {
        "type" : "object",
        "properties" : {
          "phoneNumber" : {
            "type" : "string",
            "description" : "Phone number"
          },
          "profileIds" : {
            "type" : "array",
            "description" : "The list of profile Ids that phone was matched",
            "items" : {
              "type" : "string",
              "description" : "The list of profile Ids that phone was matched"
            }
          }
        },
        "description" : "Represents a single match between the user primary phone number and requested phone from invitation."
      },
      "InviteViaPhonesRequest" : {
        "type" : "object",
        "properties" : {
          "phoneNumbers" : {
            "type" : "array",
            "description" : "The list of phone numbers",
            "items" : {
              "type" : "string",
              "description" : "The list of phone numbers"
            }
          }
        },
        "description" : "Represents a request to invite users with phone numbers list"
      },
      "AccessPermissions" : {
        "required" : [ "delete", "read", "write" ],
        "type" : "object",
        "properties" : {
          "read" : {
            "$ref" : "#/components/schemas/Subjects"
          },
          "write" : {
            "$ref" : "#/components/schemas/Subjects"
          },
          "delete" : {
            "$ref" : "#/components/schemas/Subjects"
          }
        },
        "description" : "Permission associated with LargeObject."
      },
      "LargeObject" : {
        "required" : [ "accessPermissions", "path" ],
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "string",
            "description" : "The unique ID of the LargeObject."
          },
          "url" : {
            "type" : "string",
            "description" : "The URL where the binary contents of the LargeObject may be read. May be null, since Path param or Id is pointer for object."
          },
          "path" : {
            "type" : "string",
            "description" : "The path to the file in the underlying bucket."
          },
          "mimeType" : {
            "type" : "string",
            "description" : "The MIME type of the LargeObject."
          },
          "accessPermissions" : {
            "$ref" : "#/components/schemas/AccessPermissions"
          },
          "state" : {
            "type" : "string",
            "description" : "Represents the state of the large object.",
            "enum" : [ "EMPTY", "UPLOADED" ]
          },
          "lastModified" : {
            "type" : "string",
            "description" : "Date of last modification.",
            "format" : "date-time"
          },
          "originalFilename" : {
            "type" : "string",
            "description" : "The original name of the file."
          }
        }
      },
      "Subjects" : {
        "required" : [ "profiles", "users" ],
        "type" : "object",
        "properties" : {
          "wildcard" : {
            "type" : "boolean",
            "description" : "Flag to check who may perform the operations. True if all users may access the object."
          },
          "users" : {
            "type" : "array",
            "description" : "Users which may perform the operations.",
            "items" : {
              "$ref" : "#/components/schemas/User"
            }
          },
          "profiles" : {
            "type" : "array",
            "description" : "Profiles, which owners may perform the operations.",
            "items" : {
              "$ref" : "#/components/schemas/Profile"
            }
          },
          "minimumLevel" : {
            "type" : "string",
            "description" : "Specifies a minimum access level, if applicable.",
            "enum" : [ "UNPRIVILEGED", "USER", "SUPERUSER" ]
          }
        },
        "description" : "Subjects allowed to delete"
      },
      "BodyPart" : {
        "type" : "object",
        "properties" : {
          "contentDisposition" : {
            "$ref" : "#/components/schemas/ContentDisposition"
          },
          "entity" : {
            "type" : "object"
          },
          "headers" : {
            "type" : "object",
            "properties" : {
              "empty" : {
                "type" : "boolean"
              }
            },
            "additionalProperties" : {
              "type" : "array",
              "items" : {
                "type" : "string"
              }
            }
          },
          "mediaType" : {
            "$ref" : "#/components/schemas/MediaType"
          },
          "messageBodyWorkers" : {
            "$ref" : "#/components/schemas/MessageBodyWorkers"
          },
          "parent" : {
            "$ref" : "#/components/schemas/MultiPart"
          },
          "providers" : {
            "$ref" : "#/components/schemas/Providers"
          },
          "parameterizedHeaders" : {
            "type" : "object",
            "properties" : {
              "empty" : {
                "type" : "boolean"
              }
            },
            "additionalProperties" : {
              "type" : "array",
              "items" : {
                "$ref" : "#/components/schemas/ParameterizedHeader"
              }
            }
          }
        }
      },
      "ContentDisposition" : {
        "type" : "object",
        "properties" : {
          "type" : {
            "type" : "string"
          },
          "parameters" : {
            "type" : "object",
            "additionalProperties" : {
              "type" : "string"
            }
          },
          "fileName" : {
            "type" : "string"
          },
          "creationDate" : {
            "type" : "string",
            "format" : "date-time"
          },
          "modificationDate" : {
            "type" : "string",
            "format" : "date-time"
          },
          "readDate" : {
            "type" : "string",
            "format" : "date-time"
          },
          "size" : {
            "type" : "integer",
            "format" : "int64"
          }
        }
      },
      "FormDataBodyPart" : {
        "type" : "object",
        "properties" : {
          "contentDisposition" : {
            "$ref" : "#/components/schemas/ContentDisposition"
          },
          "entity" : {
            "type" : "object"
          },
          "headers" : {
            "type" : "object",
            "properties" : {
              "empty" : {
                "type" : "boolean"
              }
            },
            "additionalProperties" : {
              "type" : "array",
              "items" : {
                "type" : "string"
              }
            }
          },
          "mediaType" : {
            "$ref" : "#/components/schemas/MediaType"
          },
          "messageBodyWorkers" : {
            "$ref" : "#/components/schemas/MessageBodyWorkers"
          },
          "parent" : {
            "$ref" : "#/components/schemas/MultiPart"
          },
          "providers" : {
            "$ref" : "#/components/schemas/Providers"
          },
          "name" : {
            "type" : "string"
          },
          "value" : {
            "type" : "string"
          },
          "content" : {
            "type" : "object"
          },
          "fileName" : {
            "type" : "string"
          },
          "simple" : {
            "type" : "boolean"
          },
          "formDataContentDisposition" : {
            "$ref" : "#/components/schemas/FormDataContentDisposition"
          },
          "parameterizedHeaders" : {
            "type" : "object",
            "properties" : {
              "empty" : {
                "type" : "boolean"
              }
            },
            "additionalProperties" : {
              "type" : "array",
              "items" : {
                "$ref" : "#/components/schemas/ParameterizedHeader"
              }
            }
          }
        }
      },
      "FormDataContentDisposition" : {
        "type" : "object",
        "properties" : {
          "type" : {
            "type" : "string"
          },
          "parameters" : {
            "type" : "object",
            "additionalProperties" : {
              "type" : "string"
            }
          },
          "fileName" : {
            "type" : "string"
          },
          "creationDate" : {
            "type" : "string",
            "format" : "date-time"
          },
          "modificationDate" : {
            "type" : "string",
            "format" : "date-time"
          },
          "readDate" : {
            "type" : "string",
            "format" : "date-time"
          },
          "size" : {
            "type" : "integer",
            "format" : "int64"
          },
          "name" : {
            "type" : "string"
          }
        }
      },
      "MediaType" : {
        "type" : "object",
        "properties" : {
          "type" : {
            "type" : "string"
          },
          "subtype" : {
            "type" : "string"
          },
          "parameters" : {
            "type" : "object",
            "additionalProperties" : {
              "type" : "string"
            }
          },
          "wildcardType" : {
            "type" : "boolean"
          },
          "wildcardSubtype" : {
            "type" : "boolean"
          }
        }
      },
      "MessageBodyWorkers" : {
        "type" : "object"
      },
      "MultiPart" : {
        "type" : "object",
        "properties" : {
          "contentDisposition" : {
            "$ref" : "#/components/schemas/ContentDisposition"
          },
          "entity" : {
            "type" : "object"
          },
          "headers" : {
            "type" : "object",
            "properties" : {
              "empty" : {
                "type" : "boolean"
              }
            },
            "additionalProperties" : {
              "type" : "array",
              "items" : {
                "type" : "string"
              }
            }
          },
          "mediaType" : {
            "$ref" : "#/components/schemas/MediaType"
          },
          "messageBodyWorkers" : {
            "$ref" : "#/components/schemas/MessageBodyWorkers"
          },
          "parent" : {
            "$ref" : "#/components/schemas/MultiPart"
          },
          "providers" : {
            "$ref" : "#/components/schemas/Providers"
          },
          "bodyParts" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/BodyPart"
            }
          },
          "parameterizedHeaders" : {
            "type" : "object",
            "properties" : {
              "empty" : {
                "type" : "boolean"
              }
            },
            "additionalProperties" : {
              "type" : "array",
              "items" : {
                "$ref" : "#/components/schemas/ParameterizedHeader"
              }
            }
          }
        }
      },
      "MultivaluedMapStringParameterizedHeader" : {
        "type" : "object",
        "properties" : {
          "empty" : {
            "type" : "boolean"
          }
        },
        "additionalProperties" : {
          "type" : "array",
          "items" : {
            "$ref" : "#/components/schemas/ParameterizedHeader"
          }
        }
      },
      "MultivaluedMapStringString" : {
        "type" : "object",
        "properties" : {
          "empty" : {
            "type" : "boolean"
          }
        },
        "additionalProperties" : {
          "type" : "array",
          "items" : {
            "type" : "string"
          }
        }
      },
      "ParameterizedHeader" : {
        "type" : "object",
        "properties" : {
          "value" : {
            "type" : "string"
          },
          "parameters" : {
            "type" : "object",
            "additionalProperties" : {
              "type" : "string"
            }
          }
        }
      },
      "Providers" : {
        "type" : "object"
      },
      "CreateLargeObjectRequest" : {
        "required" : [ "delete", "mimeType", "read", "write" ],
        "type" : "object",
        "properties" : {
          "mimeType" : {
            "type" : "string",
            "description" : "The MIME type associated with the object."
          },
          "read" : {
            "$ref" : "#/components/schemas/SubjectRequest"
          },
          "write" : {
            "$ref" : "#/components/schemas/SubjectRequest"
          },
          "delete" : {
            "$ref" : "#/components/schemas/SubjectRequest"
          }
        }
      },
      "SubjectRequest" : {
        "required" : [ "profileIds", "userIds" ],
        "type" : "object",
        "properties" : {
          "wildcard" : {
            "type" : "boolean",
            "description" : "Flag to check who may perform the operation. If true, all anonymous users may perform the operation."
          },
          "userIds" : {
            "type" : "array",
            "description" : "A List of all UserIds which can operate against the LargeObject.",
            "items" : {
              "type" : "string",
              "description" : "A List of all UserIds which can operate against the LargeObject."
            }
          },
          "profileIds" : {
            "type" : "array",
            "description" : "A List of all ProfileIds which can operate against the LargeObject.",
            "items" : {
              "type" : "string",
              "description" : "A List of all ProfileIds which can operate against the LargeObject."
            }
          }
        },
        "description" : "Specifies the Subjects which can delete the LargeObject."
      },
      "CreateLargeObjectFromUrlRequest" : {
        "required" : [ "delete", "fileUrl", "mimeType", "read", "write" ],
        "type" : "object",
        "properties" : {
          "mimeType" : {
            "type" : "string",
            "description" : "The MIME type associated with the object."
          },
          "read" : {
            "$ref" : "#/components/schemas/SubjectRequest"
          },
          "write" : {
            "$ref" : "#/components/schemas/SubjectRequest"
          },
          "delete" : {
            "$ref" : "#/components/schemas/SubjectRequest"
          },
          "fileUrl" : {
            "type" : "string",
            "description" : "List with image URLs"
          }
        }
      },
      "PaginationLargeObject" : {
        "type" : "object",
        "properties" : {
          "offset" : {
            "type" : "integer",
            "format" : "int32"
          },
          "total" : {
            "type" : "integer",
            "format" : "int32"
          },
          "approximation" : {
            "type" : "boolean"
          },
          "objects" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/LargeObject"
            }
          }
        }
      },
      "UpdateLargeObjectRequest" : {
        "required" : [ "delete", "mimeType", "read", "write" ],
        "type" : "object",
        "properties" : {
          "mimeType" : {
            "type" : "string",
            "description" : "The MIME type associated with the object."
          },
          "read" : {
            "$ref" : "#/components/schemas/SubjectRequest"
          },
          "write" : {
            "$ref" : "#/components/schemas/SubjectRequest"
          },
          "delete" : {
            "$ref" : "#/components/schemas/SubjectRequest"
          }
        }
      },
      "Leaderboard" : {
        "required" : [ "name", "scoreStrategyType", "scoreUnits", "timeStrategyType", "title" ],
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "string"
          },
          "name" : {
            "pattern" : "[^_]\\w+",
            "type" : "string",
            "description" : "The name of the leaderboard.  This must be unique across all leaderboards."
          },
          "timeStrategyType" : {
            "type" : "string",
            "description" : "The time strategy for the leaderboard. Current options are ALL_TIME and EPOCHAL.",
            "enum" : [ "ALL_TIME", "EPOCHAL" ]
          },
          "scoreStrategyType" : {
            "type" : "string",
            "description" : "The score strategy for the leaderboard. Current options are OVERWRITE_IF_GREATER and ACCUMULATE.",
            "enum" : [ "OVERWRITE_IF_GREATER", "ACCUMULATE" ]
          },
          "title" : {
            "type" : "string",
            "description" : "The user-presentable name or title for for the leaderboard."
          },
          "scoreUnits" : {
            "type" : "string",
            "description" : "The units-of measure for the score type of the leaderboard."
          },
          "firstEpochTimestamp" : {
            "minimum" : 0,
            "type" : "integer",
            "description" : "The time at which the leaderboard epoch intervals should begin (in ms). If null, then the leaderboard is all-time and not epochal. During creation, if this value is provided, then epochInterval must also be provided.",
            "format" : "int64"
          },
          "epochInterval" : {
            "minimum" : 0,
            "type" : "integer",
            "description" : "The duration for a leaderboard epoch interval (in ms). If null, then the leaderboard is all-time and not epochal. During creation, if this value is provided, then firstEpochTimestamp must also be provided.",
            "format" : "int64"
          }
        }
      },
      "CreateLeaderboardRequest" : {
        "required" : [ "name", "scoreStrategyType", "scoreUnits", "timeStrategyType", "title" ],
        "type" : "object",
        "properties" : {
          "name" : {
            "pattern" : "[^_]\\w+",
            "type" : "string",
            "description" : "The name of the leaderboard.  This must be unique across all leaderboards."
          },
          "timeStrategyType" : {
            "type" : "string",
            "description" : "The time strategy for the leaderboard. Current options are ALL_TIME and EPOCHAL.",
            "enum" : [ "ALL_TIME", "EPOCHAL" ]
          },
          "scoreStrategyType" : {
            "type" : "string",
            "description" : "The score strategy for the leaderboard. Current options are OVERWRITE_IF_GREATER and ACCUMULATE.",
            "enum" : [ "OVERWRITE_IF_GREATER", "ACCUMULATE" ]
          },
          "title" : {
            "type" : "string",
            "description" : "The user-presentable name or title for for the leaderboard."
          },
          "scoreUnits" : {
            "type" : "string",
            "description" : "The units-of measure for the score type of the leaderboard."
          },
          "firstEpochTimestamp" : {
            "minimum" : 0,
            "type" : "integer",
            "description" : "The time at which the leaderboard epoch intervals should begin (in ms). If null, then the leaderboard is all-time and not epochal. During creation, if this value is provided, then epochInterval must also be provided.",
            "format" : "int64"
          },
          "epochInterval" : {
            "minimum" : 0,
            "type" : "integer",
            "description" : "The duration for a leaderboard epoch interval (in ms). If null, then the leaderboard is all-time and not epochal. During creation, if this value is provided, then firstEpochTimestamp must also be provided.",
            "format" : "int64"
          }
        }
      },
      "PaginationLeaderboard" : {
        "type" : "object",
        "properties" : {
          "offset" : {
            "type" : "integer",
            "format" : "int32"
          },
          "total" : {
            "type" : "integer",
            "format" : "int32"
          },
          "approximation" : {
            "type" : "boolean"
          },
          "objects" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/Leaderboard"
            }
          }
        }
      },
      "UpdateLeaderboardRequest" : {
        "required" : [ "name", "scoreStrategyType", "scoreUnits", "timeStrategyType", "title" ],
        "type" : "object",
        "properties" : {
          "name" : {
            "pattern" : "[^_]\\w+",
            "type" : "string",
            "description" : "The name of the leaderboard.  This must be unique across all leaderboards."
          },
          "timeStrategyType" : {
            "type" : "string",
            "description" : "The time strategy for the leaderboard. Current options are ALL_TIME and EPOCHAL.",
            "enum" : [ "ALL_TIME", "EPOCHAL" ]
          },
          "scoreStrategyType" : {
            "type" : "string",
            "description" : "The score strategy for the leaderboard. Current options are OVERWRITE_IF_GREATER and ACCUMULATE.",
            "enum" : [ "OVERWRITE_IF_GREATER", "ACCUMULATE" ]
          },
          "title" : {
            "type" : "string",
            "description" : "The user-presentable name or title for for the leaderboard."
          },
          "scoreUnits" : {
            "type" : "string",
            "description" : "The units-of measure for the score type of the leaderboard."
          }
        }
      },
      "PaginationRank" : {
        "type" : "object",
        "properties" : {
          "offset" : {
            "type" : "integer",
            "format" : "int32"
          },
          "total" : {
            "type" : "integer",
            "format" : "int32"
          },
          "approximation" : {
            "type" : "boolean"
          },
          "objects" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/Rank"
            }
          }
        }
      },
      "Rank" : {
        "required" : [ "score" ],
        "type" : "object",
        "properties" : {
          "position" : {
            "type" : "integer",
            "description" : "The position of the associated score in the result set.",
            "format" : "int64"
          },
          "score" : {
            "$ref" : "#/components/schemas/Score"
          }
        }
      },
      "Score" : {
        "required" : [ "profile" ],
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "string",
            "description" : "The ID of the Score"
          },
          "profile" : {
            "$ref" : "#/components/schemas/Profile"
          },
          "pointValue" : {
            "type" : "number",
            "description" : "The point value of the score.",
            "format" : "double"
          },
          "scoreUnits" : {
            "type" : "string",
            "description" : "The the units of measure for the points.  For example, if the points in the game were called \"coins\" instead of \"points\" this would be used to designate as such in the UI."
          },
          "creationTimestamp" : {
            "type" : "integer",
            "description" : "The time at which the score was created on the server.",
            "format" : "int64"
          },
          "leaderboardEpoch" : {
            "type" : "integer",
            "description" : "The epoch to which the score belongs for the associated leaderboard. By convention, if the leaderboard is all-time, this value will be set to zero.",
            "format" : "int64"
          }
        }
      },
      "RankRow" : {
        "required" : [ "lastLogin", "profileDisplayName", "profileId", "profileImageUrl" ],
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "string",
            "description" : "The ID of the Score"
          },
          "position" : {
            "type" : "integer",
            "description" : "The position of the associated score in the result set.",
            "format" : "int64"
          },
          "pointValue" : {
            "type" : "number",
            "description" : "The point value of the score.",
            "format" : "double"
          },
          "scoreUnits" : {
            "type" : "string",
            "description" : "The the units of measure for the points.  For example, if the points in the game were called \"coins\" instead of \"points\" this would be used to designate as such in the UI."
          },
          "creationTimestamp" : {
            "type" : "integer",
            "description" : "The time at which the score was created on the server.",
            "format" : "int64"
          },
          "leaderboardEpoch" : {
            "type" : "integer",
            "description" : "The epoch to which the score belongs for the associated leaderboard. By convention, if the leaderboard is all-time, this value will be set to zero.",
            "format" : "int64"
          },
          "profileId" : {
            "type" : "string",
            "description" : "The profile ID of the user who holds this rank."
          },
          "profileDisplayName" : {
            "type" : "string",
            "description" : "The profile display name of the user who holds this rank."
          },
          "profileImageUrl" : {
            "type" : "string",
            "description" : "The profile image url of the user who holds this rank."
          },
          "lastLogin" : {
            "type" : "integer",
            "description" : "The last login.",
            "format" : "int64"
          }
        }
      },
      "TabulationRankRow" : {
        "required" : [ "rows" ],
        "type" : "object",
        "properties" : {
          "rows" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/RankRow"
            }
          }
        }
      },
      "MultiMatch" : {
        "required" : [ "configuration" ],
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "string",
            "description" : "The unique ID of the match."
          },
          "joinCode" : {
            "$ref" : "#/components/schemas/UniqueCode"
          },
          "status" : {
            "type" : "string",
            "description" : "The status of the match.",
            "enum" : [ "OPEN", "FULL", "CLOSED", "ENDED" ]
          },
          "configuration" : {
            "$ref" : "#/components/schemas/MatchmakingApplicationConfiguration"
          },
          "metadata" : {
            "type" : "object",
            "additionalProperties" : {
              "type" : "object",
              "description" : "The metadata of hte multi-match, which can be used to store additional information about the match."
            },
            "description" : "The metadata of hte multi-match, which can be used to store additional information about the match."
          },
          "count" : {
            "type" : "integer",
            "description" : "The number of players currently in the match.",
            "format" : "int32"
          },
          "expiry" : {
            "type" : "integer",
            "description" : "The expiry time of the match in seconds. If not set, the match will not expire.",
            "format" : "int64"
          },
          "created" : {
            "type" : "integer",
            "description" : "The timestamp at which the match was created, in milliseconds since epoch.",
            "format" : "int64"
          }
        },
        "description" : "Represents a multi-match in the matchmaking system."
      },
      "UniqueCode" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "string"
          },
          "linger" : {
            "type" : "integer",
            "format" : "int64"
          },
          "timeout" : {
            "type" : "integer",
            "format" : "int64"
          },
          "expiry" : {
            "type" : "integer",
            "format" : "int64"
          },
          "user" : {
            "$ref" : "#/components/schemas/User"
          },
          "profile" : {
            "$ref" : "#/components/schemas/Profile"
          }
        },
        "description" : "Represents a unique code with an identifier, the code itself, and an expiration timestamp."
      },
      "PaginationMultiMatch" : {
        "type" : "object",
        "properties" : {
          "offset" : {
            "type" : "integer",
            "format" : "int32"
          },
          "total" : {
            "type" : "integer",
            "format" : "int32"
          },
          "approximation" : {
            "type" : "boolean"
          },
          "objects" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/MultiMatch"
            }
          }
        }
      },
      "FacebookIapReceipt" : {
        "type" : "object",
        "properties" : {
          "userId" : {
            "type" : "string",
            "description" : "The id of the Facebook User that purchased the IAP."
          },
          "purchaseId" : {
            "type" : "string",
            "description" : "The original transaction identifier of the IAP. We use this as the key for the db object as well as the {@link RewardIssuance} context. (For now, we do not persist the transaction_id, only the original_transaction_id.)"
          },
          "reportingId" : {
            "type" : "string",
            "description" : "A secondary identifier for troubleshooting/auditing (and potential future correlation)"
          },
          "sku" : {
            "type" : "string",
            "description" : "The SKU of the IAP as it is listed in your IAP definitions."
          },
          "grantTime" : {
            "type" : "integer",
            "description" : "Time when the user gained entitlement to the item (Unix timestamp).",
            "format" : "int64"
          },
          "expirationTime" : {
            "type" : "integer",
            "description" : "Time when the user will lose entitlement to the item (Unix timestamp). If the user has an indefinite entitlement it will be 0.",
            "format" : "int64"
          },
          "developerPayload" : {
            "type" : "string",
            "description" : "The original purchase date."
          }
        }
      },
      "PaginationFacebookIapReceipt" : {
        "type" : "object",
        "properties" : {
          "offset" : {
            "type" : "integer",
            "format" : "int32"
          },
          "total" : {
            "type" : "integer",
            "format" : "int32"
          },
          "approximation" : {
            "type" : "boolean"
          },
          "objects" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/FacebookIapReceipt"
            }
          }
        }
      },
      "OculusIapConsumeResponse" : {
        "type" : "object",
        "properties" : {
          "success" : {
            "type" : "boolean"
          }
        }
      },
      "OculusIapReceipt" : {
        "type" : "object",
        "properties" : {
          "userId" : {
            "type" : "string",
            "description" : "The id of the Oculus User that purchased the IAP."
          },
          "purchaseId" : {
            "type" : "string",
            "description" : "The original transaction identifier of the IAP. We use this as the key for the db object as well as the {@link RewardIssuance} context. (For now, we do not persist the transaction_id, only the original_transaction_id.)"
          },
          "reportingId" : {
            "type" : "string",
            "description" : "A secondary identifier for troubleshooting/auditing (and potential future correlation)"
          },
          "sku" : {
            "type" : "string",
            "description" : "The SKU of the IAP as it is listed in your IAP definitions."
          },
          "grantTime" : {
            "type" : "integer",
            "description" : "Time when the user gained entitlement to the item (Unix timestamp).",
            "format" : "int64"
          },
          "expirationTime" : {
            "type" : "integer",
            "description" : "Time when the user will lose entitlement to the item (Unix timestamp). If the user has an indefinite entitlement it will be 0.",
            "format" : "int64"
          },
          "developerPayload" : {
            "type" : "string",
            "description" : "The original purchase date."
          }
        }
      },
      "PaginationOculusIapReceipt" : {
        "type" : "object",
        "properties" : {
          "offset" : {
            "type" : "integer",
            "format" : "int32"
          },
          "total" : {
            "type" : "integer",
            "format" : "int32"
          },
          "approximation" : {
            "type" : "boolean"
          },
          "objects" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/OculusIapReceipt"
            }
          }
        }
      },
      "OculusIapVerifyReceiptResponse" : {
        "type" : "object",
        "properties" : {
          "success" : {
            "type" : "boolean"
          },
          "grantTime" : {
            "type" : "integer",
            "format" : "int64"
          },
          "userId" : {
            "type" : "string"
          },
          "sku" : {
            "type" : "string"
          }
        }
      },
      "Metadata" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "string",
            "description" : "The metadata object's database assigned unique ID."
          },
          "name" : {
            "pattern" : "^\\S+$",
            "type" : "string",
            "description" : "A unique name for the metadata object."
          },
          "metadata" : {
            "type" : "object",
            "additionalProperties" : {
              "type" : "object",
              "description" : "An object containing the metadata payload as key-value pairs."
            },
            "description" : "An object containing the metadata payload as key-value pairs."
          },
          "metadataSpec" : {
            "$ref" : "#/components/schemas/MetadataSpec"
          },
          "accessLevel" : {
            "type" : "string",
            "description" : "The minimum level of access required to view this metadata.",
            "enum" : [ "UNPRIVILEGED", "USER", "SUPERUSER" ]
          }
        },
        "description" : "Represents a custom metadata object."
      },
      "CreateMetadataRequest" : {
        "required" : [ "name" ],
        "type" : "object",
        "properties" : {
          "name" : {
            "pattern" : "^\\S+$",
            "type" : "string",
            "description" : "A unique name for the metadata object."
          },
          "metadata" : {
            "type" : "object",
            "additionalProperties" : {
              "type" : "object",
              "description" : "An object containing the metadata payload as key-value pairs."
            },
            "description" : "An object containing the metadata payload as key-value pairs."
          },
          "metadataSpec" : {
            "$ref" : "#/components/schemas/MetadataSpec"
          },
          "accessLevel" : {
            "type" : "string",
            "description" : "The minimum level of access required to view this metadata.",
            "enum" : [ "UNPRIVILEGED", "USER", "SUPERUSER" ]
          }
        }
      },
      "PaginationMetadata" : {
        "type" : "object",
        "properties" : {
          "offset" : {
            "type" : "integer",
            "format" : "int32"
          },
          "total" : {
            "type" : "integer",
            "format" : "int32"
          },
          "approximation" : {
            "type" : "boolean"
          },
          "objects" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/Metadata"
            }
          }
        }
      },
      "UpdateMetadataRequest" : {
        "type" : "object",
        "properties" : {
          "name" : {
            "pattern" : "^\\S+$",
            "type" : "string",
            "description" : "A unique name for the metadata object."
          },
          "metadata" : {
            "type" : "object",
            "additionalProperties" : {
              "type" : "object",
              "description" : "An object containing the metadata payload as key-value pairs."
            },
            "description" : "An object containing the metadata payload as key-value pairs."
          },
          "metadataSpec" : {
            "$ref" : "#/components/schemas/MetadataSpec"
          },
          "accessLevel" : {
            "type" : "string",
            "description" : "The minimum level of access required to view this metadata.",
            "enum" : [ "UNPRIVILEGED", "USER", "SUPERUSER" ]
          }
        }
      },
      "Mission" : {
        "required" : [ "description", "displayName", "name" ],
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "string",
            "description" : "The unique ID of the mission"
          },
          "name" : {
            "type" : "string",
            "description" : "The name of the mission"
          },
          "displayName" : {
            "type" : "string",
            "description" : "The display name for the mission"
          },
          "description" : {
            "type" : "string",
            "description" : "The description of the mission"
          },
          "tags" : {
            "type" : "array",
            "description" : "The tags used to categorize this mission",
            "items" : {
              "type" : "string",
              "description" : "The tags used to categorize this mission"
            }
          },
          "steps" : {
            "type" : "array",
            "description" : "The steps that constitute the mission (may be null if finalRepeatStep is specified)",
            "items" : {
              "$ref" : "#/components/schemas/Step"
            }
          },
          "finalRepeatStep" : {
            "$ref" : "#/components/schemas/Step"
          },
          "metadata" : {
            "type" : "object",
            "additionalProperties" : {
              "type" : "object",
              "description" : "The metadata for this mission"
            },
            "description" : "The metadata for this mission"
          }
        }
      },
      "Reward" : {
        "required" : [ "item", "quantity" ],
        "type" : "object",
        "properties" : {
          "item" : {
            "$ref" : "#/components/schemas/Item"
          },
          "quantity" : {
            "minimum" : 0,
            "type" : "integer",
            "description" : "The quantity of the Item that is rewarded",
            "format" : "int32"
          },
          "metadata" : {
            "type" : "object",
            "additionalProperties" : {
              "type" : "object"
            }
          }
        },
        "description" : "The reward(s) that will be granted upon completion"
      },
      "Step" : {
        "required" : [ "count", "description", "displayName", "rewards" ],
        "type" : "object",
        "properties" : {
          "displayName" : {
            "type" : "string",
            "description" : "The display name for the step"
          },
          "description" : {
            "type" : "string",
            "description" : "The description of the step"
          },
          "count" : {
            "minimum" : 0,
            "type" : "integer",
            "description" : "The number of times the step must be completed to receive the reward(s)",
            "format" : "int32"
          },
          "rewards" : {
            "type" : "array",
            "description" : "The reward(s) that will be granted upon completion",
            "items" : {
              "$ref" : "#/components/schemas/Reward"
            }
          },
          "metadata" : {
            "type" : "object",
            "additionalProperties" : {
              "type" : "object",
              "description" : "The metadata for this step"
            },
            "description" : "The metadata for this step"
          }
        },
        "description" : "The final repeating step (may be null if step(s) are specified)"
      },
      "CreateMissionRequest" : {
        "required" : [ "description", "displayName", "name" ],
        "type" : "object",
        "properties" : {
          "name" : {
            "type" : "string",
            "description" : "The name of the mission"
          },
          "displayName" : {
            "type" : "string",
            "description" : "The display name for the mission"
          },
          "description" : {
            "type" : "string",
            "description" : "The description of the mission"
          },
          "tags" : {
            "type" : "array",
            "description" : "The tags used to categorize this mission",
            "items" : {
              "type" : "string",
              "description" : "The tags used to categorize this mission"
            }
          },
          "steps" : {
            "type" : "array",
            "description" : "The steps that constitute the mission (may be null if finalRepeatStep is specified)",
            "items" : {
              "$ref" : "#/components/schemas/Step"
            }
          },
          "finalRepeatStep" : {
            "$ref" : "#/components/schemas/Step"
          },
          "metadata" : {
            "type" : "object",
            "additionalProperties" : {
              "type" : "object",
              "description" : "The metadata for this mission"
            },
            "description" : "The metadata for this mission"
          }
        }
      },
      "PaginationMission" : {
        "type" : "object",
        "properties" : {
          "offset" : {
            "type" : "integer",
            "format" : "int32"
          },
          "total" : {
            "type" : "integer",
            "format" : "int32"
          },
          "approximation" : {
            "type" : "boolean"
          },
          "objects" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/Mission"
            }
          }
        }
      },
      "UpdateMissionRequest" : {
        "type" : "object",
        "properties" : {
          "displayName" : {
            "type" : "string",
            "description" : "The display name for the mission"
          },
          "description" : {
            "type" : "string",
            "description" : "The description of the mission"
          },
          "tags" : {
            "type" : "array",
            "description" : "The tags used to categorize this mission",
            "items" : {
              "type" : "string",
              "description" : "The tags used to categorize this mission"
            }
          },
          "steps" : {
            "type" : "array",
            "description" : "The steps that constitute the mission (may be null if finalRepeatStep is specified)",
            "items" : {
              "$ref" : "#/components/schemas/Step"
            }
          },
          "finalRepeatStep" : {
            "$ref" : "#/components/schemas/Step"
          },
          "metadata" : {
            "type" : "object",
            "additionalProperties" : {
              "type" : "object",
              "description" : "The metadata for this mission"
            },
            "description" : "The metadata for this mission"
          }
        }
      },
      "Progress" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "string",
            "description" : "The unique ID of the progress instance"
          },
          "profile" : {
            "$ref" : "#/components/schemas/Profile"
          },
          "currentStep" : {
            "$ref" : "#/components/schemas/Step"
          },
          "remaining" : {
            "type" : "integer",
            "description" : "The remaining actions",
            "format" : "int32"
          },
          "mission" : {
            "$ref" : "#/components/schemas/ProgressMissionInfo"
          },
          "rewardIssuances" : {
            "type" : "array",
            "description" : "List of all reward issuances that are issued but not expired, or redeemed but persistent.",
            "items" : {
              "$ref" : "#/components/schemas/RewardIssuance"
            }
          },
          "sequence" : {
            "type" : "integer",
            "description" : "The current number of completed steps. Note that this may exceed the total number of steps, i.e. the final step may be repeated infinitely.",
            "format" : "int32"
          },
          "managedBySchedule" : {
            "type" : "boolean",
            "description" : "Indicates that this progress is managed by a Schedule. If true, the Progress will be deleted when no schedules have the progress active. This will be true if the Progress was created as part of a Schedule."
          },
          "schedules" : {
            "type" : "array",
            "description" : "A listing of the Schedules which are managing this Progress. Empty or null if the Progress is not managed as part of a Schedule.",
            "items" : {
              "$ref" : "#/components/schemas/Schedule"
            }
          },
          "scheduleEvents" : {
            "type" : "array",
            "description" : "A listing of ScheduleEvents which are managing this Progress. Empty or null if the Progress is not managed as part of a Schedule.",
            "items" : {
              "$ref" : "#/components/schemas/ScheduleEvent"
            }
          }
        }
      },
      "ProgressMissionInfo" : {
        "required" : [ "description", "displayName", "id", "name" ],
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "string",
            "description" : "The id of the mission"
          },
          "name" : {
            "type" : "string",
            "description" : "The name of the mission"
          },
          "displayName" : {
            "type" : "string",
            "description" : "The display name for the mission"
          },
          "description" : {
            "type" : "string",
            "description" : "The description of the mission"
          },
          "steps" : {
            "type" : "array",
            "description" : "The steps that constitute the mission (may be null if finalRepeatStep is specified)",
            "items" : {
              "$ref" : "#/components/schemas/Step"
            }
          },
          "finalRepeatStep" : {
            "$ref" : "#/components/schemas/Step"
          },
          "tags" : {
            "type" : "array",
            "description" : "The tags used to categorize this mission",
            "items" : {
              "type" : "string",
              "description" : "The tags used to categorize this mission"
            }
          },
          "metadata" : {
            "type" : "object",
            "additionalProperties" : {
              "type" : "object",
              "description" : "The metadata for this mission"
            },
            "description" : "The metadata for this mission"
          }
        },
        "description" : "The mission"
      },
      "Schedule" : {
        "required" : [ "description", "displayName", "name" ],
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "string",
            "description" : "The unique ID of the schedule."
          },
          "name" : {
            "pattern" : "[^_]\\w+",
            "type" : "string",
            "description" : "The unique name of the schedule."
          },
          "displayName" : {
            "type" : "string"
          },
          "description" : {
            "type" : "string",
            "description" : "The description for this schedule."
          }
        }
      },
      "ScheduleEvent" : {
        "required" : [ "missions", "schedule" ],
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "string"
          },
          "begin" : {
            "minimum" : 0,
            "type" : "integer",
            "format" : "int64"
          },
          "end" : {
            "minimum" : 0,
            "type" : "integer",
            "format" : "int64"
          },
          "schedule" : {
            "$ref" : "#/components/schemas/Schedule"
          },
          "missions" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/Mission"
            }
          }
        },
        "description" : "A listing of ScheduleEvents which are managing this Progress. Empty or null if the Progress is not managed as part of a Schedule."
      },
      "CreateProgressRequest" : {
        "type" : "object",
        "properties" : {
          "profile" : {
            "$ref" : "#/components/schemas/Profile"
          },
          "mission" : {
            "$ref" : "#/components/schemas/ProgressMissionInfo"
          }
        }
      },
      "PaginationProgress" : {
        "type" : "object",
        "properties" : {
          "offset" : {
            "type" : "integer",
            "format" : "int32"
          },
          "total" : {
            "type" : "integer",
            "format" : "int32"
          },
          "approximation" : {
            "type" : "boolean"
          },
          "objects" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/Progress"
            }
          }
        }
      },
      "ProgressRow" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "string"
          },
          "profileId" : {
            "type" : "string"
          },
          "profileImageUrl" : {
            "type" : "string"
          },
          "profileDisplayName" : {
            "type" : "string"
          },
          "stepDisplayName" : {
            "type" : "string"
          },
          "stepDescription" : {
            "type" : "string"
          },
          "remaining" : {
            "type" : "integer",
            "format" : "int32"
          },
          "stepCount" : {
            "type" : "integer",
            "format" : "int32"
          }
        }
      },
      "TabulationProgressRow" : {
        "required" : [ "rows" ],
        "type" : "object",
        "properties" : {
          "rows" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/ProgressRow"
            }
          }
        }
      },
      "UpdateProgressRequest" : {
        "type" : "object",
        "properties" : {
          "currentStep" : {
            "$ref" : "#/components/schemas/Step"
          },
          "remaining" : {
            "type" : "integer",
            "description" : "The remaining actions",
            "format" : "int32"
          }
        }
      },
      "PaginationRewardIssuance" : {
        "type" : "object",
        "properties" : {
          "offset" : {
            "type" : "integer",
            "format" : "int32"
          },
          "total" : {
            "type" : "integer",
            "format" : "int32"
          },
          "approximation" : {
            "type" : "boolean"
          },
          "objects" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/RewardIssuance"
            }
          }
        }
      },
      "RewardIssuanceRedemptionResult" : {
        "type" : "object",
        "properties" : {
          "rewardIssuanceId" : {
            "type" : "string",
            "description" : "The id as originally provided in the request."
          },
          "rewardIssuance" : {
            "$ref" : "#/components/schemas/RewardIssuance"
          },
          "inventoryItem" : {
            "$ref" : "#/components/schemas/InventoryItem"
          },
          "errorDetails" : {
            "type" : "string",
            "description" : "Should the redemption fail, the error details. Otherwise, null."
          }
        },
        "description" : "Represents the result of a reward issuance redemption, housing either the resultant RewardIssuance or the error details."
      },
      "CreateScheduleEventRequest" : {
        "required" : [ "missionNamesOrIds" ],
        "type" : "object",
        "properties" : {
          "begin" : {
            "minimum" : 0,
            "type" : "integer",
            "format" : "int64"
          },
          "end" : {
            "minimum" : 0,
            "type" : "integer",
            "format" : "int64"
          },
          "missionNamesOrIds" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          }
        }
      },
      "PaginationScheduleEvent" : {
        "type" : "object",
        "properties" : {
          "offset" : {
            "type" : "integer",
            "format" : "int32"
          },
          "total" : {
            "type" : "integer",
            "format" : "int32"
          },
          "approximation" : {
            "type" : "boolean"
          },
          "objects" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/ScheduleEvent"
            }
          }
        }
      },
      "UpdateScheduleEventRequest" : {
        "required" : [ "missionNamesOrIds" ],
        "type" : "object",
        "properties" : {
          "begin" : {
            "minimum" : 0,
            "type" : "integer",
            "format" : "int64"
          },
          "end" : {
            "minimum" : 0,
            "type" : "integer",
            "format" : "int64"
          },
          "missionNamesOrIds" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          }
        }
      },
      "CreateScheduleRequest" : {
        "required" : [ "description", "displayName", "name" ],
        "type" : "object",
        "properties" : {
          "name" : {
            "pattern" : "[^_]\\w+",
            "type" : "string"
          },
          "displayName" : {
            "type" : "string"
          },
          "description" : {
            "type" : "string"
          }
        }
      },
      "PaginationSchedule" : {
        "type" : "object",
        "properties" : {
          "offset" : {
            "type" : "integer",
            "format" : "int32"
          },
          "total" : {
            "type" : "integer",
            "format" : "int32"
          },
          "approximation" : {
            "type" : "boolean"
          },
          "objects" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/Schedule"
            }
          }
        }
      },
      "UpdateScheduleRequest" : {
        "required" : [ "description", "displayName", "name" ],
        "type" : "object",
        "properties" : {
          "name" : {
            "pattern" : "[^_]\\w+",
            "type" : "string"
          },
          "displayName" : {
            "type" : "string"
          },
          "description" : {
            "type" : "string"
          }
        }
      },
      "FCMRegistration" : {
        "required" : [ "registrationToken" ],
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "string",
            "description" : "The the unique id of the token stored in the database."
          },
          "registrationToken" : {
            "type" : "string",
            "description" : "The actual Firebase registration."
          },
          "profile" : {
            "$ref" : "#/components/schemas/Profile"
          }
        },
        "description" : "Represents a Firebase Cloud Messaging Registration Token"
      },
      "CreateProfileRequest" : {
        "required" : [ "applicationId", "userId" ],
        "type" : "object",
        "properties" : {
          "userId" : {
            "type" : "string",
            "description" : "The user id this profile belongs to."
          },
          "applicationId" : {
            "type" : "string",
            "description" : "The application id this profile belongs to."
          },
          "imageUrl" : {
            "type" : "string",
            "description" : "A URL to the image of the profile.  (ie the User's Avatar)."
          },
          "displayName" : {
            "type" : "string",
            "description" : "A non-unique display name for this profile."
          },
          "metadata" : {
            "type" : "object",
            "additionalProperties" : {
              "type" : "object",
              "description" : "A map of arbitrary metadata."
            },
            "description" : "A map of arbitrary metadata."
          }
        },
        "description" : "Represents a request to create a profile for a user."
      },
      "UpdateProfileRequest" : {
        "type" : "object",
        "properties" : {
          "imageUrl" : {
            "type" : "string",
            "description" : "A URL to the image of the profile.  (ie the User's Avatar)."
          },
          "displayName" : {
            "type" : "string",
            "description" : "A non-unique display name for this profile."
          },
          "metadata" : {
            "type" : "object",
            "additionalProperties" : {
              "type" : "object",
              "description" : "A map of arbitrary metadata."
            },
            "description" : "A map of arbitrary metadata."
          }
        },
        "description" : "Represents a request to update a profile."
      },
      "UpdateProfileImageRequest" : {
        "required" : [ "mimeType" ],
        "type" : "object",
        "properties" : {
          "mimeType" : {
            "type" : "string",
            "description" : "MimeType of image"
          }
        },
        "description" : "Represents a request to update an image profile."
      },
      "Receipt" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "string",
            "description" : "The db id of this receipt."
          },
          "originalTransactionId" : {
            "type" : "string",
            "description" : "The id of the original transaction as provided by the payment processor."
          },
          "schema" : {
            "type" : "string",
            "description" : "The id of the receipt provider in reverse-dns notation, e.g. com.company.platform"
          },
          "user" : {
            "$ref" : "#/components/schemas/User"
          },
          "purchaseTime" : {
            "type" : "integer",
            "description" : "The time that the purchase was made (ms since Unix epoch).",
            "format" : "int64"
          },
          "body" : {
            "type" : "string",
            "description" : "The string representation of the raw receipt data."
          }
        },
        "description" : "A generic receipt that stores user purchase information."
      },
      "CreateReceiptRequest" : {
        "type" : "object",
        "properties" : {
          "originalTransactionId" : {
            "type" : "string",
            "description" : "The id of the original transaction as provided by the payment processor."
          },
          "schema" : {
            "type" : "string",
            "description" : "The id of the receipt provider in reverse-dns notation, e.g. com.company.platform"
          },
          "userId" : {
            "type" : "string",
            "description" : "The database id, name, or email of the User associated with this receipt."
          },
          "purchaseTime" : {
            "type" : "integer",
            "description" : "The time that the purchase was made (ms since Unix epoch).",
            "format" : "int64"
          },
          "body" : {
            "type" : "string",
            "description" : "The string representation of the raw receipt data."
          }
        },
        "description" : "A request model to create a new receipt."
      },
      "PaginationReceipt" : {
        "type" : "object",
        "properties" : {
          "offset" : {
            "type" : "integer",
            "format" : "int32"
          },
          "total" : {
            "type" : "integer",
            "format" : "int32"
          },
          "approximation" : {
            "type" : "boolean"
          },
          "objects" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/Receipt"
            }
          }
        }
      },
      "SaveDataDocument" : {
        "required" : [ "contents" ],
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "string",
            "description" : "The database assigned unique ID of the document."
          },
          "slot" : {
            "maximum" : 2147483647,
            "minimum" : 0,
            "type" : "integer",
            "description" : "The slot of the property.",
            "format" : "int32"
          },
          "user" : {
            "$ref" : "#/components/schemas/User"
          },
          "profile" : {
            "$ref" : "#/components/schemas/Profile"
          },
          "timestamp" : {
            "maximum" : 9223372036854775807,
            "minimum" : 0,
            "type" : "integer",
            "description" : "The timestamp of the last write to this document.",
            "format" : "int64"
          },
          "version" : {
            "pattern" : "[0-9a-fA-F]*",
            "type" : "string",
            "description" : "The revision of the save data document."
          },
          "contents" : {
            "type" : "string",
            "description" : "The contents of the save data."
          }
        },
        "description" : "Represents an arbitrary save data document that persists on the server. The document saves with a version identifier such that clients may resolve conflicts between the local copy and the remote copy."
      },
      "CreateSaveDataDocumentRequest" : {
        "required" : [ "contents", "slot" ],
        "type" : "object",
        "properties" : {
          "slot" : {
            "type" : "integer",
            "description" : "The slot of the property. Must be unique for user or profile.",
            "format" : "int32"
          },
          "userId" : {
            "type" : "string",
            "description" : "The id of the user which owns the save data. If specified, the user will own this save data and the profileId must be null or be owned by the user specified."
          },
          "profileId" : {
            "type" : "string",
            "description" : "The id of the profile which owns the save data. If specified, the profile will own this save data and the userId must be null or be owned by the user specified."
          },
          "contents" : {
            "type" : "string",
            "description" : "The contents of the save data."
          }
        },
        "description" : "Used to create a save data document on the remote."
      },
      "PaginationSaveDataDocument" : {
        "type" : "object",
        "properties" : {
          "offset" : {
            "type" : "integer",
            "format" : "int32"
          },
          "total" : {
            "type" : "integer",
            "format" : "int32"
          },
          "approximation" : {
            "type" : "boolean"
          },
          "objects" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/SaveDataDocument"
            }
          }
        }
      },
      "UpdateSaveDataDocumentRequest" : {
        "required" : [ "contents" ],
        "type" : "object",
        "properties" : {
          "force" : {
            "type" : "boolean"
          },
          "version" : {
            "type" : "string"
          },
          "contents" : {
            "type" : "string"
          }
        },
        "description" : "Updates a save data document. This accepts the contents of the document as well as the versioning information required to take the update properly."
      },
      "CreateMetadataSpecRequest" : {
        "required" : [ "properties" ],
        "type" : "object",
        "properties" : {
          "name" : {
            "type" : "string",
            "description" : "The name of the metadata spec."
          },
          "type" : {
            "type" : "string",
            "description" : "The type of the metadata spec.",
            "enum" : [ "STRING", "NUMBER", "BOOLEAN", "ARRAY", "ENUM", "OBJECT", "TAGS" ]
          },
          "properties" : {
            "type" : "array",
            "description" : "The token template tabs to create.",
            "items" : {
              "$ref" : "#/components/schemas/MetadataSpecProperty"
            }
          }
        },
        "description" : "Represents a request to create a MetadataSpec definition."
      },
      "EditorLayout" : {
        "type" : "object",
        "properties" : {
          "key" : {
            "type" : "string"
          },
          "title" : {
            "type" : "string"
          },
          "placeholder" : {
            "type" : "string"
          }
        },
        "description" : "Defines an editor layout element."
      },
      "EditorSchema" : {
        "type" : "object",
        "properties" : {
          "data" : {
            "type" : "object",
            "description" : "The data itself."
          },
          "schema" : {
            "$ref" : "#/components/schemas/JsonSchema"
          },
          "layout" : {
            "type" : "array",
            "description" : "The editor layout.",
            "items" : {
              "$ref" : "#/components/schemas/EditorLayout"
            }
          }
        },
        "description" : "Defines an editor schema which contains a JSON Schema, layout, and initial data for the editor."
      },
      "JsonSchema" : {
        "type" : "object",
        "properties" : {
          "get$id" : {
            "type" : "string",
            "description" : "See - https://json-schema.org/draft/2020-12/json-schema-core"
          },
          "get$schema" : {
            "type" : "string",
            "description" : "See - https://json-schema.org/draft/2020-12/json-schema-core"
          },
          "title" : {
            "type" : "string",
            "description" : "See - https://json-schema.org/draft/2020-12/json-schema-core"
          },
          "description" : {
            "type" : "string",
            "description" : "See - https://json-schema.org/draft/2020-12/json-schema-core"
          },
          "type" : {
            "type" : "string",
            "description" : "See - https://json-schema.org/draft/2020-12/json-schema-core"
          },
          "properties" : {
            "type" : "object",
            "additionalProperties" : {
              "$ref" : "#/components/schemas/JsonSchemaProperty"
            },
            "description" : "See - https://json-schema.org/draft/2020-12/json-schema-core"
          },
          "required" : {
            "type" : "array",
            "description" : "See - https://json-schema.org/draft/2020-12/json-schema-core",
            "items" : {
              "type" : "string",
              "description" : "See - https://json-schema.org/draft/2020-12/json-schema-core"
            }
          }
        },
        "description" : "A Subset of the JSON-Schema - https://json-schema.org/draft/2020-12/json-schema-core"
      },
      "JsonSchemaProperty" : {
        "type" : "object",
        "properties" : {
          "type" : {
            "type" : "string",
            "description" : "See - https://json-schema.org/draft/2020-12/json-schema-core"
          },
          "title" : {
            "type" : "string",
            "description" : "See - https://json-schema.org/draft/2020-12/json-schema-core"
          },
          "description" : {
            "type" : "string",
            "description" : "See - https://json-schema.org/draft/2020-12/json-schema-core"
          },
          "required" : {
            "type" : "array",
            "description" : "See - https://json-schema.org/draft/2020-12/json-schema-core",
            "items" : {
              "type" : "string",
              "description" : "See - https://json-schema.org/draft/2020-12/json-schema-core"
            }
          }
        },
        "description" : "See - https://json-schema.org/draft/2020-12/json-schema-core"
      },
      "PaginationMetadataSpec" : {
        "type" : "object",
        "properties" : {
          "offset" : {
            "type" : "integer",
            "format" : "int32"
          },
          "total" : {
            "type" : "integer",
            "format" : "int32"
          },
          "approximation" : {
            "type" : "boolean"
          },
          "objects" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/MetadataSpec"
            }
          }
        }
      },
      "UpdateMetadataSpecRequest" : {
        "type" : "object",
        "properties" : {
          "name" : {
            "type" : "string",
            "description" : "The name of the metadata spec."
          },
          "type" : {
            "type" : "string",
            "description" : "The type of the metadata spec.",
            "enum" : [ "STRING", "NUMBER", "BOOLEAN", "ARRAY", "ENUM", "OBJECT", "TAGS" ]
          },
          "properties" : {
            "type" : "array",
            "description" : "The updated list of properties.",
            "items" : {
              "$ref" : "#/components/schemas/MetadataSpecProperty"
            }
          }
        },
        "description" : "Represents a request to update a MetadataSpec."
      },
      "MockSessionCreation" : {
        "type" : "object",
        "properties" : {
          "sessionSecret" : {
            "type" : "string",
            "description" : "The Session Secret to pass to subsequent requests through headers."
          },
          "session" : {
            "$ref" : "#/components/schemas/Session"
          },
          "userExpiresAt" : {
            "type" : "integer",
            "description" : "The assocaited mock user will automatically be deleted at supplied time.",
            "format" : "int64"
          },
          "password" : {
            "type" : "string",
            "description" : "The randomly-assigned password for the mock user."
          }
        },
        "description" : "The mock session creation."
      },
      "MockSessionRequest" : {
        "type" : "object",
        "properties" : {
          "lifetimeInSeconds" : {
            "minimum" : 60,
            "type" : "integer",
            "description" : "The lifetime of the user in seconds.  After this amount of time, ",
            "format" : "int32"
          },
          "application" : {
            "$ref" : "#/components/schemas/Application"
          }
        },
        "description" : "Used to create a mock session with the server.  This will create a temporary user as well which will exist for a short period of time"
      },
      "UsernamePasswordSessionRequest" : {
        "required" : [ "password", "userId" ],
        "type" : "object",
        "properties" : {
          "userId" : {
            "minLength" : 1,
            "type" : "string",
            "description" : "The user ID."
          },
          "password" : {
            "minLength" : 1,
            "type" : "string",
            "description" : "The password."
          },
          "profileId" : {
            "type" : "string",
            "description" : "The profile ID to assign to the session."
          },
          "profileSelector" : {
            "type" : "string",
            "description" : "A query string to select the profile to use."
          }
        }
      },
      "DatabaseHealthStatus" : {
        "type" : "object",
        "properties" : {
          "name" : {
            "type" : "string"
          },
          "metadata" : {
            "type" : "string"
          }
        }
      },
      "DiscoveryHealthStatus" : {
        "type" : "object",
        "properties" : {
          "records" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "knownHosts" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          }
        }
      },
      "HealthStatus" : {
        "type" : "object",
        "properties" : {
          "checksFailed" : {
            "type" : "integer",
            "format" : "int32"
          },
          "checksPerformed" : {
            "type" : "integer",
            "format" : "int32"
          },
          "overallHealth" : {
            "type" : "number",
            "format" : "double"
          },
          "problems" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "instanceStatus" : {
            "$ref" : "#/components/schemas/InstanceHealthStatus"
          },
          "databaseStatus" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/DatabaseHealthStatus"
            }
          },
          "discoveryHealthStatus" : {
            "$ref" : "#/components/schemas/DiscoveryHealthStatus"
          },
          "routingHealthStatus" : {
            "$ref" : "#/components/schemas/RoutingHealthStatus"
          },
          "invokerHealthStatus" : {
            "$ref" : "#/components/schemas/InvokerHealthStatus"
          }
        }
      },
      "InstanceHealthStatus" : {
        "type" : "object",
        "properties" : {
          "instanceId" : {
            "type" : "string"
          },
          "nodeIds" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          }
        }
      },
      "InvokerHealthStatus" : {
        "type" : "object",
        "properties" : {
          "priorities" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "connectedPeers" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          }
        }
      },
      "RoutingHealthStatus" : {
        "type" : "object",
        "properties" : {
          "instanceId" : {
            "type" : "string"
          },
          "routingTable" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "masterNodeRoutingTable" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "applicationNodeRoutingTable" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          }
        }
      },
      "Version" : {
        "type" : "object",
        "properties" : {
          "version" : {
            "type" : "string"
          },
          "revision" : {
            "type" : "string"
          },
          "timestamp" : {
            "type" : "string"
          }
        }
      },
      "CreateSteamIapReceipt" : {
        "required" : [ "orderId" ],
        "type" : "object",
        "properties" : {
          "orderId" : {
            "type" : "string",
            "description" : "The Steam order ID returned by the Steam client upon a successful purchase transaction. This is used to query and verify the transaction via the Steam ISteamMicroTxn API."
          }
        }
      },
      "CompletePasswordResetRequest" : {
        "required" : [ "password", "token" ],
        "type" : "object",
        "properties" : {
          "token" : {
            "minLength" : 1,
            "type" : "string",
            "description" : "The opaque reset token from the password reset email."
          },
          "password" : {
            "minLength" : 1,
            "type" : "string",
            "description" : "The new password."
          }
        },
        "description" : "Request to complete a password reset using the token from the reset email."
      },
      "PasswordResetRequest" : {
        "required" : [ "email" ],
        "type" : "object",
        "properties" : {
          "email" : {
            "type" : "string",
            "description" : "The email address associated with the account.",
            "format" : "email"
          }
        },
        "description" : "Request to initiate a password reset for an account."
      },
      "UserCreateResponse" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "string"
          },
          "name" : {
            "type" : "string"
          },
          "email" : {
            "type" : "string"
          },
          "firstName" : {
            "type" : "string"
          },
          "lastName" : {
            "type" : "string"
          },
          "level" : {
            "type" : "string",
            "enum" : [ "UNPRIVILEGED", "USER", "SUPERUSER" ]
          },
          "active" : {
            "type" : "boolean"
          },
          "facebookId" : {
            "type" : "string"
          },
          "firebaseId" : {
            "type" : "string"
          },
          "appleSignInId" : {
            "type" : "string"
          },
          "primaryPhoneNb" : {
            "type" : "string"
          },
          "profiles" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/Profile"
            }
          },
          "password" : {
            "type" : "string"
          },
          "linkedAccounts" : {
            "uniqueItems" : true,
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          }
        }
      },
      "CreateProfileSignupRequest" : {
        "required" : [ "applicationId" ],
        "type" : "object",
        "properties" : {
          "applicationId" : {
            "type" : "string",
            "description" : "The application id this profile belongs to."
          },
          "displayName" : {
            "type" : "string",
            "description" : "A non-unique display name for this profile. If left null, the server will assign."
          },
          "imageUrl" : {
            "type" : "string",
            "description" : "A URL to the image of the profile.  (ie the User's Avatar). If left null, the server will no assign any URL."
          }
        },
        "description" : "Used in conjunction with the user creation request to specify."
      },
      "UserCreateRequest" : {
        "type" : "object",
        "properties" : {
          "name" : {
            "pattern" : "^(?![0-9a-fA-F]{24}$)[^\\s\\p{Cc}\\p{Cf}]{1,50}$",
            "type" : "string"
          },
          "email" : {
            "pattern" : "^(.+)@(.+)$",
            "type" : "string"
          },
          "primaryPhoneNb" : {
            "pattern" : "([\\.\\+\\-\\s\\/()]*[0-9][\\.\\+\\-\\s\\/()]*){8,15}",
            "type" : "string"
          },
          "firstName" : {
            "pattern" : "^\\p{L}[\\p{L}\\p{M}\\p{N} '\\-.]{0,49}$",
            "type" : "string"
          },
          "lastName" : {
            "pattern" : "^\\p{L}[\\p{L}\\p{M}\\p{N} '\\-.]{0,49}$",
            "type" : "string"
          },
          "password" : {
            "pattern" : "^\\S+$",
            "type" : "string",
            "description" : "The user's plaintext password, only to be provided in POST/PUT requests in the User Resource REST API interface. In the future, a dedicated REST API model may be constructed instead of using a direct User model."
          },
          "level" : {
            "type" : "string",
            "description" : "The user's level to assign. Depending on the usage, the server may ignore this field and assign its own description.",
            "enum" : [ "UNPRIVILEGED", "USER", "SUPERUSER" ]
          },
          "profiles" : {
            "type" : "array",
            "description" : "A list of profiles to assign to this user during creation. The server will attempt to create a profile for each item in this list.",
            "items" : {
              "$ref" : "#/components/schemas/CreateProfileSignupRequest"
            }
          }
        }
      },
      "EmailVerificationRequest" : {
        "required" : [ "email" ],
        "type" : "object",
        "properties" : {
          "email" : {
            "type" : "string",
            "description" : "The email address to verify."
          }
        }
      },
      "LinkEmailPasswordRequest" : {
        "required" : [ "email", "password" ],
        "type" : "object",
        "properties" : {
          "email" : {
            "type" : "string"
          },
          "password" : {
            "type" : "string"
          }
        }
      },
      "LinkUsernamePasswordRequest" : {
        "required" : [ "password", "username" ],
        "type" : "object",
        "properties" : {
          "username" : {
            "type" : "string"
          },
          "password" : {
            "type" : "string"
          }
        }
      },
      "PaginationUser" : {
        "type" : "object",
        "properties" : {
          "offset" : {
            "type" : "integer",
            "format" : "int32"
          },
          "total" : {
            "type" : "integer",
            "format" : "int32"
          },
          "approximation" : {
            "type" : "boolean"
          },
          "objects" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/User"
            }
          }
        }
      },
      "UserUpdateRequest" : {
        "required" : [ "email", "level", "name" ],
        "type" : "object",
        "properties" : {
          "name" : {
            "pattern" : "^(?![0-9a-fA-F]{24}$)[^\\s\\p{Cc}\\p{Cf}]{1,50}$",
            "type" : "string"
          },
          "email" : {
            "pattern" : "^(.+)@(.+)$",
            "type" : "string"
          },
          "primaryPhoneNb" : {
            "pattern" : "([\\.\\+\\-\\s\\/()]*[0-9][\\.\\+\\-\\s\\/()]*){8,15}",
            "type" : "string"
          },
          "firstName" : {
            "pattern" : "^\\p{L}[\\p{L}\\p{M}\\p{N} '\\-.]{0,49}$",
            "type" : "string"
          },
          "lastName" : {
            "pattern" : "^\\p{L}[\\p{L}\\p{M}\\p{N} '\\-.]{0,49}$",
            "type" : "string"
          },
          "password" : {
            "pattern" : "^\\S+$",
            "type" : "string",
            "description" : "The user's plaintext password, only to be provided in POST/PUT requests in the User Resource REST API interface. In the future, a dedicated REST API model may be constructed instead of using a direct User model."
          },
          "level" : {
            "type" : "string",
            "enum" : [ "UNPRIVILEGED", "USER", "SUPERUSER" ]
          }
        }
      },
      "UserUpdatePasswordRequest" : {
        "required" : [ "newPassword", "oldPassword" ],
        "type" : "object",
        "properties" : {
          "oldPassword" : {
            "type" : "string",
            "description" : "The user's current password."
          },
          "newPassword" : {
            "type" : "string",
            "description" : "The user's updated password."
          },
          "profileId" : {
            "type" : "string",
            "description" : "The user's profile id to assign the new session. Leave blank for no profile id."
          }
        }
      }
    },
    "securitySchemes" : {
      "auth_bearer" : {
        "type" : "apiKey",
        "name" : "Authorization",
        "in" : "header"
      },
      "session_secret" : {
        "type" : "apiKey",
        "name" : "Elements-SessionSecret",
        "in" : "header"
      }
    }
  }
}