{
  "openapi": "3.0.1",
  "info": {
    "title": "User and Organization Management",
    "version": "9.1.20.0",
    "description": "Create and administer the user and organization address information.",
    "x-introduced": "9.1.0.0"
  },
  "servers": [
    {
      "url": "https://{hostname}:{port}/rest/admin/v2",
      "variables": {
        "port": {
          "default": "443",
          "enum": [
            "443",
            "8000"
          ]
        },
        "hostname": {
          "default": "localhost",
          "enum": [
            "localhost",
            "test.hcl.com"
          ]
        }
      }
    }
  ],
  "tags": [
    {
      "name": "Addresses",
      "description": "provides RESTful services to manage address information."
    },
    {
      "name": "Organizations",
      "description": "provides RESTful services to register an organization, to get or update organization information."
    },
    {
      "name": "Users",
      "description": "provides RESTful services to register a user, to get or update user information."
    }
  ],
  "paths": {
    "/organizations": {
      "post": {
        "tags": [
          "Organizations"
        ],
        "summary": "Create an organization.",
        "description": "Create an organization.",
        "operationId": "Organizations-createOrganization",
        "requestBody": {
          "description": "Request body.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Organization"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "The requested resource has been created.",
            "headers": {
              "Location": {
                "description": "Link to the newly created resource.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {},
            "links": {
              "GetOrganizationsById": {
                "operationRef": "#/paths/~1organizations~1{id}/get",
                "parameters": {
                  "id": "$response.header.Location"
                },
                "description": "The `id` value used in the request body can be used as the `id` parameter in `GET /organizations/{id}`.\n"
              },
              "UpdateOrganizationsById": {
                "operationRef": "#/paths/~1organizations~1{id}/patch",
                "parameters": {
                  "id": "$response.header.Location"
                },
                "description": "The `id` value used in the request body can be used as the `id` parameter in `PATCH /organizations/{id}`.\n"
              }
            }
          },
          "400": {
            "description": "Bad request. The request could not be understood by the server due to malformed syntax.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "401": {
            "description": "Not authenticated. The user session is not valid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "403": {
            "description": "The user is not authorized to perform the specified request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error. For details, see the server log files.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          }
        },
        "x-codegen-request-body-name": "body"
      }
    },
    "/organizations/{id}": {
      "get": {
        "tags": [
          "Organizations"
        ],
        "summary": "Get an organization by ID.",
        "description": "Get an organization by ID.",
        "operationId": "Organizations-findByOrganizationId",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique numeric ID for identifying the organization.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The requested completed successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Organization"
                }
              }
            }
          },
          "400": {
            "description": "Bad request. The request could not be understood by the server due to malformed syntax.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "401": {
            "description": "Not authenticated. The user session is not valid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "403": {
            "description": "The user is not authorized to perform the specified request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error. For details, see the server log files.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          }
        }
      },
      "patch": {
        "tags": [
          "Organizations"
        ],
        "summary": "Update an organization.",
        "description": "Update an organization.",
        "operationId": "Organizations-updateOrganization",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique numeric ID for identifying the organization.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Request body.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Organization"
              }
            }
          },
          "required": false
        },
        "responses": {
          "200": {
            "description": "The requested completed successfully.",
            "content": {}
          },
          "400": {
            "description": "Bad request. The request could not be understood by the server due to malformed syntax.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "401": {
            "description": "Not authenticated. The user session is not valid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "403": {
            "description": "The user is not authorized to perform the specified request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error. For details, see the server log files.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          }
        },
        "x-codegen-request-body-name": "body"
      }
    },
    "/organizations/{id}/lock": {
      "post": {
        "tags": [
          "Organizations"
        ],
        "summary": "Lock an organization.",
        "description": "Lock an organization. When locked the organization's status is -1.",
        "operationId": "Organization-lock",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique numeric ID for identifying the organization.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The requested completed successfully.",
            "content": {}
          },
          "400": {
            "description": "Bad request. The request could not be understood by the server due to malformed syntax.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "401": {
            "description": "Not authenticated. The user session is not valid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "403": {
            "description": "The user is not authorized to perform the specified request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error. For details, see the server log files.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          }
        }
      }
    },
    "/organizations/{id}/unlock": {
      "post": {
        "tags": [
          "Organizations"
        ],
        "summary": "Unlock an organization.",
        "description": "Unlock an organization. When unlocked the organization's status is 0.",
        "operationId": "Organization-unlock",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique numeric ID for identifying the organization.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The requested completed successfully.",
            "content": {}
          },
          "400": {
            "description": "Bad request. The request could not be understood by the server due to malformed syntax.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "401": {
            "description": "Not authenticated. The user session is not valid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "403": {
            "description": "The user is not authorized to perform the specified request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error. For details, see the server log files.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          }
        }
      }
    },
    "/organizations/manageable": {
      "get": {
        "tags": [
          "Organizations"
        ],
        "summary": "Get a collection of organizations the currently logged in administrator user can manage.",
        "description": "Get a collection of organizations the currently logged in administrator user can manage.",
        "operationId": "Organization-getManageableOrganizations",
        "parameters": [
          {
            "name": "offset",
            "in": "query",
            "description": "The position within the resulting dataset where the query begins returning item records. If the offset is \"5\", the records that returned begin with the sixth record that matches the query parameters. If the offset is \"0\", the records that are returned begin with the first record that matches the query parameters.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 0
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "The maximum number of records to return.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "organizationName",
            "in": "query",
            "description": "The organization name.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "parentOrganizationName",
            "in": "query",
            "description": "The parent organization name.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "taskName",
            "in": "query",
            "description": "Limits the results to organizations that match the specified task. The following values are accepted:\n * AssignRoleToUser - Returns organizations for which the current user is allowed to assign roles to other users.\n * CreateAccount - Returns organizations for which the current user is allowed to create accounts.\n * AssignBuyerToMarketplaceContract - Returns organizations for which the current user is allowed to assign to marketplace contracts as buyer organizations .\n * CreateRegisteredCustomer - Returns organizations for which the current user is allowed to create registered customers.\n * Manage - Returns organizations that the current user is allowed to manage. The organizations may be of type \"O\", \"OU\" or \"AD\".\n * ManageExcludingAD - Returns organizations that the current user is allowed to manage. The organiztaion may be of type \"O\" or \"OU\".\n * ManageO - Returns organizations of type \"O\" that the current user is allowed to manage.\n * ManageOU - Returns organizations of type \"OU\" that the current user is allowed to manage.\n",
            "schema": {
              "type": "string",
              "default": "Manage"
            }
          },
          {
            "name": "storeId",
            "in": "query",
            "description": "The unique numeric ID of the store for which the organizations are being managed. This parameter should be passed if the taskName is CreateAccount, AssignBuyerToMarketplaceContract or CreateRegisteredCustomer.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "description": "The comma-separated set of properties that control the order of the listed items. Properties can be prefixed by either (-) to sort in descending order, or (+) to sort in ascending order. By default, properties are sorted in ascending order. For example, sort=name,-id will order the items first based on the name value in ascending order, and then by their ID value in descending order.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "parentOrganizationId",
            "in": "query",
            "description": "Limits search results to only include organizations with a parent organization ID that matches the value of this parameter.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ancestorOrganizationId",
            "in": "query",
            "description": "Limits search results to only include organizations with an ancestor organization ID that matches the value of this parameter.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The request completed successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrganizationCollection"
                }
              }
            }
          },
          "400": {
            "description": "Bad request. Some of the inputs provided to the request are not valid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "401": {
            "description": "Not authenticated. The user session is not valid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "403": {
            "description": "The user is not authorized to perform the specified request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error. For details, see the server log files.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          }
        }
      }
    },
    "/organizations/{id}/site-attributes": {
      "get": {
        "tags": [
          "Organizations"
        ],
        "summary": "Get an organization's site-level, store-independent attributes.",
        "description": "Get an organization's site-level, store-independent attributes.",
        "operationId": "Organizations-findSiteAttributesByOrganizationId",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique numeric ID for identifying the organization.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "The position within the resulting dataset where the query begins returning item records. If the offset is \"5\", the records that returned begin with the sixth record that matches the query parameters. If the offset is \"0\", the records that are returned begin with the first record that matches the query parameters.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 0
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "The maximum number of records to return.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 100000
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The requested completed successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SiteMemberAttributeCollection"
                }
              }
            }
          },
          "400": {
            "description": "Bad request. The request could not be understood by the server due to malformed syntax.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "401": {
            "description": "Not authenticated. The user session is not valid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "403": {
            "description": "The user is not authorized to perform the specified request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error. For details, see the server log files.",
            "content": {}
          }
        }
      },
      "post": {
        "tags": [
          "Organizations"
        ],
        "summary": "Create an organization site-level attribute.",
        "description": "Create an organization site-level attribute.",
        "operationId": "Organizations-createOrganizationSiteAttribute",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique numeric ID for identifying the organization.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Request body.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SiteMemberAttribute"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "The requested resource has been created.",
            "headers": {
              "Location": {
                "description": "Link to the newly created resource.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {},
            "links": {
              "GetOrganizationSiteAttributesByOrananizationIdandAttributeName": {
                "operationRef": "#/paths/~1organizations~1{id}~1site-attributes~1{name}/get",
                "parameters": {
                  "id": "$request.path.id",
                  "name": "$request.path.name"
                },
                "description": "The `id` value used in the request body can be used as the `id` parameter in `GET /organizations/{id}/site-attributes/{name}`.\n"
              },
              "DeleteOrganizationSiteAttributesByOrananizationIdandAttributeName": {
                "operationRef": "#/paths/~1organizations~1{id}~1site-attributes~1{name}/delete",
                "parameters": {
                  "id": "$request.path.id",
                  "name": "$request.path.name"
                },
                "description": "The `id` value used in the request body can be used as the `id` parameter in `DELETE /organizations/{id}/site-attributes/{name}`.\n"
              },
              "UpdateOrganizationSiteAttributesByOrananizationIdandAttributeName": {
                "operationRef": "#/paths/~1organizations~1{id}~1site-attributes~1{name}/patch",
                "parameters": {
                  "id": "$request.path.id",
                  "name": "$request.path.name"
                },
                "description": "The `id` value used in the request body can be used as the `id` parameter in `PATCH /organizations/{id}/site-attributes/{name}`.\n"
              }
            }
          },
          "400": {
            "description": "Bad request. The request could not be understood by the server due to malformed syntax.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "401": {
            "description": "Not authenticated. The user session is not valid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "403": {
            "description": "The user is not authorized to perform the specified request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error. For details, see the server log files.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          }
        },
        "x-codegen-request-body-name": "body"
      }
    },
    "/organizations/{id}/site-attributes/{name}": {
      "get": {
        "tags": [
          "Organizations"
        ],
        "summary": "Get an organization's site-level, store-independent attribute by organization ID and attribute name.",
        "description": "Get an organization's site-level, store-independent attribute by organization ID and attribute name.",
        "operationId": "Organizations-findSiteAttributeByOrganizationId",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique numeric ID for identifying the organization.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "name",
            "in": "path",
            "description": "The name of the attribute to use as the search term.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The requested completed successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SiteMemberAttribute"
                }
              }
            }
          },
          "400": {
            "description": "Bad request. The request could not be understood by the server due to malformed syntax.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "401": {
            "description": "Not authenticated. The user session is not valid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "403": {
            "description": "The user is not authorized to perform the specified request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error. For details, see the server log files.",
            "content": {}
          }
        }
      },
      "delete": {
        "tags": [
          "Organizations"
        ],
        "summary": "Delete a site-level attribute of an organization.",
        "description": "Delete a site-level attribute of an organization.",
        "operationId": "Organizations-deleteOrganizationSiteAttribute",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique numeric ID for identifying the organization.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "name",
            "in": "path",
            "description": "The name of the attribute to be deleted.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "The requested resource has been deleted.",
            "content": {}
          },
          "400": {
            "description": "Bad request. The request could not be understood by the server due to malformed syntax.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "401": {
            "description": "Not authenticated. The user session is not valid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "403": {
            "description": "The user is not authorized to perform the specified request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error. For details, see the server log files.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          }
        }
      },
      "patch": {
        "tags": [
          "Organizations"
        ],
        "summary": "Update an organization's site-level attributes.",
        "description": "Update an organization's site-level attributes. Attribute values are merged at the attribute level, rather than at the attribute value level. For example, if an attribute has the following values '[a, b]', after performing an update using values '[c, d, e]', the attribute values would be '[c, d, e]'.",
        "operationId": "Organizations-updateOrganizationSiteAttribute",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique numeric ID for identifying the organization.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "name",
            "in": "path",
            "description": "The name of the attribute to be updated.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Request body.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SiteAttributesUpdateRequestBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "The requested completed successfully.",
            "content": {}
          },
          "400": {
            "description": "Bad request. The request could not be understood by the server due to malformed syntax.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "401": {
            "description": "Not authenticated. The user session is not valid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "403": {
            "description": "The user is not authorized to perform the specified request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error. For details, see the server log files.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          }
        },
        "x-codegen-request-body-name": "body"
      }
    },
    "/organizations/{id}/store-attributes": {
      "get": {
        "tags": [
          "Organizations"
        ],
        "summary": "Get an organization's store-specific attributes.",
        "description": "Get an organization's store-specific attributes.",
        "operationId": "Organizations-findStoreMemberAttributesByOrganizationId",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique numeric ID for identifying the organization.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "storeId",
            "in": "query",
            "description": "The unique numeric ID of the store where the attribute applies.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "The position within the resulting dataset where the query begins returning item records. If the offset is \"5\", the records that returned begin with the sixth record that matches the query parameters. If the offset is \"0\", the records that are returned begin with the first record that matches the query parameters.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 0
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "The maximum number of records to return.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 100000
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The requested completed successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StoreMemberAttributeCollection"
                }
              }
            }
          },
          "400": {
            "description": "Bad request. The request could not be understood by the server due to malformed syntax.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "401": {
            "description": "Not authenticated. The user session is not valid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "403": {
            "description": "The user is not authorized to perform the specified request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error. For details, see the server log files.",
            "content": {}
          }
        }
      },
      "post": {
        "tags": [
          "Organizations"
        ],
        "summary": "Create a store-specific organization attribute.",
        "description": "Create a store-specific organization attribute.",
        "operationId": "Organizations-createOrganizationStoreMemberAttribute",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique numeric ID for identifying the organization.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Request body.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StoreMemberAttribute"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "The requested resource has been created.",
            "headers": {
              "Location": {
                "description": "Link to the newly created resource.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {},
            "links": {
              "GetOrganizationStoreAttributesByStoreIdandName": {
                "operationRef": "#/paths/~1organizations~1{id}~1store-attributes~1storeId:{storeId},name:{name}/get",
                "parameters": {
                  "id": "$request.path.id",
                  "storeId": "$request.path.storeId",
                  "name": "$request.path.name"
                },
                "description": "The `id` ,`storeId`,`name` value used in the request body can be used as the `id` ,`storeId`,`name` parameter in `GET /organizations/{id}/store-attributes/storeId:{storeId},name:{name}`.\n"
              },
              "DeleteOrganizationStoreAttributesByStoreIdandName": {
                "operationRef": "#/paths/~1organizations~1{id}~1store-attributes~1storeId:{storeId},name:{name}/delete",
                "parameters": {
                  "id": "$request.path.id",
                  "storeId": "$request.path.storeId",
                  "name": "$request.path.name"
                },
                "description": "The `id` ,`storeId`,`name` value used in the request body can be used as the `id` ,`storeId`,`name` parameter in `DELETE /organizations/{id}/store-attributes/storeId:{storeId},name:{name}`.\n"
              },
              "UpdateOrganizationStoreAttributesByStoreIdandName": {
                "operationRef": "#/paths/~1organizations~1{id}~1store-attributes~1storeId:{storeId},name:{name}/patch",
                "parameters": {
                  "id": "$request.path.id",
                  "storeId": "$request.path.storeId",
                  "name": "$request.path.name"
                },
                "description": "The `id` ,`storeId`,`name` value used in the request body can be used as the `id` ,`storeId`,`name` parameter in `PATCH /organizations/{id}/store-attributes/storeId:{storeId},name:{name}`.\n"
              }
            }
          },
          "400": {
            "description": "Bad request. The request could not be understood by the server due to malformed syntax.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "401": {
            "description": "Not authenticated. The user session is not valid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "403": {
            "description": "The user is not authorized to perform the specified request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error. For details, see the server log files.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          }
        },
        "x-codegen-request-body-name": "body"
      }
    },
    "/organizations/{id}/store-attributes/storeId:{storeId},name:{name}": {
      "get": {
        "tags": [
          "Organizations"
        ],
        "summary": "Get an organization's store-specific attribute by organization ID, store ID and attribute name.",
        "description": "Get an organization's store-specific attribute by organization ID, store ID and attribute name.",
        "operationId": "Organizations-findStoreMemberAttributeByOrganizationId",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique numeric ID for identifying the organization.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "storeId",
            "in": "path",
            "description": "The unique numeric ID of the store where the attribute applies.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "name",
            "in": "path",
            "description": "The name of the attribute to use as the search term.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The requested completed successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StoreMemberAttribute"
                }
              }
            }
          },
          "400": {
            "description": "Bad request. The request could not be understood by the server due to malformed syntax.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "401": {
            "description": "Not authenticated. The user session is not valid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "403": {
            "description": "The user is not authorized to perform the specified request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error. For details, see the server log files.",
            "content": {}
          }
        }
      },
      "delete": {
        "tags": [
          "Organizations"
        ],
        "summary": "Delete a store-specific attribute of an organization.",
        "description": "Delete a store-specific attribute of an organization.",
        "operationId": "Organizations-deleteOrganizationStoreMemberAttribute",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique numeric ID for identifying the organization.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "storeId",
            "in": "path",
            "description": "The unique numeric ID of the store where the attribute applies.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "name",
            "in": "path",
            "description": "The name of the attribute to be deleted.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "The requested resource has been deleted.",
            "content": {}
          },
          "400": {
            "description": "Bad request. The request could not be understood by the server due to malformed syntax.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "401": {
            "description": "Not authenticated. The user session is not valid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "403": {
            "description": "The user is not authorized to perform the specified request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error. For details, see the server log files.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          }
        }
      },
      "patch": {
        "tags": [
          "Organizations"
        ],
        "summary": "Update an organization's store-specific attributes.",
        "description": "Update an organization's store-specific attributes. Attribute values are merged at the attribute level, rather than the attribute value level. For example, if an attribute has the following values '[a, b]', after performing an update using values '[c, d, e]', the attribute values would be '[c, d, e]'.",
        "operationId": "Organizations-updateOrganizationStoreMemberAttribute",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique numeric ID for identifying the organization.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "storeId",
            "in": "path",
            "description": "The unique numeric ID of the store where the attribute applies.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "name",
            "in": "path",
            "description": "The name of this attribute.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Request body.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StoreAttributesUpdateRequestBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "The requested completed successfully.",
            "content": {}
          },
          "400": {
            "description": "Bad request. The request could not be understood by the server due to malformed syntax.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "401": {
            "description": "Not authenticated. The user session is not valid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "403": {
            "description": "The user is not authorized to perform the specified request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error. For details, see the server log files.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          }
        },
        "x-codegen-request-body-name": "body"
      }
    },
    "/users/manageable": {
      "get": {
        "tags": [
          "Users"
        ],
        "summary": "Get a collection of users the currently logged in administrator user can manage.",
        "description": "Get a collection of users the currently logged in administrator user can manage.",
        "operationId": "Users-getManageableUsers",
        "parameters": [
          {
            "name": "offset",
            "in": "query",
            "description": "The position within the resulting dataset where the query begins returning item records. If the offset is \"5\", the records that returned begin with the sixth record that matches the query parameters. If the offset is \"0\", the records that are returned begin with the first record that matches the query parameters.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 0
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "The maximum number of records to return.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "lastName",
            "in": "query",
            "description": "Limits search results to only include users whose last name matches the value of this parameter.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "firstName",
            "in": "query",
            "description": "Limits search results to only include users whose first name matches the value of this parameter.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "logonId",
            "in": "query",
            "description": "Limits search results to only include users whose logon ID matches the value of this parameter.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "description": "The comma-separated set of properties that control the order of the listed items. Properties can be prefixed by either (-) to sort in descending order, or (+) to sort in ascending order. By default, properties are sorted in ascending order. For example, sort=name,-id will order the items first based on the name value in ascending order, and then by their ID value in descending order.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "searchString",
            "in": "query",
            "description": "Limits search results to only include users whose first name, last name or logon ID matches the value of this parameter.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "searchScope",
            "in": "query",
            "description": "Modifies the behaviour of searchString to limit the scope of the search. This is a comma separated list of field names. For example, 'logonId' will limit the scope of the search to only check the logonId field.",
            "x-introduced": "9.1.12.0",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "searchType",
            "in": "query",
            "description": "Modifies the behaviour of searchString to control how the search string will be used. The following values are accepted:\n * caseSensitiveStartsWith - Returns cases sensitive matches that start with the specified search string.\n * caseSensitiveContains - Returns case sensitive matches that contain the specified search string.\n * caseInsensitiveStartsWith - Returns case insensitive matches that start with the specified search string.\n * caseInsensitiveContains - Returns case insensitive matches that contain the specified search string.\n * caseSensitiveExactMatch - Returns case sensitive matches to the specified search string.\n * caseInsensitiveExactMatch - Returns case insensitive matches to the specified search string.\n",
            "x-introduced": "9.1.12.0",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "roleId",
            "in": "query",
            "description": "Limits search results to only include users whose role ID matches the value of this parameter.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "organizationRoleId",
            "in": "query",
            "description": "Limits search results to only include users whose role ID matches the value of this parameter. This role ID can be qualified by the organization specified by roleOrganizationId.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "roleOrganizationId",
            "in": "query",
            "description": "Qualifies organizationRoleId to limit search results to only include users who have a matching role ID in the organization that matches this parameter.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "parentOrganizationId",
            "in": "query",
            "description": "Limits search results to only include users whose parent organization ID matches the value of this parameter.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The request completed successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserCollection"
                }
              }
            }
          },
          "400": {
            "description": "Bad request. Some of the inputs provided to the request are not valid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "401": {
            "description": "Not authenticated. The user session is not valid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "403": {
            "description": "The user is not authorized to perform the specified request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error. For details, see the server log files.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          }
        }
      }
    },
    "/users/self": {
      "get": {
        "tags": [
          "Users"
        ],
        "summary": "Get the current user.",
        "description": "Get the current user.",
        "operationId": "Users-getCurrentUser",
        "responses": {
          "200": {
            "description": "The requested completed successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/User"
                }
              }
            }
          },
          "400": {
            "description": "Bad request. The request could not be understood by the server due to malformed syntax.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "401": {
            "description": "Not authenticated. The user session is not valid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "403": {
            "description": "The user is not authorized to perform the specified request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error. For details, see the server log files.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          }
        }
      }
    },
    "/users/{id}": {
      "get": {
        "tags": [
          "Users"
        ],
        "summary": "Get a user by ID.",
        "description": "Get a user by ID.",
        "operationId": "Users-findByUserId",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique numeric ID for identifying the user.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The requested completed successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/User"
                }
              }
            }
          },
          "400": {
            "description": "Bad request. The request could not be understood by the server due to malformed syntax.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "401": {
            "description": "Not authenticated. The user session is not valid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "403": {
            "description": "The user is not authorized to perform the specified request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error. For details, see the server log files.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          }
        }
      },
      "patch": {
        "tags": [
          "Users"
        ],
        "summary": "Update a user.",
        "description": "Update a user.",
        "operationId": "Users-updateUser",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique numeric ID for identifying the user.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Request body.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/User.request"
              }
            }
          },
          "required": false
        },
        "responses": {
          "200": {
            "description": "The requested completed successfully.",
            "content": {}
          },
          "400": {
            "description": "Bad request. The request could not be understood by the server due to malformed syntax.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "401": {
            "description": "Not authenticated. The user session is not valid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "403": {
            "description": "The user is not authorized to perform the specified request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error. For details, see the server log files.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          }
        },
        "x-codegen-request-body-name": "body"
      }
    },
    "/users/{id}/roles": {
      "get": {
        "tags": [
          "Users"
        ],
        "summary": "Get user roles by ID.",
        "description": "Get user roles by ID.",
        "operationId": "Users-getUserRoles",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique numeric ID for identifying the user.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The requested completed successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RoleCollection"
                }
              }
            }
          },
          "400": {
            "description": "Bad request. The request could not be understood by the server due to malformed syntax.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "401": {
            "description": "Not authenticated. The user session is not valid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "403": {
            "description": "The user is not authorized to perform the specified request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error. For details, see the server log files.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          }
        }
      }
    },
    "/users": {
      "post": {
        "tags": [
          "Users"
        ],
        "summary": "Create a user.",
        "description": "Create a user.",
        "operationId": "Users-createUser",
        "parameters": [
          {
            "name": "storeId",
            "in": "query",
            "description": "The unique numeric ID of the store used to create the user.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "description": "Request body.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/User.request"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "The requested resource has been created.",
            "headers": {
              "Location": {
                "description": "Link to the newly created resource.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {},
            "links": {
              "GetUserById": {
                "operationRef": "#/paths/~1users~1{id}/get",
                "parameters": {
                  "id": "$request.path.id"
                },
                "description": "The `id` value used in the request body can be used as the `id` parameter in `GET /users/{id}`.\n"
              },
              "UpdateUserById": {
                "operationRef": "#/paths/~1users~1{id}/patch",
                "parameters": {
                  "id": "$request.path.id"
                },
                "description": "The `id` value used in the request body can be used as the `id` parameter in `PATCH /users/{id}`.\n"
              }
            }
          },
          "400": {
            "description": "Bad request. The request could not be understood by the server due to malformed syntax.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "401": {
            "description": "Not authenticated. The user session is not valid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "403": {
            "description": "The user is not authorized to perform the specified request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error. For details, see the server log files.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          }
        },
        "x-codegen-request-body-name": "body"
      }
    },
    "/users/{id}/password-reset": {
      "post": {
        "tags": [
          "Users"
        ],
        "summary": "Reset a user's password.",
        "description": "Reset a user's password.",
        "operationId": "Users-resetUserPassword",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique numeric ID for identifying the user.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "storeId",
            "in": "query",
            "description": "The unique numeric ID of the store used to compose the password reset notification message.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The requested completed successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseMessage"
                }
              }
            }
          },
          "400": {
            "description": "Bad request. The request could not be understood by the server due to malformed syntax.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "401": {
            "description": "Not authenticated. The user session is not valid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "403": {
            "description": "The user is not authorized to perform the specified request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error. For details, see the server log files.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          }
        }
      }
    },
    "/users/{id}/site-attributes": {
      "get": {
        "tags": [
          "Users"
        ],
        "summary": "Get a user's site-level, store-independent attributes.",
        "description": "Get a user's site-level, store-independent attributes.",
        "operationId": "Users-findSiteAttributesByUserId",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique numeric ID for identifying the user.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "The position within the resulting dataset where the query begins returning item records. If the offset is \"5\", the records that returned begin with the sixth record that matches the query parameters. If the offset is \"0\", the records that are returned begin with the first record that matches the query parameters.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 0
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "The maximum number of records to return.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 100000
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The requested completed successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SiteMemberAttributeCollection"
                }
              }
            }
          },
          "400": {
            "description": "Bad request. The request could not be understood by the server due to malformed syntax.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "401": {
            "description": "Not authenticated. The user session is not valid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "403": {
            "description": "The user is not authorized to perform the specified request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error. For details, see the server log files.",
            "content": {}
          }
        }
      },
      "post": {
        "tags": [
          "Users"
        ],
        "summary": "Create a user site-level attribute.",
        "description": "Create a user site-level attribute.",
        "operationId": "Users-createUserSiteAttribute",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique numeric ID for identifying the user.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Request body.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SiteMemberAttribute"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "The requested resource has been created.",
            "headers": {
              "Location": {
                "description": "Link to the newly created resource.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {},
            "links": {
              "GetUserSiteAttributeByUserIdandAttributeName": {
                "operationRef": "#/paths/~1users~1{id}~1site-attributes~1{name}/get",
                "parameters": {
                  "id": "$request.path.id",
                  "name": "$request.path.name"
                },
                "description": "The `id`,`name` value used in the request body can be used as the `id`,`name` parameter in `GET /users/{id}/site-attributes/{name}`.\n"
              },
              "DeleteUserSiteAttributeByUserIdandAttributeName": {
                "operationRef": "#/paths/~1users~1{id}~1site-attributes~1{name}/delete",
                "parameters": {
                  "id": "$request.path.id",
                  "name": "$request.path.name"
                },
                "description": "The `id`,`name` value used in the request body can be used as the `id`,`name` parameter in `DELETE /users/{id}/site-attributes/{name}`.\n"
              },
              "UpdateUserSiteAttributeByUserIdandAttributeName": {
                "operationRef": "#/paths/~1users~1{id}~1site-attributes~1{name}/patch",
                "parameters": {
                  "id": "$request.path.id",
                  "name": "$request.path.name"
                },
                "description": "The `id`,`name` value used in the request body can be used as the `id`,`name` parameter in `PATCH /users/{id}/site-attributes/{name}`.\n"
              }
            }
          },
          "400": {
            "description": "Bad request. The request could not be understood by the server due to malformed syntax.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "401": {
            "description": "Not authenticated. The user session is not valid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "403": {
            "description": "The user is not authorized to perform the specified request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error. For details, see the server log files.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          }
        },
        "x-codegen-request-body-name": "body"
      }
    },
    "/users/{id}/site-attributes/{name}": {
      "get": {
        "tags": [
          "Users"
        ],
        "summary": "Get a user's site-level, store-independent attribute by user ID and attribute name.",
        "description": "Get a user's site-level, store-independent attribute by user ID and attribute name.",
        "operationId": "Users-findSiteAttributeByUserId",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique numeric ID for identifying the user.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "name",
            "in": "path",
            "description": "The name of the attribute to use as the search term.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The requested completed successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SiteMemberAttribute"
                }
              }
            }
          },
          "400": {
            "description": "Bad request. The request could not be understood by the server due to malformed syntax.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "401": {
            "description": "Not authenticated. The user session is not valid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "403": {
            "description": "The user is not authorized to perform the specified request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error. For details, see the server log files.",
            "content": {}
          }
        }
      },
      "delete": {
        "tags": [
          "Users"
        ],
        "summary": "Delete a site-level attribute of a user.",
        "description": "Delete a site-level attribute of a user.",
        "operationId": "Users-deleteUserSiteAttribute",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique numeric ID for identifying the user.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "name",
            "in": "path",
            "description": "The name of the attribute to be deleted.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "The position within the resulting dataset where the query begins returning item records. If the offset is \"5\", the records that returned begin with the sixth record that matches the query parameters. If the offset is \"0\", the records that are returned begin with the first record that matches the query parameters.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 0
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "The maximum number of records to return.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 100000
            }
          }
        ],
        "responses": {
          "204": {
            "description": "The requested resource has been deleted.",
            "content": {}
          },
          "400": {
            "description": "Bad request. The request could not be understood by the server due to malformed syntax.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "401": {
            "description": "Not authenticated. The user session is not valid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "403": {
            "description": "The user is not authorized to perform the specified request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error. For details, see the server log files.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          }
        }
      },
      "patch": {
        "tags": [
          "Users"
        ],
        "summary": "Update a user's site-level attributes.",
        "description": "Update a user's site-level attributes. Attribute values are merged at the attribute level, rather than the attribute value level. For example, if an attribute has the following values '[a, b]', after performing an update using values '[c, d, e]', the attribute values would be '[c, d, e]'.",
        "operationId": "Users-updateUserSiteAttribute",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique numeric ID for identifying the user.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "name",
            "in": "path",
            "description": "The name of the attribute to be updated.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Request body.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SiteAttributesUpdateRequestBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "The requested completed successfully.",
            "content": {}
          },
          "400": {
            "description": "Bad request. The request could not be understood by the server due to malformed syntax.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "401": {
            "description": "Not authenticated. The user session is not valid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "403": {
            "description": "The user is not authorized to perform the specified request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error. For details, see the server log files.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          }
        },
        "x-codegen-request-body-name": "body"
      }
    },
    "/users/{id}/store-attributes": {
      "get": {
        "tags": [
          "Users"
        ],
        "summary": "Get a user's store-specific attributes.",
        "description": "Get a user's store-specific attributes.",
        "operationId": "Users-findStoreMemberAttributesByUserId",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique numeric ID for identifying the user.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "storeId",
            "in": "query",
            "description": "The unique numeric ID of the store where the attribute applies.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "The position within the resulting dataset where the query begins returning item records. If the offset is \"5\", the records that returned begin with the sixth record that matches the query parameters. If the offset is \"0\", the records that are returned begin with the first record that matches the query parameters.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 0
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "The maximum number of records to return.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 100000
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The requested completed successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StoreMemberAttributeCollection"
                }
              }
            }
          },
          "400": {
            "description": "Bad request. The request could not be understood by the server due to malformed syntax.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "401": {
            "description": "Not authenticated. The user session is not valid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "403": {
            "description": "The user is not authorized to perform the specified request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error. For details, see the server log files.",
            "content": {}
          }
        }
      },
      "post": {
        "tags": [
          "Users"
        ],
        "summary": "Create a store-specific user attribute.",
        "description": "Create a store-specific user attribute.",
        "operationId": "Users-createUserStoreMemberAttribute",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique numeric ID for identifying the user.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Request body.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StoreMemberAttribute"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "The requested resource has been created.",
            "headers": {
              "Location": {
                "description": "Link to the newly created resource.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {},
            "links": {
              "GetUserStoreAttributesByStoreIdandName": {
                "operationRef": "#/paths/~1users~1{id}~1store-attributes~1storeId:{storeId},name:{name}/get",
                "parameters": {
                  "id": "$request.path.id",
                  "storeId": "$request.path.storeId",
                  "name": "$request.path.name"
                },
                "description": "The `id` ,`storeId`,`name` value used in the request body can be used as the `id` ,`storeId`,`name` parameter in `GET /users/{id}/store-attributes/storeId:{storeId},name:{name}`.\n"
              },
              "DeleteUserStoreAttributesByStoreIdandName": {
                "operationRef": "#/paths/~1users~1{id}~1store-attributes~1storeId:{storeId},name:{name}/delete",
                "parameters": {
                  "id": "$request.path.id",
                  "storeId": "$request.path.storeId",
                  "name": "$request.path.name"
                },
                "description": "The `id` ,`storeId`,`name` value used in the request body can be used as the `id` ,`storeId`,`name` parameter in `DELETE /users/{id}/store-attributes/storeId:{storeId},name:{name}`.\n"
              },
              "UpdateUserStoreAttributesByStoreIdandName": {
                "operationRef": "#/paths/~1users~1{id}~1store-attributes~1storeId:{storeId},name:{name}/patch",
                "parameters": {
                  "id": "$request.path.id",
                  "storeId": "$request.path.storeId",
                  "name": "$request.path.name"
                },
                "description": "The `id` ,`storeId`,`name` value used in the request body can be used as the `id` ,`storeId`,`name` parameter in `PATCH /users/{id}/store-attributes/storeId:{storeId},name:{name}`.\n"
              }
            }
          },
          "400": {
            "description": "Bad request. The request could not be understood by the server due to malformed syntax.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "401": {
            "description": "Not authenticated. The user session is not valid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "403": {
            "description": "The user is not authorized to perform the specified request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error. For details, see the server log files.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          }
        },
        "x-codegen-request-body-name": "body"
      }
    },
    "/users/logon": {
      "post": {
        "tags": [
          "Users"
        ],
        "summary": "Logon the current user using their user name and password.",
        "description": "Logon the current user using their user name and password.",
        "operationId": "Users-logon",
        "requestBody": {
          "description": "Request body.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/User.logon"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "The requested completed successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/User.logonResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad request. The request could not be understood by the server due to malformed syntax.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "401": {
            "description": "Not authenticated. The user session is not valid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error. For details, see the server log files.",
            "content": {}
          }
        }
      }
    },
    "/users/refresh-jwt": {
      "post": {
        "tags": [
          "Users"
        ],
        "summary": "Retrieve a fresh JSON web token for a logon session.",
        "description": "Retrieve a fresh JSON web token for a logon session.",
        "operationId": "Users-refreshJwt",
        "requestBody": {
          "description": "Request body.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/User.refreshJwt"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "The requested completed successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/User.refreshJwtResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad request. The request could not be understood by the server due to malformed syntax.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "401": {
            "description": "Not authenticated. The user session is not valid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error. For details, see the server log files.",
            "content": {}
          }
        }
      }
    },
    "/users/logoff": {
      "delete": {
        "tags": [
          "Users"
        ],
        "summary": "Logout the current user.",
        "description": "Logout the current user.",
        "operationId": "Users-logout",
        "responses": {
          "204": {
            "description": "User has been logged off.",
            "content": {}
          },
          "400": {
            "description": "Bad request. The request could not be understood by the server due to malformed syntax.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "401": {
            "description": "Not authenticated. The user session is not valid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error. For details, see the server log files.",
            "content": {}
          }
        }
      }
    },
    "/users/change-password": {
      "patch": {
        "tags": [
          "Users"
        ],
        "summary": "Allows users to change password.",
        "description": "Allows users to change password.",
        "operationId": "change-password",
        "requestBody": {
          "description": "Request body.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/User.change-password"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "Password has been updated successfully.",
            "content": {}
          },
          "400": {
            "description": "Bad request. The request could not be understood by the server due to malformed syntax.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "401": {
            "description": "Not authenticated. The user session is not valid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "403": {
            "description": "The user is not authorized to perform the specified request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error. For details, see the server log files.",
            "content": {}
          }
        }
      }
    },
    "/users/{id}/store-attributes/storeId:{storeId},name:{name}": {
      "get": {
        "tags": [
          "Users"
        ],
        "summary": "Get a user's store-specific attribute by user ID, store ID and attribute name.",
        "description": "Get a user's store-specific attribute by user ID, store ID and attribute name.",
        "operationId": "Users-findStoreMemberAttributeByUserId",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique numeric ID for identifying the user.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "storeId",
            "in": "path",
            "description": "The unique numeric ID of the store where the attribute applies.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "name",
            "in": "path",
            "description": "The name of the attribute to use as the search term.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The requested completed successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StoreMemberAttribute"
                }
              }
            }
          },
          "400": {
            "description": "Bad request. The request could not be understood by the server due to malformed syntax.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "401": {
            "description": "Not authenticated. The user session is not valid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "403": {
            "description": "The user is not authorized to perform the specified request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error. For details, see the server log files.",
            "content": {}
          }
        }
      },
      "delete": {
        "tags": [
          "Users"
        ],
        "summary": "Delete a store-specific attribute of a user.",
        "description": "Delete a store-specific attribute of a user.",
        "operationId": "Users-deleteUserStoreMemberAttribute",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique numeric ID for identifying the user.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "storeId",
            "in": "path",
            "description": "The unique numeric ID of the store where the attribute applies.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "name",
            "in": "path",
            "description": "The name of the attribute to be deleted.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "The requested resource has been deleted.",
            "content": {}
          },
          "400": {
            "description": "Bad request. The request could not be understood by the server due to malformed syntax.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "401": {
            "description": "Not authenticated. The user session is not valid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "403": {
            "description": "The user is not authorized to perform the specified request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error. For details, see the server log files.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          }
        }
      },
      "patch": {
        "tags": [
          "Users"
        ],
        "summary": "Update a user's store-specific attributes.",
        "description": "Update a user's store-specific attributes. Attribute values are merged at the attribute level, rather than the attribute value level. For example, if an attribute has the following values '[a, b]', after performing an update using values '[c, d, e]', the attribute values would be '[c, d, e]'.",
        "operationId": "Users-updateUserStoreMemberAttribute",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique numeric ID for identifying the user.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "storeId",
            "in": "path",
            "description": "The unique numeric ID of the store where the attribute applies.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "name",
            "in": "path",
            "description": "The name of this attribute.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Request body.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StoreAttributesUpdateRequestBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "The requested completed successfully.",
            "content": {}
          },
          "400": {
            "description": "Bad request. The request could not be understood by the server due to malformed syntax.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "401": {
            "description": "Not authenticated. The user session is not valid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "403": {
            "description": "The user is not authorized to perform the specified request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error. For details, see the server log files.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          }
        },
        "x-codegen-request-body-name": "body"
      }
    },
    "/addresses": {
      "get": {
        "tags": [
          "Addresses"
        ],
        "summary": "Get a collection of addresses.",
        "description": "Get a collection of addresses.",
        "operationId": "Addresses-getAddresses",
        "parameters": [
          {
            "name": "fields",
            "in": "query",
            "description": "The comma-separated set of properties to be returned. If no properties are specified, all properties are returned.",
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "The position within the resulting dataset where the query begins returning item records. If the offset is \"5\", the records that returned begin with the sixth record that matches the query parameters. If the offset is \"0\", the records that are returned begin with the first record that matches the query parameters.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 0
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "The maximum number of records to return.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "lastName",
            "in": "query",
            "description": "Limits search results to only include users whose last name matches the value of this parameter.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "firstName",
            "in": "query",
            "description": "Limits search results to only include users whose first name matches the value of this parameter.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "memberId",
            "in": "query",
            "description": "Limits search results to only include users whose member ID matches the value of this parameter.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "description": "The comma-separated set of properties that control the order of the listed items. Properties can be prefixed by either (-) to sort in descending order, or (+) to sort in ascending order. By default, properties are sorted in ascending order. For example, sort=name,-id will order the items first based on the name value in ascending order, and then by their ID value in descending order.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The request completed successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AddressCollection"
                }
              }
            }
          },
          "400": {
            "description": "Bad request. Some of the inputs provided to the request are not valid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "401": {
            "description": "Not authenticated. The user session is not valid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "403": {
            "description": "The user is not authorized to perform the specified request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error. For details, see the server log files.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Addresses"
        ],
        "summary": "Create an address.",
        "description": "Create an address.",
        "operationId": "Addresses-createAddress",
        "requestBody": {
          "description": "Request body. The \"id\" field will be generated and it should not be part of the request body. The \"selfAddress\" and \"status\" fields are managed and it cannot be specified.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Address.request"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "The requested resource has been created.",
            "headers": {
              "Location": {
                "description": "Link to the newly created resource.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {},
            "links": {
              "GetAddressesByAddressesId": {
                "operationRef": "#/paths/~1addresses~1{id}/get",
                "parameters": {
                  "id": "$request.path.id"
                },
                "description": "The `id` value used in the request body can be used as the `id` parameter in `GET /addresses/{id}`.\n"
              },
              "DeleteAddressesByAddressesId": {
                "operationRef": "#/paths/~1addresses~1{id}/delete",
                "parameters": {
                  "id": "$request.path.id"
                },
                "description": "The `id` value used in the request body can be used as the `id` parameter in `DELETE /addresses/{id}`.\n"
              },
              "UpdateAddressesByAddressesId": {
                "operationRef": "#/paths/~1addresses~1{id}/patch",
                "parameters": {
                  "id": "$request.path.id"
                },
                "description": "The `id` value used in the request body can be used as the `id` parameter in `PATCH /addresses/{id}`.\n"
              }
            }
          },
          "400": {
            "description": "Bad request. The request could not be understood by the server due to malformed syntax.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "401": {
            "description": "Not authenticated. The user session is not valid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "403": {
            "description": "The user is not authorized to perform the specified request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error. For details, see the server log files.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          }
        },
        "x-codegen-request-body-name": "body"
      }
    },
    "/addresses/{id}": {
      "get": {
        "tags": [
          "Addresses"
        ],
        "summary": "Get an address by ID.",
        "description": "Get an address by ID.",
        "operationId": "Addresses-findByAddressId",
        "parameters": [
          {
            "name": "fields",
            "in": "query",
            "description": "The comma-separated set of properties to be returned. If no properties are specified, all properties are returned.",
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "The unique numeric ID for identifying the address.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The requested completed successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Address"
                }
              }
            }
          },
          "400": {
            "description": "Bad request. The request could not be understood by the server due to malformed syntax.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "401": {
            "description": "Not authenticated. The user session is not valid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "403": {
            "description": "The user is not authorized to perform the specified request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error. For details, see the server log files.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Addresses"
        ],
        "summary": "Delete an address by ID.",
        "description": "Delete an address  by ID.",
        "operationId": "Addresses-deleteByAddressId",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique numeric ID for identifying the address.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "The requested resource has been deleted.",
            "content": {}
          },
          "400": {
            "description": "Bad request. The request could not be understood by the server due to malformed syntax.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "401": {
            "description": "Not authenticated. The user session is not valid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "403": {
            "description": "The user is not authorized to perform the specified request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error. For details, see the server log files.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          }
        }
      }
    },
    "/addresses/{id}/new-version": {
      "post": {
        "tags": [
          "Addresses"
        ],
        "summary": "Creates a new version of an address.",
        "description": "Updates an address by creating a new updated version. After the update, the new address will have status \"P\" (permanent) and the old address will have status \"T\" (historical).",
        "operationId": "Addresses-updateByAddressId",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique numeric ID for identifying the address.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Request body. The \"selfAddress\" and \"status\" fields are managed and it cannot be specified.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Address.newversion.request"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "The requested resource has been created.",
            "headers": {
              "Location": {
                "description": "Link to the newly created resource.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {},
            "links": {
              "GetAddressesByAddressesId": {
                "operationRef": "#/paths/~1addresses~1{id}/get",
                "parameters": {
                  "id": "$request.path.id"
                },
                "description": "The `id` value used in the request body can be used as the `id` parameter in `GET /addresses/{id}`.\n"
              },
              "DeleteAddressesByAddressesId": {
                "operationRef": "#/paths/~1addresses~1{id}/delete",
                "parameters": {
                  "id": "$request.path.id"
                },
                "description": "The `id` value used in the request body can be used as the `id` parameter in `DELETE /addresses/{id}`.\n"
              },
              "UpdateAddressesByAddressesId": {
                "operationRef": "#/paths/~1addresses~1{id}/patch",
                "parameters": {
                  "id": "$request.path.id"
                },
                "description": "The `id` value used in the request body can be used as the `id` parameter in `PATCH /addresses/{id}`.\n"
              }
            }
          },
          "400": {
            "description": "Bad request. The request could not be understood by the server due to malformed syntax.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "401": {
            "description": "Not authenticated. The user session is not valid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "403": {
            "description": "The user is not authorized to perform the specified request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error. For details, see the server log files.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          }
        },
        "x-codegen-request-body-name": "body"
      }
    }
  },
  "components": {
    "schemas": {
      "ErrorResponseContainer": {
        "type": "object",
        "properties": {
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Error"
            }
          },
          "requestId": {
            "type": "string",
            "description": "The request identifier."
          }
        },
        "description": "The error message model."
      },
      "Error": {
        "type": "object",
        "properties": {
          "errorCode": {
            "type": "string",
            "description": "The error message code."
          },
          "errorMessage": {
            "type": "string",
            "description": "The error message."
          },
          "errorKey": {
            "type": "string",
            "description": "The error message key."
          },
          "errorParameters": {
            "type": "array",
            "description": "The arguments used to construct the error message.",
            "items": {
              "type": "object",
              "properties": {}
            }
          },
          "errorLevel": {
            "type": "string",
            "description": "The error level."
          },
          "errorHref": {
            "type": "string",
            "description": "The error hypertext reference."
          }
        },
        "description": "The error message item model."
      },
      "ResponseMessage": {
        "type": "object",
        "properties": {
          "response": {
            "type": "object",
            "properties": {
              "redirecturl": {
                "type": "string"
              },
              "viewTaskName": {
                "type": "string"
              }
            },
            "required": [
              "redirecturl",
              "viewTaskName"
            ]
          }
        },
        "required": [
          "response"
        ]
      },
      "Address": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique numeric ID for identifying the address."
          },
          "address1": {
            "type": "string",
            "description": "The first address line of the street address."
          },
          "address2": {
            "type": "string",
            "description": "The second address line of the street address.",
            "nullable": true
          },
          "address3": {
            "type": "string",
            "description": "The third address line of the street address.",
            "nullable": true
          },
          "addressType": {
            "type": "string",
            "description": "The usage of the address. Available values:<br> * SB - The address is used both as a shipping and a billing address.<br> * S - The address is used as a shipping address.<br> * B - The address is used as a billing address.",
            "nullable": true
          },
          "bestCallingTime": {
            "type": "string",
            "description": "Indicates the preferred time of day when the user is to be contacted. Available values:<br> * D - Daytime.<br> * E - Evening.",
            "nullable": true
          },
          "billingCode": {
            "type": "string",
            "description": "A code to identify the shipping or billing information.",
            "nullable": true
          },
          "billingCodeType": {
            "type": "string",
            "description": "The code for identifying the system or method of code structure that is used for billing.",
            "nullable": true
          },
          "businessTitle": {
            "type": "string",
            "description": "The business title for the user, such as a Manager or Chief Executive Officer.",
            "nullable": true
          },
          "city": {
            "type": "string",
            "description": "The name of the city where the user or organization resides."
          },
          "country": {
            "type": "string",
            "description": "The name of the country or region where the user or organization resides."
          },
          "createdDateTime": {
            "type": "string",
            "description": "The date and time that the address was created.",
            "format": "date-time",
            "nullable": true
          },
          "email1": {
            "type": "string",
            "description": "The primary e-mail."
          },
          "email2": {
            "type": "string",
            "description": "The secondary e-mail.",
            "nullable": true
          },
          "fax1": {
            "type": "string",
            "description": "The primary facsimile number.",
            "nullable": true
          },
          "fax2": {
            "type": "string",
            "description": "The secondary facsimile number.",
            "nullable": true
          },
          "field1": {
            "type": "string",
            "description": "A customizable field.",
            "nullable": true
          },
          "field2": {
            "type": "string",
            "description": "A customizable field.",
            "nullable": true
          },
          "field3": {
            "type": "string",
            "description": "A customizable field.",
            "nullable": true
          },
          "firstName": {
            "type": "string",
            "description": "The first name of the user.",
            "nullable": true
          },
          "lastName": {
            "type": "string",
            "description": "The last name of the user."
          },
          "memberId": {
            "type": "string",
            "description": "The unique numeric ID for identifying the member that this address belongs to. A member can be an organization or a user. If memberId is not specified, then the default is the current user (the user who is logging on). The value cannot be set or updated by users or organizations REST APIs."
          },
          "middleName": {
            "type": "string",
            "description": "The middle name or initial of the user.",
            "nullable": true
          },
          "mobilePhone1": {
            "type": "string",
            "description": "The primary mobile device number of the user, used for text messaging. The number should be specified without the country code. The country code is specified as the mobilePhone1Country value.",
            "nullable": true
          },
          "mobilePhone1Country": {
            "type": "string",
            "description": "The country code of the mobile device phone number. This country is used for country code resolution when sending text messages. This data is required when the mobilePhone1 column is used.",
            "nullable": true
          },
          "nickName": {
            "type": "string",
            "description": "The unique name or identifier for the address. A nickname must be unique among the addresses for a specific user or organization. The nickname for a user's address must also be different than the logon ID for a user so that the address does not conflict with the user's self-address. The self-address is created when the account for the user is first created. Multiple users or organizations can each have an address with the same nickname. The value cannot be set or updated by users or organizations REST APIs."
          },
          "officeAddress": {
            "type": "string",
            "description": "The internal office address line, such as the internal designation for an employee's desk location.",
            "nullable": true
          },
          "organizationName": {
            "type": "string",
            "description": "The name of the organization to which the address information applies, if this is a business address.",
            "nullable": true
          },
          "organizationUnitName": {
            "type": "string",
            "description": "The name of the organizational unit to which the address information applies, if this is a business address.",
            "nullable": true
          },
          "packageSuppression": {
            "type": "integer",
            "description": "Specifies whether or not to include package inserts. Available values:<br> * 1 - Include.<br> * 0 - Do not include.",
            "nullable": true
          },
          "personTitle": {
            "type": "string",
            "description": "The personal title of the user that is associated with the address. For example, Dr., Rev., Mr. or Ms.",
            "nullable": true
          },
          "phone1": {
            "type": "string",
            "description": "The primary phone number.",
            "nullable": true
          },
          "phone1Type": {
            "type": "string",
            "description": "The type of phone that is used for the primary phone number. For example, TTY for hearing impaired, PCM for pulse-coded modulation, or CEL for mobile.",
            "nullable": true
          },
          "phone2": {
            "type": "string",
            "description": "The secondary phone number.",
            "nullable": true
          },
          "phone2Type": {
            "type": "string",
            "description": "The type of phone that is used for the secondary phone number. For example, TTY for hearing impaired, PCM for pulse-coded modulation, or CEL for mobile.",
            "nullable": true
          },
          "primary": {
            "type": "integer",
            "description": "Indicates that the address is the primary address for the user or organization when the user or organization has multiple addresses associated, such as when a user or organization has multiple shipping addresses. The value cannot be set or updated by users or organizations REST APIs. Available values:<br> * 1 - The address is the primary address.<br> * 0 - (Default value) The address is an alternate address."
          },
          "publishPhone1": {
            "type": "integer",
            "description": "Whether to list the primary phone number. Available values: <br> * 1 - Yes.<br> * 0 - No.",
            "nullable": true
          },
          "publishPhone2": {
            "type": "integer",
            "description": "Whether to list the secondary phone number. Available values: <br> * 1 - Yes.<br> * 0 - No.",
            "nullable": true
          },
          "selfAddress": {
            "type": "integer",
            "description": "Indicates whether the address is associated with the registration of the user or organization. This value cannot be edited after address creation. Available values: <br> * 1 - Yes.<br> * 0 - No.",
            "readOnly": true
          },
          "shippingGeoCode": {
            "type": "string",
            "description": "The geographical code that identifies a region for the shipping purposes.",
            "nullable": true
          },
          "state": {
            "type": "string",
            "description": "The name of the state, province, or equivalent where the user or organization resides."
          },
          "status": {
            "type": "string",
            "description": "Indicates the status of the address. When an address is created, its status is marked with a \"P\", meaning \"permanent\", and indicates that the address is the current address. When an address is updated, a new record of the address is created with the updates. The new record is marked with a \"P\" and the earlier record is marked with a \"T\", meaning \"temporary\", which indicates that the address is the historical address. This value cannot be edited.",
            "readOnly": true
          },
          "taxGeoCode": {
            "type": "string",
            "description": "The geographical tax code that identifies a region for the tax purposes.",
            "nullable": true
          },
          "zipCode": {
            "type": "string",
            "description": "The ZIP or postal code of the user's address."
          },
          "links": {
            "type": "object",
            "properties": {
              "self": {
                "type": "object",
                "properties": {
                  "href": {
                    "type": "string",
                    "description": "The URL of the link."
                  }
                },
                "description": "The self link."
              }
            },
            "description": "Links to related resources."
          }
        },
        "description": "The addresses of users and organizations. An address can be the a user's own address or alternative address that is used for billing or shipping purposes."
      },
      "Address.request": {
        "type": "object",
        "properties": {
          "address1": {
            "type": "string",
            "description": "The first address line of the street address."
          },
          "address2": {
            "type": "string",
            "description": "The second address line of the street address.",
            "nullable": true
          },
          "address3": {
            "type": "string",
            "description": "The third address line of the street address.",
            "nullable": true
          },
          "addressType": {
            "type": "string",
            "description": "The usage of the address. Available values:<br> * SB - The address is used both as a shipping and a billing address.<br> * S - The address is used as a shipping address.<br> * B - The address is used as a billing address."
          },
          "bestCallingTime": {
            "type": "string",
            "description": "Indicates the preferred time of day when the user is to be contacted. Available values:<br> * D - Daytime.<br> * E - Evening.",
            "nullable": true
          },
          "billingCode": {
            "type": "string",
            "description": "A code to identify the shipping or billing information."
          },
          "billingCodeType": {
            "type": "string",
            "description": "The code for identifying the system or method of code structure that is used for billing."
          },
          "businessTitle": {
            "type": "string",
            "description": "The business title for the user, such as a Manager or Chief Executive Officer.",
            "nullable": true
          },
          "city": {
            "type": "string",
            "description": "The name of the city where the user or organization resides."
          },
          "country": {
            "type": "string",
            "description": "The name of the country or region where the user or organization resides."
          },
          "createdDateTime": {
            "type": "string",
            "description": "The date and time that the address was created.",
            "format": "date-time",
            "nullable": true
          },
          "email1": {
            "type": "string",
            "description": "The primary e-mail."
          },
          "email2": {
            "type": "string",
            "description": "The secondary e-mail.",
            "nullable": true
          },
          "fax1": {
            "type": "string",
            "description": "The primary facsimile number.",
            "nullable": true
          },
          "fax2": {
            "type": "string",
            "description": "The secondary facsimile number.",
            "nullable": true
          },
          "field1": {
            "type": "string",
            "description": "A customizable field.",
            "nullable": true
          },
          "field2": {
            "type": "string",
            "description": "A customizable field.",
            "nullable": true
          },
          "field3": {
            "type": "string",
            "description": "A customizable field.",
            "nullable": true
          },
          "firstName": {
            "type": "string",
            "description": "The first name of the user.",
            "nullable": true
          },
          "lastName": {
            "type": "string",
            "description": "The last name of the user."
          },
          "memberId": {
            "type": "string",
            "description": "The unique numeric ID for identifying the member that this address belongs to. A member can be an organization or a user. If memberId is not specified, then the default is the current user (the user who is logging on). The value cannot be set or updated by users or organizations REST APIs."
          },
          "middleName": {
            "type": "string",
            "description": "The middle name or initial of the user.",
            "nullable": true
          },
          "mobilePhone1": {
            "type": "string",
            "description": "The primary mobile device number of the user, used for text messaging. The number should be specified without the country code. The country code is specified as the mobilePhone1Country value.",
            "nullable": true
          },
          "mobilePhone1Country": {
            "type": "string",
            "description": "The country code of the mobile device phone number. This country is used for country code resolution when sending text messages. This data is required when the mobilePhone1 column is used."
          },
          "nickName": {
            "type": "string",
            "description": "The unique name or identifier for the address. A nickname must be unique among the addresses for a specific user or organization. The nickname for a user's address must also be different than the logon ID for a user so that the address does not conflict with the user's self-address. The self-address is created when the account for the user is first created. Multiple users or organizations can each have an address with the same nickname. The value cannot be set or updated by users or organizations REST APIs.",
            "nullable": true
          },
          "officeAddress": {
            "type": "string",
            "description": "The internal office address line, such as the internal designation for an employee's desk location.",
            "nullable": true
          },
          "organizationName": {
            "type": "string",
            "description": "The name of the organization to which the address information applies, if this is a business address.",
            "nullable": true
          },
          "organizationUnitName": {
            "type": "string",
            "description": "The name of the organizational unit to which the address information applies, if this is a business address.",
            "nullable": true
          },
          "packageSuppression": {
            "type": "integer",
            "description": "Specifies whether or not to include package inserts. Available values:<br> * 1 - Include.<br> * 0 - Do not include.",
            "nullable": true
          },
          "personTitle": {
            "type": "string",
            "description": "The personal title of the user that is associated with the address. For example, Dr., Rev., Mr. or Ms.",
            "nullable": true
          },
          "phone1": {
            "type": "string",
            "description": "The primary phone number.",
            "nullable": true
          },
          "phone1Type": {
            "type": "string",
            "description": "The type of phone that is used for the primary phone number. For example, TTY for hearing impaired, PCM for pulse-coded modulation, or CEL for mobile."
          },
          "phone2": {
            "type": "string",
            "description": "The secondary phone number.",
            "nullable": true
          },
          "phone2Type": {
            "type": "string",
            "description": "The type of phone that is used for the secondary phone number. For example, TTY for hearing impaired, PCM for pulse-coded modulation, or CEL for mobile.",
            "nullable": true
          },
          "primary": {
            "type": "integer",
            "description": "Indicates that the address is the primary address for the user or organization when the user or organization has multiple addresses associated, such as when a user or organization has multiple shipping addresses. The value cannot be set or updated by users or organizations REST APIs. Available values:<br> * 1 - The address is the primary address.<br> * 0 - (Default value) The address is an alternate address."
          },
          "publishPhone1": {
            "type": "integer",
            "description": "Whether to list the primary phone number. Available values: <br> * 1 - Yes.<br> * 0 - No.",
            "nullable": true
          },
          "publishPhone2": {
            "type": "integer",
            "description": "Whether to list the secondary phone number. Available values: <br> * 1 - Yes.<br> * 0 - No.",
            "nullable": true
          },
          "shippingGeoCode": {
            "type": "string",
            "description": "The geographical code that identifies a region for the shipping purposes."
          },
          "state": {
            "type": "string",
            "description": "The name of the state, province, or equivalent where the user or organization resides."
          },
          "taxGeoCode": {
            "type": "string",
            "description": "The geographical tax code that identifies a region for the tax purposes.",
            "nullable": true
          },
          "zipCode": {
            "type": "string",
            "description": "The ZIP or postal code of the user's address."
          }
        },
        "description": "The addresses of users and organizations. An address can be the a user's own address or alternative address that is used for billing or shipping purposes."
      },
      "User.logon": {
        "type": "object",
        "properties": {
          "logonId": {
            "type": "string",
            "description": "The registered user id for login."
          },
          "password": {
            "type": "string",
            "description": "The registered password for login."
          },
          "newPassword": {
            "type": "string",
            "description": "The registered new password for login."
          }
        }
      },
      "User.logonResponse": {
        "type": "object",
        "properties": {
          "logonId": {
            "type": "string",
            "description": "The logged on user's logon ID."
          },
          "userId": {
            "type": "string",
            "description": "The logged on user's user ID."
          },
          "firstName": {
            "type": "string",
            "description": "The logged on user's first name."
          },
          "lastName": {
            "type": "string",
            "description": "The logged on user's last name."
          },
          "wcToken": {
            "type": "string",
            "description": "The WC token for this logon session."
          },
          "wcTrustedToken": {
            "type": "string",
            "description": "The WC trusted token for this logon session."
          },
          "identityId": {
            "type": "string",
            "description": "The identity ID for this logon session."
          },
          "identitySignature": {
            "type": "string",
            "description": "The identity signature for this logon session."
          },
          "unencryptedIdentityId": {
            "type": "string",
            "description": "The unencrypted identity ID for this logon session."
          },
          "jwt": {
            "type": "string",
            "description": "A JSON web token for this logon session."
          }
        }
      },
      "User.refreshJwt": {
        "type": "object",
        "properties": {
          "identityId": {
            "type": "string",
            "description": "The identity ID for the session."
          },
          "identitySignature": {
            "type": "string",
            "description": "The identity signature for the session."
          }
        }
      },
      "User.refreshJwtResponse": {
        "type": "object",
        "properties": {
          "jwt": {
            "type": "string",
            "description": "A JSON web token for the logon session."
          }
        }
      },
      "User.change-password": {
        "type": "object",
        "properties": {
          "logonId": {
            "type": "string",
            "description": "The current user's logon id."
          },
          "logonPasswordOld": {
            "type": "string",
            "description": "The current user's password."
          },
          "logonPasswordNew": {
            "type": "string",
            "description": "The current user's new password."
          }
        }
      },
      "User.request": {
        "type": "object",
        "properties": {
          "address": {
            "$ref": "#/components/schemas/User.Address.request"
          },
          "age": {
            "type": "integer",
            "format": "int32",
            "description": "The registrant's age."
          },
          "dateOfBirth": {
            "type": "string",
            "format": "date",
            "description": "The registrant's date of birth."
          },
          "departmentNumber": {
            "type": "string",
            "description": "The department identifier for the registrant."
          },
          "description": {
            "type": "string",
            "description": "A description of the registrant."
          },
          "displayName": {
            "type": "string",
            "description": "Name that is used when the name of the registrant displays in a summary list."
          },
          "employeeType": {
            "type": "string",
            "description": "The registrant's status as an employee (for example, regular, permanent, contractor, or part time)."
          },
          "gender": {
            "type": "string",
            "description": "The registrant's gender."
          },
          "logonId": {
            "type": "string",
            "description": "The registrant's logon ID. Leading and trailing spaces are trimmed. When the system is configured with LDAP, the following restrictions apply, since the logonId is part of the distinguished name: <br>* Must not begin with a '#'.<br>* Must not contain equals sign, comma, plus sign, quotation mark, backslash, angle brackets or semicolon."
          },
          "manager": {
            "type": "string",
            "description": "The name of the registrant's manager."
          },
          "parentOrganizationId": {
            "type": "string",
            "description": "The identifier of the registrant's company. Can be set when the user is created, but is otherwise read-only."
          },
          "password": {
            "type": "string",
            "description": "The registrant's password. In database mode, the password is encrypted before it is saved in the database. In LDAP mode, the password is only stored on the LDAP server. This parameter is only specified during user creation/update and will never be returned in the response."
          },
          "passwordVerify": {
            "type": "string",
            "description": "The registrant's password, entered a second time. This parameter is only specified during user creation/update and will never be returned in the response."
          },
          "isPasswordEncrypted": {
            "type": "boolean",
            "description": "The flag indicating whether password and passwordVerify values are encrypted. This parameter is only specified during user creation."
          },
          "personTitle": {
            "type": "string",
            "description": "The title of the user whose address is being entered (for example, Dr., Rev., Mr., or Ms.)."
          },
          "preferredCurrency": {
            "type": "string",
            "description": "The registrant's preferred currency for transactions."
          },
          "preferredLanguageId": {
            "type": "integer",
            "format": "int32",
            "description": "The unique numeric ID for identifying registrant's preferred language."
          },
          "preferredCommunication": {
            "type": "string",
            "description": "The registrant's preferred method of communication."
          },
          "challengeQuestion": {
            "type": "string",
            "description": "The registrant's challenge question."
          },
          "challengeAnswer": {
            "type": "string",
            "description": "The registrant's challenge answer."
          },
          "profileType": {
            "default": "B",
            "description": "The registrant's user profile type. This parameter can only be set during user registration. Available values: <br> * B - A business user profile.<br> * C - A customer user profile.",
            "enum": [
              "B",
              "C"
            ],
            "type": "string"
          },
          "receiveSmsNotification": {
            "type": "boolean",
            "description": "Indicates whether the user wants to receive order notification SMS text messages."
          },
          "registrationType": {
            "type": "string",
            "description": "The registrant's registration type. Available values: <br>* A - Sell-side Administrator.<br> * G - Guest Customer.<br> * R - Registered Customer.<br> * S - Site Administrator.<br>",
            "readOnly": true
          },
          "secretary": {
            "type": "string",
            "description": "The name of the registrant's secretary."
          },
          "status": {
            "type": "integer",
            "format": "int32",
            "description": "Whether or not the user's account is enabled. Available values: <br> * 0 - Disabled.<br> * 1 - Enabled."
          },
          "userAccountPolicyId": {
            "type": "integer",
            "format": "int32",
            "description": "The unique numeric ID for identifying a user account policy."
          }
        }
      },
      "User.Address.request": {
        "type": "object",
        "properties": {
          "address1": {
            "type": "string"
          },
          "address2": {
            "type": "string"
          },
          "city": {
            "type": "string"
          },
          "country": {
            "type": "string"
          },
          "email1": {
            "type": "string"
          },
          "firstName": {
            "type": "string"
          },
          "lastName": {
            "type": "string"
          },
          "personTitle": {
            "type": "string",
            "nullable": true
          },
          "phone1": {
            "type": "string"
          },
          "state": {
            "type": "string"
          },
          "zipCode": {
            "type": "string"
          },
          "challengeAnswer": {
            "type": "string"
          },
          "challengeQuestion": {
            "type": "string"
          },
          "logonId": {
            "type": "string"
          },
          "parentOrganizationId": {
            "type": "string"
          },
          "password": {
            "type": "string"
          },
          "passwordVerify": {
            "type": "string"
          },
          "preferredCommunication": {
            "type": "string"
          },
          "preferredCurrency": {
            "type": "string"
          },
          "preferredLanguageId": {
            "type": "integer",
            "nullable": true
          },
          "userAccountPolicyId": {
            "type": "integer"
          }
        }
      },
      "Address.newversion.request": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "address1": {
            "type": "string",
            "description": "The first address line of the street address."
          },
          "address2": {
            "type": "string",
            "description": "The second address line of the street address."
          },
          "address3": {
            "type": "string",
            "description": "The third address line of the street address."
          },
          "addressType": {
            "type": "string",
            "description": "The usage of the address. Available values:<br> * SB - The address is used both as a shipping and a billing address.<br> * S - The address is used as a shipping address.<br> * B - The address is used as a billing address."
          },
          "bestCallingTime": {
            "type": "string",
            "description": "Indicates the preferred time of day when the user is to be contacted. Available values:<br> * D - Daytime.<br> * E - Evening."
          },
          "billingCode": {
            "type": "string",
            "description": "A code to identify the shipping or billing information."
          },
          "billingCodeType": {
            "type": "string",
            "description": "The code for identifying the system or method of code structure that is used for billing."
          },
          "businessTitle": {
            "type": "string",
            "description": "The business title for the user, such as a Manager or Chief Executive Officer."
          },
          "city": {
            "type": "string",
            "description": "The name of the city where the user or organization resides."
          },
          "country": {
            "type": "string",
            "description": "The name of the country or region where the user or organization resides."
          },
          "createdDateTime": {
            "type": "string",
            "description": "The date and time that the address was created.",
            "format": "date-time"
          },
          "email1": {
            "type": "string",
            "description": "The primary e-mail."
          },
          "email2": {
            "type": "string",
            "description": "The secondary e-mail."
          },
          "fax1": {
            "type": "string",
            "description": "The primary facsimile number."
          },
          "fax2": {
            "type": "string",
            "description": "The secondary facsimile number."
          },
          "field1": {
            "type": "string",
            "description": "A customizable field."
          },
          "field2": {
            "type": "string",
            "description": "A customizable field."
          },
          "field3": {
            "type": "string",
            "description": "A customizable field."
          },
          "firstName": {
            "type": "string",
            "description": "The first name of the user."
          },
          "lastName": {
            "type": "string",
            "description": "The last name of the user."
          },
          "memberId": {
            "type": "string",
            "description": "The unique numeric ID for identifying the member that this address belongs to. A member can be an organization or a user. If memberId is not specified, then the default is the current user (the user who is logging on). The value cannot be set or updated by users or organizations REST APIs."
          },
          "middleName": {
            "type": "string",
            "description": "The middle name or initial of the user."
          },
          "mobilePhone1": {
            "type": "string",
            "description": "The primary mobile device number of the user, used for text messaging. The number should be specified without the country code. The country code is specified as the mobilePhone1Country value."
          },
          "mobilePhone1Country": {
            "type": "string",
            "description": "The country code of the mobile device phone number. This country is used for country code resolution when sending text messages. This data is required when the mobilePhone1 column is used."
          },
          "nickName": {
            "type": "string",
            "description": "The unique name or identifier for the address. A nickname must be unique among the addresses for a specific user or organization. The nickname for a user's address must also be different than the logon ID for a user so that the address does not conflict with the user's self-address. The self-address is created when the account for the user is first created. Multiple users or organizations can each have an address with the same nickname. The value cannot be set or updated by users or organizations REST APIs."
          },
          "officeAddress": {
            "type": "string",
            "description": "The internal office address line, such as the internal designation for an employee's desk location."
          },
          "organizationName": {
            "type": "string",
            "description": "The name of the organization to which the address information applies, if this is a business address."
          },
          "organizationUnitName": {
            "type": "string",
            "description": "The name of the organizational unit to which the address information applies, if this is a business address."
          },
          "packageSuppression": {
            "type": "integer",
            "description": "Specifies whether or not to include package inserts. Available values:<br> * 1 - Include.<br> * 0 - Do not include."
          },
          "personTitle": {
            "type": "string",
            "description": "The personal title of the user that is associated with the address. For example, Dr., Rev., Mr. or Ms."
          },
          "phone1": {
            "type": "string",
            "description": "The primary phone number."
          },
          "phone1Type": {
            "type": "string",
            "description": "The type of phone that is used for the primary phone number. For example, TTY for hearing impaired, PCM for pulse-coded modulation, or CEL for mobile."
          },
          "phone2": {
            "type": "string",
            "description": "The secondary phone number."
          },
          "phone2Type": {
            "type": "string",
            "description": "The type of phone that is used for the secondary phone number. For example, TTY for hearing impaired, PCM for pulse-coded modulation, or CEL for mobile."
          },
          "primary": {
            "type": "integer",
            "description": "Indicates that the address is the primary address for the user or organization when the user or organization has multiple addresses associated, such as when a user or organization has multiple shipping addresses. The value cannot be set or updated by users or organizations REST APIs. Available values:<br> * 1 - The address is the primary address.<br> * 0 - (Default value) The address is an alternate address."
          },
          "publishPhone1": {
            "type": "integer",
            "description": "Whether to list the primary phone number. Available values: <br> * 1 - Yes.<br> * 0 - No."
          },
          "publishPhone2": {
            "type": "integer",
            "description": "Whether to list the secondary phone number. Available values: <br> * 1 - Yes.<br> * 0 - No."
          },
          "shippingGeoCode": {
            "type": "string",
            "description": "The geographical code that identifies a region for the shipping purposes."
          },
          "state": {
            "type": "string",
            "description": "The name of the state, province, or equivalent where the user or organization resides."
          },
          "taxGeoCode": {
            "type": "string",
            "description": "The geographical tax code that identifies a region for the tax purposes."
          },
          "zipCode": {
            "type": "string",
            "description": "The ZIP or postal code of the user's address."
          }
        },
        "description": "The addresses of users and organizations. An address can be the a user's own address or alternative address that is used for billing or shipping purposes."
      },
      "AddressCollection": {
        "type": "object",
        "properties": {
          "href": {
            "minimum": 0,
            "type": "string"
          },
          "count": {
            "minimum": 0,
            "type": "integer",
            "description": "The total number of item records that match the query parameters.",
            "format": "int64"
          },
          "items": {
            "type": "array",
            "description": "The items.",
            "items": {
              "$ref": "#/components/schemas/Address"
            }
          }
        },
        "description": "The model for list of addresses."
      },
      "OrganizationCollection": {
        "type": "object",
        "properties": {
          "count": {
            "minimum": 0,
            "type": "integer",
            "description": "The total number of item records that match the query parameters.",
            "format": "int64"
          },
          "items": {
            "type": "array",
            "description": "The items.",
            "items": {
              "$ref": "#/components/schemas/Organization"
            }
          },
          "limit": {
            "maximum": 500,
            "type": "integer",
            "description": "The maximum number of records to return.",
            "format": "int32"
          },
          "offset": {
            "minimum": 0,
            "type": "integer",
            "description": "The position within the resulting dataset where the query begins returning item records. If the offset is \"5\", the records that returned begin with the sixth record that matches the query parameters. If the offset is \"0\", the records that are returned begin with the first record that matches the query parameters.",
            "format": "int32"
          }
        },
        "description": "The model for list of organizations."
      },
      "Organization": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique numeric ID for identifying the organization.",
            "readOnly": true
          },
          "address": {
            "$ref": "#/components/schemas/Address.request"
          },
          "administratorFirstName": {
            "type": "string",
            "description": "The first name of the administrator.",
            "nullable": true
          },
          "administratorLastName": {
            "type": "string",
            "description": "The last name of the administrator.",
            "nullable": true
          },
          "administratorMiddleName": {
            "type": "string",
            "description": "The middle name of the administrator.",
            "nullable": true
          },
          "approvalState": {
            "type": "integer",
            "description": "The organizational entity's approval status. Available values: <br>* 0 - pending approval.<br>* 1 - approved.<br>* 2 - rejected.<br>* null - approval not applicable, so considered approved.",
            "format": "int32",
            "readOnly": true
          },
          "businessCategory": {
            "type": "string",
            "description": "Describes the kind of business performed by an organization or organizational unit.",
            "nullable": true
          },
          "description": {
            "type": "string",
            "description": "A description of the registrant.",
            "nullable": true
          },
          "distinguishedName": {
            "type": "string",
            "description": "Distinguished Name (DN) of the organization or organizational unit, for LDAP use.",
            "readOnly": true
          },
          "isBusinessEntity": {
            "type": "boolean",
            "description": "Whether this organization is a business entity, that is, an organization that can have business accounts. If the organization is a business entity, the value will be true, or false otherwise.",
            "readOnly": true
          },
          "legalId": {
            "type": "string",
            "description": "The organization's legal identifier, such as the identifier assigned by a government. The value may be null for an organization whose type is an organizational unit (OU).",
            "nullable": true
          },
          "organizationName": {
            "type": "string",
            "description": "The name of the organization that the registrant represents."
          },
          "organizationType": {
            "type": "string",
            "description": "The type of the organizational entity being added. The value can be set when creating an organization, but is otherwise read-only. Available values: <br>* O - Organization.<br>* OU - Organization Unit.",
            "readOnly": true
          },
          "parentOrganizationId": {
            "type": "string",
            "description": "If the organization type is an organizational unit (OU), parentOrganizationId is the unique ID of the parent organization of this organization. If the organization type is an organization (O), parentOrganizationId is not required and the default value is the root organization (-2001). The value can be set when creating an organization, but is otherwise read-only."
          },
          "parentOrganizationName": {
            "type": "string",
            "description": "The name of this organization's parent.",
            "readOnly": true
          },
          "preferredDelivery": {
            "type": "string",
            "description": "The registrant's preferred mode of delivery.",
            "nullable": true
          },
          "status": {
            "type": "integer",
            "description": "Whether or not the organization is locked. Available values: <br> * 0 - The organization is unlocked.<br> * -1 - The organization is locked.",
            "format": "int32",
            "readOnly": true,
            "enum": [
              0,
              -1
            ]
          },
          "taxPayerId": {
            "type": "string",
            "description": "A string used to identify the user for taxation, especially useful with tax software.",
            "nullable": true
          }
        }
      },
      "User": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique numeric ID for identifying the user.",
            "readOnly": true
          },
          "address": {
            "$ref": "#/components/schemas/Address.request"
          },
          "age": {
            "type": "integer",
            "description": "The registrant's age.",
            "format": "int32",
            "nullable": true
          },
          "approvalState": {
            "type": "integer",
            "description": "The organizational entity's approval status. Available values: <br>* 0 - pending approval.<br>* 1 - approved.<br>* 2 - rejected.<br>* null - approval not applicable, so considered approved.",
            "format": "int32",
            "readOnly": true
          },
          "createdDateTime": {
            "type": "string",
            "description": "The date and time that the registrant was registered.",
            "format": "date-time",
            "readOnly": true,
            "nullable": true
          },
          "dateOfBirth": {
            "type": "string",
            "description": "The registrant's date of birth.",
            "format": "date"
          },
          "departmentNumber": {
            "type": "string",
            "description": "The department identifier for the registrant."
          },
          "description": {
            "type": "string",
            "description": "A description of the registrant."
          },
          "displayName": {
            "type": "string",
            "description": "Name that is used when the name of the registrant displays in a summary list."
          },
          "distinguishedName": {
            "type": "string",
            "description": "Distinguished name (DN) of the registrant, for LDAP use.",
            "readOnly": true
          },
          "employeeId": {
            "type": "string",
            "description": "The registrant's ID with their employer."
          },
          "employeeType": {
            "type": "string",
            "description": "The registrant's status as an employee (for example, regular, permanent, contractor, or part time)."
          },
          "gender": {
            "type": "string",
            "description": "The registrant's gender."
          },
          "updatedDateTime": {
            "type": "string",
            "description": "The date and time representing the most recent update to the registrant's information.",
            "format": "date-time",
            "readOnly": true,
            "nullable": true
          },
          "lastSession": {
            "type": "string",
            "description": "The date and time representing the most recent login time of the user.",
            "format": "date-time",
            "readOnly": true
          },
          "logonId": {
            "type": "string",
            "description": "The registrant's logon ID. Leading and trailing spaces are trimmed. When the system is configured with LDAP, the following restrictions apply, since the logonId is part of the distinguished name: <br>* Must not begin with a '#'.<br>* Must not contain equals sign, comma, plus sign, quotation mark, backslash, angle brackets or semicolon."
          },
          "manager": {
            "type": "string",
            "description": "The name of the registrant's manager."
          },
          "parentOrganizationId": {
            "type": "string",
            "description": "The identifier of the registrant's company. Can be set when the user is created, but is otherwise read-only."
          },
          "parentOrganizationName": {
            "type": "string",
            "description": "The name of the organization that the registrant represents.",
            "readOnly": true
          },
          "password": {
            "type": "string",
            "description": "The registrant's password. In database mode, the password is encrypted before it is saved in the database. In LDAP mode, the password is only stored on the LDAP server. This parameter is only specified during user creation/update and will never be returned in the response."
          },
          "passwordVerify": {
            "type": "string",
            "description": "The registrant's password, entered a second time. This parameter is only specified during user creation/update and will never be returned in the response."
          },
          "personTitle": {
            "type": "string",
            "description": "The title of the user whose address is being entered (for example, Dr., Rev., Mr., or Ms.)."
          },
          "preferredCurrency": {
            "type": "string",
            "description": "The registrant's preferred currency for transactions."
          },
          "preferredLanguageId": {
            "type": "integer",
            "description": "The unique numeric ID for identifying registrant's preferred language.",
            "format": "int32",
            "nullable": true
          },
          "preferredCommunication": {
            "type": "string",
            "description": "The registrant's preferred method of communication."
          },
          "challengeQuestion": {
            "type": "string",
            "description": "The registrant's challenge question."
          },
          "challengeAnswer": {
            "type": "string",
            "description": "The registrant's challenge answer."
          },
          "profileType": {
            "type": "string",
            "description": "The registrant's user profile type. This parameter can only be set during user registration. Available values: <br> * B - A business user profile.<br> * C - A customer user profile.",
            "default": "B",
            "enum": [
              "B",
              "C"
            ]
          },
          "receiveSmsNotification": {
            "type": "boolean",
            "description": "Indicates whether the user wants to receive order notification SMS text messages."
          },
          "registrationType": {
            "type": "string",
            "description": "The registrant's registration type. Available values: <br>* A - Sell-side Administrator.<br> * G - Guest Customer.<br> * R - Registered Customer.<br> * S - Site Administrator.<br>",
            "readOnly": true
          },
          "secretary": {
            "type": "string",
            "description": "The name of the registrant's secretary."
          },
          "status": {
            "type": "integer",
            "description": "Whether or not the user's account is enabled. Available values: <br> * 0 - Disabled.<br> * 1 - Enabled.",
            "format": "int32"
          },
          "userAccountPolicyId": {
            "type": "integer",
            "description": "The unique numeric ID for identifying a user account policy.",
            "format": "int32"
          }
        }
      },
      "UserCollection": {
        "type": "object",
        "properties": {
          "count": {
            "minimum": 0,
            "type": "integer",
            "description": "The total number of item records that match the query parameters.",
            "format": "int64"
          },
          "items": {
            "type": "array",
            "description": "The items.",
            "items": {
              "$ref": "#/components/schemas/User"
            }
          },
          "limit": {
            "maximum": 500,
            "type": "integer",
            "description": "The maximum number of records to return.",
            "format": "int32"
          },
          "offset": {
            "minimum": 0,
            "type": "integer",
            "description": "The position within the resulting dataset where the query begins returning item records. If the offset is \"5\", the records that returned begin with the sixth record that matches the query parameters. If the offset is \"0\", the records that are returned begin with the first record that matches the query parameters.",
            "format": "int32"
          }
        },
        "description": "The model for list of users."
      },
      "Role": {
        "type": "object",
        "properties": {
          "roleId": {
            "type": "integer",
            "description": "The unique numeric ID for identifying the role.",
            "format": "int32",
            "readOnly": true
          },
          "organizationId": {
            "type": "string",
            "description": "The unique numeric ID for identifying the organization.",
            "readOnly": true
          }
        }
      },
      "RoleCollection": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "description": "The items.",
            "items": {
              "$ref": "#/components/schemas/Role"
            }
          }
        },
        "description": "The model for list user roles."
      },
      "SiteMemberAttribute": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "The name of the custom attribute."
          },
          "values": {
            "type": "array",
            "description": "The value or values of the custom attribute. The data type of an attribute value can vary depending on the attribute. Ensure that any value specified is a valid string representation of the attribute's data type. The supported data types are INTEGER, STRING, FLOAT and DATETIME.",
            "items": {
              "type": "string",
              "example": "2019-01-11T10:44:30.360Z"
            }
          }
        },
        "description": "A custom attribute that is associated with a user or organization and that is store-independent."
      },
      "SiteAttributesUpdateRequestBody": {
        "type": "object",
        "properties": {
          "values": {
            "type": "array",
            "description": "The value or values of the custom attribute. The data type of an attribute value can vary depending on the attribute. Ensure that any value specified is a valid string representation of the attribute's data type. The supported data types are INTEGER, STRING, FLOAT and DATETIME.",
            "items": {
              "type": "string",
              "example": "2019-01-11T10:44:30.360Z"
            }
          }
        },
        "description": "A custom attribute that is associated with a user or organization and that is store-independent."
      },
      "StoreAttributesUpdateRequestBody": {
        "type": "object",
        "properties": {
          "storeId": {
            "type": "integer",
            "description": "The unique numeric ID of the store where the attribute applies. This parameter can only be set at attribute creation time.",
            "format": "int32"
          },
          "values": {
            "type": "array",
            "description": "The value or values of the custom attribute. The data type of an attribute value can vary depending on the attribute. Ensure that any value specified is a valid string representation of the attribute's data type. The supported data types are INTEGER, STRING, FLOAT and DATETIME.",
            "items": {
              "type": "string",
              "example": "2019-01-11T10:44:30.360Z"
            }
          }
        },
        "description": "A custom attribute that is associated with a user or organization and that applies to a specific store."
      },
      "StoreMemberAttribute": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "The name of the custom attribute."
          },
          "storeId": {
            "type": "integer",
            "description": "The unique numeric ID of the store where the attribute applies. This parameter can only be set at attribute creation time.",
            "format": "int32"
          },
          "values": {
            "type": "array",
            "description": "The value or values of the custom attribute. The data type of an attribute value can vary depending on the attribute. Ensure that any value specified is a valid string representation of the attribute's data type. The supported data types are INTEGER, STRING, FLOAT and DATETIME.",
            "items": {
              "type": "string",
              "example": "2019-01-11T10:44:30.360Z"
            }
          }
        },
        "description": "A custom attribute that is associated with a user or organization and that applies to a specific store."
      },
      "SiteMemberAttributeCollection": {
        "type": "object",
        "properties": {
          "count": {
            "minimum": 0,
            "type": "integer",
            "description": "The total number of item records that match the query parameters.",
            "format": "int32"
          },
          "items": {
            "type": "array",
            "description": "The items.",
            "items": {
              "$ref": "#/components/schemas/SiteMemberAttribute"
            }
          },
          "limit": {
            "maximum": 500,
            "type": "integer",
            "description": "The maximum number of records to return.",
            "format": "int32"
          },
          "offset": {
            "minimum": 0,
            "type": "integer",
            "description": "The position within the resulting dataset where the query begins returning item records. If the offset is \"5\", the records that returned begin with the sixth record that matches the query parameters. If the offset is \"0\", the records that are returned begin with the first record that matches the query parameters.",
            "format": "int32"
          }
        },
        "description": "A list of custom attributes."
      },
      "StoreMemberAttributeCollection": {
        "type": "object",
        "properties": {
          "count": {
            "minimum": 0,
            "type": "integer",
            "description": "The total number of item records that match the query parameters.",
            "format": "int32"
          },
          "items": {
            "type": "array",
            "description": "The items.",
            "items": {
              "$ref": "#/components/schemas/StoreMemberAttribute"
            }
          },
          "limit": {
            "maximum": 500,
            "type": "integer",
            "description": "The maximum number of records to return.",
            "format": "int32"
          },
          "offset": {
            "minimum": 0,
            "type": "integer",
            "description": "The position within the resulting dataset where the query begins returning item records. If the offset is \"5\", the records that returned begin with the sixth record that matches the query parameters. If the offset is \"0\", the records that are returned begin with the first record that matches the query parameters.",
            "format": "int32"
          }
        },
        "description": "A list of custom attributes."
      }
    },
    "securitySchemes": {
      "basicAuth": {
        "type": "http",
        "scheme": "basic"
      }
    }
  },
  "security": [
    {
      "basicAuth": []
    }
  ],
  "x-components": {}
}
