{
  "openapi": "3.0.1",
  "info": {
    "title": "Currency Conversions",
    "description": "Create and administer a collection of currency conversions.",
    "version": "9.1.20.0",
    "x-introduced": "9.1.0.0"
  },
  "servers": [
    {
      "url": "https://{hostname}:{port}/rest/admin/v2",
      "variables": {
        "port": {
          "default": "443",
          "enum": [
            "443",
            "8000"
          ]
        },
        "hostname": {
          "default": "localhost",
          "enum": [
            "localhost",
            "test.hcl.com"
          ]
        }
      }
    }
  ],
  "tags": [
    {
      "name": "Currency Conversions",
      "description": "Provide RESTful services to manage Currency Conversions."
    }
  ],
  "paths": {
    "/currency-conversions": {
      "get": {
        "tags": [
          "Currency Conversions"
        ],
        "description": "Get a collection of currency conversions.",
        "operationId": "getCurrencyConversions",
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "description": "Generated unique key.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "storeEntityId",
            "in": "query",
            "description": "The StoreEntity.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "fromCurrency",
            "in": "query",
            "description": "An amount in the FROMCURR currency is normally part of a rule. Or is part of other information used to determine a price, discount, shipping charge. Or is part of similar amount associated with a product offered for sale.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "toCurrency",
            "in": "query",
            "description": "TOCURR is normally the currency in which the customer intends to pay. Amounts in this currency are normally part of an OrderItem, such as a unit price, shipping charge, or tax amount.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "conversionFactor",
            "in": "query",
            "description": "The conversion factor. Implicit conversion rules may be derived from explicit rules by combining conversion factors. But no more than one unidirectional rule can be used to derive any particular implicit rule.",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "multiplyOrDivide",
            "in": "query",
            "description": "To convert from FROMCURR to TOCURR M = Multiply by FACTOR D = Divide by FACTOR. For bidirectional rules, conversion from TOCURR to FROMCURR is allowed using the inverse operation.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "bidirectional",
            "in": "query",
            "description": "Indicates whether the rule is bidirectional or unidirectional Y = bidirectional. N = unidirectional.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "updatable",
            "in": "query",
            "description": "A flag intended to be used by a user interface that manages currency conversion rules. Valid values N = conversion rate is irrevocable - should never be changed Y = conversion rate can be changed.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "The position within the resulting dataset where the query begins returning item records. If the offset is \"5\", the records that returned begin with the sixth record that matches the query parameters. If the offset is \"0\", the records that are returned begin with the first record that matches the query parameters.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "The maximum number of records to return.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "The comma-separated set of properties to be returned. If no properties are specified, all properties are returned.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "expand",
            "in": "query",
            "description": "The comma-separated set of related resources referenced in the links to be returned. If no related resources are specified, no related resources are returned.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A collection of currency conversions.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CurrencyConversionCollection"
                }
              }
            }
          },
          "400": {
            "description": "There was a client error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "500": {
            "description": "There was a server error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Currency Conversions"
        ],
        "description": "Create a currency conversion.",
        "operationId": "createCurrencyConversion",
        "requestBody": {
          "description": "The rule can be used to convert a price to an amount(customer will be charged in a supported shopping currency).",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CurrencyConversionRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "The operation was successful.",
            "content": {},
            "headers": {
              "Location": {
                "description": "The URI of the currency.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "links": {
              "GetCurrencyConversionById": {
                "operationRef": "#/paths/~1currency-conversions~1{id}/get",
                "parameters": {
                  "id": "$response.header.Location"
                },
                "description": "The `id` value used in the request body can be used as the `id` parameter in `GET /currency-conversions/{id}`.\n"
              },
              "DeleteCurrencyConversionById": {
                "operationRef": "#/paths/~1currency-conversions~1{id}/delete",
                "parameters": {
                  "id": "$response.header.Location"
                },
                "description": "The `id` value used in the request body can be used as the `id` parameter in `DELETE /currency-conversions/{id}`.\n"
              },
              "UpdateCurrencyConversionById": {
                "operationRef": "#/paths/~1currency-conversions~1{id}/patch",
                "parameters": {
                  "id": "$response.header.Location"
                },
                "description": "The `id` value used in the request body can be used as the `id` parameter in `PATCH /currency-conversions/{id}`.\n"
              }
            }
          },
          "400": {
            "description": "There was a client error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "500": {
            "description": "There was a server error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          }
        },
        "x-codegen-request-body-name": "CurrencyConversion"
      }
    },
    "/currency-conversions/{id}": {
      "get": {
        "tags": [
          "Currency Conversions"
        ],
        "description": "Get a currency conversion.",
        "operationId": "getCurrencyConversionById",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Generated unique key.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "The comma-separated set of properties to be returned. If no properties are specified, all properties are returned.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "expand",
            "in": "query",
            "description": "The comma-separated set of related resources referenced in the links to be returned. If no related resources are specified, no related resources are returned.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The rule can be used to convert a price to an amount(customer will be charged in a supported shopping currency).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CurrencyConversion"
                }
              }
            }
          },
          "400": {
            "description": "There was a client error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "404": {
            "description": "The resource was not found.",
            "content": {}
          },
          "500": {
            "description": "There was a server error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Currency Conversions"
        ],
        "description": "Delete a currency conversion.",
        "operationId": "deleteCurrencyConversionById",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Generated unique key.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "The operation was successful.",
            "content": {}
          },
          "400": {
            "description": "There was a client error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "404": {
            "description": "The resource was not found.",
            "content": {}
          },
          "500": {
            "description": "There was a server error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          }
        }
      },
      "patch": {
        "tags": [
          "Currency Conversions"
        ],
        "description": "Update a currency conversion.",
        "operationId": "updateCurrencyConversionById",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Generated unique key.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "description": "The rule can be used to convert a price to an amount(customer will be charged in a supported shopping currency).",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CurrencyConversionRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "The operation was successful.",
            "content": {}
          },
          "400": {
            "description": "There was a client error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "404": {
            "description": "The resource was not found.",
            "content": {}
          },
          "500": {
            "description": "There was a server error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          }
        },
        "x-codegen-request-body-name": "CurrencyConversion"
      }
    }
  },
  "components": {
    "schemas": {
      "Link": {
        "type": "object",
        "properties": {
          "href": {
            "type": "string",
            "description": "The URL of the link.",
            "format": "uri"
          }
        },
        "description": "Links to related resources."
      },
      "Error": {
        "type": "object",
        "properties": {
          "errorCode": {
            "type": "string",
            "description": "The error message code."
          },
          "errorMessage": {
            "type": "string",
            "description": "The error message."
          },
          "errorKey": {
            "type": "string",
            "description": "The error message key."
          },
          "errorParameters": {
            "type": "array",
            "description": "The arguments used to construct the error message.",
            "items": {
              "type": "object",
              "properties": {}
            }
          },
          "errorLevel": {
            "type": "string",
            "description": "The error level."
          },
          "errorHref": {
            "type": "string",
            "description": "The error hypertext reference."
          }
        },
        "description": "The error message item model."
      },
      "ErrorResponseContainer": {
        "type": "object",
        "properties": {
          "requestId": {
            "type": "string",
            "description": "The request identifier."
          },
          "errors": {
            "type": "array",
            "description": "The errors.",
            "items": {
              "$ref": "#/components/schemas/Error"
            }
          }
        },
        "description": "The error message model."
      },
      "CurrencyConversion": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Generated unique key.",
            "format": "int32"
          },
          "storeId": {
            "type": "integer",
            "description": "The StoreEntity.",
            "format": "int32"
          },
          "fromCurrency": {
            "type": "string",
            "description": "An amount in the FROMCURR currency is normally part of a rule. Or is part of other information used to determine a price, discount, shipping charge. Or is part of similar amount associated with a product offered for sale."
          },
          "toCurrency": {
            "type": "string",
            "description": "TOCURR is normally the currency in which the customer intends to pay. Amounts in this currency are normally part of an OrderItem, such as a unit price, shipping charge, or tax amount."
          },
          "conversionFactor": {
            "type": "number",
            "description": "The conversion factor. Implicit conversion rules may be derived from explicit rules by combining conversion factors. But no more than one unidirectional rule can be used to derive any particular implicit rule."
          },
          "multiplyOrDivide": {
            "type": "string",
            "description": "To convert from FROMCURR to TOCURR M = Multiply by FACTOR D = Divide by FACTOR. For bidirectional rules, conversion from TOCURR to FROMCURR is allowed using the inverse operation."
          },
          "bidirectional": {
            "type": "string",
            "description": "Indicates whether the rule is bidirectional or unidirectional Y = bidirectional. N = unidirectional."
          },
          "updatable": {
            "type": "string",
            "description": "A flag intended to be used by a user interface that manages currency conversion rules. Valid values N = conversion rate is irrevocable - should never be changed Y = conversion rate can be changed."
          },
          "links": {
            "type": "object",
            "properties": {
              "self": {
                "type": "object",
                "properties": {
                  "href": {
                    "type": "string",
                    "description": "The self link."
                  }
                },
                "description": "The self link."
              }
            }
          }
        },
        "description": "The rule can be used to convert a price to an amount(customer will be charged in a supported shopping currency)."
      },
      "CurrencyConversionRequest": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Generated unique key.",
            "format": "int32"
          },
          "storeId": {
            "type": "integer",
            "description": "The StoreEntity.",
            "format": "int32"
          },
          "fromCurrency": {
            "type": "string",
            "description": "An amount in the FROMCURR currency is normally part of a rule. Or is part of other information used to determine a price, discount, shipping charge. Or is part of similar amount associated with a product offered for sale."
          },
          "toCurrency": {
            "type": "string",
            "description": "TOCURR is normally the currency in which the customer intends to pay. Amounts in this currency are normally part of an OrderItem, such as a unit price, shipping charge, or tax amount."
          },
          "conversionFactor": {
            "type": "number",
            "description": "The conversion factor. Implicit conversion rules may be derived from explicit rules by combining conversion factors. But no more than one unidirectional rule can be used to derive any particular implicit rule."
          },
          "multiplyOrDivide": {
            "type": "string",
            "description": "To convert from FROMCURR to TOCURR M = Multiply by FACTOR D = Divide by FACTOR. For bidirectional rules, conversion from TOCURR to FROMCURR is allowed using the inverse operation."
          },
          "bidirectional": {
            "type": "string",
            "description": "Indicates whether the rule is bidirectional or unidirectional Y = bidirectional. N = unidirectional."
          },
          "updatable": {
            "type": "string",
            "description": "A flag intended to be used by a user interface that manages currency conversion rules. Valid values N = conversion rate is irrevocable - should never be changed Y = conversion rate can be changed."
          }
        },
        "description": "The rule can be used to convert a price to an amount(customer will be charged in a supported shopping currency)."
      },
      "CurrencyConversionCollection": {
        "type": "object",
        "properties": {
          "count": {
            "type": "integer",
            "description": "The total number of items.",
            "format": "int64"
          },
          "href": {
            "type": "string",
            "description": "The resource."
          },
          "items": {
            "type": "array",
            "description": "The items.",
            "items": {
              "$ref": "#/components/schemas/CurrencyConversion"
            }
          }
        },
        "description": "A collection of currency conversions."
      }
    },
    "securitySchemes": {
      "basicAuth": {
        "type": "http",
        "scheme": "basic"
      }
    }
  },
  "security": [
    {
      "basicAuth": []
    }
  ]
}
