{
  "openapi": "3.0.1",
  "info": {
    "title": "Store Locations",
    "description": "Create and administer a collection of store locations.",
    "version": "9.1.20.0",
    "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"
          ]
        }
      }
    }
  ],
  "paths": {
    "/store-locations": {
      "get": {
        "tags": [
          "store-locations"
        ],
        "description": "Get a collection of store locations.",
        "operationId": "getStoreLocations",
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "description": "The store location ID.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "identifier",
            "in": "query",
            "description": "The external identifier of this store location.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "phone",
            "in": "query",
            "description": "The store location phone number.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fax",
            "in": "query",
            "description": "The store location fax number.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "address1",
            "in": "query",
            "description": "The store location address line 1.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "address2",
            "in": "query",
            "description": "The store location address line 2.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "address3",
            "in": "query",
            "description": "The store location address line 3.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "city",
            "in": "query",
            "description": "The city that the store locates.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "state",
            "in": "query",
            "description": "The state or province of the store location.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "country",
            "in": "query",
            "description": "The country or region of the store location.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "zipCode",
            "in": "query",
            "description": "The zip or postal code of the store location.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "active",
            "in": "query",
            "description": "1 if the store is active. Otherwise, 0.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "latitude",
            "in": "query",
            "description": "The latitude of the store in degrees north or south of the equator.",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "longitude",
            "in": "query",
            "description": "The longitude of the store in degrees east or west of the Greenwich meridian.",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "geoNodeId",
            "in": "query",
            "description": "The ID of the geo node that the store locates.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "storeId",
            "in": "query",
            "description": "The reference number of the store.",
            "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"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "The maximum number of records to return.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "The comma-separated set of properties to be returned. If no properties are specified, all properties are returned.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "expand",
            "in": "query",
            "description": "The comma-separated set of related resources referenced in the links to be returned. If no related resources are specified, no related resources are returned.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A collection of store locations.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StoreLocationCollection"
                }
              }
            }
          },
          "400": {
            "description": "There was a client error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "500": {
            "description": "There was a server error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "store-locations"
        ],
        "description": "Create a store location.",
        "operationId": "createStoreLocation",
        "requestBody": {
          "description": "Store locations.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StoreLocation"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "The operation was successful.",
            "content": {},
            "headers": {
              "Location": {
                "description": "The URI of the StoreLocation.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "links": {
              "GetStoreLanguageById": {
                "operationRef": "#/paths/~1store-locations~1{id}/get",
                "parameters": {
                  "id": "$request.body#/id"
                },
                "description": "The `id` value used in the request body can be used as the `id` parameter in `GET /store-locations/{id}`.\n"
              },
              "DeleteStoreLanguageById": {
                "operationRef": "#/paths/~1store-locations~1{id}/delete",
                "parameters": {
                  "id": "$request.body#/id"
                },
                "description": "The `id` value used in the request body can be used as the `id` parameter in `DELETE ​/store-locations/{id}`.\n"
              },
              "UpdateStoreLanguageById": {
                "operationRef": "#/paths/~1store-locations~1{id}/patch",
                "parameters": {
                  "id": "$request.body#/id"
                },
                "description": "The `id` value used in the request body can be used as the `id`parameter in `PATCH /store-locations/{id}`.\n"
              }
            }
          },
          "400": {
            "description": "There was a client error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "500": {
            "description": "There was a server error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          }
        },
        "x-codegen-request-body-name": "StoreLocation"
      }
    },
    "/store-locations/{id}": {
      "get": {
        "tags": [
          "store-locations"
        ],
        "description": "Get a store location.",
        "operationId": "getStoreLocationById",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The store location ID.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "The comma-separated set of properties to be returned. If no properties are specified, all properties are returned.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "expand",
            "in": "query",
            "description": "The comma-separated set of related resources referenced in the links to be returned. If no related resources are specified, no related resources are returned.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Store locations.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StoreLocations"
                }
              }
            }
          },
          "400": {
            "description": "There was a client error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "404": {
            "description": "The resource was not found.",
            "content": {}
          },
          "500": {
            "description": "There was a server error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "store-locations"
        ],
        "description": "Delete a store location.",
        "operationId": "deleteStoreLocationById",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The store location ID.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "The operation was successful.",
            "content": {}
          },
          "400": {
            "description": "There was a client error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "404": {
            "description": "The resource was not found.",
            "content": {}
          },
          "500": {
            "description": "There was a server error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          }
        }
      },
      "patch": {
        "tags": [
          "store-locations"
        ],
        "description": "Update a store location.",
        "operationId": "updateStoreLocationById",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The store location ID.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "description": "Store locations.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StoreLocation"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "The operation was successful.",
            "content": {}
          },
          "400": {
            "description": "There was a client error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "404": {
            "description": "The resource was not found.",
            "content": {}
          },
          "500": {
            "description": "There was a server error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          }
        },
        "x-codegen-request-body-name": "StoreLocation"
      }
    }
  },
  "components": {
    "schemas": {
      "Link": {
        "type": "object",
        "properties": {
          "href": {
            "type": "string",
            "description": "The URL of the link.",
            "format": "uri"
          }
        },
        "description": "Links to related resources."
      },
      "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."
      },
      "ErrorResponseContainer": {
        "type": "object",
        "properties": {
          "requestId": {
            "type": "string",
            "description": "The request identifier."
          },
          "errors": {
            "type": "array",
            "description": "The errors.",
            "items": {
              "$ref": "#/components/schemas/Error"
            }
          }
        },
        "description": "The error message model."
      },
      "StoreLocation": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "The store location ID.",
            "format": "int32"
          },
          "identifier": {
            "type": "string",
            "description": "The external identifier of this store location."
          },
          "phone": {
            "type": "string",
            "description": "The store location phone number."
          },
          "fax": {
            "type": "string",
            "description": "The store location fax number."
          },
          "address1": {
            "type": "string",
            "description": "The store location address line 1."
          },
          "address2": {
            "type": "string",
            "description": "The store location address line 2.",
            "nullable": true
          },
          "address3": {
            "type": "string",
            "description": "The store location address line 3.",
            "nullable": true
          },
          "city": {
            "type": "string",
            "description": "The city that the store locates."
          },
          "state": {
            "type": "string",
            "description": "The state or province of the store location."
          },
          "country": {
            "type": "string",
            "description": "The country or region of the store location."
          },
          "zipCode": {
            "type": "string",
            "description": "The zip or postal code of the store location."
          },
          "active": {
            "type": "integer",
            "description": "1 if the store is active. Otherwise, 0.",
            "format": "int32"
          },
          "latitude": {
            "type": "number",
            "description": "The latitude of the store in degrees north or south of the equator.",
            "format": "double"
          },
          "longitude": {
            "type": "number",
            "description": "The longitude of the store in degrees east or west of the Greenwich meridian.",
            "format": "double"
          },
          "geoNodeId": {
            "type": "integer",
            "description": "The ID of the geo node that the store locates.",
            "format": "int32"
          },
          "storeId": {
            "type": "integer",
            "description": "The reference number of the store.",
            "format": "int32"
          }
        },
        "description": "Store locations."
      },
      "StoreLocations": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "The store location ID.",
            "format": "int32"
          },
          "identifier": {
            "type": "string",
            "description": "The external identifier of this store location."
          },
          "phone": {
            "type": "string",
            "description": "The store location phone number."
          },
          "fax": {
            "type": "string",
            "description": "The store location fax number."
          },
          "address1": {
            "type": "string",
            "description": "The store location address line 1."
          },
          "address2": {
            "type": "string",
            "description": "The store location address line 2.",
            "nullable": true
          },
          "address3": {
            "type": "string",
            "description": "The store location address line 3.",
            "nullable": true
          },
          "city": {
            "type": "string",
            "description": "The city that the store locates."
          },
          "state": {
            "type": "string",
            "description": "The state or province of the store location."
          },
          "country": {
            "type": "string",
            "description": "The country or region of the store location."
          },
          "zipCode": {
            "type": "string",
            "description": "The zip or postal code of the store location."
          },
          "active": {
            "type": "integer",
            "description": "1 if the store is active. Otherwise, 0.",
            "format": "int32"
          },
          "latitude": {
            "type": "number",
            "description": "The latitude of the store in degrees north or south of the equator.",
            "format": "double"
          },
          "longitude": {
            "type": "number",
            "description": "The longitude of the store in degrees east or west of the Greenwich meridian.",
            "format": "double"
          },
          "geoNodeId": {
            "type": "integer",
            "description": "The ID of the geo node that the store locates.",
            "format": "int32"
          },
          "storeId": {
            "type": "integer",
            "description": "The reference number of the store.",
            "format": "int32"
          },
          "links": {
            "type": "object",
            "properties": {
              "self": {
                "type": "object",
                "properties": {
                  "href": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "description": "Store locations."
      },
      "StoreLocationCollection": {
        "type": "object",
        "required": [
          "count"
        ],
        "properties": {
          "count": {
            "type": "integer",
            "description": "The total number of items.",
            "format": "int64"
          },
          "href": {
            "type": "string",
            "description": "The URL of the link.",
            "format": "uri"
          },
          "items": {
            "type": "array",
            "description": "The items.",
            "items": {
              "$ref": "#/components/schemas/StoreLocations"
            }
          }
        },
        "description": "A collection of store locations."
      }
    },
    "securitySchemes": {
      "basicAuth": {
        "type": "http",
        "scheme": "basic"
      }
    }
  },
  "security": [
    {
      "basicAuth": []
    }
  ],
  "x-components": {}
}
