{
  "openapi": "3.0.1",
  "info": {
    "title": "Store Management",
    "version": "9.1.20.0",
    "description": "Create and administer hub store, storefront asset store and Catalog asset store.",
    "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": "Hub Stores",
      "description": "provides RESTful services to create and manage hub store information."
    },
    {
      "name": "Storefront Asset Stores",
      "description": "provides RESTful services to create and manage storefront asset store information."
    },
    {
      "name": "Catalog Asset Stores",
      "description": "provides RESTful services to create and manage catalog asset store information."
    }
  ],
  "paths": {
    "/hub-stores": {
      "post": {
        "tags": [
          "Hub Stores"
        ],
        "summary": "Create a hub store.",
        "description": "Create a hub store.",
        "operationId": "HubStores-createHubStore",
        "requestBody": {
          "description": "Request body.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/HubStore"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "The requested resource has been created.",
            "headers": {
              "Location": {
                "description": "Link to the newly created resource.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "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"
      }
    },
    "/storefront-asset-stores": {
      "post": {
        "tags": [
          "Storefront Asset Stores"
        ],
        "summary": "Create a storefront asset store.",
        "description": "Create a storefront asset store.",
        "operationId": "StorefrontAssetStore-createStorefrontassetStore",
        "requestBody": {
          "description": "Request body.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StorefrontAssetStore"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "The requested resource has been created.",
            "headers": {
              "Location": {
                "description": "Link to the newly created resource.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "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"
      }
    },
    "/catalog-asset-stores": {
      "post": {
        "tags": [
          "Catalog Asset Stores"
        ],
        "summary": "Create a catalog asset store.",
        "description": "Create a catalog asset store.",
        "operationId": "CatalogAssetStores-createCatalogAssetStore",
        "requestBody": {
          "description": "Request body.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CatalogAssetStore"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "The requested resource has been created.",
            "headers": {
              "Location": {
                "description": "Link to the newly created resource.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "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"
      }
    }
  },
  "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."
      },
      "HubStoreCollection": {
        "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/HubStore"
            }
          },
          "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 collection of hub stores."
      },
      "HubStore": {
        "required": [
          "store",
          "storeOwnerOrganization"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique numeric ID for identifying the hub store."
          },
          "storeOwnerOrganization": {
            "$ref": "#/components/schemas/StoreOwnerOrganization"
          },
          "store": {
            "$ref": "#/components/schemas/Store"
          },
          "policyData": {
            "$ref": "#/components/schemas/HubStoreAccessControlPolicyData"
          },
          "policyDescriptionData": {
            "$ref": "#/components/schemas/HubStoreAccessControlPolicyDescriptionData"
          }
        }
      },
      "StoreOwnerOrganization": {
        "required": [
          "organizationName",
          "organizationType"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique numeric ID for identifying the organization."
          },
          "distinguishedName": {
            "type": "string",
            "description": "Distinguished Name (DN) of the organization or organizational unit, for LDAP use.",
            "readOnly": 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. O=Organization; OU=Organizational Unit."
          },
          "parentOrganizationId": {
            "type": "integer",
            "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). Can be set when creating an organization, but is read only otherwise.",
            "format": "int64"
          },
          "parentOrganizationName": {
            "type": "string",
            "description": "The name of this organization's parent."
          }
        }
      },
      "Store": {
        "required": [
          "defaultCurrency",
          "defaultLanguageId",
          "description",
          "identifier"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique numeric ID for identifying the store."
          },
          "identifier": {
            "type": "string",
            "description": "A string that, together with store owner, uniquely identifies the store."
          },
          "defaultCurrency": {
            "type": "string",
            "description": "The default currency for a store that will be used by a customer who has not specified a preferred currency."
          },
          "defaultLanguageId": {
            "type": "integer",
            "description": "The default language for information displayed to customers shopping in the store.",
            "format": "int32"
          },
          "description": {
            "$ref": "#/components/schemas/StoreDescription"
          },
          "allocationGoodFor": {
            "type": "integer",
            "description": "When this many seconds have passed since the allocations were made, the ReleaseExpiredAllocations scheduler job can reverse available to promise (ATP) inventory allocations. If 0, ATP inventory allocation is not used by this store, and the INVENTORY table is used instead.",
            "format": "int32"
          },
          "allocationOffset": {
            "type": "integer",
            "description": "Amount of time before the requested ship date when inventory allocation should be performed.",
            "format": "int64"
          },
          "avsAcceptCodes": {
            "type": "string",
            "description": "The payments subsystem AVS result codes that the store accepts. The possible values are: 0 = Both street address and postal code match; 1 = Street address matches, but postal code does not; 2 = Postal code matches, but street address does not; 3 = Neither street address nor postal code match; 4 = AVS result not available."
          },
          "blkExtAsynch": {
            "type": "number",
            "description": "Allows the merchant-extensible code for order blocking to be run asynchronously. This column can be used when a merchant wants to test for blocking conditions by connecting to external systems. To enable this feature, this column must be set to 1. The default value is 0."
          },
          "blockingActive": {
            "type": "number",
            "description": "Specifies whether the order blocking feature is in use. The order blocking feature can be disabled for this particular store by setting this field to 0. The default value is 1."
          },
          "bopmpadFactor": {
            "type": "integer",
            "description": "The bopmpadFactor specifies the percentage amount (\"padding factor\") by which the order amount presented to the payments subsystem can be increased, if necessary.",
            "format": "int32"
          },
          "defaultBoOffset": {
            "type": "integer",
            "description": "When an estimated availability time cannot be determined for a back-ordered order item, by default, it will be set to this many seconds into the future.",
            "format": "int32"
          },
          "directory": {
            "type": "string",
            "description": "The base name of the directory in which store-specific Web assets, such as JSP files and property files, are found."
          },
          "fulfillmentCenterId": {
            "type": "integer",
            "description": "The default fulfillment center for the hub store.",
            "format": "int32"
          },
          "fulfillmentCenterSelectionFlags": {
            "type": "integer",
            "description": "Contains bit flags that specify policy used by the default implementation of GetEligibleFulfillmentCenters.",
            "format": "int32"
          },
          "inventoryOpFlags": {
            "type": "integer",
            "description": "Contains bit flags indicating how to perform inventory operations. A value of 1 indicates that the RECEIPT table is updated during shipment confirmation. Default value is 0.",
            "format": "int32"
          },
          "inventorySystem": {
            "type": "number",
            "description": "The inventory system is used by the store. Supported values are -2 (Non-ATP, Default value), -3 (No inventory), -4 (External inventory management system), -5 (DOM inventory system)."
          },
          "maxBoOffset": {
            "type": "integer",
            "description": "The maximum number of seconds that an item can be backordered.",
            "format": "int32"
          },
          "maxFoOffset": {
            "type": "integer",
            "description": "The maximum period of time that can be requested for a future ship date after the date the requested ship date is entered.",
            "format": "int32"
          },
          "orderHistoryActive": {
            "type": "string",
            "description": "Indicates whether order change history tracking is enabled. Supported values are Y (Yes, default value), N (No)."
          },
          "persistentSession": {
            "type": "number",
            "description": "Indicates whether persistent (remember me) sessions are enabled. The possible values are: 0 = Persistent sessions are disabled for registered customers and guest customers. This is the default value; 1 = Persistent sessions are enabled for registered customers only; 2 = Persistent sessions are enabled for guest customers only; 3= Persistent sessions are enabled for registered customers and guest customers."
          },
          "priceRefFlags": {
            "type": "integer",
            "description": "Contains bit flags that control which trading agreements and offers are searched when prices are refreshed by the default implementation of the GetContractunitPrices task command.",
            "format": "int32"
          },
          "quoteGoodFor": {
            "type": "integer",
            "description": "If this many seconds have passed since an order was prepared and the customer has not committed to pay, the prices and other monetary amounts in the order may change when OrderProcess is run.",
            "format": "int32"
          },
          "rejectedOrderExpiry": {
            "type": "integer",
            "description": "Orders with payment in declined state longer than this many seconds are candidates for cancellation.",
            "format": "int32"
          },
          "returnFulfillmentCenterId": {
            "type": "integer",
            "description": "The ID of the fulfillment center that is used as the default for returning merchandise to the hub store.",
            "format": "int32"
          },
          "rmaGoodFor": {
            "type": "integer",
            "description": "The time period in seconds for which return merchandise authorization (RMA) calculations are valid. If this time period elapses before an RMA is completed, charges or credits and approval will be recalculated.",
            "format": "int32"
          },
          "status": {
            "type": "integer",
            "description": "The status of the hub store. Supported values are 1 (Open), 0 (Closed), -1 (Suspended).",
            "format": "int32"
          },
          "storeLevel": {
            "type": "string",
            "description": "A flag that indicated whether various features are used in the hub store. The possible values are MC (Store functions in Management Center are used), MOBILE (Mobile presences is used), or Null. Use a comma-separated list when both MC and MOBILE need to be set."
          },
          "supportedCurrencies": {
            "type": "array",
            "description": "A list of currencies that the hub store supports.",
            "items": {
              "type": "string"
            }
          },
          "supportedLanguages": {
            "type": "array",
            "description": "A list of languages that the hub store supports.",
            "items": {
              "type": "integer",
              "format": "int32"
            }
          }
        }
      },
      "StoreDescription": {
        "type": "object",
        "properties": {
          "description": {
            "type": "string",
            "description": "A longer description of the hub store suitable for display to customers."
          },
          "displayName": {
            "type": "string",
            "description": "A brief description of the hub store suitable for display to customers."
          },
          "languageId": {
            "type": "integer",
            "description": "The language ID of the description.",
            "format": "int32"
          }
        }
      },
      "HubStoreAccessControlPolicyData": {
        "type": "object",
        "properties": {
          "policies": {
            "type": "array",
            "description": "Necessary access control policies for the hub store.",
            "items": {
              "$ref": "#/components/schemas/HubStoreAccessControlPolicy"
            }
          },
          "policyGroups": {
            "type": "array",
            "description": "Necessary access control policy groups for the hub store.",
            "items": {
              "$ref": "#/components/schemas/HubStoreAccessControlPolicyGroup"
            }
          }
        },
        "description": "Access control policy data for the hub store."
      },
      "HubStoreAccessControlPolicy": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "The name of the policy."
          },
          "userGroup": {
            "type": "string",
            "description": "The user group."
          },
          "userGroupOwnerOrganizationId": {
            "type": "integer",
            "description": "The organization ID who owns the user group.",
            "format": "int64",
            "example": -2001
          },
          "actionGroupName": {
            "type": "string",
            "description": "The action group name."
          },
          "resourceGroupName": {
            "type": "string",
            "description": "The resource group name."
          },
          "policyType": {
            "type": "string",
            "description": "The policy type."
          },
          "relationGroupName": {
            "type": "string",
            "description": "The relation group name."
          },
          "_action": {
            "type": "string",
            "description": "The action to be performed on the object during a request. In a response, the value of action is always null. The default action is update.",
            "default": "update",
            "enum": [
              "update",
              "delete"
            ]
          }
        },
        "description": "An access control policy for the hub store."
      },
      "HubStoreAccessControlPolicyGroup": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "The name of the policy group."
          },
          "policyGroupPolicies": {
            "type": "array",
            "description": "The policy group policies.",
            "items": {
              "$ref": "#/components/schemas/HubStoreAccessControlPolicyGroupPolicy"
            }
          },
          "policyGroupSubscriptions": {
            "type": "array",
            "description": "The policy group subscriptions.",
            "items": {
              "$ref": "#/components/schemas/HubStoreAccessControlPolicyGroupSubscription"
            }
          },
          "_action": {
            "type": "string",
            "description": "The action to be performed on the object during a request. In a response, the value of action is always null. The default action is update.",
            "default": "update",
            "enum": [
              "update",
              "delete"
            ]
          }
        },
        "description": "An access control policy group for the hub store."
      },
      "HubStoreAccessControlPolicyGroupPolicy": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "The name of the policy."
          },
          "_action": {
            "type": "string",
            "description": "The action to be performed on the object during a request. In a response, the value of action is always null. The default action is update.",
            "default": "update",
            "enum": [
              "update",
              "delete"
            ]
          }
        },
        "description": "An access control policy group policy."
      },
      "HubStoreAccessControlPolicyGroupSubscription": {
        "type": "object",
        "properties": {
          "_action": {
            "type": "string",
            "description": "The action to be performed on the object during a request. In a response, the value of action is always null. The default action is update.",
            "default": "update",
            "enum": [
              "update",
              "delete"
            ]
          }
        },
        "description": "An access control policy group subscription."
      },
      "HubStoreAccessControlPolicyDescriptionData": {
        "required": [
          "locale"
        ],
        "type": "object",
        "properties": {
          "locale": {
            "type": "string",
            "description": "The locale of the description language."
          },
          "policyDescriptions": {
            "type": "array",
            "description": "Access control policy descriptions for the hub store.",
            "items": {
              "$ref": "#/components/schemas/HubStoreAccessControlPolicyDescription"
            }
          },
          "policyGroupDescriptions": {
            "type": "array",
            "description": "Access control policy group descriptions for the hub store.",
            "items": {
              "$ref": "#/components/schemas/HubStoreAccessControlPolicyGroupDescription"
            }
          }
        },
        "description": "Access control policy description data for the hub store."
      },
      "HubStoreAccessControlPolicyDescription": {
        "type": "object",
        "properties": {
          "policyName": {
            "type": "string",
            "description": "The name of the policy."
          },
          "displayName": {
            "type": "string",
            "description": "The display name for a specific language."
          },
          "description": {
            "type": "string",
            "description": "The description for a specific language."
          },
          "_action": {
            "type": "string",
            "description": "The action to be performed on the object during a request. In a response, the value of action is always null. The default action is update.",
            "default": "update",
            "enum": [
              "update",
              "delete"
            ]
          }
        },
        "description": "An access control policy description for the hub store."
      },
      "HubStoreAccessControlPolicyGroupDescription": {
        "type": "object",
        "properties": {
          "policyGroupName": {
            "type": "string",
            "description": "The name of the policy group."
          },
          "displayName": {
            "type": "string",
            "description": "The display name for a specific language."
          },
          "description": {
            "type": "string",
            "description": "The description for a specific language."
          },
          "_action": {
            "type": "string",
            "description": "The action to be performed on the object during a request. In a response, the value of action is always null. The default action is update.",
            "default": "update",
            "enum": [
              "update",
              "delete"
            ]
          }
        },
        "description": "An access control policy group description."
      },
      "StorefrontAssetStore": {
        "required": [
          "store",
          "storeOwnerOrganization"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique numeric ID for identifying the store."
          },
          "configurations": {
            "$ref": "#/components/schemas/StorefrontAssetStoreConfigurations"
          },
          "features": {
            "$ref": "#/components/schemas/StorefrontAssetStoreFeatures"
          },
          "inventoryAdjustmentCodes": {
            "$ref": "#/components/schemas/StorefrontAssetStoreInventoryAdjustmentCodes"
          },
          "shippingModes": {
            "$ref": "#/components/schemas/StorefrontAssetStoreShippingModes"
          },
          "store": {
            "$ref": "#/components/schemas/Store"
          },
          "storeOwnerOrganization": {
            "$ref": "#/components/schemas/StoreOwnerOrganization"
          },
          "storeRelationships": {
            "$ref": "#/components/schemas/StorefrontAssetStoreStoreRelationships"
          },
          "policyData": {
            "$ref": "#/components/schemas/StorefrontAssetStoreAccessControlPolicyData"
          },
          "policyDescriptionData": {
            "$ref": "#/components/schemas/StorefrontAssetStoreAccessControlPolicyDescriptionData"
          }
        }
      },
      "StorefrontAssetStoreShippingModes": {
        "type": "array",
        "description": "The shipping modes for storefront asset store.",
        "items": {
          "$ref": "#/components/schemas/StorefrontAssetStoreShippingMode"
        }
      },
      "StorefrontAssetStoreShippingMode": {
        "type": "object",
        "properties": {
          "carrier": {
            "type": "string",
            "description": "A shipping carrier identifier. The company that provides shipping services from a fulfillment center to a customer."
          },
          "code": {
            "type": "string",
            "description": "A merchant assigned code, unique for the StoreEntity."
          },
          "default": {
            "type": "string",
            "description": "A longer description of the hub store suitable for display to customers."
          }
        },
        "description": "A shipping mode for the storefront asset store."
      },
      "StorefrontAssetStoreInventoryAdjustmentCodes": {
        "type": "array",
        "description": "The inventory adjustment codes for storefront asset store.",
        "items": {
          "$ref": "#/components/schemas/StorefrontAssetStoreInventoryAdjustmentCode"
        }
      },
      "StorefrontAssetStoreInventoryAdjustmentCode": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "description": "A code that uniquely identifies this inventory adjustment code for a particular StoreEntity, suitable for display in a user interface that manages inventory adjustments and inventory adjustment codes."
          },
          "description": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/StorefrontAssetStoreInventoryAdjustmentCodeDescription"
            }
          }
        },
        "description": "An inventory adjustment code for the storefront asset store."
      },
      "StorefrontAssetStoreInventoryAdjustmentCodeDescription": {
        "type": "object",
        "properties": {
          "locale": {
            "type": "string",
            "description": "The locale of the descriptions. For example, en_US."
          },
          "description": {
            "type": "string",
            "description": "A description of the inventory adjustment code."
          }
        },
        "description": "A description for a inventory adjustment code."
      },
      "StorefrontAssetStoreConfigurations": {
        "type": "array",
        "description": "The store configurations for the storefront asset store.",
        "items": {
          "$ref": "#/components/schemas/StorefrontAssetStoreConfiguration"
        }
      },
      "StorefrontAssetStoreConfiguration": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "The store configuration attribute name."
          },
          "value": {
            "type": "string",
            "description": "The store configuration attribute value."
          }
        },
        "description": "A store configuration for the storefront asset store."
      },
      "StorefrontAssetStoreFeatures": {
        "type": "array",
        "description": "The features for the storefront asset store.",
        "items": {
          "$ref": "#/components/schemas/StorefrontAssetStoreFeature"
        }
      },
      "StorefrontAssetStoreFeature": {
        "type": "object",
        "properties": {
          "defaultContents": {
            "type": "array",
            "description": "The default content to display in an e-marketing spot.",
            "items": {
              "$ref": "#/components/schemas/StorefrontAssetStoreDefaultContent"
            }
          },
          "description": {
            "type": "string",
            "description": "The description of the e-marketing spot."
          },
          "name": {
            "type": "string",
            "description": "The name of the e-marketing spot."
          },
          "usage": {
            "type": "string",
            "description": "Defines the usage type of e-marketing spot. E-marketing spots can be used to deliver marketing message or store contents. The following are the valid usage types: <br>* MARKETING - Delivers marketing message.<br>* CONTENT - Delivers store content.<br>* LAYOUTMARKETINGSPOT - Displays Commerce Composer layouts.<br>* SEARCH - Used by search rules.<br>* STOREFEATURE - Used by store functions.<br>* STOREFILEREF - Used by store style selection.",
            "enum": [
              "MARKETING",
              "CONTENT",
              "LAYOUTMARKETINGSPOT",
              "STOREFEATURE",
              "STOREFILEREF"
            ]
          }
        },
        "description": "A feature for the storefront asset store."
      },
      "StorefrontAssetStoreDefaultContent": {
        "type": "object",
        "properties": {
          "content": {
            "type": "string",
            "description": "The unique identifier of the content. For content of type MarketingContent, this is the COLLATERAL.COLLATERAL_ID. For content of type CatalogGroup, this is the CATGROUP.CATGROUP_ID. For content of type CatalogEntry, this is the CATENTRY.CATENTRY_ID."
          },
          "contentType": {
            "type": "string",
            "description": "The type of content which can be ordered. Valid values include: CatalogGroup, CatalogEntry, MarketingContent. When used by store functions, valid values include: FeatureEnabled, URL, Locales.",
            "enum": [
              "CatalogEntry",
              "CatalogGroup",
              "FeatureEnabled",
              "Locales",
              "MarketingContent",
              "URL"
            ]
          }
        },
        "description": "The default content for the storefront asset store."
      },
      "StorefrontAssetStoreStoreRelationships": {
        "type": "array",
        "description": "The store relationships for the storefront asset store.",
        "items": {
          "$ref": "#/components/schemas/StorefrontAssetStoreStoreRelationship"
        }
      },
      "StorefrontAssetStoreStoreRelationship": {
        "type": "object",
        "properties": {
          "sequence": {
            "type": "string",
            "description": "The selection sequence number. Used when the store has multiple related stores for the same relationship type. See the Knowledge Center topic 'Relationships between stores' for details."
          },
          "storeReference": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "description": "The base name of the directory in which store-specific web assets, such as JSP files and property files, are found."
              },
              "owners": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/StorefrontAssetStoreOwner"
                }
              }
            }
          }
        },
        "description": "A store relationship for the storefront asset store."
      },
      "StorefrontAssetStoreOwner": {
        "type": "object",
        "properties": {
          "organizationReference": {
            "$ref": "#/components/schemas/StorefrontAssetStoreOrganizationReference"
          }
        },
        "description": "The owner of the storefront asset store."
      },
      "StorefrontAssetStoreOrganizationReference": {
        "type": "object",
        "properties": {
          "distinguishedName": {
            "type": "string",
            "description": "Distinguished Name (DN) of the organization or organizational unit, for LDAP use."
          }
        },
        "description": "The organization reference of the storefront asset store."
      },
      "StorefrontAssetStoreAccessControlPolicyData": {
        "type": "object",
        "properties": {
          "policies": {
            "type": "array",
            "description": "Necessary access control policies for the storefront asset store.",
            "items": {
              "$ref": "#/components/schemas/StorefrontAssetStoreAccessControlPolicy"
            }
          },
          "policyGroups": {
            "type": "array",
            "description": "Necessary access control policy groups for the storefront asset store.",
            "items": {
              "$ref": "#/components/schemas/StorefrontAssetStoreAccessControlPolicyGroup"
            }
          }
        },
        "description": "Access control policy data for the storefront asset store."
      },
      "StorefrontAssetStoreAccessControlPolicy": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "The name of the policy."
          },
          "userGroup": {
            "type": "string",
            "description": "The user group."
          },
          "userGroupOwnerOrganizationId": {
            "type": "integer",
            "description": "The organization ID who owns the user group.",
            "format": "int64",
            "example": -2001
          },
          "actionGroupName": {
            "type": "string",
            "description": "The action group name."
          },
          "resourceGroupName": {
            "type": "string",
            "description": "The resource group name."
          },
          "policyType": {
            "type": "string",
            "description": "The policy type."
          },
          "relationGroupName": {
            "type": "string",
            "description": "The relation group name."
          },
          "_action": {
            "type": "string",
            "description": "The action to be performed on the object during a request. In a response, the value of action is always null. The default action is update.",
            "default": "update",
            "enum": [
              "update",
              "delete"
            ]
          }
        },
        "description": "An access control policy for the storefront asset store."
      },
      "StorefrontAssetStoreAccessControlPolicyGroup": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "The name of the policy group."
          },
          "policyGroupPolicies": {
            "type": "array",
            "description": "The policy group policies.",
            "items": {
              "$ref": "#/components/schemas/StorefrontAssetStoreAccessControlPolicyGroupPolicy"
            }
          },
          "policyGroupSubscriptions": {
            "type": "array",
            "description": "The policy group subscriptions.",
            "items": {
              "$ref": "#/components/schemas/StorefrontAssetStoreAccessControlPolicyGroupSubscription"
            }
          },
          "_action": {
            "type": "string",
            "description": "The action to be performed on the object during a request. In a response, the value of action is always null. The default action is update.",
            "default": "update",
            "enum": [
              "update",
              "delete"
            ]
          }
        },
        "description": "An access control policy group for the storefront asset store."
      },
      "StorefrontAssetStoreAccessControlPolicyGroupPolicy": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "The name of the policy."
          },
          "_action": {
            "type": "string",
            "description": "The action to be performed on the object during a request. In a response, the value of action is always null. The default action is update.",
            "default": "update",
            "enum": [
              "update",
              "delete"
            ]
          }
        },
        "description": "An access control policy group policy."
      },
      "StorefrontAssetStoreAccessControlPolicyGroupSubscription": {
        "type": "object",
        "properties": {
          "_action": {
            "type": "string",
            "description": "The action to be performed on the object during a request. In a response, the value of action is always null. The default action is update.",
            "default": "update",
            "enum": [
              "update",
              "delete"
            ]
          }
        },
        "description": "An access control policy group subscription."
      },
      "StorefrontAssetStoreAccessControlPolicyDescriptionData": {
        "required": [
          "locale"
        ],
        "type": "object",
        "properties": {
          "locale": {
            "type": "string",
            "description": "The locale of the description language."
          },
          "policyDescriptions": {
            "type": "array",
            "description": "Access control policy descriptions for the storefront asset store.",
            "items": {
              "$ref": "#/components/schemas/StorefrontAssetStoreAccessControlPolicyDescription"
            }
          },
          "policyGroupDescriptions": {
            "type": "array",
            "description": "Access control policy group descriptions for the storefront asset store.",
            "items": {
              "$ref": "#/components/schemas/StorefrontAssetStoreAccessControlPolicyGroupDescription"
            }
          }
        },
        "description": "Access control policy description data for the storefront asset store."
      },
      "StorefrontAssetStoreAccessControlPolicyDescription": {
        "type": "object",
        "properties": {
          "policyName": {
            "type": "string",
            "description": "The name of the policy."
          },
          "displayName": {
            "type": "string",
            "description": "The display name for a specific language."
          },
          "description": {
            "type": "string",
            "description": "The description for a specific language."
          },
          "_action": {
            "type": "string",
            "description": "The action to be performed on the object during a request. In a response, the value of action is always null. The default action is update.",
            "default": "update",
            "enum": [
              "update",
              "delete"
            ]
          }
        },
        "description": "An access control policy description for the storefront asset store."
      },
      "StorefrontAssetStoreAccessControlPolicyGroupDescription": {
        "type": "object",
        "properties": {
          "policyGroupName": {
            "type": "string",
            "description": "The name of the policy group."
          },
          "displayName": {
            "type": "string",
            "description": "The display name for a specific language."
          },
          "description": {
            "type": "string",
            "description": "The description for a specific language."
          },
          "_action": {
            "type": "string",
            "description": "The action to be performed on the object during a request. In a response, the value of action is always null. The default action is update.",
            "default": "update",
            "enum": [
              "update",
              "delete"
            ]
          }
        },
        "description": "An access control policy group description."
      },
      "CatalogAssetStore": {
        "required": [
          "fulfillmentCenters",
          "store",
          "storeOwnerOrganization"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique numeric ID for identifying the catalog asset store."
          },
          "storeOwnerOrganization": {
            "$ref": "#/components/schemas/StoreOwnerOrganization"
          },
          "store": {
            "$ref": "#/components/schemas/Store"
          },
          "fulfillmentCenters": {
            "$ref": "#/components/schemas/CatalogAssetStoreFulfillmentCenters"
          },
          "catalogDescriptions": {
            "$ref": "#/components/schemas/CatalogAssetStoreCatalogDescriptions"
          }
        },
        "description": "A store that contains the shareable catalog data for multiple extended sites."
      },
      "CatalogAssetStoreFulfillmentCenters": {
        "type": "array",
        "description": "The fulfillment centers for catalog asset store.",
        "items": {
          "$ref": "#/components/schemas/CatalogAssetStoreFulfillmentCenter"
        }
      },
      "CatalogAssetStoreFulfillmentCenter": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "The unique numeric ID for identifying the fulfillment center.",
            "format": "int32"
          },
          "name": {
            "type": "string",
            "description": "A string that, along with the owner, uniquely identifies this fulfillment center."
          },
          "defaultShipOffset": {
            "type": "integer",
            "description": "An estimate of the number seconds it takes for an item to be shipped from this fulfillment center.",
            "format": "int32"
          },
          "inventoryOperationFlags": {
            "type": "integer",
            "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).",
            "format": "int32"
          },
          "maxNumPick": {
            "type": "integer",
            "description": "The maximum number of the releases per pick batch.",
            "format": "int32"
          },
          "pickDelayInMin": {
            "type": "integer",
            "description": "The delay in minutes from the time an order is placed until one of its releases can be included.",
            "format": "int32"
          },
          "default": {
            "type": "boolean",
            "description": "The flag for default fulfillment center for the catalog asset store."
          },
          "descriptions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CatalogAssetStoreFulfillmentCenterDescription"
            }
          }
        },
        "description": "A fulfillment center for the catalog asset store."
      },
      "CatalogAssetStoreFulfillmentCenterDescription": {
        "type": "object",
        "properties": {
          "languageId": {
            "type": "integer",
            "description": "The language of the description. For a list of integer language identifiers, please refer to the Knowledge Center.",
            "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 this language."
          },
          "storeAddressId": {
            "type": "integer",
            "description": "The unique numeric ID for identifying the physical location of the fulfillment center.",
            "format": "int64"
          }
        },
        "description": "Description for a fulfillment center."
      },
      "CatalogAssetStoreCatalogDescriptions": {
        "type": "array",
        "description": "The descriptions for the catalog.",
        "items": {
          "$ref": "#/components/schemas/CatalogAssetStoreCatalogDescription"
        }
      },
      "CatalogAssetStoreCatalogDescription": {
        "type": "object",
        "properties": {
          "languageId": {
            "type": "integer",
            "description": "The language of the description. For a list of integer language identifiers, please refer to the Knowledge Center.",
            "format": "int32"
          },
          "name": {
            "type": "string",
            "description": "The name of the description for the master catalog."
          },
          "shortDescription": {
            "type": "string",
            "description": "The short description for the master catalog in this language."
          },
          "longDescription": {
            "type": "string",
            "description": "The long description for the master catalog in this language."
          }
        },
        "description": "The description for the catalog."
      }
    },
    "securitySchemes": {
      "basicAuth": {
        "type": "http",
        "scheme": "basic"
      }
    }
  },
  "security": [
    {
      "basicAuth": []
    }
  ],
  "x-components": {}
}
