{
	"swagger": "2.0",
	"info": {
		"description": "This Domain Service is for Managing the Queue in a Bank Branch. It can include Queue managment & Token assignment APIs",
		"version": "1.0.0",
		"title": "chnn-pbx-v-opb-branch-queue-management"
	},
	"host": "127.0.0.1",
	"basePath": "/api",
	"schemes": [
		"https"
	],
	"produces": [
		"application/json"
	],
	"paths": {
		"/v1/open-banking/channels/branch/waittime/retrieve": {
			"post": {
				"tags": [
					"retrieve-branch-wait-time"
				],
				"operationId": "retrieve-branch-wait-time",
				"summary": "LOB: Portal Banamex; Feature: Post retrieve Estimated Wait Time by branch ids; Functionality: Retrieve",
				"description": "This API is used to fetch Estimated Wait Time by branch ids. The scope is private, pre-login, and entry-point. Wait time by id is fetched from the EWT local database. ",
				"consumes": [
					"application/json"
				],
				"produces": [
					"application/json"
				],
				"parameters": [{
						"name": "client_id",
						"in": "header",
						"required": true,
						"type": "string",
						"description": "Client ID generated during application registration"
					},
					{
						"name": "Authorization",
						"in": "header",
						"required": true,
						"type": "string",
						"description": "The Authorization Token received during login"
					},
					{
						"name": "Accept",
						"in": "header",
						"required": true,
						"type": "string",
						"description": "Content-Types that are acceptable for the response"
					},
					{
						"name": "uuid",
						"in": "header",
						"required": true,
						"type": "string",
						"description": "128 bit UUID that you generate for every request"
					},
					{
						"name": "Accept-Language",
						"in": "header",
						"required": false,
						"type": "string",
						"description": "List of acceptable human languages for response"
					},
					{
						"name": "Content-Type",
						"in": "header",
						"required": true,
						"type": "string",
						"description": "Content-Types that are sent in the request"
					},
					{
						"name": "countryCode",
						"in": "header",
						"required": true,
						"type": "string",
						"description": "Country code in 2 character ISO 3166 format"
					},
					{
						"name": "businessCode",
						"in": "header",
						"required": true,
						"type": "string",
						"description": "Business code identified during application registration"
					},
					{
						"name": "ChannelId",
						"in": "header",
						"required": true,
						"type": "string",
						"description": "Channel where request originated"
					},
					{
						"name": "sid",
						"in": "header",
						"required": true,
						"type": "string",
						"description": "Session is generated and returned on the first API call of the key exchange (GET e2e call) as response header, which needs to be resent on succesive calls of same session."
					},
					{
						"name": "host",
						"in": "header",
						"required": false,
						"type": "string",
						"description": "This header indicates the Apigee's virtual hostname the HTTP request is being sent to"
					},
					{
						"in": "body",
						"name": "retrieveBranchWaitTimeRequest",
						"description": "Estimated Wait Time Request",
						"required": true,
						"schema": {
							"$ref": "#/definitions/RetrieveBranchWaitTimeRequest"
						}
					}
				],
				"responses": {
					"200": {
						"description": "OK",
						"headers": {
							"Strict-Transport-Security": {
								"type": "string",
								"description": "HTTP Strict Transport Security (HSTS) is a web security policy mechanism which helps to protect websites against protocol downgrade attacks and cookie hijacking."
							},
							"X-XSS-Protection": {
								"type": "string",
								"description": "This header enables the Cross-site scripting (XSS) filter in your browser."
							},
							"X-Content-Type-Options": {
								"type": "string",
								"description": "Setting this header will prevent MSIE and Chrome from interpreting files as something else than declared by the content type in the HTTP headers."
							},
							"Content-Security-Policy": {
								"type": "string",
								"description": "CSP has significant impact on the way browser renders pages (e.g., inline JavaScript disabled by default and must be explicitly allowed in policy). CSP prevents a wide range of attacks, including Cross-site scripting and other cross-site injections"
							}
						},
						"schema": {
							"$ref": "#/definitions/RetrieveBranchWaitTimeResponse"
						}
					},
					"400": {
						"description": "<table><table><tr><td>Type</td><td>Code</td><td>Details</td></tr><tr><td>error</td><td>invalidRequest</td><td>Missing or invalid Parameters</td></tr></table>",
						"headers": {
							"Strict-Transport-Security": {
								"type": "string",
								"description": "HTTP Strict Transport Security (HSTS) is a web security policy mechanism which helps to protect websites against protocol downgrade attacks and cookie hijacking."
							},
							"X-XSS-Protection": {
								"type": "string",
								"description": "This header enables the Cross-site scripting (XSS) filter in your browser."
							},
							"X-Content-Type-Options": {
								"type": "string",
								"description": "Setting this header will prevent MSIE and Chrome from interpreting files as something else than declared by the content type in the HTTP headers."
							},
							"Content-Security-Policy": {
								"type": "string",
								"description": "CSP has significant impact on the way browser renders pages (e.g., inline JavaScript disabled by default and must be explicitly allowed in policy). CSP prevents a wide range of attacks, including Cross-site scripting and other cross-site injections"
							}
						},
						"schema": {
							"$ref": "#/definitions/ErrorResponse"
						}
					},
					"401": {
						"description": "<table><tr><td>Type</td><td>Code</td><td>Details</td></tr><tr><td>error</td><td>unAuthorized</td><td>Authorization credentials are missing or invalid</td></tr></table>",
						"headers": {
							"Strict-Transport-Security": {
								"type": "string",
								"description": "HTTP Strict Transport Security (HSTS) is a web security policy mechanism which helps to protect websites against protocol downgrade attacks and cookie hijacking."
							},
							"X-XSS-Protection": {
								"type": "string",
								"description": "This header enables the Cross-site scripting (XSS) filter in your browser."
							},
							"X-Content-Type-Options": {
								"type": "string",
								"description": "Setting this header will prevent MSIE and Chrome from interpreting files as something else than declared by the content type in the HTTP headers."
							},
							"Content-Security-Policy": {
								"type": "string",
								"description": "CSP has significant impact on the way browser renders pages (e.g., inline JavaScript disabled by default and must be explicitly allowed in policy). CSP prevents a wide range of attacks, including Cross-site scripting and other cross-site injections"
							}
						},
						"schema": {
							"$ref": "#/definitions/ErrorResponse"
						}
					},
					"403": {
						"description": "<table><tr><td>Type</td><td>Code</td><td>Details</td><td>More Info</td></tr><tr><td>error</td><td>accessNotConfigured</td><td>The request operation is not configured to access this resource</td><td>Channel/Country/Business provided in the request is not supported currently</td></tr></table>",
						"headers": {
							"Strict-Transport-Security": {
								"type": "string",
								"description": "HTTP Strict Transport Security (HSTS) is a web security policy mechanism which helps to protect websites against protocol downgrade attacks and cookie hijacking."
							},
							"X-XSS-Protection": {
								"type": "string",
								"description": "This header enables the Cross-site scripting (XSS) filter in your browser."
							},
							"X-Content-Type-Options": {
								"type": "string",
								"description": "Setting this header will prevent MSIE and Chrome from interpreting files as something else than declared by the content type in the HTTP headers."
							},
							"Content-Security-Policy": {
								"type": "string",
								"description": "CSP has significant impact on the way browser renders pages (e.g., inline JavaScript disabled by default and must be explicitly allowed in policy). CSP prevents a wide range of attacks, including Cross-site scripting and other cross-site injections"
							}
						},
						"schema": {
							"$ref": "#/definitions/ErrorResponse"
						}
					},
					"404": {
						"description": "<table><tr><td>Type</td><td>Code</td><td>Details</td><td>More Info</td></tr><tr><td>error</td><td>resourceNotFound</td><td>The requested resource was not found</td><td>Empty resource/resource not found</td></tr></table>",
						"headers": {
							"Strict-Transport-Security": {
								"type": "string",
								"description": "HTTP Strict Transport Security (HSTS) is a web security policy mechanism which helps to protect websites against protocol downgrade attacks and cookie hijacking."
							},
							"X-XSS-Protection": {
								"type": "string",
								"description": "This header enables the Cross-site scripting (XSS) filter in your browser."
							},
							"X-Content-Type-Options": {
								"type": "string",
								"description": "Setting this header will prevent MSIE and Chrome from interpreting files as something else than declared by the content type in the HTTP headers."
							},
							"Content-Security-Policy": {
								"type": "string",
								"description": "CSP has significant impact on the way browser renders pages (e.g., inline JavaScript disabled by default and must be explicitly allowed in policy). CSP prevents a wide range of attacks, including Cross-site scripting and other cross-site injections"
							}
						},
						"schema": {
							"$ref": "#/definitions/ErrorResponse"
						}
					},
					"422": {
						"description": "<table><table><tr><td>Type</td><td>Code</td><td>Details</td></tr><tr><td>error</td><td>businessValidationFailed</td><td>Business validation error occured on one or more parameters</td></tr></table>",
						"headers": {
							"Strict-Transport-Security": {
								"type": "string",
								"description": "HTTP Strict Transport Security (HSTS) is a web security policy mechanism which helps to protect websites against protocol downgrade attacks and cookie hijacking."
							},
							"X-XSS-Protection": {
								"type": "string",
								"description": "This header enables the Cross-site scripting (XSS) filter in your browser."
							},
							"X-Content-Type-Options": {
								"type": "string",
								"description": "Setting this header will prevent MSIE and Chrome from interpreting files as something else than declared by the content type in the HTTP headers."
							},
							"Content-Security-Policy": {
								"type": "string",
								"description": "CSP has significant impact on the way browser renders pages (e.g., inline JavaScript disabled by default and must be explicitly allowed in policy). CSP prevents a wide range of attacks, including Cross-site scripting and other cross-site injections"
							}
						},
						"schema": {
							"$ref": "#/definitions/ErrorResponse"
						}
					},
					"500": {
						"description": "<table><tr><td>Type</td><td>Code</td><td>Details</td></tr><tr><td>fatal</td><td>serverUnavailable</td><td>The request failed due to an internal error/server unavailability</td></tr></table>",
						"headers": {
							"Strict-Transport-Security": {
								"type": "string",
								"description": "HTTP Strict Transport Security (HSTS) is a web security policy mechanism which helps to protect websites against protocol downgrade attacks and cookie hijacking."
							},
							"X-XSS-Protection": {
								"type": "string",
								"description": "This header enables the Cross-site scripting (XSS) filter in your browser."
							},
							"X-Content-Type-Options": {
								"type": "string",
								"description": "Setting this header will prevent MSIE and Chrome from interpreting files as something else than declared by the content type in the HTTP headers."
							},
							"Content-Security-Policy": {
								"type": "string",
								"description": "CSP has significant impact on the way browser renders pages (e.g., inline JavaScript disabled by default and must be explicitly allowed in policy). CSP prevents a wide range of attacks, including Cross-site scripting and other cross-site injections"
							}
						},
						"schema": {
							"$ref": "#/definitions/ErrorResponse"
						}
					}
				}
			}
		}
	},
	"definitions": {
		"Branch": {
			"description": "Branches object",
			"properties": {
				"branchId": {
					"description": "5 numeric digit branch id. Unique identifier for the branch",
					"example": "00001",
					"type": "string"
				}
			},
			"required": [
				"branchId"
			]
		},
		"BranchInfo": {
			"description": "Branches object",
			"properties": {
				"branchId": {
					"description": "5 numeric digit branch id. Unique identifier for the branch",
					"example": "00001",
					"type": "string"
				},
				"timeTaken ": {
					"description": "Numeric digit estimated waiting time of the branch. Response in minutes",
					"example": "3",
					"type": "string"
				}
			},
			"required": [
				"branchId",
				"timeTaken "
			]
		},
		"RetrieveBranchWaitTimeRequest": {
			"description": "EWT request object",
			"properties": {
				"branches": {
					"type": "array",
					"maxItems": 100,
					"items": {
						"$ref": "#/definitions/Branch"
					}
				}
			},
			"required": [
				"branches"
			]
		},
		"RetrieveBranchWaitTimeResponse": {
			"description": "EWT response object",
			"properties": {
				"branches": {
					"type": "array",
					"items": {
						"$ref": "#/definitions/BranchInfo"
					}
				}
			},
			"required": [
				"branches"
			]
		},
		"ErrorResponse": {
			"properties": {
				"type": {
					"type": "string",
					"description": "Invalid - Request did not confirm to the specification and was unprocessed and rejected. Please fix the value and try again",
					"enum": [
						"error",
						"warn",
						"invalid",
						"fatal"
					]
				},
				"code": {
					"description": "Error code which qualifies the error",
					"type": "string"
				},
				"details": {
					"description": "Human readable explanation specific to the occurrence of the problem",
					"type": "string"
				},
				"location": {
					"description": "The name of the field that resulted in the error",
					"type": "string"
				},
				"moreInfo": {
					"description": "More Info can be used to pass any additional details",
					"type": "string"
				},
				"uuid": {
					"description": "128 bit UUID that you generate for every request",
					"type": "string"
				},
				"timestamp": {
					"description": "Timestamp of the error",
					"type": "string"
				}
			},
			"required": [
				"type",
				"code"
			]
		}
	}
}