{
  "openapi": "3.0.1",
  "info": {
    "title": "3E OData Client API",
    "description": "3E OData Client API.",
    "version": "1.0"
  },
  "servers": [
    {
      "url": "https://api.us.test.3E.thomsonreuters.com/3e/odata"
    }
  ],
  "paths": {
    "/$metadata": {
      "get": {
        "tags": [
          "Metadata"
        ],
        "summary": "Metadata",
        "operationId": "Metadata",
        "parameters": [
          {
            "name": "X-3E-UserAuthorization",
            "in": "header",
            "description": "User authorization token",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/metadataGet200ApplicationXmlResponse"
                },
                "example": "<metadataGet200ApplicationXmlResponse />"
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        }
      }
    },
    "/{entity}": {
      "get": {
        "tags": [
          "Entity"
        ],
        "summary": "Entity_Get",
        "operationId": "Entity_Get",
        "parameters": [
          {
            "name": "entity",
            "in": "path",
            "description": "The entity name.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "$top",
            "in": "query",
            "description": "Show only the first n items, see [OData Paging – Top](http://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part1-protocol.html#sec_SystemQueryOptiontop)",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "$skip",
            "in": "query",
            "description": "Skip the first n items, see [OData Paging - Skip](http://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part1-protocol.html#sec_SystemQueryOptionskip)",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "$count",
            "in": "query",
            "description": "Include count of items, see [OData Count](http://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part1-protocol.html#sec_SystemQueryOptioncount)",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "$filter",
            "in": "query",
            "description": "Filter items by property values, see [OData Filter](http://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part1-protocol.html#sec_SystemQueryOptionfilter)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "$select",
            "in": "query",
            "description": "Select properties that will be returned in the request, see [OData Select](http://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part1-protocol.html#sec_SystemQueryOptionselect)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "$expand",
            "in": "query",
            "description": "Expands an navigation property, see [OData Expand](http://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part1-protocol.html#sec_SystemQueryOptionexpand)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-3E-UserAuthorization",
            "in": "header",
            "description": "User authorization token",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/entity-Get200ApplicationJsonResponse"
                },
                "example": [
                  {}
                ]
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.OData.ODataError"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        }
      },
      "post": {
        "tags": [
          "Entity"
        ],
        "summary": "Entity_Post",
        "operationId": "Entity_Post",
        "parameters": [
          {
            "name": "entity",
            "in": "path",
            "description": "The entity name.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-3E-UserAuthorization",
            "in": "header",
            "description": "User authorization token",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/entity-PostRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/entity-Post201ApplicationJsonResponse"
                },
                "example": [
                  {}
                ]
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.OData.ODataError"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        }
      }
    },
    "/{entity}({key})": {
      "get": {
        "tags": [
          "Entity"
        ],
        "summary": "Entity_Get_Key",
        "operationId": "Entity_Get_Key",
        "parameters": [
          {
            "name": "entity",
            "in": "path",
            "description": "The entity name.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "key",
            "in": "path",
            "description": "Format - int32. The entity key.",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "$top",
            "in": "query",
            "description": "Show only the first n items, see [OData Paging – Top](http://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part1-protocol.html#sec_SystemQueryOptiontop)",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "$skip",
            "in": "query",
            "description": "Skip the first n items, see [OData Paging - Skip](http://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part1-protocol.html#sec_SystemQueryOptionskip)",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "$count",
            "in": "query",
            "description": "Include count of items, see [OData Count](http://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part1-protocol.html#sec_SystemQueryOptioncount)",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "$filter",
            "in": "query",
            "description": "Filter items by property values, see [OData Filter](http://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part1-protocol.html#sec_SystemQueryOptionfilter)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "$select",
            "in": "query",
            "description": "Select properties that will be returned in the request, see [OData Select](http://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part1-protocol.html#sec_SystemQueryOptionselect)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "$expand",
            "in": "query",
            "description": "Expands an navigation property, see [OData Expand](http://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part1-protocol.html#sec_SystemQueryOptionexpand)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-3E-UserAuthorization",
            "in": "header",
            "description": "User authorization token",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/entity-key-Get200ApplicationJsonResponse"
                },
                "example": [
                  {}
                ]
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.OData.ODataError"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        }
      },
      "patch": {
        "tags": [
          "Entity"
        ],
        "summary": "Entity_Patch",
        "operationId": "Entity_Patch",
        "parameters": [
          {
            "name": "entity",
            "in": "path",
            "description": "The entity name.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "key",
            "in": "path",
            "description": "Format - int32. The entity key.",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "X-3E-UserAuthorization",
            "in": "header",
            "description": "User authorization token",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/entity-key-PatchRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/entity-key-Patch200ApplicationJsonResponse"
                },
                "example": [
                  {}
                ]
              }
            }
          },
          "204": {
            "description": "Success"
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.OData.ODataError"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        }
      }
    }
  },
  "components": {
    "securitySchemes": {
      "oAuth2AuthCode": {
        "type": "oauth2",
        "description": "User authorization",
        "flows": {
          "authorizationCode": {
            "authorizationUrl": "https://auth-nonprod.thomsonreuters.com/authorize?connection=sso-auth-nonprod&login_hint=3esandboxtest.onmicrosoft.com&audince=https%3A%2F%2F3ecloud.thomsonreuters.com%2Fapi%2Fdevl%2Ftest%2F3e_api%2Fexhw3sifd0ee1x0olz5lzq",
            "tokenUrl": "https://auth-nonprod.thomsonreuters.com/oauth/token",
            "scopes": {
              "https://api.thomsonreuters.com/auth/3e.api.odata": "OData"
            }
          }
        }
      }
    },
    "schemas": {
      "Microsoft.OData.ODataError": {
        "type": "object",
        "properties": {
          "typeAnnotation": {
            "$ref": "#/components/schemas/Microsoft.OData.ODataTypeAnnotation"
          },
          "errorCode": {
            "type": "string",
            "nullable": true
          },
          "message": {
            "type": "string",
            "nullable": true
          },
          "target": {
            "type": "string",
            "nullable": true
          },
          "details": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Microsoft.OData.ODataErrorDetail"
            },
            "nullable": true
          },
          "innerError": {
            "$ref": "#/components/schemas/Microsoft.OData.ODataInnerError"
          },
          "instanceAnnotations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Microsoft.OData.ODataInstanceAnnotation"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Microsoft.OData.ODataErrorDetail": {
        "type": "object",
        "properties": {
          "errorCode": {
            "type": "string",
            "nullable": true
          },
          "message": {
            "type": "string",
            "nullable": true
          },
          "target": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Microsoft.OData.ODataInnerError": {
        "type": "object",
        "properties": {
          "properties": {
            "type": "object",
            "additionalProperties": {
              "$ref": "#/components/schemas/Microsoft.OData.ODataValue"
            },
            "nullable": true,
            "readOnly": true
          },
          "message": {
            "type": "string",
            "nullable": true
          },
          "typeName": {
            "type": "string",
            "nullable": true
          },
          "stackTrace": {
            "type": "string",
            "nullable": true
          },
          "innerError": {
            "$ref": "#/components/schemas/Microsoft.OData.ODataInnerError"
          }
        },
        "additionalProperties": false
      },
      "Microsoft.OData.ODataInstanceAnnotation": {
        "type": "object",
        "properties": {
          "typeAnnotation": {
            "$ref": "#/components/schemas/Microsoft.OData.ODataTypeAnnotation"
          },
          "name": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "value": {
            "$ref": "#/components/schemas/Microsoft.OData.ODataValue"
          }
        },
        "additionalProperties": false
      },
      "Microsoft.OData.ODataTypeAnnotation": {
        "type": "object",
        "properties": {
          "typeName": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "Microsoft.OData.ODataValue": {
        "type": "object",
        "properties": {
          "typeAnnotation": {
            "$ref": "#/components/schemas/Microsoft.OData.ODataTypeAnnotation"
          }
        },
        "additionalProperties": false
      },
      "metadataGet200ApplicationXmlResponse": {
        "title": "Collection of metadata entities",
        "type": "object"
      },
      "entity-Get200ApplicationJsonResponse": {
        "title": "Collection of entities",
        "type": "array",
        "items": {
          "type": "object"
        }
      },
      "entity-PostRequest": {
        "type": "object"
      },
      "entity-Post201ApplicationJsonResponse": {
        "type": "array",
        "items": {
          "type": "object"
        }
      },
      "entity-key-Get200ApplicationJsonResponse": {
        "title": "Collection of entities",
        "type": "array",
        "items": {
          "type": "object"
        }
      },
      "entity-key-PatchRequest": {
        "type": "object"
      },
      "entity-key-Patch200ApplicationJsonResponse": {
        "title": "Collection of entities",
        "type": "array",
        "items": {
          "type": "object"
        }
      }
    }
  },
  "security": [
    {
      "oAuth2AuthCode": [
        "https://api.thomsonreuters.com/auth/3e.api.odata"
      ]
    }
  ]
}