{
  "openapi": "3.0.1",
  "info": {
    "title": "Fulfillment Centers",
    "version": "9.1.20.0",
    "description": "Create and administer a collection of fulfillment centers.",
    "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": "Fulfillment Centers",
      "description": "Provide RESTful services to manage fulfillment centers."
    }
  ],
  "paths": {
    "/fulfillment-centers": {
      "get": {
        "tags": [
          "Fulfillment Centers"
        ],
        "description": "Get a collection of fulfillment centers.",
        "operationId": "getFulfillmentCenters",
        "parameters": [
          {
            "name": "searchString",
            "in": "query",
            "description": "Limits search results to only include fulfillment centers with a name that matches the value of this parameter. Searches are case-insensitive.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "query",
            "description": "The fulfillment center ID.",
            "style": "form",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "integer",
                "format": "int32"
              }
            }
          },
          {
            "name": "storeId",
            "in": "query",
            "description": "The store ID.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "memberId",
            "in": "query",
            "description": "The owning organization ID.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "name",
            "in": "query",
            "description": "A string that, along with the owner, uniquely identifies this fulfillment center.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "defaultShipOffset",
            "in": "query",
            "description": "An estimate of the number seconds it takes for an item to be shipped from this fulfillment center.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "markForDelete",
            "in": "query",
            "description": "Indicates whether the fulfillment center should be deleted as follows, 0 = do not delete. 1 = delete if no longer in use. Refer to the Database Cleanup utility.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "externalFulfillmentStoreNumber",
            "in": "query",
            "description": "A reference number that can be used to locate a store or external fulfillment system.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "inventoryOperationFlags",
            "in": "query",
            "description": "Contains bit flags indicating how to perform inventory operations. Enter an integer that is the sum of the number of the flags that you want to turn on. Example, Enter \"3\" to turn on flags 1 and 2. 1 = multiItem - operations accept multiple order items. 2 = noCheck - inventory is never checked (the check operation always appears to succeed). 4 = noAllocation - the allocate operation checks inventory, but does not actually allocate it (the allocate operation appears to succeed if the check succeeds). 8 = noBackorder - inventory is never backordered (the backorder operation always fails).",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "maxNumPick",
            "in": "query",
            "description": "The maximum number of the releases per pick batch.",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "pickDelayInMin",
            "in": "query",
            "description": "The delay in minutes from the time an order is placed until one of its releases can be included.",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "dropShip",
            "in": "query",
            "description": "Indicates whether the fulfillment center is a drop-ship fulfillment center. Y means that it is. N indicates that it is not.",
            "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"
            }
          },
          {
            "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"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "description": "The comma-separated set of properties which controls the order of the items being listed, prefixed by either (-) to sort by descending order, or optionally (+) to sort by ascending order. For example, sort=name,-d which means, order the items based on the name value in ascending order, then by the id value in descending order.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A collection of fulfillment centers.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FulfillmentCenterCollection"
                }
              }
            }
          },
          "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": [
          "Fulfillment Centers"
        ],
        "description": "Create a fulfillment center.",
        "operationId": "createFulfillmentCenter",
        "requestBody": {
          "description": "Fulfillment center.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FulfillmentCenter"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "The operation was successful.",
            "content": {},
            "headers": {
              "Location": {
                "description": "The URI of the Fulfilment-Center.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "links": {
              "GetFulfillmentCentersByFulfillmentCentersId": {
                "operationRef": "#/paths/~1fulfillment-centers~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 /fulfillment-centers/{id}`.\n"
              },
              "DeleteFulfillmentCentersByFulfillmentCentersId": {
                "operationRef": "#/paths/~1fulfillment-centers~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 /fulfillment-centers/{id}`.\n"
              },
              "UpdateFulfillmentCentersByFulfillmentCentersId": {
                "operationRef": "#/paths/~1fulfillment-centers~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 /fulfillment-centers/{id}`.\n"
              },
              "GetFulfillmentCentersDescriptionsByFulfillmentCenterId": {
                "operationRef": "#/paths/~1fulfillment-centers~1{id}~1descriptions/get",
                "parameters": {
                  "id": "$request.body#/id"
                },
                "description": "The `id` value used in the request body can be used as the `id` parameter in `GET /fulfillment-centers/{id}/descriptions`.\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": "FulfillmentCenter"
      }
    },
    "/fulfillment-centers/{id}": {
      "get": {
        "tags": [
          "Fulfillment Centers"
        ],
        "description": "Get a fulfillment center.",
        "operationId": "getFulfillmentCenterById",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The fulfillment center 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"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "description": "The comma-separated set of properties which controls the order of the items being listed, prefixed by either (-) to sort by descending order, or optionally (+) to sort by ascending order. For example, sort=name,-d which means, order the items based on the name value in ascending order, then by the id value in descending order.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Fulfillment center.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FulfillmentCenter"
                }
              }
            }
          },
          "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": [
          "Fulfillment Centers"
        ],
        "description": "Delete a fulfillment center.",
        "operationId": "deleteFulfillmentCenterById",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The fulfillment center 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": [
          "Fulfillment Centers"
        ],
        "description": "Update a fulfillment center.",
        "operationId": "updateFulfillmentCenterById",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The fulfillment center ID.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "description": "Fulfillment center.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FulfillmentCenter"
              }
            }
          },
          "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": "FulfillmentCenter"
      }
    },
    "/fulfillment-centers/{id}/descriptions": {
      "get": {
        "tags": [
          "Fulfillment Centers"
        ],
        "operationId": "getFulfillmentCenterDescriptionsOfFulfillmentCenter",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The fulfillment center ID.",
            "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"
            }
          },
          {
            "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"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "description": "The comma-separated set of properties which controls the order of the items being listed, prefixed by either (-) to sort by descending order, or optionally (+) to sort by ascending order. For example, sort=name,-d which means, order the items based on the name value in ascending order, then by the id value in descending order.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A collection of fulfillment center descriptions.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FulfillmentCenterDescriptionCollection"
                }
              }
            }
          },
          "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"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "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."
      },
      "FulfillmentCenter": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer"
          },
          "memberId": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "defaultShipOffset": {
            "type": "integer"
          },
          "markForDelete": {
            "type": "integer"
          },
          "externalFulfillmentStoreNumber": {
            "type": "string"
          },
          "inventoryOperationFlags": {
            "type": "integer"
          },
          "maxNumPick": {
            "type": "integer"
          },
          "pickDelayInMin": {
            "type": "integer"
          },
          "dropShip": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "memberId",
          "name",
          "defaultShipOffset",
          "markForDelete",
          "externalFulfillmentStoreNumber",
          "inventoryOperationFlags",
          "maxNumPick",
          "pickDelayInMin",
          "dropShip",
          "links"
        ]
      },
      "FulfillmentCenterCollection": {
        "type": "object",
        "properties": {
          "href": {
            "type": "string"
          },
          "items": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer"
                },
                "memberId": {
                  "type": "string"
                },
                "name": {
                  "type": "string"
                },
                "defaultShipOffset": {
                  "type": "integer"
                },
                "markForDelete": {
                  "type": "integer"
                },
                "externalFulfillmentStoreNumber": {
                  "type": "string"
                },
                "inventoryOperationFlags": {
                  "type": "integer"
                },
                "maxNumPick": {
                  "type": "integer"
                },
                "pickDelayInMin": {
                  "type": "integer"
                },
                "dropShip": {
                  "type": "string"
                },
                "links": {
                  "type": "object",
                  "properties": {
                    "self": {
                      "type": "object",
                      "properties": {
                        "href": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "href"
                      ]
                    },
                    "descriptions": {
                      "type": "object",
                      "properties": {
                        "href": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "href"
                      ]
                    }
                  },
                  "required": [
                    "self",
                    "descriptions"
                  ]
                }
              },
              "required": [
                "id",
                "memberId",
                "name",
                "defaultShipOffset",
                "markForDelete",
                "externalFulfillmentStoreNumber",
                "inventoryOperationFlags",
                "maxNumPick",
                "pickDelayInMin",
                "dropShip",
                "links"
              ]
            }
          },
          "count": {
            "type": "integer"
          }
        },
        "required": [
          "href",
          "items",
          "count"
        ]
      },
      "FulfillmentCenterDescription": {
        "type": "object",
        "properties": {
          "fulfillmentCenterId": {
            "type": "integer",
            "description": "The fulfillment center ID.",
            "format": "int32"
          },
          "displayName": {
            "type": "string",
            "description": "A string that, along with its language Id, uniquely identifies this fulfillment center."
          },
          "description": {
            "type": "string",
            "description": "The fulfillment center description in the language."
          },
          "storeAddressId": {
            "type": "integer",
            "description": "The physical location of the FulfillmentCenter.",
            "format": "int32"
          },
          "languageId": {
            "type": "integer",
            "description": "The language of the description. For a list of integer language identifiers, please refer to the Knowledge Center.",
            "format": "int32"
          }
        },
        "description": "Fulfillment center description."
      },
      "FulfillmentCenterDescriptionCollection": {
        "type": "object",
        "properties": {
          "count": {
            "type": "integer",
            "description": "The total number of items.",
            "format": "int64"
          },
          "items": {
            "type": "array",
            "description": "The items.",
            "items": {
              "$ref": "#/components/schemas/FulfillmentCenterDescription"
            }
          }
        },
        "description": "A collection of fulfillment center descriptions."
      }
    },
    "securitySchemes": {
      "basicAuth": {
        "type": "http",
        "scheme": "basic"
      }
    }
  },
  "security": [
    {
      "basicAuth": []
    }
  ]
}
