{
  "openapi": "3.0.1",
  "info": {
    "title": "User Exit Configurations",
    "description": "Create and administer a collection of user exit configurations.",
    "version": "9.1.20.0",
    "x-introduced": "9.1.0.0"
  },
  "servers": [
    {
      "url": "https://{hostname}:{port}/rest/admin/v2",
      "variables": {
        "port": {
          "default": "443",
          "enum": [
            "443",
            "8000"
          ]
        },
        "hostname": {
          "default": "localhost",
          "enum": [
            "localhost",
            "test.hcl.com"
          ]
        }
      }
    }
  ],
  "paths": {
    "/user-exit-configurations": {
      "get": {
        "tags": [
          "user-exit-configurations"
        ],
        "description": "Get a collection of user exit configurations.",
        "operationId": "getUserExitConfigurations",
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "description": "The unique numeric ID for identifying the user exit configuration.",
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "description",
            "in": "query",
            "description": "The description of the user exit configuration.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "httpMethod",
            "in": "query",
            "description": "The HTTP method used to invoke user exit configuration. Possible values include GET, PUT, POST and DELETE.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "url",
            "in": "query",
            "description": "The relative path of the user exit configuration URL.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "requestHandler",
            "in": "query",
            "description": "The request handler class name which implements com.ibm.commerce.foundation.ue.RequestHandler.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "responseHandler",
            "in": "query",
            "description": "The response handler class name which implements com.ibm.commerce.foundation.ue.ResponseHandler.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "properties",
            "in": "query",
            "description": "An ampersand-separated (&) list of properties in the form of URL-encoded name-value pairs. For a list of supported properties, please refer to the Knowledge Center.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "retriable",
            "in": "query",
            "description": "Indicate whether the user exit configuration is retriable in case of failure. A value of 1 indicates that it is retriable, while 0 indicates it is not retriable. The default value is 0.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "timeout",
            "in": "query",
            "description": "The amount of time to wait (in milliseconds) before an request invoking the user exit configuration is considered failed.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "filterId",
            "in": "query",
            "description": "The unique numeric ID for identifying the filter template used by the user exit configuration. A value of null indicates that filtering is not required.",
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "The position within the resulting dataset where the query begins returning item records. If the offset is \"5\", the records that returned begin with the sixth record that matches the query parameters. If the offset is \"0\", the records that are returned begin with the first record that matches the query parameters.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "The maximum number of records to return.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "The comma-separated set of properties to be returned. If no properties are specified, all properties are returned.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "expand",
            "in": "query",
            "description": "The comma-separated set of related resources referenced in the links to be returned. If no related resources are specified, no related resources are returned.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "description": "The comma-separated set of properties which controls the order of the items being listed, prefixed by either (-) to sort by descending order, or optionally (+) to sort by ascending order. For example, sort=name,-d which means, order the items based on the name value in ascending order, then by the id value in descending order.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A collection of user exit configurations.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserExitConfigurationCollection"
                }
              }
            }
          },
          "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": [
          "user-exit-configurations"
        ],
        "description": "Create a user exit configuration.",
        "operationId": "createUserExitConfiguration",
        "requestBody": {
          "description": "A user exit configuration.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UserExitConfigurations"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "The operation was successful.",
            "content": {},
            "headers": {
              "Location": {
                "description": "The URI of the user-exit-configurations.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "links": {
              "GetUserExitConfigurationsById": {
                "operationRef": "#/paths/~1user-exit-configurations~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 /user-exit-configurations/{id}`.\n"
              },
              "DeleteUserExitConfigurationsById": {
                "operationRef": "#/paths/~1user-exit-configurations~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 /user-exit-configurations/{id}`.\n"
              },
              "UpdateUserExitConfigurationsById": {
                "operationRef": "#/paths/~1user-exit-configurations~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 /user-exit-configurations/{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": "UserExitConfiguration"
      }
    },
    "/user-exit-configurations/{id}": {
      "get": {
        "tags": [
          "user-exit-configurations"
        ],
        "description": "Get a user exit configuration.",
        "operationId": "getUserExitConfigurationById",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique numeric ID for identifying the user exit configuration.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "The comma-separated set of properties to be returned. If no properties are specified, all properties are returned.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "expand",
            "in": "query",
            "description": "The comma-separated set of related resources referenced in the links to be returned. If no related resources are specified, no related resources are returned.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "description": "The comma-separated set of properties which controls the order of the items being listed, prefixed by either (-) to sort by descending order, or optionally (+) to sort by ascending order. For example, sort=name,-d which means, order the items based on the name value in ascending order, then by the id value in descending order.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A user exit configuration.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserExitConfiguration"
                }
              }
            }
          },
          "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": [
          "user-exit-configurations"
        ],
        "description": "Delete a user exit configuration.",
        "operationId": "deleteUserExitConfigurationById",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique numeric ID for identifying the user exit configuration.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "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": [
          "user-exit-configurations"
        ],
        "description": "Update a user exit configuration.",
        "operationId": "updateUserExitConfigurationById",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique numeric ID for identifying the user exit configuration.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "description": "A user exit configuration.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UserExitConfigurations"
              }
            }
          },
          "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": "UserExitConfiguration"
      }
    }
  },
  "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."
      },
      "UserExitConfiguration": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "The unique numeric ID for identifying the user exit configuration.",
            "format": "int64"
          },
          "description": {
            "type": "string",
            "description": "The description of the user exit configuration."
          },
          "httpMethod": {
            "type": "string",
            "description": "The HTTP method used to invoke user exit configuration. Possible values include GET, PUT, POST and DELETE."
          },
          "url": {
            "type": "string",
            "description": "The relative path of the user exit configuration URL."
          },
          "requestHandler": {
            "type": "string",
            "description": "The request handler class name which implements com.ibm.commerce.foundation.ue.RequestHandler."
          },
          "responseHandler": {
            "type": "string",
            "description": "The response handler class name which implements com.ibm.commerce.foundation.ue.ResponseHandler."
          },
          "properties": {
            "type": "string",
            "description": "An ampersand-separated (&) list of properties in the form of URL-encoded name-value pairs. For a list of supported properties, please refer to the Knowledge Center."
          },
          "retriable": {
            "type": "integer",
            "description": "Indicate whether the user exit configuration is retriable in case of failure. A value of 1 indicates that it is retriable, while 0 indicates it is not retriable. The default value is 0.",
            "format": "int32"
          },
          "timeout": {
            "type": "integer",
            "description": "The amount of time to wait (in milliseconds) before an request invoking the user exit configuration is considered failed.",
            "format": "int32"
          },
          "filterId": {
            "type": "integer",
            "description": "The unique numeric ID for identifying the filter template used by the user exit configuration. A value of null indicates that filtering is not required.",
            "format": "int64"
          },
          "links": {
            "type": "object",
            "properties": {
              "self": {
                "type": "object",
                "properties": {
                  "href": {
                    "type": "string",
                    "description": "The URL of the link."
                  }
                },
                "description": "The self link."
              }
            }
          }
        },
        "description": "A user exit configuration."
      },
      "UserExitConfigurations": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "The unique numeric ID for identifying the user exit configuration.",
            "format": "int64"
          },
          "description": {
            "type": "string",
            "description": "The description of the user exit configuration."
          },
          "httpMethod": {
            "type": "string",
            "description": "The HTTP method used to invoke user exit configuration. Possible values include GET, PUT, POST and DELETE."
          },
          "url": {
            "type": "string",
            "description": "The relative path of the user exit configuration URL."
          },
          "requestHandler": {
            "type": "string",
            "description": "The request handler class name which implements com.ibm.commerce.foundation.ue.RequestHandler."
          },
          "responseHandler": {
            "type": "string",
            "description": "The response handler class name which implements com.ibm.commerce.foundation.ue.ResponseHandler."
          },
          "properties": {
            "type": "string",
            "description": "An ampersand-separated (&) list of properties in the form of URL-encoded name-value pairs. For a list of supported properties, please refer to the Knowledge Center."
          },
          "retriable": {
            "type": "integer",
            "description": "Indicate whether the user exit configuration is retriable in case of failure. A value of 1 indicates that it is retriable, while 0 indicates it is not retriable. The default value is 0.",
            "format": "int32"
          },
          "timeout": {
            "type": "integer",
            "description": "The amount of time to wait (in milliseconds) before an request invoking the user exit configuration is considered failed.",
            "format": "int32"
          },
          "filterId": {
            "type": "integer",
            "description": "The unique numeric ID for identifying the filter template used by the user exit configuration. A value of null indicates that filtering is not required.",
            "format": "int64"
          }
        }
      },
      "UserExitConfigurationCollection": {
        "type": "object",
        "properties": {
          "href": {
            "type": "string"
          },
          "count": {
            "type": "integer",
            "description": "The total number of items.",
            "format": "int64"
          },
          "items": {
            "type": "array",
            "description": "The items.",
            "items": {
              "$ref": "#/components/schemas/UserExitConfiguration"
            }
          }
        },
        "description": "A collection of user exit configurations."
      }
    },
    "securitySchemes": {
      "basicAuth": {
        "type": "http",
        "scheme": "basic"
      }
    }
  },
  "security": [
    {
      "basicAuth": []
    }
  ],
  "x-components": {}
}
