{
  "openapi": "3.0.1",
  "info": {
    "title": "Promotion",
    "version": "9.1.20.0",
    "description": "Create and administer promotion",
    "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": "Promotion",
      "description": "Create and administer promotion."
    }
  ],
  "paths": {
    "/promotions": {
      "get": {
        "summary": "Get all the promotions in a store.",
        "tags": [
          "Promotion"
        ],
        "parameters": [
          {
            "name": "storeId",
            "in": "query",
            "description": "The unique numeric ID for identifying the store.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-context-data": "storeId"
            },
            "x-context-data": "storeId"
          },
          {
            "name": "dataLanguageIds",
            "in": "query",
            "description": "The integer(s) for identifying the language of the member group description. For a list of the integers that map to the supported default languages, refer to the Knowledge Center. Multiple identifiers should be specified as a comma-separated list.",
            "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",
              "x-entity-path": "dataArea/get/recordSetStartNumber"
            },
            "x-entity-path": "dataArea/get/recordSetStartNumber"
          },
          {
            "name": "limit",
            "in": "query",
            "description": "The maximum number of records to return.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-entity-path": "dataArea/get/maxItems"
            },
            "x-entity-path": "dataArea/get/maxItems"
          }
        ],
        "responses": {
          "200": {
            "description": "The operation is successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PromotionCollection"
                }
              }
            },
            "x-entity-path": "dataArea/promotion"
          }
        },
        "x-expression-template": "{_wcf.ap='{accessProfile}';_wcf.dataLanguageIds='{dataLanguageIds}'}/Promotion",
        "x-facade-client-class": "com.ibm.commerce.promotion.facade.client.PromotionFacadeClient",
        "x-facade-client-method": "getPromotion",
        "x-parameters": {
          "accessProfile": "IBM_Admin_Details"
        },
        "x-request-bod-class": "com.ibm.commerce.promotion.facade.datatypes.GetPromotionType"
      },
      "post": {
        "summary": "Create a promotion.",
        "tags": [
          "Promotion"
        ],
        "parameters": [
          {
            "name": "storeId",
            "in": "query",
            "description": "The unique numeric ID for identifying the store.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-context-data": "storeId",
              "x-entity-path": "dataArea/promotion[1]/promotionIdentifier/externalIdentifier/storeIdentifier/uniqueID"
            },
            "x-context-data": "storeId",
            "x-entity-path": "dataArea/promotion[1]/promotionIdentifier/externalIdentifier/storeIdentifier/uniqueID"
          }
        ],
        "requestBody": {
          "description": "The request body.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Promotion"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "The operation is successful.",
            "headers": {
              "Location": {
                "description": "The URI of the promotion.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {},
            "x-entity-path": "dataArea/promotion[1]/promotionIdentifier/uniqueID",
            "links": {
              "GetPromotionsByPromotionsId": {
                "operationRef": "#/paths/~1promotions~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 /promotions/{id}`.\n"
              },
              "DeletePromotionsByPromotionsId": {
                "operationRef": "#/paths/~1promotions~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 /promotions/{id}`.\n"
              },
              "UpdatePromotionsByPromotionsId": {
                "operationRef": "#/paths/~1promotions~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 /promotions/{id}`.\n"
              }
            }
          }
        },
        "x-action-code": "Add",
        "x-expression-template": "/Promotion[1]",
        "x-facade-client-class": "com.ibm.commerce.promotion.facade.client.PromotionFacadeClient",
        "x-facade-client-method": "processPromotion",
        "x-request-bod-class": "com.ibm.commerce.promotion.facade.datatypes.ProcessPromotionType",
        "x-codegen-request-body-name": "body"
      }
    },
    "/promotions/by-coupon-and-name": {
      "get": {
        "summary": "Find promotions by whether or not a coupon is required and its administrative name.",
        "tags": [
          "Promotion"
        ],
        "parameters": [
          {
            "name": "storeId",
            "in": "query",
            "description": "The unique numeric ID for identifying the store.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-context-data": "storeId"
            },
            "x-context-data": "storeId"
          },
          {
            "name": "dataLanguageIds",
            "in": "query",
            "description": "The integer(s) for identifying the language of the member group description. For a list of the integers that map to the supported default languages, refer to the Knowledge Center. Multiple identifiers should be specified as a comma-separated list.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "couponRequired",
            "in": "query",
            "description": "A boolean indicator as to whether or not the promotions are coupon based.",
            "required": true,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "searchText",
            "in": "query",
            "description": "The administrative name pattern to search for.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The operation is successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PromotionCollection"
                }
              }
            },
            "x-entity-path": "dataArea/promotion"
          }
        },
        "x-expression-builder-class": "com.ibm.commerce.foundation.internal.client.taglib.util.SearchExpressionBuilder",
        "x-expression-builder-method": "formatExpression",
        "x-facade-client-class": "com.ibm.commerce.promotion.facade.client.PromotionFacadeClient",
        "x-facade-client-method": "getPromotion",
        "x-parameters": {
          "accessProfile": "IBM_Admin_Details",
          "template": "/Promotion[CouponRequired='$couponRequired$' and search(AdministrativeName='$searchText$')]"
        },
        "x-request-bod-class": "com.ibm.commerce.promotion.facade.datatypes.GetPromotionType"
      }
    },
    "/promotions/by-coupon-required": {
      "get": {
        "summary": "Find promotions by whether or not a coupon is required.",
        "tags": [
          "Promotion"
        ],
        "parameters": [
          {
            "name": "storeId",
            "in": "query",
            "description": "The unique numeric ID for identifying the store.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-context-data": "storeId"
            },
            "x-context-data": "storeId"
          },
          {
            "name": "dataLanguageIds",
            "in": "query",
            "description": "The integer(s) for identifying the language of the member group description. For a list of the integers that map to the supported default languages, refer to the Knowledge Center. Multiple identifiers should be specified as a comma-separated list.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "couponRequired",
            "in": "query",
            "description": "A boolean indicator as to whether or not the promotions are coupon based.",
            "required": true,
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The operation is successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PromotionCollection"
                }
              }
            },
            "x-entity-path": "dataArea/promotion"
          }
        },
        "x-expression-template": "{_wcf.ap={accessProfile};_wcf.dataLanguageIds='{dataLanguageIds}'}/Promotion[CouponRequired='{couponRequired}']",
        "x-facade-client-class": "com.ibm.commerce.promotion.facade.client.PromotionFacadeClient",
        "x-facade-client-method": "getPromotion",
        "x-parameters": {
          "accessProfile": "IBM_Admin_Details"
        },
        "x-request-bod-class": "com.ibm.commerce.promotion.facade.datatypes.GetPromotionType"
      }
    },
    "/promotions/by-excluded-catalog-entry-id": {
      "get": {
        "summary": "Find promotions by excluded catalog entry.",
        "tags": [
          "Promotion"
        ],
        "parameters": [
          {
            "name": "storeId",
            "in": "query",
            "description": "The unique numeric ID for identifying the store.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-context-data": "storeId"
            },
            "x-context-data": "storeId"
          },
          {
            "name": "dataLanguageIds",
            "in": "query",
            "description": "The integer(s) for identifying the language of the member group description. For a list of the integers that map to the supported default languages, refer to the Knowledge Center. Multiple identifiers should be specified as a comma-separated list.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "catalogEntryId",
            "in": "query",
            "description": "The unique ID for identifying the excluded catalog entry to be searched.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The operation is successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PromotionCollection"
                }
              }
            },
            "x-entity-path": "dataArea/promotion"
          }
        },
        "x-expression-template": "{_wcf.ap={accessProfile};_wcf.dataLanguageIds='{dataLanguageIds}'}/Promotion[Element[(ElementType='ExcludeCatalogEntryIdentifier') and ElementVariable[(Value='{catalogEntryId}')]]]",
        "x-facade-client-class": "com.ibm.commerce.promotion.facade.client.PromotionFacadeClient",
        "x-facade-client-method": "getPromotion",
        "x-parameters": {
          "accessProfile": "IBM_Admin_Details"
        },
        "x-request-bod-class": "com.ibm.commerce.promotion.facade.datatypes.GetPromotionType"
      }
    },
    "/promotions/by-excluded-category-id": {
      "get": {
        "summary": "Find promotions by excluded category.",
        "tags": [
          "Promotion"
        ],
        "parameters": [
          {
            "name": "storeId",
            "in": "query",
            "description": "The unique numeric ID for identifying the store.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-context-data": "storeId"
            },
            "x-context-data": "storeId"
          },
          {
            "name": "dataLanguageIds",
            "in": "query",
            "description": "The integer(s) for identifying the language of the member group description. For a list of the integers that map to the supported default languages, refer to the Knowledge Center. Multiple identifiers should be specified as a comma-separated list.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "categoryId",
            "in": "query",
            "description": "The unique ID for identifying the excluded category to be searched.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The operation is successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PromotionCollection"
                }
              }
            },
            "x-entity-path": "dataArea/promotion"
          }
        },
        "x-expression-template": "{_wcf.ap={accessProfile};_wcf.dataLanguageIds='{dataLanguageIds}'}/Promotion[Element[(ElementType='ExcludeCategoryIdentifier') and ElementVariable[(Value='{categoryId}')]]]",
        "x-facade-client-class": "com.ibm.commerce.promotion.facade.client.PromotionFacadeClient",
        "x-facade-client-method": "getPromotion",
        "x-parameters": {
          "accessProfile": "IBM_Admin_Details"
        },
        "x-request-bod-class": "com.ibm.commerce.promotion.facade.datatypes.GetPromotionType"
      }
    },
    "/promotions/by-gift-catalog-entry-id": {
      "get": {
        "summary": "Find promotions by gift catalog entry.",
        "tags": [
          "Promotion"
        ],
        "parameters": [
          {
            "name": "storeId",
            "in": "query",
            "description": "The unique numeric ID for identifying the store.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-context-data": "storeId"
            },
            "x-context-data": "storeId"
          },
          {
            "name": "dataLanguageIds",
            "in": "query",
            "description": "The integer(s) for identifying the language of the member group description. For a list of the integers that map to the supported default languages, refer to the Knowledge Center. Multiple identifiers should be specified as a comma-separated list.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "catalogEntryId",
            "in": "query",
            "description": "The unique ID for identifying the gift catalog entry to be searched.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The operation is successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PromotionCollection"
                }
              }
            },
            "x-entity-path": "dataArea/promotion"
          }
        },
        "x-expression-template": "{_wcf.ap={accessProfile};_wcf.dataLanguageIds='{dataLanguageIds}'}/Promotion[Element[(ElementType='GiftCatalogEntryIdentifier') and ElementVariable[(Value='{catalogEntryId}')]]]",
        "x-facade-client-class": "com.ibm.commerce.promotion.facade.client.PromotionFacadeClient",
        "x-facade-client-method": "getPromotion",
        "x-parameters": {
          "accessProfile": "IBM_Admin_Details"
        },
        "x-request-bod-class": "com.ibm.commerce.promotion.facade.datatypes.GetPromotionType"
      }
    },
    "/promotions/by-ids": {
      "get": {
        "summary": "Get promotions by ids.",
        "tags": [
          "Promotion"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "description": "The unique numeric ID for identifying the promotion.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "storeId",
            "in": "query",
            "description": "The unique numeric ID for identifying the store.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-context-data": "storeId"
            },
            "x-context-data": "storeId"
          },
          {
            "name": "dataLanguageIds",
            "in": "query",
            "description": "The integer(s) for identifying the language of the member group description. For a list of the integers that map to the supported default languages, refer to the Knowledge Center. Multiple identifiers should be specified as a comma-separated list.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The operation is successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PromotionCollection"
                }
              }
            },
            "x-entity-path": "dataArea/promotion"
          }
        },
        "x-expression-template": "{_wcf.ap='{accessProfile}';_wcf.dataLanguageIds='{dataLanguageIds}'}/Promotion[PromotionIdentifier[(UniqueID='{id}')]]",
        "x-facade-client-class": "com.ibm.commerce.promotion.facade.client.PromotionFacadeClient",
        "x-facade-client-method": "getPromotion",
        "x-parameters": {
          "accessProfile": "IBM_Admin_Details"
        },
        "x-request-bod-class": "com.ibm.commerce.promotion.facade.datatypes.GetPromotionType"
      }
    },
    "/promotions/by-included-catalog-entry-id": {
      "get": {
        "summary": "Find promotions by included catalog entry.",
        "tags": [
          "Promotion"
        ],
        "parameters": [
          {
            "name": "storeId",
            "in": "query",
            "description": "The unique numeric ID for identifying the store.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-context-data": "storeId"
            },
            "x-context-data": "storeId"
          },
          {
            "name": "dataLanguageIds",
            "in": "query",
            "description": "The integer(s) for identifying the language of the member group description. For a list of the integers that map to the supported default languages, refer to the Knowledge Center. Multiple identifiers should be specified as a comma-separated list.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "catalogEntryId",
            "in": "query",
            "description": "The unique ID for identifying the catalog entry to be searched.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The operation is successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PromotionCollection"
                }
              }
            },
            "x-entity-path": "dataArea/promotion"
          }
        },
        "x-expression-template": "{_wcf.ap={accessProfile};_wcf.dataLanguageIds='{dataLanguageIds}'}/Promotion[Element[(ElementType='IncludeCatalogEntryIdentifier') and ElementVariable[(Value='{catalogEntryId}')]]]",
        "x-facade-client-class": "com.ibm.commerce.promotion.facade.client.PromotionFacadeClient",
        "x-facade-client-method": "getPromotion",
        "x-parameters": {
          "accessProfile": "IBM_Admin_Details"
        },
        "x-request-bod-class": "com.ibm.commerce.promotion.facade.datatypes.GetPromotionType"
      }
    },
    "/promotions/by-included-category-id": {
      "get": {
        "summary": "Find promotions by included category.",
        "tags": [
          "Promotion"
        ],
        "parameters": [
          {
            "name": "storeId",
            "in": "query",
            "description": "The unique numeric ID for identifying the store.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-context-data": "storeId"
            },
            "x-context-data": "storeId"
          },
          {
            "name": "dataLanguageIds",
            "in": "query",
            "description": "The integer(s) for identifying the language of the member group description. For a list of the integers that map to the supported default languages, refer to the Knowledge Center. Multiple identifiers should be specified as a comma-separated list.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "categoryId",
            "in": "query",
            "description": "The unique ID of the category to be searched.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The operation is successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PromotionCollection"
                }
              }
            },
            "x-entity-path": "dataArea/promotion"
          }
        },
        "x-expression-template": "{_wcf.ap={accessProfile};_wcf.dataLanguageIds='{dataLanguageIds}'}/Promotion[Element[(ElementType='IncludeCategoryIdentifier') and ElementVariable[(Value='{categoryId}')]]]",
        "x-facade-client-class": "com.ibm.commerce.promotion.facade.client.PromotionFacadeClient",
        "x-facade-client-method": "getPromotion",
        "x-parameters": {
          "accessProfile": "IBM_Admin_Details"
        },
        "x-request-bod-class": "com.ibm.commerce.promotion.facade.datatypes.GetPromotionType"
      }
    },
    "/promotions/by-included-customer-segment-id": {
      "get": {
        "summary": "Find promotions by included customer segment.",
        "tags": [
          "Promotion"
        ],
        "parameters": [
          {
            "name": "storeId",
            "in": "query",
            "description": "The unique numeric ID for identifying the store.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-context-data": "storeId"
            },
            "x-context-data": "storeId"
          },
          {
            "name": "dataLanguageIds",
            "in": "query",
            "description": "The integer(s) for identifying the language of the member group description. For a list of the integers that map to the supported default languages, refer to the Knowledge Center. Multiple identifiers should be specified as a comma-separated list.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "segmentId",
            "in": "query",
            "description": "The included customer segment to be searched.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The operation is successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PromotionCollection"
                }
              }
            },
            "x-entity-path": "dataArea/promotion"
          }
        },
        "x-expression-template": "{_wcf.ap={accessProfile};_wcf.dataLanguageIds='{dataLanguageIds}'}/Promotion[Element[(ElementType='IncludeMemberGroupIdentifier') and ElementVariable[(Value='{segmentId}')]]]",
        "x-facade-client-class": "com.ibm.commerce.promotion.facade.client.PromotionFacadeClient",
        "x-facade-client-method": "getPromotion",
        "x-parameters": {
          "accessProfile": "IBM_Admin_Details"
        },
        "x-request-bod-class": "com.ibm.commerce.promotion.facade.datatypes.GetPromotionType"
      }
    },
    "/promotions/by-name-or-code": {
      "get": {
        "summary": "Find promotions by name and code pattern.",
        "tags": [
          "Promotion"
        ],
        "parameters": [
          {
            "name": "storeId",
            "in": "query",
            "description": "The unique numeric ID for identifying the store.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-context-data": "storeId"
            },
            "x-context-data": "storeId"
          },
          {
            "name": "dataLanguageIds",
            "in": "query",
            "description": "The integer(s) for identifying the language of the member group description. For a list of the integers that map to the supported default languages, refer to the Knowledge Center. Multiple identifiers should be specified as a comma-separated list.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "searchText",
            "in": "query",
            "description": "The search text.",
            "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",
              "x-entity-path": "dataArea/get/recordSetStartNumber"
            },
            "x-entity-path": "dataArea/get/recordSetStartNumber"
          },
          {
            "name": "limit",
            "in": "query",
            "description": "The maximum number of records to return.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-entity-path": "dataArea/get/maxItems"
            },
            "x-entity-path": "dataArea/get/maxItems"
          }
        ],
        "responses": {
          "200": {
            "description": "The operation is successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PromotionCollection"
                }
              }
            },
            "x-entity-path": "dataArea/promotion"
          }
        },
        "x-expression-builder-class": "com.ibm.commerce.foundation.internal.client.taglib.util.SearchExpressionBuilder",
        "x-expression-builder-method": "formatExpression",
        "x-facade-client-class": "com.ibm.commerce.promotion.facade.client.PromotionFacadeClient",
        "x-facade-client-method": "getPromotion",
        "x-parameters": {
          "accessProfile": "IBM_Admin_Details",
          "template": "/Promotion[search(AdministrativeName='$searchText$' or Code='$searchText$')]"
        },
        "x-request-bod-class": "com.ibm.commerce.promotion.facade.datatypes.GetPromotionType"
      }
    },
    "/promotions/displayable-by-ids": {
      "get": {
        "summary": "Get displayable promotions by IDs.",
        "tags": [
          "Promotion"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "description": "The unique numeric ID for identifying the promotion.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "storeId",
            "in": "query",
            "description": "The unique numeric ID for identifying the store.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-context-data": "storeId"
            },
            "x-context-data": "storeId"
          },
          {
            "name": "dataLanguageIds",
            "in": "query",
            "description": "The integer(s) for identifying the language of the member group description. For a list of the integers that map to the supported default languages, refer to the Knowledge Center. Multiple identifiers should be specified as a comma-separated list.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The operation is successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PromotionCollection"
                }
              }
            },
            "x-entity-path": "dataArea/promotion"
          }
        },
        "x-expression-template": "{_wcf.ap='{accessProfile}';_wcf.dataLanguageIds='{dataLanguageIds}'}/Promotion[(Status=0 or Status=1 or Status=3 or Status=5) and PromotionIdentifier[(UniqueID='{id}')]]",
        "x-facade-client-class": "com.ibm.commerce.promotion.facade.client.PromotionFacadeClient",
        "x-facade-client-method": "getPromotion",
        "x-parameters": {
          "accessProfile": "IBM_Admin_Details"
        },
        "x-request-bod-class": "com.ibm.commerce.promotion.facade.datatypes.GetPromotionType"
      }
    },
    "/promotions/search": {
      "get": {
        "summary": "Advanced search for promotions.",
        "tags": [
          "Promotion"
        ],
        "parameters": [
          {
            "name": "dataLanguageIds",
            "in": "query",
            "description": "The integer(s) for identifying the language of the member group description. For a list of the integers that map to the supported default languages, refer to the Knowledge Center. Multiple identifiers should be specified as a comma-separated list.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "storeId",
            "in": "query",
            "description": "The unique numeric ID for identifying the store.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-context-data": "storeId"
            },
            "x-context-data": "storeId"
          },
          {
            "name": "type",
            "in": "query",
            "description": "The promotion type.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "startDateTimeStart",
            "in": "query",
            "description": "The promotion start date that falls on or after this date (inclusive).",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "startDateTimeEnd",
            "in": "query",
            "description": "The promotion start date that falls on or before this date (inclusive).",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "status",
            "in": "query",
            "description": "The promotion status.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "redemptionMethod",
            "in": "query",
            "description": "The promotion redemption method.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "searchText",
            "in": "query",
            "description": "The search text of either the administrative name or the code.",
            "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",
              "x-entity-path": "dataArea/get/recordSetStartNumber"
            },
            "x-entity-path": "dataArea/get/recordSetStartNumber"
          },
          {
            "name": "limit",
            "in": "query",
            "description": "The maximum number of records to return.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-entity-path": "dataArea/get/maxItems"
            },
            "x-entity-path": "dataArea/get/maxItems"
          }
        ],
        "responses": {
          "200": {
            "description": "The operation is successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PromotionCollection"
                }
              }
            },
            "x-entity-path": "dataArea/promotion"
          }
        },
        "x-expression-builder-class": "com.ibm.commerce.rest.admin.v2.promotion.PromotionSearchExpressionBuilder",
        "x-expression-builder-method": "formatExpression",
        "x-facade-client-class": "com.ibm.commerce.promotion.facade.client.PromotionFacadeClient",
        "x-facade-client-method": "getPromotion",
        "x-parameters": {
          "accessProfile": "IBM_Admin_Details",
          "template": "{_wcf.ap='{accessProfile}';_pro.type='{type}';_pro.startDateTimeStart='{startDateTimeStart}';_pro.startDateTimeEnd='{startDateTimeEnd}';_pro.status='{status}';_pro.redemptionMethod='{redemptionMethod}'}/Promotion[search(AdministrativeName='{searchText}' or Code='{searchText}')]"
        },
        "x-request-bod-class": "com.ibm.commerce.promotion.facade.datatypes.GetPromotionType"
      }
    },
    "/promotions/{id}": {
      "get": {
        "summary": "Get a promotion.",
        "tags": [
          "Promotion"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique numeric ID for identifying the promotion.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "storeId",
            "in": "query",
            "description": "The unique numeric ID for identifying the store.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-context-data": "storeId"
            },
            "x-context-data": "storeId"
          },
          {
            "name": "dataLanguageIds",
            "in": "query",
            "description": "The integer(s) for identifying the language of the member group description. For a list of the integers that map to the supported default languages, refer to the Knowledge Center. Multiple identifiers should be specified as a comma-separated list.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The operation is successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Promotion"
                }
              }
            },
            "x-entity-path": "dataArea/promotion[1]"
          }
        },
        "x-expression-template": "{_wcf.ap='{accessProfile}';_wcf.dataLanguageIds='{dataLanguageIds}'}/Promotion[PromotionIdentifier[(UniqueID='{id}')]]",
        "x-facade-client-class": "com.ibm.commerce.promotion.facade.client.PromotionFacadeClient",
        "x-facade-client-method": "getPromotion",
        "x-parameters": {
          "accessProfile": "IBM_Admin_Details"
        },
        "x-request-bod-class": "com.ibm.commerce.promotion.facade.datatypes.GetPromotionType"
      },
      "delete": {
        "summary": "Delete a promotion.",
        "tags": [
          "Promotion"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique numeric ID for identifying the promotion.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-entity-path": "dataArea/promotion[1]/promotionIdentifier/uniqueID"
            },
            "x-entity-path": "dataArea/promotion[1]/promotionIdentifier/uniqueID"
          },
          {
            "name": "storeId",
            "in": "query",
            "description": "The unique numeric ID for identifying the store.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-context-data": "storeId",
              "x-entity-path": "dataArea/promotion[1]/promotionIdentifier/externalIdentifier/storeIdentifier/uniqueID"
            },
            "x-context-data": "storeId",
            "x-entity-path": "dataArea/promotion[1]/promotionIdentifier/externalIdentifier/storeIdentifier/uniqueID"
          }
        ],
        "responses": {
          "204": {
            "description": "The operation is successful.",
            "content": {}
          }
        },
        "x-action-code": "Delete",
        "x-expression-template": "/Promotion[1]",
        "x-facade-client-class": "com.ibm.commerce.promotion.facade.client.PromotionFacadeClient",
        "x-facade-client-method": "processPromotion",
        "x-request-bod-class": "com.ibm.commerce.promotion.facade.datatypes.ProcessPromotionType"
      },
      "patch": {
        "summary": "Update a promotion.",
        "tags": [
          "Promotion"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique numeric ID for identifying the promotion.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-entity-path": "dataArea/promotion[1]/promotionIdentifier/uniqueID"
            },
            "x-entity-path": "dataArea/promotion[1]/promotionIdentifier/uniqueID"
          },
          {
            "name": "storeId",
            "in": "query",
            "description": "The unique numeric ID for identifying the store.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-context-data": "storeId",
              "x-entity-path": "dataArea/promotion[1]/promotionIdentifier/externalIdentifier/storeIdentifier/uniqueID"
            },
            "x-context-data": "storeId",
            "x-entity-path": "dataArea/promotion[1]/promotionIdentifier/externalIdentifier/storeIdentifier/uniqueID"
          }
        ],
        "requestBody": {
          "description": "The request body.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Promotion"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "The operation is successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Promotion"
                }
              }
            },
            "x-entity-path": "dataArea/promotion[1]"
          }
        },
        "x-action-code": "Change",
        "x-expression-template": "/Promotion[1]",
        "x-facade-client-class": "com.ibm.commerce.promotion.facade.client.PromotionFacadeClient",
        "x-facade-client-method": "changePromotion",
        "x-request-bod-class": "com.ibm.commerce.promotion.facade.datatypes.ChangePromotionType",
        "x-codegen-request-body-name": "body"
      }
    },
    "/promotions/{id}/activate": {
      "post": {
        "summary": "Activate a promotion.",
        "tags": [
          "Promotion"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique numeric ID for identifying the promotion.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-entity-path": "dataArea/promotion[1]/promotionIdentifier/uniqueID"
            },
            "x-entity-path": "dataArea/promotion[1]/promotionIdentifier/uniqueID"
          },
          {
            "name": "storeId",
            "in": "query",
            "description": "The unique numeric ID for identifying the store.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-context-data": "storeId",
              "x-entity-path": "dataArea/promotion[1]/promotionIdentifier/externalIdentifier/storeIdentifier/uniqueID"
            },
            "x-context-data": "storeId",
            "x-entity-path": "dataArea/promotion[1]/promotionIdentifier/externalIdentifier/storeIdentifier/uniqueID"
          }
        ],
        "responses": {
          "200": {
            "description": "The operation is successful.",
            "content": {}
          }
        },
        "x-action-code": "Activate",
        "x-expression-template": "/Promotion[1]",
        "x-facade-client-class": "com.ibm.commerce.promotion.facade.client.PromotionFacadeClient",
        "x-facade-client-method": "processPromotion",
        "x-request-bod-class": "com.ibm.commerce.promotion.facade.datatypes.ProcessPromotionType"
      }
    },
    "/promotions/{id}/archive": {
      "post": {
        "summary": "Archive a promotion.",
        "tags": [
          "Promotion"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique numeric ID for identifying the promotion.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-entity-path": "dataArea/promotion[1]/promotionIdentifier/uniqueID"
            },
            "x-entity-path": "dataArea/promotion[1]/promotionIdentifier/uniqueID"
          },
          {
            "name": "storeId",
            "in": "query",
            "description": "The unique numeric ID for identifying the store.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-context-data": "storeId",
              "x-entity-path": "dataArea/promotion[1]/promotionIdentifier/externalIdentifier/storeIdentifier/uniqueID"
            },
            "x-context-data": "storeId",
            "x-entity-path": "dataArea/promotion[1]/promotionIdentifier/externalIdentifier/storeIdentifier/uniqueID"
          }
        ],
        "responses": {
          "200": {
            "description": "The operation is successful.",
            "content": {}
          }
        },
        "x-action-code": "Archive",
        "x-expression-template": "/Promotion[1]",
        "x-facade-client-class": "com.ibm.commerce.promotion.facade.client.PromotionFacadeClient",
        "x-facade-client-method": "processPromotion",
        "x-request-bod-class": "com.ibm.commerce.promotion.facade.datatypes.ProcessPromotionType"
      }
    },
    "/promotions/{id}/deactivate": {
      "post": {
        "summary": "Deactivate a promotion.",
        "tags": [
          "Promotion"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique numeric ID for identifying the promotion.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-entity-path": "dataArea/promotion[1]/promotionIdentifier/uniqueID"
            },
            "x-entity-path": "dataArea/promotion[1]/promotionIdentifier/uniqueID"
          },
          {
            "name": "storeId",
            "in": "query",
            "description": "The unique numeric ID for identifying the store.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-context-data": "storeId",
              "x-entity-path": "dataArea/promotion[1]/promotionIdentifier/externalIdentifier/storeIdentifier/uniqueID"
            },
            "x-context-data": "storeId",
            "x-entity-path": "dataArea/promotion[1]/promotionIdentifier/externalIdentifier/storeIdentifier/uniqueID"
          }
        ],
        "responses": {
          "200": {
            "description": "The operation is successful.",
            "content": {}
          }
        },
        "x-action-code": "Deactivate",
        "x-expression-template": "/Promotion[1]",
        "x-facade-client-class": "com.ibm.commerce.promotion.facade.client.PromotionFacadeClient",
        "x-facade-client-method": "processPromotion",
        "x-request-bod-class": "com.ibm.commerce.promotion.facade.datatypes.ProcessPromotionType"
      }
    },
    "/promotions/{id}/descriptions": {
      "get": {
        "summary": "Get a description of a promotion.",
        "tags": [
          "Promotion"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique numeric ID for identifying the promotion.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "storeId",
            "in": "query",
            "description": "The unique numeric ID for identifying the store.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-context-data": "storeId"
            },
            "x-context-data": "storeId"
          },
          {
            "name": "dataLanguageIds",
            "in": "query",
            "description": "The integer(s) for identifying the language of the promotion description. For a list of the integers that map to the supported default languages, refer to the Knowledge Center. Multiple identifiers should be specified as a comma-separated list.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The operation is successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PromotionDescriptionCollection"
                }
              }
            },
            "x-entity-path": "dataArea/promotion[1]/description"
          }
        },
        "x-expression-template": "{_wcf.ap='{accessProfile}';_wcf.dataLanguageIds='{dataLanguageIds}'}/Promotion[PromotionIdentifier[(UniqueID='{id}')]]",
        "x-facade-client-class": "com.ibm.commerce.promotion.facade.client.PromotionFacadeClient",
        "x-facade-client-method": "getPromotion",
        "x-parameters": {
          "accessProfile": "IBM_Admin_Details"
        },
        "x-request-bod-class": "com.ibm.commerce.promotion.facade.datatypes.GetPromotionType"
      },
      "post": {
        "summary": "Create a description of a promotion.",
        "tags": [
          "Promotion"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique numeric ID for identifying the promotion.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-entity-path": "dataArea/promotion[1]/promotionIdentifier/uniqueID"
            },
            "x-entity-path": "dataArea/promotion[1]/promotionIdentifier/uniqueID"
          },
          {
            "name": "storeId",
            "in": "query",
            "description": "The unique numeric ID for identifying the store.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-context-data": "storeId",
              "x-entity-path": "dataArea/promotion[1]/promotionIdentifier/externalIdentifier/storeIdentifier/uniqueID"
            },
            "x-context-data": "storeId",
            "x-entity-path": "dataArea/promotion[1]/promotionIdentifier/externalIdentifier/storeIdentifier/uniqueID"
          }
        ],
        "requestBody": {
          "description": "The request body.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PromotionDescription"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "The operation is successful.",
            "headers": {
              "Location": {
                "description": "The URI of the promotion description.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {},
            "x-entity-path": "dataArea/promotion[1]/description[1]/language",
            "links": {
              "GetPromotionsByPromotionsId": {
                "operationRef": "#/paths/~1promotions~1{id}~1description/get",
                "parameters": {
                  "id": "$request.path.id",
                  "storeId": "$request.query.storeId"
                },
                "description": "The `id`,`storeId`  value used in the request body can be used as the `id`,`storeId` parameter in `GET /promotions/{id}/description`.\n"
              },
              "UpdatePromotionsByPromotionsId": {
                "operationRef": "#/paths/~1promotions~1{id}~1description/patch",
                "parameters": {
                  "id": "$request.path.id",
                  "storeId": "$request.query.storeId"
                },
                "description": "The `id`,`storeId` value used in the request body can be used as the `id`,`storeId` parameter in `PATCH /promotions/{id}/description`.\n"
              }
            }
          }
        },
        "x-action-code": "Add",
        "x-expression-template": "/Promotion[1]/Description[1]",
        "x-facade-client-class": "com.ibm.commerce.promotion.facade.client.PromotionFacadeClient",
        "x-facade-client-method": "changePromotion",
        "x-request-bod-class": "com.ibm.commerce.promotion.facade.datatypes.ChangePromotionType",
        "x-request-verb": "change",
        "x-codegen-request-body-name": "body"
      }
    },
    "/promotions/{id}/descriptions/{languageId}": {
      "patch": {
        "summary": "Update a description of a promotion.",
        "tags": [
          "Promotion"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique numeric ID for identifying the promotion.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-entity-path": "dataArea/promotion[1]/promotionIdentifier/uniqueID"
            },
            "x-entity-path": "dataArea/promotion[1]/promotionIdentifier/uniqueID"
          },
          {
            "name": "storeId",
            "in": "query",
            "description": "The unique numeric ID for identifying the store.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-context-data": "storeId",
              "x-entity-path": "dataArea/promotion[1]/promotionIdentifier/externalIdentifier/storeIdentifier/uniqueID"
            },
            "x-context-data": "storeId",
            "x-entity-path": "dataArea/promotion[1]/promotionIdentifier/externalIdentifier/storeIdentifier/uniqueID"
          },
          {
            "name": "languageId",
            "in": "path",
            "description": "The integer for identifying the language of the promotion description. For a list of the integers that map to the supported default languages, refer to the Knowledge Center.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-entity-path": "dataArea/promotion[1]/description[1]/language"
            },
            "x-entity-path": "dataArea/promotion[1]/description[1]/language"
          }
        ],
        "requestBody": {
          "description": "The request body.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PromotionDescription"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "The operation is successful.",
            "content": {}
          }
        },
        "x-action-code": "Change",
        "x-expression-template": "/Promotion[1]/Description[1]",
        "x-facade-client-class": "com.ibm.commerce.promotion.facade.client.PromotionFacadeClient",
        "x-facade-client-method": "changePromotion",
        "x-request-bod-class": "com.ibm.commerce.promotion.facade.datatypes.ChangePromotionType",
        "x-request-verb": "change",
        "x-codegen-request-body-name": "body"
      }
    },
    "/promotions/{id}/elements": {
      "get": {
        "summary": "Get a collection of promotion elements by promotion ID.",
        "tags": [
          "Promotion"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique numeric ID for identifying the promotion.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "storeId",
            "in": "query",
            "description": "The unique numeric ID for identifying the store.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-context-data": "storeId"
            },
            "x-context-data": "storeId"
          },
          {
            "name": "dataLanguageIds",
            "in": "query",
            "description": "The integer(s) for identifying the language of the member group description. For a list of the integers that map to the supported default languages, refer to the Knowledge Center. Multiple identifiers should be specified as a comma-separated list.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The operation is successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PromotionElementCollection"
                }
              }
            },
            "x-entity-path": "dataArea/promotion[1]/element"
          }
        },
        "x-expression-template": "{_wcf.ap={accessProfile};_wcf.dataLanguageIds='{dataLanguageIds}'}/Promotion[PromotionIdentifier[(UniqueID='{id}')]]",
        "x-facade-client-class": "com.ibm.commerce.promotion.facade.client.PromotionFacadeClient",
        "x-facade-client-method": "getPromotion",
        "x-parameters": {
          "accessProfile": "IBM_Admin_PromotionElements"
        },
        "x-request-bod-class": "com.ibm.commerce.promotion.facade.datatypes.GetPromotionType"
      },
      "post": {
        "summary": "Create a promotion element.",
        "tags": [
          "Promotion"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique numeric ID for identifying the promotion.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-entity-path": "dataArea/promotion[1]/promotionIdentifier/uniqueID"
            },
            "x-entity-path": "dataArea/promotion[1]/promotionIdentifier/uniqueID"
          },
          {
            "name": "storeId",
            "in": "query",
            "description": "The unique numeric ID for identifying the store.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-context-data": "storeId",
              "x-entity-path": "dataArea/promotion[1]/promotionIdentifier/externalIdentifier/storeIdentifier/uniqueID"
            },
            "x-context-data": "storeId",
            "x-entity-path": "dataArea/promotion[1]/promotionIdentifier/externalIdentifier/storeIdentifier/uniqueID"
          }
        ],
        "requestBody": {
          "description": "The request body.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PromotionElement"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "The operation is successful.",
            "headers": {
              "Location": {
                "description": "The URI of the promotion element.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {},
            "x-entity-path": "dataArea/promotion[1]/element[1]/elementName",
            "links": {
              "GetPromotionsByPromotionsId": {
                "operationRef": "#/paths/~1promotions~1{id}~1elements/get",
                "parameters": {
                  "id": "$request.path.id",
                  "storeId": "$request.query.storeId"
                },
                "description": "The `id`,`storeId` value used in the request body can be used as the `id`,`storeId` parameter in `GET /promotions/{id}/elements`.\n"
              },
              "DeletePromotionsByPromotionsId": {
                "operationRef": "#/paths/~1promotions~1{id}~1elements~1{name}/delete",
                "parameters": {
                  "id": "$request.path.id",
                  "name": "$request.path.name",
                  "storeId": "$request.query.storeId"
                },
                "description": "The `id`,`name`,`storeId` value used in the request body can be used as the `id`,`name`,`storeId` parameter in `DELETE /promotions/{id}/elements/{name}`.\n"
              },
              "UpdatePromotionsByPromotionsId": {
                "operationRef": "#/paths/~1promotions~1{id}~1elements~1{name}/patch",
                "parameters": {
                  "id": "$request.path.id",
                  "name": "$request.path.name",
                  "storeId": "$request.query.storeId"
                },
                "description": "The `id`,`name`,`storeId` value used in the request body can be used as the `id`,`name`,`storeId` parameter in `PATCH /promotions/{id}/elements/{name}`.\n"
              }
            }
          }
        },
        "x-action-code": "Add",
        "x-expression-template": "/Promotion[1]/Element[1]",
        "x-facade-client-class": "com.ibm.commerce.promotion.facade.client.PromotionFacadeClient",
        "x-facade-client-method": "changePromotion",
        "x-request-bod-class": "com.ibm.commerce.promotion.facade.datatypes.ChangePromotionType",
        "x-request-verb": "change",
        "x-codegen-request-body-name": "body"
      }
    },
    "/promotions/{id}/elements/{name}": {
      "delete": {
        "summary": "Delete a promotion element based on its name.",
        "tags": [
          "Promotion"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique numeric ID for identifying the promotion.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-entity-path": "dataArea/promotion[1]/promotionIdentifier/uniqueID"
            },
            "x-entity-path": "dataArea/promotion[1]/promotionIdentifier/uniqueID"
          },
          {
            "name": "name",
            "in": "path",
            "description": "The name of the element to be deleted.",
            "required": true,
            "schema": {
              "type": "string",
              "x-entity-path": "dataArea/promotion[1]/element[1]/elementName"
            },
            "x-entity-path": "dataArea/promotion[1]/element[1]/elementName"
          },
          {
            "name": "storeId",
            "in": "query",
            "description": "The unique numeric ID for identifying the store.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-context-data": "storeId",
              "x-entity-path": "dataArea/promotion[1]/promotionIdentifier/externalIdentifier/storeIdentifier/uniqueID"
            },
            "x-context-data": "storeId",
            "x-entity-path": "dataArea/promotion[1]/promotionIdentifier/externalIdentifier/storeIdentifier/uniqueID"
          }
        ],
        "responses": {
          "204": {
            "description": "The operation is successful.",
            "content": {}
          }
        },
        "x-action-code": "Delete",
        "x-expression-template": "/Promotion[1]/Element[1]",
        "x-facade-client-class": "com.ibm.commerce.promotion.facade.client.PromotionFacadeClient",
        "x-facade-client-method": "changePromotion",
        "x-request-bod-class": "com.ibm.commerce.promotion.facade.datatypes.ChangePromotionType",
        "x-request-verb": "change"
      },
      "patch": {
        "summary": "Update a promotion element based on its name.",
        "tags": [
          "Promotion"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique numeric ID for identifying the promotion.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-entity-path": "dataArea/promotion[1]/promotionIdentifier/uniqueID"
            },
            "x-entity-path": "dataArea/promotion[1]/promotionIdentifier/uniqueID"
          },
          {
            "name": "storeId",
            "in": "query",
            "description": "The unique numeric ID for identifying the store.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-context-data": "storeId",
              "x-entity-path": "dataArea/promotion[1]/promotionIdentifier/externalIdentifier/storeIdentifier/uniqueID"
            },
            "x-context-data": "storeId",
            "x-entity-path": "dataArea/promotion[1]/promotionIdentifier/externalIdentifier/storeIdentifier/uniqueID"
          },
          {
            "name": "name",
            "in": "path",
            "description": "The name of the element to be updated.",
            "required": true,
            "schema": {
              "type": "string",
              "x-entity-path": "dataArea/promotion[1]/element[1]/elementName"
            },
            "x-entity-path": "dataArea/promotion[1]/element[1]/elementName"
          }
        ],
        "requestBody": {
          "description": "The request body.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PromotionElement"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "The operation is successful.",
            "content": {}
          }
        },
        "x-action-code": "Change",
        "x-expression-template": "/Promotion[1]/Element[1]",
        "x-facade-client-class": "com.ibm.commerce.promotion.facade.client.PromotionFacadeClient",
        "x-facade-client-method": "changePromotion",
        "x-request-bod-class": "com.ibm.commerce.promotion.facade.datatypes.ChangePromotionType",
        "x-request-verb": "change",
        "x-codegen-request-body-name": "body"
      }
    }
  },
  "components": {
    "schemas": {
      "Promotion": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer"
          },
          "storeId": {
            "type": "integer"
          },
          "type": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "priority": {
            "type": "integer"
          },
          "exclusiveType": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "comment": {
            "type": "string"
          },
          "startDateTime": {
            "type": "string"
          },
          "endDateTime": {
            "type": "string"
          },
          "dailyStartTime": {
            "type": "string"
          },
          "dailyEndTime": {
            "type": "string"
          },
          "daysOfWeek": {
            "type": "array",
            "description": "The promotion schedule in days of the week.",
            "items": {
              "type": "string",
              "x-entity-class": "com.ibm.commerce.promotion.facade.datatypes.DayOfWeekEnumerationType"
            },
            "x-entity-path": "schedule/weekDays"
          },
          "perOrderLimit": {
            "type": "integer"
          },
          "perShopperLimit": {
            "type": "integer"
          },
          "totalLimit": {
            "type": "integer"
          },
          "couponRequired": {
            "type": "boolean"
          },
          "promotionCodeRequired": {
            "type": "boolean"
          },
          "targetSales": {
            "type": "number"
          },
          "descriptions": {
            "type": "array",
            "description": "The promotion description.",
            "items": {
              "$ref": "#/components/schemas/PromotionDescription"
            },
            "x-entity-path": "description"
          }
        },
        "required": [
          "type",
          "name"
        ]
      },
      "PromotionCollection": {
        "type": "object",
        "properties": {
          "count": {
            "type": "integer",
            "format": "int64"
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Promotion"
            }
          }
        },
        "description": "A collection of promotions."
      },
      "PromotionDescription": {
        "type": "object",
        "properties": {
          "languageId": {
            "type": "integer",
            "description": "The unique numeric ID for identifying the language.",
            "format": "int32",
            "x-entity-path": "language"
          },
          "longDescription": {
            "type": "string",
            "description": "The promotion long description."
          },
          "shortDescription": {
            "type": "string",
            "description": "The promotion short description."
          },
          "userData": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Additional user data associated with the description.",
            "x-entity-path": "userData/userDataField"
          }
        },
        "description": "A promotion description.",
        "x-entity-class": "com.ibm.commerce.promotion.facade.datatypes.DescriptionType"
      },
      "PromotionDescriptionCollection": {
        "type": "object",
        "properties": {
          "count": {
            "type": "integer",
            "format": "int64"
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PromotionDescription"
            }
          }
        },
        "description": "A collection of promotion descriptions."
      },
      "PromotionElement": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "The element name.",
            "x-entity-path": "elementName"
          },
          "parentName": {
            "type": "string",
            "description": "The parent element name.",
            "x-entity-path": "parentElementName"
          },
          "sequence": {
            "type": "number",
            "description": "The sequence number of this element under the same parent element.",
            "format": "double",
            "x-entity-path": "elementSequence"
          },
          "setSequence": {
            "type": "boolean",
            "description": "Indicate if the element sequence is set or not.",
            "x-entity-path": "setElementSequence"
          },
          "subType": {
            "type": "string",
            "description": "The element sub-type.",
            "x-entity-path": "elementSubType"
          },
          "type": {
            "type": "string",
            "description": "The element type.",
            "x-entity-path": "elementType"
          },
          "userData": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Additional user data associated with the element.",
            "x-entity-path": "userData/userDataField"
          },
          "variables": {
            "type": "array",
            "description": "A list of promotion element variables that are associated with the element.",
            "items": {
              "$ref": "#/components/schemas/PromotionElementVariable"
            },
            "x-entity-path": "elementVariable"
          }
        },
        "required": [
          "name",
          "type"
        ],
        "description": "A promotion element.",
        "x-entity-class": "com.ibm.commerce.promotion.facade.datatypes.PromotionElementType"
      },
      "PromotionElementCollection": {
        "type": "object",
        "properties": {
          "count": {
            "type": "integer",
            "format": "int64"
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PromotionElement"
            }
          }
        },
        "description": "A collection of promotion elements."
      },
      "PromotionElementVariable": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "The element name."
          },
          "value": {
            "type": "string",
            "description": "The element value."
          }
        },
        "description": "A promotion element variable.",
        "x-entity-class": "com.ibm.commerce.promotion.facade.datatypes.PromotionElementVariableType"
      }
    },
    "securitySchemes": {
      "basicAuth": {
        "type": "http",
        "scheme": "basic"
      }
    }
  },
  "security": [
    {
      "basicAuth": []
    }
  ],
  "x-components": {}
}
