{
  "openapi": "3.0.0",
  "info": {
    "title": "Recordings.v1",
    "version": "1.0",
    "contact": {
      "name": "Cloud Services Imagicle",
      "email": "csi@imagicle.com",
      "url": "https://www.imagicle.com"
    },
    "x-logo": {
      "url": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMoAAABDCAYAAADd2pq4AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAACxEAAAsRAX9kX5EAAAAadEVYdFNvZnR3YXJlAFBhaW50Lk5FVCB2My41LjEwMPRyoQAABkNJREFUeF7tmgux5DYQRRdCIATCQgiEQAiEQFgIgRAIgRAIgRAIy+DFp7Jd1eq6siS/ec9jz+2qU+VpWbI+ffWx58vb25sxZoB0GmNapNMY0yKdxpgW6TTGtEinMaZFOo0xLdJpjGmRTmNMi3QaY1qk0xjTIp3GmBbpNMa0SKcxpkU6jTEt0mmMaZFOY0yLdE7ydeO3jW+F3zd+2VB5jLkk0rnDrxt/bnzfmLG/NhCTKsuYyyCdAgTy78ZRI68FYy6LdCZ+2mBVeJT9s8GWTT3LmKdFOn9AQM9usVaMMlmh1DONeUqkc+OjRJLNWzFzGZTzM0QS9p63Y9Qzzk3U987Ce2RbyUtZPjcuUB2cSThHfJYx6D9v1HrMoM5O1F/de3X+3qh2pK3kqXbXPnso1cF3kM82gqDWYwZld/1+o+xIW8lTzd+8Jsg/mNnPsiODVVcUVqe7zo6PaquFcpD8gw+JZ9mRVQVhx5bkFc4o0VbOFkffGn6EUPgnBjuRo1voSxAXau/62UYwNJUzD+fRQkEgCDhQ99yCuGA2Ptv+2GgqNwBxx4sHVpQQGv660jAD15cUrKAxC8aboGxsd3riJV/9Kw/5CRzS46zHM+sWid+k5+dRDu0njbrwm/TcJtXWDAGvXnDQF7HazgiFZ7FK1P6K9uX20AfAvaS9R3RPTVycue0Ko7Obyg1gMLPFjFZFn4O5Gmk1ILKpoOT3XplVcNQz8uaAV1bzMi7kq21FEFEmzIwfQhwJhbbt1Q8jPcSCOKgLZa+O36WIizpAZ1lTuQExa4eFUKr/vUbfxDNZSfZEooz6RP5REFbrtSn8QJDOGO3YEwrBP9u2LJaXOqM8i60s3atCIX0vUEnrpceqcmTlDaH06rVnI6GowO8ZbdsTCmVWQ1z41UQa7XoJ4uJZ7KOEkrc/ah+fB13lp17MmNWYgdnqkRZni2pRtgo26kVedYbCRkJRwo2zVdSJewFfTyikVcvbO7VlpK2Rfnvi4lnso4SS8xGU1WLFACUI6lXPPlitr7qH+qhADAEF6rkjoVRhhr9HTyiqz+gn0oKZ9t+WuHgWW+n4XvCoQc/5eEa1nA7VyFPL7c2oNXjJp56JMGpe2pBtJJRqo+8rqh746nNnjbzqObcjLo4aQcFMw6CzPHOtthizttLxZwslnlepQdcTykzeXpvwq1Vq1H+qHvjqc2dt9LzbEBd1Fpwx8uQtS6D2s7MWb1JmOFsovRWlWk8oH7GiMFHl8iqqHviOCIUzzMp4XZq4ONJRe4OiBmRkrESqrB6fLRR1tql9UL93YNRn5oyi7hkJpU5w4e/RE4rqMyVkoJ7keRmRQFyoAR7ZqKNWV6n4uDZLL3jUoOd8R4VCe6vRRp7XCzYMP2X2XrGSFxGq9JFQem+9KBMYV1b36Ft81fApkVIfJgLaDdSR54ZRLmW+BHGh3riMrClIsHpWGR1EK73gUQGb86lgyelQjTz4n+07ysq4jb7MZxHMWm/VuR35x2pH7QX2qvBWt11whlCYWVdXyhAKeVfPbiOhqLSe0cd7QmHMVtp2ZMwuS/6hOnHPGHQGP5cRqI96exbBtEKtb297kT+cQQ12NeB1NcwzJ9uUmp6trjp5QhmJpQZqCIItULZoazASC+VGPfIzuM7ljNoWRhu4N+e9NdWxuqrQYTmIuF4VyXtmJgKIOhM4WbSxn67+ADFRT1ADji/S1cpJmQRnDnqu417K5/m9Fx74qRv3AGXRd1VEWRCcN7g3/mWcywPyc38OdMrj/ir0vbZD9GsWFWVRvuqP21MddGid1WaMTqyDPGsEVa3HXSFoa+AGddXAEEe9z5yAcqoBq4aYYjbsMbOEH9lyXRVm42z0Ee0HZndlSlDmBKRzY08seTswYu+180o5d2DVWHlUOeYEpPMHSizMgurePRjwaq8mEqgryp7Rz+ocYk5COhMc3PKZ5chWKb+FoqxX3ncz+eyd5diuco/Ka05EOgvMbDEbHtkOxPaLWdJ77v+hT5lAEAX9w/VLvW69GtLZgSA/MtsRBK/0ZsvcEOk0xrRIpzGmRTqNMS3SaYxpkU5jTIt0GmNapNMY0yKdxpgW6TTGtEinMaZFOo0xLdJpjGmRTmNMi3QaY1qk0xjTIp3GmMzbl/8A+Zx0jXNV5BYAAAAASUVORK5CYII=",
      "backgroundColor": "#02A3D9",
      "altText": "Imagicle"
    },
    "description": "Imagicle Voice Analytics API"
  },
  "servers": [
    {
      "url": "https://eu.api.imagicle.com/voice-analytics"
    }
  ],
  "paths": {
    "/v1/recordings": {
      "get": {
        "summary": "Get Recordings List",
        "tags": [
          "Recordings"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "",
                  "type": "object",
                  "properties": {
                    "total": {
                      "type": "number",
                      "description": "Total number of recordings that match the selection criteria"
                    },
                    "recordings": {
                      "type": "array",
                      "uniqueItems": true,
                      "minItems": 1,
                      "items": {
                        "$ref": "#/components/schemas/Recording"
                      }
                    }
                  },
                  "required": [
                    "total"
                  ]
                },
                "examples": {
                  "Analysis completed": {
                    "value": {
                      "total": 8,
                      "recordings": [
                        {
                          "id": "string",
                          "ownerId": "string",
                          "direction": "IN",
                          "from": {
                            "fullName": "string",
                            "phoneNumber": "string"
                          },
                          "to": {
                            "fullName": "string",
                            "phoneNumber": "string"
                          },
                          "date": "2021-04-25T10:24:40Z",
                          "analysisResult": {
                            "score": 0.8,
                            "sentiment": "POSITIVE",
                            "status": 2
                          },
                          "channels": 2,
                          "duration": 362,
                          "tags": [
                            {
                              "id": "1efc024d-5c55-456b-9e91-26cd3f57e689",
                              "value": "Customer Complaint"
                            },
                            {
                              "id": "a2c80f67-7d9d-4c99-9a13-20f2cac40c63",
                              "value": "Happy Customer"
                            }
                          ],
                          "video": {
                            "status": "OK"
                          },
                          "hasNotes": true
                        }
                      ]
                    }
                  },
                  "Analysis in progress": {
                    "value": {
                      "total": 0,
                      "recordings": [
                        {
                          "id": "string",
                          "ownerId": "string",
                          "direction": "IN",
                          "from": {
                            "fullName": "string",
                            "phoneNumber": "string"
                          },
                          "to": {
                            "fullName": "string",
                            "phoneNumber": "string"
                          },
                          "date": "2021-04-25T10:24:40Z",
                          "analysisResult": {
                            "score": null,
                            "sentiment": "UNKNOWN",
                            "status": 0
                          },
                          "duration": 362,
                          "tags": [],
                          "video": {
                            "status": "NONE"
                          },
                          "hasNotes": false
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "The client is not allowed to get these data for (at least one of) requested users"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "operationId": "get-v1-recordings",
        "description": "Retrieves a list of recordings for the currently authenticated user.\n\nA valid mail is given by : mail = ([a-zA-Z0-9à-ùÇ-Üá-ñú-üÀ-ÄÆßœŒÿŸÑ]+(\\\\.[a-zA-Z0-9à-ùÇ-Üá-ñú-üÀ-ÄÆßœŒÿŸÑ]+)\\*@[a-zA-Z0-9à-ùÇ-Üá-ñú-üÀ-ÄÆßœŒÿŸÑ]+(\\\\.[a-zA-Z0-9à-ùÇ-Üá-ñú-üÀ-ÄÆßœŒÿŸÑ]+)+)\n\nA valid number is given by : number = (\\d+([,\\\\.]\\d+)+)\n\nA valid term is given by: term = ([a-zA-Z0-9à-ùÇ-Üá-ñú-üÀ-ÄÆßœŒÿŸÑ]+(['\\\\-][a-zA-Z0-9à-ùÇ-Üá-ñú-üÀ-ÄÆßœŒÿŸÑ]+)*)\n\nA valid word is either a mail, a number or a term: word = (mail|number|term)\n\nA valid word filter is given by an optional \"exact\" filter being any string without semicolon, and 3 optional \"and\", \"or\" and \"not\" filters given by space-separated words: ((exact:[^;]+;)?(and:(word\\s)\\*word;)?(or:(word\\s)\\*word;)?(not:(word\\s)\\*word;)?\n\nA valid phone filter is a list of comma-separated phone numbers: \\+?[0-9]+(,\\+?[0-9]+)*\n\nA valid users filter is given by a include/exclude token followed by a list of comma-separated users guids: (include|exclude)\\:[0-9A-Fa-f]{8}(-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}(,[0-9A-Fa-f]{8}(-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12})*\n\nA valid date filter is given by two ordered start date and end date in the ISO format yyyy-MM-dd'T'HH:mm:ss.SSS'Z'. Regex format \\d{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[1-2]\\d|3[0-1])T(?:[0-1]\\d|2[0-3]):[0-5]\\d:[0-5]\\d\\.\\d{3}Z\n\nA valid tag ids filter is a list of comma-separated tag guids. This filter returns all recordings that match at least one of the queried tags.\n\nA valid noteswords filter is given by an optional \"exact\" filter being any string without semicolon, and 3 optional \"and\", \"or\" and \"not\" filters given by space-separated words: ((exact:[^;]+;)?(and:(word\\s)\\*word;)?(or:(word\\s)\\*word;)?(not:(word\\s)\\*word;)?\n\nN.B: Some characters in exact filter will be completely ignored. Ignored characters are: [^a-zA-Z0-9à-ùÇ-Üá-ñú-üÀ-ÄÆßœŒÿŸÑ@,'\\\\.\\\\-]+\n\nN.B: Users with \"Standard user\" role setting the user filter will receive a Forbidden (403) error.",
        "parameters": [
          {
            "schema": {
              "type": "number",
              "minimum": 1,
              "example": 25
            },
            "in": "query",
            "name": "quantity",
            "description": "Number of elements to get",
            "required": true
          },
          {
            "schema": {
              "type": "number",
              "minimum": 0,
              "example": 3
            },
            "in": "query",
            "name": "from",
            "description": "First recording to retrieve (zero based)",
            "required": true
          },
          {
            "schema": {
              "type": "string",
              "example": "exact:pizza ai peperoni;and:prezzo,basso;or:sconto,offerta;not:napoli,pavia (NOT URL ENCODED)"
            },
            "in": "query",
            "name": "words",
            "description": "Full text search filters. If more than one criterion is specified, all criteria have to match"
          },
          {
            "schema": {
              "type": "string",
              "pattern": "(POSITIVE|NEGATIVE|NEUTRAL|ERROR)(,(POSITIVE|NEGATIVE|NEUTRAL|ERROR))*",
              "example": "POSITIVE,NEUTRAL"
            },
            "in": "query",
            "name": "sentiment",
            "description": "Comma-separated list of sentiment classes to filter"
          },
          {
            "schema": {
              "type": "string",
              "example": "+334862149,45",
              "pattern": "\\+?[0-9]+(,\\+?[0-9]+)*"
            },
            "in": "query",
            "name": "tel",
            "description": "Phone number filter. Looks for phone number in local party and remote party fields"
          },
          {
            "schema": {
              "type": "string",
              "example": "2021-10-05T00:00:00.000Z",
              "pattern": "\\d{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[1-2]\\d|3[0-1])T(?:[0-1]\\d|2[0-3]):[0-5]\\d:[0-5]\\d\\.\\d{3}Z"
            },
            "in": "query",
            "name": "startdate",
            "description": "Date from which to start the search. Required if enddate is present. Must be on or after 1 Jan 2010. Must be before end date."
          },
          {
            "schema": {
              "type": "string",
              "pattern": "\\d{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[1-2]\\d|3[0-1])T(?:[0-1]\\d|2[0-3]):[0-5]\\d:[0-5]\\d\\.\\d{3}Z",
              "example": "2021-10-06T23:59:59.000Z"
            },
            "in": "query",
            "name": "enddate",
            "description": "Date on which to finish the search. Required if startdate is present. Must be after start date."
          },
          {
            "schema": {
              "type": "string",
              "example": "include:33993f32-8e12-4183-9b72-ac2d32c5771d,53993f32-8e12-4183-9b72-ac2d32c5771e",
              "pattern": "(include|exclude):[0-9A-Fa-f]{8}(-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}(,[0-9A-Fa-f]{8}(-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12})*"
            },
            "in": "query",
            "name": "users",
            "description": "Comma separated list of the recordings' owner(s) users id(s). The filter has a dual modality, you can either include recordings associated to a user ids list or exclude them."
          },
          {
            "schema": {
              "type": "string"
            },
            "in": "query",
            "name": "tagids",
            "description": "Comma separated list of tag ids"
          },
          {
            "schema": {
              "type": "string",
              "example": "exact:pizza ai peperoni;and:prezzo,basso;or:sconto,offerta;not:napoli,pavia (NOT URL ENCODED)"
            },
            "in": "query",
            "name": "noteswords",
            "description": "Full text search filters. If more than one criterion is specified, all criteria have to match"
          }
        ],
        "security": [
          {
            "Bearer Authentication": []
          }
        ]
      },
      "post": {
        "summary": "Post Recording",
        "operationId": "post-v1-recordings",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "",
                  "type": "object",
                  "x-examples": {
                    "example-1": {
                      "presignedUrl": "https://sarecordingsbucket-voiceanalyticsbucketb918880a-mt2eyg3b3zsm.s3.eu-central-1.amazonaws.com/ima668/27f27dff-f430-48ba-9c31-04d96ee5598a/20200403/20200403000000-6da2f5b0-03c6-482d-a28e-7c26df5643b6.mp3?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=ASIATIBQHTSQ7FHDTF4A%2F20210910%2Feu-central-1%2Fs3%2Faws4_request&X-Amz-Date=20210910T102618Z&X-Amz-Expires=900&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEIv%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FwEaDGV1LWNlbnRyYWwtMSJGMEQCIDTURJ0gMMmOSer9hJtJtf%2FvPQl90vJgembVieNsLKZmAiBO4QPE2PFMDVNruU9DOZFQM329R84suDhi1wA%2F%2BJ2z%2BSr3AgjU%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F8BEAEaDDIyMzQzOTQ2MTUzNyIMV5Nh8NxiXucSPfoMKssCv1OMMSRds3kZVEUJ3myqkaEd8baOMprc6AIS%2BANV%2BhPgnxU8kT26PXeFn4IpybP8uTG%2BWsHO3a%2FROPWCVxrCscnEi4p4m%2BFHAVssFelkJn%2FU5aPYj%2B0hTzh5VA%2BnWpDJ%2FF3s4uLVz1wbpfBCrdWrE9n%2BmhFoYjnfQoIXqotpsk2tQnFXAY%2BICvh9LKAkt2abyUJz5HMT%2FA4x9PWAx9Z2PT9nroHivti57ZSdZ1KDp86xemBJfWI%2B4n91i1sRAVy5mRFiqFI155c4YQYFDWTNGS1P5vP1rPcjXFUHLsfsfZGnh3paBGJEITVPMr2EFvK%2BphS%2Bjed%2FeQsKEve1qlg6sYTkYJZU4CRco2ARPEZrV0f8Q8aXLALMu8XyEtwGQv3JVxvHFqcga4yyaZR46TL%2FOnl%2Fh0KxekjfaPWEjLbDRVhvJOxYepi7QizVyTDJ5eyJBjqeAc293Cdvml28q4VAjq82NZFKaVfM0KY1mO9jh4k1wgOTdVEgHzDJYcbXrVeVEM%2FHiV5fI3WUJUXgUwjmjqSobqNj1N0DlvEZR6qpE%2FgvlHEdmjvYk3CF0ZAI%2BMko3ZshiZHmnVbOwLWvT5TyKuhDBnAOQms4wPe4k9fh28MF3rfkANkhL5qw2le1XaKgVXj%2FuqDTt4%2BgWRUYz22bf2ao&X-Amz-SignedHeaders=content-md5%3Bhost%3Bx-amz-meta-cognitousername%3Bx-amz-meta-direction%3Bx-amz-meta-filename%3Bx-amz-meta-language%3Bx-amz-meta-localpartynumber%3Bx-amz-meta-localpartyusername%3Bx-amz-meta-recordingdate%3Bx-amz-meta-remotepartynumber%3Bx-amz-meta-remotepartyusername%3Bx-amz-meta-speakers&x-id=PutObject&X-Amz-Signature=9fe5be1f4051d5d481fcceb2a5835d28edd8eb3bccd9a17ac976a4bc08079709"
                    }
                  },
                  "properties": {
                    "presignedUrl": {
                      "type": "string",
                      "minLength": 1
                    },
                    "state": {
                      "type": "string",
                      "minLength": 1
                    },
                    "recordingId": {
                      "type": "string",
                      "minLength": 1
                    }
                  },
                  "required": [
                    "presignedUrl",
                    "state",
                    "recordingId"
                  ]
                },
                "examples": {
                  "example-1": {
                    "value": {
                      "presignedUrl": "https://sarecordingsbucket-voiceanalyticsbucketb918880a-mt2eyg3b3zsm.s3.eu-central-1.amazonaws.com/ima668/27f27dff-f430-48ba-9c31-04d96ee5598a/20200403/20200403000000-6da2f5b0-03c6-482d-a28e-7c26df5643b6.mp3?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=ASIATIBQHTSQ7FHDTF4A%2F20210910%2Feu-central-1%2Fs3%2Faws4_request&X-Amz-Date=20210910T102618Z&X-Amz-Expires=900&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEIv%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FwEaDGV1LWNlbnRyYWwtMSJGMEQCIDTURJ0gMMmOSer9hJtJtf%2FvPQl90vJgembVieNsLKZmAiBO4QPE2PFMDVNruU9DOZFQM329R84suDhi1wA%2F%2BJ2z%2BSr3AgjU%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F8BEAEaDDIyMzQzOTQ2MTUzNyIMV5Nh8NxiXucSPfoMKssCv1OMMSRds3kZVEUJ3myqkaEd8baOMprc6AIS%2BANV%2BhPgnxU8kT26PXeFn4IpybP8uTG%2BWsHO3a%2FROPWCVxrCscnEi4p4m%2BFHAVssFelkJn%2FU5aPYj%2B0hTzh5VA%2BnWpDJ%2FF3s4uLVz1wbpfBCrdWrE9n%2BmhFoYjnfQoIXqotpsk2tQnFXAY%2BICvh9LKAkt2abyUJz5HMT%2FA4x9PWAx9Z2PT9nroHivti57ZSdZ1KDp86xemBJfWI%2B4n91i1sRAVy5mRFiqFI155c4YQYFDWTNGS1P5vP1rPcjXFUHLsfsfZGnh3paBGJEITVPMr2EFvK%2BphS%2Bjed%2FeQsKEve1qlg6sYTkYJZU4CRco2ARPEZrV0f8Q8aXLALMu8XyEtwGQv3JVxvHFqcga4yyaZR46TL%2FOnl%2Fh0KxekjfaPWEjLbDRVhvJOxYepi7QizVyTDJ5eyJBjqeAc293Cdvml28q4VAjq82NZFKaVfM0KY1mO9jh4k1wgOTdVEgHzDJYcbXrVeVEM%2FHiV5fI3WUJUXgUwjmjqSobqNj1N0DlvEZR6qpE%2FgvlHEdmjvYk3CF0ZAI%2BMko3ZshiZHmnVbOwLWvT5TyKuhDBnAOQms4wPe4k9fh28MF3rfkANkhL5qw2le1XaKgVXj%2FuqDTt4%2BgWRUYz22bf2ao&X-Amz-SignedHeaders=content-md5%3Bhost%3Bx-amz-meta-cognitousername%3Bx-amz-meta-direction%3Bx-amz-meta-filename%3Bx-amz-meta-language%3Bx-amz-meta-localpartynumber%3Bx-amz-meta-localpartyusername%3Bx-amz-meta-recordingdate%3Bx-amz-meta-remotepartynumber%3Bx-amz-meta-remotepartyusername%3Bx-amz-meta-speakers&x-id=PutObject&X-Amz-Signature=9fe5be1f4051d5d481fcceb2a5835d28edd8eb3bccd9a17ac976a4bc08079709",
                      "state": "YW50ZSBjb25zZWN0ZXR1ciBldWlzbW9kIGVmZmljaXR1ciwgYW50ZSBvZGlvIG9ybmFyZSBzYXBpZW4sIHF1aXMgYXVjdG9yIG5lcXVlIG51bGxhIHZlbCBuaXNsLiBNb3JiaSB1bHRyaWNpZXMgdm9sdXRwYXQgZmVsaXMsIHZpdGFlIHRyaXN0aXF1ZSBsZWN0dXMgcGxhY2VyYXQgaW4uIEludGVnZXIgdGluY2lkdW50IG5lcXVlIG5lYyBjb25zZWN0ZXR1ciB2ZWhpY3VsYS4gRHVpcyBjb25kaW1lbnR1bSBpZCBuZXF1ZSBzZWQgbW9sZQ==",
                      "recordingId": "20200403000000-6da2f5b0-03c6-482d-a28e-7c26df5643b6"
                    }
                  }
                }
              }
            }
          },
          "201": {
            "description": "Created"
          },
          "400": {
            "description": "Bad Request - Some information might be wrong or missing in the body request",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "errorDescription": {
                      "type": "string"
                    }
                  }
                },
                "examples": {
                  "example-1": {
                    "value": {
                      "errorDescription": "invalid email address"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized - Incorrect Oauth2 authentication"
          },
          "403": {
            "description": "User is not allowed to upload recordings",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "errorCode": {
                      "type": "number",
                      "description": "1. User is not licensed - 2. Transcription quota exceeded"
                    },
                    "errorDescription": {
                      "type": "string"
                    }
                  }
                },
                "examples": {
                  "Unlicensed user": {
                    "value": {
                      "errorCode": 1,
                      "errorDescription": "Missing license for user username@domain.com"
                    }
                  },
                  "Transcription quota exceeded": {
                    "value": {
                      "errorCode": 2,
                      "errorDescription": "Transcription quota exceeded"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not Found - It was not possibile to find a user corresponding to the provided email address"
          },
          "422": {
            "description": "Unprocessable Entity",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "errorDescription": {
                      "type": "string"
                    }
                  }
                },
                "examples": {
                  "example-1": {
                    "value": {
                      "errorDescription": "The request payload exceeds size limits"
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "description": "",
                "type": "object",
                "x-examples": {
                  "example-1": {
                    "user": {
                      "email": "user@domain.com"
                    },
                    "fileName": "file_Name.mp3",
                    "contentMd5": "Dz0RIM96f8B1QA0wkhfXyg==",
                    "speakers": 2,
                    "language": "it-IT",
                    "recordingDate": "2019-08-24T14:15:22Z",
                    "callData": {
                      "direction": "IN",
                      "localParty": {
                        "username": "user1",
                        "number": "123"
                      },
                      "remoteParty": {
                        "username": "user2",
                        "number": "+39 456 789"
                      }
                    }
                  }
                },
                "properties": {
                  "user": {
                    "type": "object",
                    "required": [
                      "email"
                    ],
                    "properties": {
                      "email": {
                        "type": "string",
                        "minLength": 1
                      }
                    }
                  },
                  "fileName": {
                    "type": "string",
                    "minLength": 1
                  },
                  "contentMd5": {
                    "type": "string",
                    "minLength": 1
                  },
                  "callData": {
                    "type": "object",
                    "required": [
                      "localParty",
                      "remoteParty",
                      "duration",
                      "recordingDate"
                    ],
                    "properties": {
                      "direction": {
                        "type": "string",
                        "enum": [
                          "IN",
                          "OUT",
                          "UNKNOWN"
                        ],
                        "description": "Direction of the call",
                        "default": "UNKNOWN"
                      },
                      "localParty": {
                        "type": "object",
                        "properties": {
                          "firstName": {
                            "type": "string"
                          },
                          "number": {
                            "type": "string"
                          },
                          "lastName": {
                            "type": "string"
                          }
                        }
                      },
                      "remoteParty": {
                        "type": "object",
                        "properties": {
                          "firstName": {
                            "type": "string"
                          },
                          "number": {
                            "type": "string"
                          },
                          "lastName": {
                            "type": "string"
                          }
                        }
                      },
                      "duration": {
                        "type": "integer",
                        "description": "The duration of the audio file in seconds",
                        "minimum": 1
                      },
                      "callType": {
                        "type": "string",
                        "description": "Type of the recorded call",
                        "enum": [
                          "INTERNAL",
                          "EXTERNAL",
                          "UNKNOWN"
                        ],
                        "default": "UNKNOWN"
                      },
                      "recordingDate": {
                        "type": "string",
                        "format": "date-time",
                        "example": "2021-10-20T10:43:00Z",
                        "description": "Recording date and time (UTC)"
                      },
                      "speakers": {
                        "type": "integer",
                        "description": "Number of speakers. If not specified, it will be auto-detected.",
                        "minimum": 2,
                        "maximum": 10
                      },
                      "language": {
                        "type": "string",
                        "enum": [
                          "en-GB",
                          "en-US",
                          "it-IT",
                          "es-ES",
                          "de-DE",
                          "pt-PT",
                          "fr-FR"
                        ],
                        "description": "If not specified, it will be auto-detected."
                      }
                    }
                  }
                },
                "required": [
                  "user",
                  "fileName",
                  "contentMd5",
                  "callData"
                ]
              },
              "examples": {
                "example-1": {
                  "value": {
                    "user": {
                      "email": "username@domain.com"
                    },
                    "fileName": "file_Name.mp3",
                    "contentMd5": "Dz0RIM96f80wkhfXyg==",
                    "callData": {
                      "direction": "IN",
                      "localParty": {
                        "firstName": "John",
                        "lastName": "Smith",
                        "number": "+2 123 514"
                      },
                      "remoteParty": {
                        "firstName": "Jane",
                        "lastName": "Smith",
                        "number": "+39 456 789"
                      },
                      "duration": 360512,
                      "callType": "INTERNAL",
                      "speakers": 2,
                      "language": "it-IT",
                      "recordingDate": "2019-08-24T14:15:22Z"
                    }
                  }
                }
              }
            }
          },
          "description": "Provide details about the user under which the recording will be saved together with the information about the recording itself."
        },
        "description": "This endpoint has to be used by a service to automatically upload recordings to the Voice Analytics services. \n\nIf you want to let an authenticated user to upload a recording manually use the `POST /v1/recordings/own` api instead.\n\nUse this api to request an upload operation. It will return an s3 presigned url with temporary credentials that allows to upload a new recording file.\n\nThe actual file upload happens by invoking a PUT operation towards the url returned by the POST call.\nIn this PUT request to the presigned URL, besides the file you wish to upload, you need to fill these headers otherwise the request will fail with a 403 error:\n* `x-amz-meta-state`: the parameter `state` returned from the previous POST of this API.\n* `content-md5`: the base64-encoded (not hex! -- see example) md5 hash of the file you wish to upload\n\nThe client SHOULD store the returned `recordingId` locally, to attach other resources to the audio recording(e.g. a screen recording video) later.",
        "security": [
          {
            "OAuth2 client credentials": [
              "voice-analytics/recordings.write"
            ]
          }
        ],
        "tags": [
          "Recordings"
        ]
      }
    },
    "/v1/recordings/{recordingId}/screen": {
      "post": {
        "summary": "Post Screen Recording",
        "operationId": "post-v1-recordings-screen",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "",
                  "type": "object",
                  "x-examples": {
                    "example-1": {
                      "presignedUrl": "https://sarecordingsbucket-voiceanalyticsbucketb918880a-mt2eyg3b3zsm.s3.eu-central-1.amazonaws.com/ima668/27f27dff-f430-48ba-9c31-04d96ee5598a/20200403/20200403000000-6da2f5b0-03c6-482d-a28e-7c26df5643b6.mp3?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=ASIATIBQHTSQ7FHDTF4A%2F20210910%2Feu-central-1%2Fs3%2Faws4_request&X-Amz-Date=20210910T102618Z&X-Amz-Expires=900&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEIv%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FwEaDGV1LWNlbnRyYWwtMSJGMEQCIDTURJ0gMMmOSer9hJtJtf%2FvPQl90vJgembVieNsLKZmAiBO4QPE2PFMDVNruU9DOZFQM329R84suDhi1wA%2F%2BJ2z%2BSr3AgjU%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F8BEAEaDDIyMzQzOTQ2MTUzNyIMV5Nh8NxiXucSPfoMKssCv1OMMSRds3kZVEUJ3myqkaEd8baOMprc6AIS%2BANV%2BhPgnxU8kT26PXeFn4IpybP8uTG%2BWsHO3a%2FROPWCVxrCscnEi4p4m%2BFHAVssFelkJn%2FU5aPYj%2B0hTzh5VA%2BnWpDJ%2FF3s4uLVz1wbpfBCrdWrE9n%2BmhFoYjnfQoIXqotpsk2tQnFXAY%2BICvh9LKAkt2abyUJz5HMT%2FA4x9PWAx9Z2PT9nroHivti57ZSdZ1KDp86xemBJfWI%2B4n91i1sRAVy5mRFiqFI155c4YQYFDWTNGS1P5vP1rPcjXFUHLsfsfZGnh3paBGJEITVPMr2EFvK%2BphS%2Bjed%2FeQsKEve1qlg6sYTkYJZU4CRco2ARPEZrV0f8Q8aXLALMu8XyEtwGQv3JVxvHFqcga4yyaZR46TL%2FOnl%2Fh0KxekjfaPWEjLbDRVhvJOxYepi7QizVyTDJ5eyJBjqeAc293Cdvml28q4VAjq82NZFKaVfM0KY1mO9jh4k1wgOTdVEgHzDJYcbXrVeVEM%2FHiV5fI3WUJUXgUwjmjqSobqNj1N0DlvEZR6qpE%2FgvlHEdmjvYk3CF0ZAI%2BMko3ZshiZHmnVbOwLWvT5TyKuhDBnAOQms4wPe4k9fh28MF3rfkANkhL5qw2le1XaKgVXj%2FuqDTt4%2BgWRUYz22bf2ao&X-Amz-SignedHeaders=content-md5%3Bhost%3Bx-amz-meta-cognitousername%3Bx-amz-meta-direction%3Bx-amz-meta-filename%3Bx-amz-meta-language%3Bx-amz-meta-localpartynumber%3Bx-amz-meta-localpartyusername%3Bx-amz-meta-recordingdate%3Bx-amz-meta-remotepartynumber%3Bx-amz-meta-remotepartyusername%3Bx-amz-meta-speakers&x-id=PutObject&X-Amz-Signature=9fe5be1f4051d5d481fcceb2a5835d28edd8eb3bccd9a17ac976a4bc08079709"
                    }
                  },
                  "properties": {
                    "presignedUrl": {
                      "type": "string",
                      "minLength": 1
                    }
                  },
                  "required": [
                    "presignedUrl"
                  ]
                },
                "examples": {
                  "example-1": {
                    "value": {
                      "presignedUrl": "https://sarecordingsbucket-voiceanalyticsbucketb918880a-mt2eyg3b3zsm.s3.eu-central-1.amazonaws.com/ima668/27f27dff-f430-48ba-9c31-04d96ee5598a/20200403/20200403000000-6da2f5b0-03c6-482d-a28e-7c26df5643b6.mp3?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=ASIATIBQHTSQ7FHDTF4A%2F20210910%2Feu-central-1%2Fs3%2Faws4_request&X-Amz-Date=20210910T102618Z&X-Amz-Expires=900&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEIv%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FwEaDGV1LWNlbnRyYWwtMSJGMEQCIDTURJ0gMMmOSer9hJtJtf%2FvPQl90vJgembVieNsLKZmAiBO4QPE2PFMDVNruU9DOZFQM329R84suDhi1wA%2F%2BJ2z%2BSr3AgjU%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F8BEAEaDDIyMzQzOTQ2MTUzNyIMV5Nh8NxiXucSPfoMKssCv1OMMSRds3kZVEUJ3myqkaEd8baOMprc6AIS%2BANV%2BhPgnxU8kT26PXeFn4IpybP8uTG%2BWsHO3a%2FROPWCVxrCscnEi4p4m%2BFHAVssFelkJn%2FU5aPYj%2B0hTzh5VA%2BnWpDJ%2FF3s4uLVz1wbpfBCrdWrE9n%2BmhFoYjnfQoIXqotpsk2tQnFXAY%2BICvh9LKAkt2abyUJz5HMT%2FA4x9PWAx9Z2PT9nroHivti57ZSdZ1KDp86xemBJfWI%2B4n91i1sRAVy5mRFiqFI155c4YQYFDWTNGS1P5vP1rPcjXFUHLsfsfZGnh3paBGJEITVPMr2EFvK%2BphS%2Bjed%2FeQsKEve1qlg6sYTkYJZU4CRco2ARPEZrV0f8Q8aXLALMu8XyEtwGQv3JVxvHFqcga4yyaZR46TL%2FOnl%2Fh0KxekjfaPWEjLbDRVhvJOxYepi7QizVyTDJ5eyJBjqeAc293Cdvml28q4VAjq82NZFKaVfM0KY1mO9jh4k1wgOTdVEgHzDJYcbXrVeVEM%2FHiV5fI3WUJUXgUwjmjqSobqNj1N0DlvEZR6qpE%2FgvlHEdmjvYk3CF0ZAI%2BMko3ZshiZHmnVbOwLWvT5TyKuhDBnAOQms4wPe4k9fh28MF3rfkANkhL5qw2le1XaKgVXj%2FuqDTt4%2BgWRUYz22bf2ao&X-Amz-SignedHeaders=content-md5%3Bhost%3Bx-amz-meta-cognitousername%3Bx-amz-meta-direction%3Bx-amz-meta-filename%3Bx-amz-meta-language%3Bx-amz-meta-localpartynumber%3Bx-amz-meta-localpartyusername%3Bx-amz-meta-recordingdate%3Bx-amz-meta-remotepartynumber%3Bx-amz-meta-remotepartyusername%3Bx-amz-meta-speakers&x-id=PutObject&X-Amz-Signature=9fe5be1f4051d5d481fcceb2a5835d28edd8eb3bccd9a17ac976a4bc08079709"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request - Some information might be wrong or missing in the body request",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "errorDescription": {
                      "type": "string"
                    }
                  }
                },
                "examples": {
                  "example-1": {
                    "value": {
                      "errorDescription": "invalid email address"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized - Incorrect Oauth2 authentication"
          },
          "403": {
            "description": "Forbidden - User is not allowed to upload recordings"
          },
          "404": {
            "description": "Not Found - It was not possible to find a user or its audio recording matching the e-mail address and recordingId provided."
          },
          "409": {
            "description": "Conflict - Multiple screen recording videos are not allowed to be uploaded for the same `recordingId`."
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "description": "",
                "type": "object",
                "x-examples": {
                  "example-1": {
                    "user": {
                      "email": "user@domain.com"
                    },
                    "fileName": "file_Name.mp3",
                    "contentMd5": "Dz0RIM96f8B1QA0wkhfXyg==",
                    "speakers": 2,
                    "language": "it-IT",
                    "recordingDate": "2019-08-24T14:15:22Z",
                    "callData": {
                      "direction": "IN",
                      "localParty": {
                        "username": "user1",
                        "number": "123"
                      },
                      "remoteParty": {
                        "username": "user2",
                        "number": "+39 456 789"
                      }
                    }
                  }
                },
                "properties": {
                  "user": {
                    "type": "object",
                    "required": [
                      "email"
                    ],
                    "properties": {
                      "email": {
                        "type": "string",
                        "minLength": 1
                      }
                    }
                  },
                  "fileName": {
                    "type": "string",
                    "minLength": 1,
                    "description": "filename including extension."
                  },
                  "fileSize": {
                    "type": "integer",
                    "format": "byte",
                    "description": "Size of the screen recording in bytes."
                  },
                  "contentMd5": {
                    "type": "string",
                    "minLength": 1
                  }
                },
                "required": [
                  "user",
                  "fileName",
                  "fileSize",
                  "contentMd5"
                ]
              },
              "examples": {
                "example-1": {
                  "value": {
                    "user": {
                      "email": "username@domain.com"
                    },
                    "fileName": "file_Name.webm",
                    "fileSize": 45812,
                    "contentMd5": "Dz0RIM96f80wkhfXyg=="
                  }
                }
              }
            }
          },
          "description": "Provide details about the user under which the screen recording will be saved together with the information about the recording itself."
        },
        "description": "This endpoint has to be used by a service to automatically upload and associate a screen recording to a specific audio recording that has already been uploaded to the Voice Analytics services. \n\nUse this API to request an upload operation. It will return an s3 presigned url with temporary credentials that allows to upload a new screen recording file.\n\nThe actual file upload happens by invoking a PUT operation towards the url returned by the POST call.\nIn this PUT request to the presigned URL, besides the file you wish to upload, you need to fill these headers otherwise the request will fail with a 403 error:\n* `content-md5`: the base64-encoded (not hex! -- see example) md5 hash of the file you wish to upload\n\nOnly videos with a *.webm extension are accepted.\nThe maximum file size of a screen recording is 4 GB.",
        "security": [
          {
            "OAuth2 client credentials": [
              "voice-analytics/recordings.write"
            ]
          }
        ],
        "tags": [
          "Recordings"
        ]
      },
      "parameters": [
        {
          "schema": {
            "type": "string"
          },
          "name": "recordingId",
          "in": "path",
          "required": true,
          "description": "Recording Id returned by the POST call to `/v1/recordings` in order to attach the screen recording video to the audio recording requested."
        }
      ]
    },
    "/v1/recordings/own": {
      "post": {
        "summary": "Post Own Recording (GUI)",
        "tags": [
          "Recordings"
        ],
        "operationId": "post-v1-recording",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "presignedUrl": {
                      "type": "string"
                    }
                  }
                },
                "examples": {
                  "Example": {
                    "value": {
                      "presignedUrl": "https://bucketname.s3.region.amazonaws.com/file-Name.mp3?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=ASIATIBQHTSQT4A4XRFO%2F20210508%2Feu-central-1%2Fs3%2Faws4_request&X-Amz-Date=20210508T095540Z&X-Amz-Expires=900&X-Amz-Security-Token=xxx&X-Amz-SignedHeaders=expires&host&x-amz-meta-language=it-IT&x-amz-meta-speakers=2&X-Amz-Signature=xxx"
                    }
                  }
                }
              }
            },
            "headers": {}
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "examples": {
                  "Missing Language": {
                    "value": {
                      "errorCode": 0,
                      "errorDescription": "Missing language"
                    }
                  },
                  "Missing Speakers": {
                    "value": {
                      "errorCode": 1,
                      "errorDescription": "Missing number of speakers"
                    }
                  },
                  "Unsupported File Extension": {
                    "value": {
                      "errorCode": 2,
                      "errorDescription": "Unsupported file extension"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "User is not allowed to upload recordings",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "errorCode": {
                      "type": "number",
                      "description": "1. User is not licensed - 2. Transcription quota exceeded"
                    },
                    "errorDescription": {
                      "type": "string"
                    }
                  }
                },
                "examples": {
                  "Unlicensed user": {
                    "value": {
                      "errorCode": 1,
                      "errorDescription": "Missing license for user username@domain.com"
                    }
                  },
                  "Transcription quota exceeded": {
                    "value": {
                      "errorCode": 2,
                      "errorDescription": "Transcription quota exceeded"
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "fileName": {
                    "type": "string"
                  },
                  "speakers": {
                    "type": "integer",
                    "description": "Number of speakers. If not specified, it will be auto-detected.",
                    "minimum": 2,
                    "maximum": 10
                  },
                  "language": {
                    "type": "string",
                    "description": "If not specified, it will be auto-detected",
                    "enum": [
                      "en-GB",
                      "en-US",
                      "it-IT",
                      "es-ES",
                      "de-DE",
                      "pt-PT",
                      "fr-FR"
                    ]
                  },
                  "callData": {
                    "type": "object",
                    "required": [
                      "localParty",
                      "remoteParty"
                    ],
                    "properties": {
                      "direction": {
                        "type": "string",
                        "enum": [
                          "IN",
                          "OUT",
                          "UNKNOWN"
                        ],
                        "description": "Direction of the call",
                        "default": "UNKNOWN"
                      },
                      "localParty": {
                        "type": "object",
                        "properties": {
                          "username": {
                            "type": "string"
                          },
                          "number": {
                            "type": "string"
                          }
                        }
                      },
                      "remoteParty": {
                        "type": "object",
                        "properties": {
                          "username": {
                            "type": "string"
                          },
                          "number": {
                            "type": "string"
                          }
                        }
                      }
                    }
                  },
                  "recordingDate": {
                    "type": "string",
                    "format": "date-time",
                    "example": "2021-10-01T10:40:25Z",
                    "description": "Recording date and time (UTC)"
                  },
                  "contentMd5": {
                    "type": "string"
                  }
                },
                "required": [
                  "fileName",
                  "callData",
                  "recordingDate",
                  "contentMd5"
                ]
              },
              "examples": {
                "Post Recording": {
                  "value": {
                    "fileName": "file_Name.mp3",
                    "contentMd5": "Dz0RIM96f8B1QA0wkhfXyg==",
                    "speakers": 2,
                    "language": "it-IT",
                    "recordingDate": "2019-08-24T14:15:22Z",
                    "callData": {
                      "direction": "IN",
                      "localParty": {
                        "username": "user1",
                        "number": "123"
                      },
                      "remoteParty": {
                        "username": "user2",
                        "number": "+39 456 789"
                      }
                    }
                  }
                }
              }
            }
          },
          "description": ""
        },
        "description": "Use this api to request an upload operation. It will return an s3 presigned url with temporary credentials that allow to upload a new recording file.\n\nThe actual file upload happens by invoking a PUT operation towards the Url returned by the POST call.\nIn this PUT request to the presigned URL, besides PUTting the file you wish to upload, you need to fill these headers, otherwise the request will fail with a 403 error:\n* `x-amz-meta-*`: for each of the file metadata, you need to specify a header, with the same value as the one that was passed to the POST request. Any empty field in the POST request MUST NOT be passed as a header in the PUT request.\n** direction\n** filename\n** language\n** speakers\n** recordingdate\n** localpartynumber\n** localpartyusername\n** remotepartynumber\n** remotepartyusername\n** userid (GUID-like user Id of the user which is performing the upload operation)\n* `content-md5`: the base64-encoded (not hex! -- see example) md5 hash of the file you wish to upload",
        "parameters": [],
        "security": [
          {
            "Bearer Authentication": []
          }
        ]
      }
    },
    "/v1/recordings/{recordingId}/uri": {
      "get": {
        "summary": "Get Recording URI",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "",
                  "type": "object",
                  "properties": {
                    "recordingUri": {
                      "type": "string"
                    }
                  }
                },
                "examples": {
                  "Detail retrieved": {
                    "value": {
                      "recordingUri": "https://bucketname.s3.region.amazonaws.com/file-Name.mp3"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "operationId": "get-v1-uri",
        "description": "Retrieves the audio or the video URI of the specified recording",
        "parameters": [
          {
            "schema": {
              "type": "string",
              "enum": [
                "audio",
                "video"
              ],
              "default": "audio"
            },
            "in": "query",
            "name": "media",
            "description": "Type of the media (audio|video) for the uri request. If not specified, audio is assumed"
          }
        ],
        "security": [
          {
            "Bearer Authentication": []
          }
        ],
        "tags": [
          "Recordings"
        ]
      },
      "parameters": [
        {
          "schema": {
            "type": "string",
            "minLength": 1
          },
          "name": "recordingId",
          "in": "path",
          "required": true,
          "description": "recording ID"
        }
      ]
    },
    "/v1/recordings/{recordingId}/details": {
      "get": {
        "summary": "Get Recording details",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RecordingDetails"
                },
                "examples": {
                  "example-1": {
                    "value": {
                      "id": "string",
                      "ownerId": "string",
                      "direction": "IN",
                      "from": {
                        "fullName": "string",
                        "phoneNumber": "string"
                      },
                      "to": {
                        "fullName": "string",
                        "phoneNumber": "string"
                      },
                      "date": "2021-04-25T10:24:40Z",
                      "analysisResult": {
                        "score": -1,
                        "sentiment": "POSITIVE",
                        "status": 0
                      },
                      "channels": 1,
                      "duration": 0,
                      "video": {
                        "status": "OK"
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "operationId": "get-v1-details",
        "description": "Retrieves the details of the specified recording ",
        "parameters": [],
        "security": [
          {
            "Bearer Authentication": []
          }
        ],
        "tags": [
          "Recordings"
        ]
      },
      "parameters": [
        {
          "schema": {
            "type": "string",
            "minLength": 1
          },
          "name": "recordingId",
          "in": "path",
          "required": true,
          "description": "recording ID"
        }
      ]
    },
    "/v1/recordings/{recordingId}/transcription": {
      "get": {
        "summary": "Get Recording Transcription",
        "tags": [
          "Recordings"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "",
                  "type": "object",
                  "properties": {
                    "speakers": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Speaker"
                      }
                    },
                    "sentences": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Sentence"
                      }
                    }
                  }
                },
                "examples": {
                  "Transcription Retrieved": {
                    "value": {
                      "speakers": [
                        {
                          "speakerId": "1",
                          "speakerLabel": "Nome Cognome"
                        },
                        {
                          "speakerId": "2",
                          "speakerLabel": "Nome2 Cognome2"
                        },
                        {
                          "speakerId": "3",
                          "speakerLabel": ""
                        }
                      ],
                      "sentences": [
                        {
                          "speakerId": "2",
                          "startTime": 0.5,
                          "endTime": 0.9,
                          "text": "Hello from Imagicle"
                        },
                        {
                          "speakerId": "1",
                          "startTime": 1,
                          "endTime": 1.2,
                          "text": "Hello I'm Andrea"
                        },
                        {
                          "speakerId": "1",
                          "startTime": 1.3,
                          "endTime": 1.95,
                          "text": "What is your problem?"
                        },
                        {
                          "speakerId": "3",
                          "startTime": 1.4,
                          "endTime": 2,
                          "text": "Here I Am!"
                        },
                        {
                          "speakerId": "2",
                          "startTime": 1.4,
                          "endTime": 4,
                          "text": "Here I Am too, same start time, latest in order (AT #12)"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "204": {
            "description": "Transcription job in progress (not ready yet)"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "operationId": "get-v1-transcription",
        "description": "Retrieves the transcription of the specified recording ",
        "parameters": [],
        "security": [
          {
            "Bearer Authentication": []
          }
        ]
      },
      "parameters": [
        {
          "schema": {
            "type": "string",
            "minLength": 1
          },
          "name": "recordingId",
          "in": "path",
          "required": true,
          "description": "recording ID"
        }
      ]
    },
    "/v1/recordings/{recordingId}/sentiment": {
      "parameters": [
        {
          "schema": {
            "type": "string",
            "minLength": 1
          },
          "name": "recordingId",
          "in": "path",
          "required": true,
          "description": "Unique Id of a recording"
        }
      ],
      "get": {
        "summary": "Get Recording Sentiment",
        "tags": [
          "Recordings"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "",
                  "type": "object",
                  "x-examples": {
                    "example-1": {
                      "sentences": [
                        {
                          "sentiment": "string",
                          "score": 7,
                          "error": {
                            "errorCode": "string",
                            "errorDescription": "string"
                          }
                        }
                      ]
                    }
                  },
                  "properties": {
                    "sentences": {
                      "type": "array",
                      "uniqueItems": true,
                      "minItems": 1,
                      "description": "Ordered list of sentiment scores for the transcribed sentences.",
                      "items": {
                        "type": "object",
                        "properties": {
                          "sentiment": {
                            "type": "string",
                            "minLength": 1,
                            "description": "Sentiment for the given sentence",
                            "enum": [
                              "POSITIVE",
                              "NEGATIVE",
                              "NEUTRAL",
                              "ERROR"
                            ]
                          },
                          "error": {
                            "type": "object",
                            "nullable": true,
                            "properties": {
                              "errorCode": {
                                "type": "string",
                                "minLength": 1,
                                "description": "Either \"DOCUMENT_SIZE_EXCEEDED\" or \"GENERIC_ERROR\", for the given line",
                                "enum": [
                                  "GENERIC_ERROR"
                                ],
                                "nullable": true
                              },
                              "errorDescription": {
                                "type": "string",
                                "minLength": 1,
                                "description": "A description of the given error code",
                                "nullable": true
                              }
                            }
                          },
                          "score": {
                            "type": "number",
                            "description": "Score for the given sentence in [-1;+1]",
                            "minimum": -1,
                            "maximum": 1,
                            "multipleOf": 0.1
                          }
                        },
                        "required": [
                          "sentiment",
                          "score"
                        ]
                      }
                    },
                    "global": {
                      "type": "object",
                      "description": "Global sentiment score for the recording.",
                      "required": [
                        "sentiment"
                      ],
                      "nullable": true,
                      "properties": {
                        "score": {
                          "type": "number",
                          "minimum": -1,
                          "maximum": 1,
                          "multipleOf": 0.1
                        },
                        "sentiment": {
                          "type": "string",
                          "enum": [
                            "POSITIVE",
                            "NEGATIVE",
                            "NEUTRAL",
                            "ERROR"
                          ]
                        },
                        "percentages": {
                          "type": "object",
                          "description": "Percentages of negative, positive and neutral content.",
                          "nullable": true,
                          "properties": {
                            "negative": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 1
                            },
                            "positive": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 1
                            },
                            "neutral": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 1
                            }
                          }
                        },
                        "error": {
                          "type": "object",
                          "nullable": true,
                          "properties": {
                            "errorCode": {
                              "type": "string",
                              "nullable": true
                            },
                            "errorDescription": {
                              "type": "string",
                              "nullable": true
                            }
                          }
                        }
                      }
                    },
                    "speakers": {
                      "type": "array",
                      "minItems": 1,
                      "items": {
                        "type": "object",
                        "properties": {
                          "speakerId": {
                            "type": "string"
                          },
                          "score": {
                            "type": "number",
                            "minimum": -1,
                            "maximum": 1,
                            "multipleOf": 0.1
                          },
                          "sentiment": {
                            "type": "string",
                            "enum": [
                              "POSITIVE",
                              "NEGATIVE",
                              "NEUTRAL",
                              "ERROR"
                            ]
                          },
                          "assignedSpeaker": {
                            "type": "string",
                            "nullable": true
                          },
                          "error": {
                            "type": "object",
                            "nullable": true,
                            "properties": {
                              "errorCode": {
                                "type": "number",
                                "description": "1. Generic error\n2. Score out of bounds"
                              },
                              "errorDescription": {
                                "type": "string"
                              }
                            }
                          }
                        }
                      }
                    }
                  },
                  "required": [
                    "sentences",
                    "global",
                    "speakers"
                  ]
                },
                "examples": {
                  "Example 1": {
                    "value": {
                      "global": {
                        "score": 0.8,
                        "sentiment": "POSITIVE",
                        "error": null,
                        "percentages": {
                          "negative": 0.15,
                          "positive": 0.75,
                          "neutral": 0.1
                        }
                      },
                      "speakers": [
                        {
                          "speakerId": "0",
                          "score": 0,
                          "sentiment": "ERROR",
                          "error": {
                            "errorCode": 1,
                            "errorDescription": "An error occurred"
                          }
                        },
                        {
                          "speakerId": "1",
                          "score": 0.5,
                          "sentiment": "POSITIVE",
                          "assignedSpeaker": "name surname"
                        },
                        {
                          "speakerId": "2",
                          "score": -0.5,
                          "sentiment": "NEGATIVE"
                        }
                      ],
                      "sentences": [
                        {
                          "sentiment": "NEUTRAL",
                          "score": 0.1,
                          "error": null
                        },
                        {
                          "sentiment": "POSITIVE",
                          "score": 1,
                          "error": null
                        },
                        {
                          "sentiment": "ERROR",
                          "score": 0,
                          "error": {
                            "errorCode": "GENERIC_ERROR",
                            "errorDescription": "Document size is exceeded maximum size limit 5120 bytes."
                          }
                        },
                        {
                          "sentiment": "NEGATIVE",
                          "score": -1,
                          "error": null
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "204": {
            "description": "No Content, Analysis still in progress"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "operationId": "get-v1-recordings-recordingId-sentiment",
        "description": "Get sentiment analysis for each sentence",
        "security": [
          {
            "Bearer Authentication": []
          }
        ]
      }
    },
    "/v1/recordings/{recordingId}/tags": {
      "parameters": [
        {
          "schema": {
            "type": "string"
          },
          "name": "recordingId",
          "in": "path",
          "required": true
        }
      ],
      "post": {
        "summary": "Tag a recording",
        "tags": [
          "Recordings",
          "Tags"
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request"
          },
          "404": {
            "description": "Tag Id Not Found"
          },
          "409": {
            "description": "Tag already associated to the recording"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "operationId": "post-v1-recordings-recordingid-tag",
        "description": "Associates a tag to the recording",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "tagId": {
                    "type": "string"
                  }
                },
                "required": [
                  "tagId"
                ]
              },
              "examples": {
                "example": {
                  "value": {
                    "tagId": "3f992b38-0baf-47fb-9f09-64a156ce85b5"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "Bearer Authentication": []
          }
        ]
      },
      "get": {
        "summary": "Get recording tags",
        "operationId": "get-v1-recordings-recordingId-tags",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "tags": {
                      "type": "array",
                      "minItems": 0,
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string",
                            "format": "uuid"
                          },
                          "value": {
                            "type": "string"
                          },
                          "createdAt": {
                            "type": "string",
                            "format": "date-time"
                          }
                        },
                        "required": [
                          "id",
                          "value",
                          "createdAt"
                        ]
                      }
                    }
                  },
                  "required": [
                    "tags"
                  ]
                },
                "examples": {
                  "example-1": {
                    "value": {
                      "tags": [
                        {
                          "id": "f69eb9f1-ae9f-4086-b25c-c39758a43fb3",
                          "value": "aTagName",
                          "createdAt": "2019-08-24T14:15:22Z"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "description": "Gets a list of tags associated with the recording.",
        "tags": [
          "Tags"
        ]
      }
    },
    "/v1/recordings/{recordingId}/notes": {
      "parameters": [
        {
          "schema": {
            "type": "string"
          },
          "name": "recordingId",
          "in": "path",
          "required": true
        }
      ],
      "post": {
        "summary": "Create recording note",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "noteId": {
                      "type": "string",
                      "format": "uuid"
                    }
                  },
                  "required": [
                    "noteId"
                  ]
                },
                "examples": {
                  "example-1": {
                    "value": {
                      "noteId": "11bee8fe-2793-4911-9b27-a6f8473a2ccf"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Recording Not Found"
          },
          "409": {
            "description": "Note already associated to the recording"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "operationId": "post-v1-recordings-recordingid-notes",
        "description": "Associates a note to the recording",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "noteText": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 240
                  }
                },
                "required": [
                  "noteText"
                ]
              },
              "examples": {
                "example-1": {
                  "value": {
                    "noteText": "my recording note"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "Bearer Authentication": []
          }
        ],
        "tags": [
          "Notes"
        ]
      },
      "get": {
        "summary": "Get recording notes",
        "operationId": "get-v1-recordings-recordingId-notes",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "notes": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Note"
                      }
                    }
                  }
                },
                "examples": {
                  "example-1": {
                    "value": {
                      "notes": [
                        {
                          "noteId": "11bee8fe-2793-4911-9b27-a6f8473a2ccf",
                          "authorUserId": "ea75109d-c5c5-4407-b0ab-0da27cd41c18",
                          "noteText": "note 1",
                          "createdAt": "2019-08-24T14:15:22Z",
                          "lastModified": "2019-08-24T14:15:22Z"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "description": "Gets a list of notes associated with the recording.",
        "security": [
          {
            "Bearer Authentication": []
          }
        ],
        "tags": [
          "Notes"
        ]
      }
    },
    "/v1/recordings/{recordingId}/tags/{tagId}": {
      "parameters": [
        {
          "schema": {
            "type": "string"
          },
          "name": "recordingId",
          "in": "path",
          "required": true
        },
        {
          "schema": {
            "type": "string"
          },
          "name": "tagId",
          "in": "path",
          "required": true
        }
      ],
      "delete": {
        "summary": "Untag a recording",
        "operationId": "delete-v1-recordings-recordingId-tags-tagId",
        "responses": {
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "description": "Dissociate a specified tag from a given recording.",
        "tags": [
          "Tags"
        ]
      }
    },
    "/v1/recordings/{recordingId}/notes/{noteId}": {
      "parameters": [
        {
          "schema": {
            "type": "string"
          },
          "name": "recordingId",
          "in": "path",
          "required": true
        },
        {
          "schema": {
            "type": "string"
          },
          "name": "noteId",
          "in": "path",
          "required": true
        }
      ],
      "delete": {
        "summary": "Delete Recording Note",
        "operationId": "delete-v1-recordings-recordingId-notes-noteId",
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Recording or Note Not Found"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "description": "Delete a specified note from a given recording.",
        "tags": [
          "Notes"
        ],
        "security": [
          {
            "Bearer Authentication": []
          }
        ]
      },
      "put": {
        "summary": "Edit Recording Note",
        "operationId": "put-v1-recordings-recordingId-notes-noteId",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Note"
                },
                "examples": {
                  "example-1": {
                    "value": {
                      "noteId": "11bee8fe-2793-4911-9b27-a6f8473a2ccf",
                      "authorUserId": "ea75109d-c5c5-4407-b0ab-0da27cd41c18",
                      "noteText": "my new note",
                      "createdAt": "2019-08-24T14:15:22Z",
                      "lastModified": "2019-08-24T14:15:22Z"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Recording or Note Not Found"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "tags": [
          "Notes"
        ],
        "description": "Edit a specified recording note with the text provided.",
        "security": [
          {
            "Bearer Authentication": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "noteText": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 240,
                    "description": "the new note text"
                  }
                },
                "required": [
                  "noteText"
                ]
              },
              "examples": {
                "example-1": {
                  "value": {
                    "noteText": "my new note"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/v1/recordings/{recordingId}": {
      "delete": {
        "summary": "Delete Recording",
        "tags": [
          "Recordings"
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "examples": {
                  "Example": {
                    "value": {
                      "errorCode": 42,
                      "errorDescription": "Don't panic!"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found - The conversation has already been deleted"
          },
          "409": {
            "description": "Recording is being processed, cannot delete it yet"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "operationId": "delete-v1-uri",
        "description": "Deletes a specific conversation identified by {recordingId}.",
        "parameters": [],
        "security": [
          {
            "Bearer Authentication": []
          }
        ]
      },
      "parameters": [
        {
          "schema": {
            "type": "string"
          },
          "name": "recordingId",
          "in": "path",
          "required": true,
          "description": "recording ID"
        }
      ]
    },
    "/v1/recordings/tags": {
      "get": {
        "summary": "Get a list of tags",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "x-examples": {
                    "example-1": {
                      "rules": [
                        {
                          "id": "rule_id1",
                          "transcription": {
                            "keywords": [
                              "ciao",
                              "los angeles"
                            ]
                          }
                        },
                        {
                          "id": "rule_id2",
                          "transcription": {
                            "keywords": [
                              "ciao",
                              "new york"
                            ]
                          }
                        }
                      ]
                    }
                  },
                  "properties": {
                    "tags": {
                      "type": "array",
                      "minItems": 0,
                      "items": {
                        "$ref": "#/components/schemas/Tag"
                      }
                    }
                  },
                  "required": [
                    "tags"
                  ]
                },
                "examples": {
                  "Response with tags": {
                    "value": {
                      "tags": [
                        {
                          "id": "52218960-eeb3-46f4-87ff-190329c4a640",
                          "value": "Meds"
                        },
                        {
                          "id": "52218960-eeb3-46f4-87ff-190329c4a640",
                          "value": "Special Needs"
                        }
                      ]
                    }
                  },
                  "No tags defined": {
                    "value": {
                      "tags": []
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden (standard/no access user)"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "operationId": "get-v1-recordings-tags",
        "description": "Get a list of the existing tags for the tenant.",
        "tags": [
          "Tags"
        ]
      },
      "post": {
        "summary": "Create tag",
        "operationId": "post-v1-recordings-tags",
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "x-examples": {
                    "example-1": {
                      "id": "52218960-eeb3-46f4-87ff-190329c4a640"
                    }
                  },
                  "properties": {
                    "tagId": {
                      "type": "string",
                      "format": "uuid"
                    }
                  },
                  "required": [
                    "tagId"
                  ]
                },
                "examples": {
                  "example-1": {
                    "value": {
                      "tagId": "52218960-eeb3-46f4-87ff-190329c4a640"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "409": {
            "description": "This tag already exists in the given tenant"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "description": "Create a new tag",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "value": {
                    "type": "string"
                  }
                },
                "required": [
                  "value"
                ]
              }
            }
          }
        },
        "tags": [
          "Tags"
        ]
      },
      "parameters": []
    }
  },
  "components": {
    "schemas": {
      "Recording": {
        "description": "Recording model",
        "type": "object",
        "x-examples": {
          "GerRecording Response Example": {
            "id": "string",
            "direction": "IN",
            "from": {
              "name": "string",
              "number": "string"
            },
            "to": {
              "name": "string",
              "number": "string"
            },
            "date": "2021-04-25T10:24:40Z",
            "analysisResult": {
              "confidence": 96,
              "sentiment": "positive",
              "status": 2
            },
            "channels": 2,
            "duration": 362,
            "tags": [
              {
                "id": "1efc024d-5c55-456b-9e91-26cd3f57e689",
                "value": "Customer Complaint"
              },
              {
                "id": "a2c80f67-7d9d-4c99-9a13-20f2cac40c63",
                "value": "Happy Customer"
              }
            ],
            "video": {
              "status": "OK"
            }
          }
        },
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1
          },
          "ownerId": {
            "type": "string"
          },
          "direction": {
            "type": "string",
            "minLength": 1,
            "enum": [
              "IN",
              "OUT",
              "UNKNOWN"
            ]
          },
          "from": {
            "type": "object",
            "required": [
              "fullName",
              "phoneNumber"
            ],
            "properties": {
              "fullName": {
                "type": "string",
                "minLength": 1,
                "nullable": true
              },
              "phoneNumber": {
                "type": "string",
                "minLength": 1,
                "nullable": true
              }
            }
          },
          "to": {
            "type": "object",
            "required": [
              "fullName",
              "phoneNumber"
            ],
            "properties": {
              "fullName": {
                "type": "string",
                "minLength": 1,
                "nullable": true
              },
              "phoneNumber": {
                "type": "string",
                "minLength": 1,
                "nullable": true
              }
            }
          },
          "date": {
            "type": "string",
            "minLength": 1,
            "pattern": "(19|20)\\d\\d-(0[1-9]|1[012])-([012]\\d|3[01])T([01]\\d|2[0-3]):([0-5]\\d):([0-5]\\d)Z",
            "example": "2021-04-25T10:24:40Z"
          },
          "analysisResult": {
            "type": "object",
            "required": [
              "score",
              "status"
            ],
            "nullable": true,
            "properties": {
              "score": {
                "type": "number",
                "minimum": -1,
                "maximum": 1,
                "multipleOf": 0.1,
                "nullable": true
              },
              "sentiment": {
                "type": "string",
                "enum": [
                  "POSITIVE",
                  "NEGATIVE",
                  "NEUTRAL",
                  "ERROR",
                  "UNKNOWN"
                ],
                "nullable": true
              },
              "status": {
                "type": "integer",
                "description": "0: Analysis in progress\n1: Transcription available\n2: Analysis completed\n3: Transcription Failed\n4: Sentiment Analysis Failed\n5: Transcription Quota Exceeded",
                "minimum": 0,
                "maximum": 5,
                "readOnly": true
              }
            }
          },
          "channels": {
            "type": "number",
            "minimum": 1,
            "description": "Whether the file is mono (1) or stereo (2)",
            "maximum": 2
          },
          "duration": {
            "type": "number",
            "description": "recording duration expressed in seconds"
          },
          "tags": {
            "type": "array",
            "description": "recording tags, empty array[] if recording doesn't have associated tags.",
            "items": {
              "$ref": "#/components/schemas/Tag"
            }
          },
          "video": {
            "type": "object",
            "required": [
              "status"
            ],
            "properties": {
              "status": {
                "type": "string",
                "enum": [
                  "OK",
                  "NONE",
                  "ERROR"
                ]
              },
              "errorDetail": {
                "type": "string"
              }
            }
          },
          "hasNotes": {
            "type": "boolean"
          }
        },
        "required": [
          "id",
          "direction",
          "from",
          "to",
          "date",
          "analysisResult",
          "duration",
          "video",
          "hasNotes"
        ]
      },
      "RecordingDetails": {
        "description": "Recording model",
        "type": "object",
        "x-examples": {
          "GerRecording Response Example": {
            "id": "string",
            "direction": "IN",
            "from": {
              "name": "string",
              "number": "string"
            },
            "to": {
              "name": "string",
              "number": "string"
            },
            "date": "2021-04-25T10:24:40Z",
            "analysisResult": {
              "confidence": 96,
              "sentiment": "positive",
              "status": 2
            },
            "channels": 2,
            "duration": 362,
            "video": {
              "status": "OK"
            }
          }
        },
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1
          },
          "ownerId": {
            "type": "string"
          },
          "direction": {
            "type": "string",
            "minLength": 1,
            "enum": [
              "IN",
              "OUT",
              "UNKNOWN"
            ]
          },
          "from": {
            "type": "object",
            "required": [
              "fullName",
              "phoneNumber"
            ],
            "properties": {
              "fullName": {
                "type": "string",
                "minLength": 1,
                "nullable": true
              },
              "phoneNumber": {
                "type": "string",
                "minLength": 1,
                "nullable": true
              }
            }
          },
          "to": {
            "type": "object",
            "required": [
              "fullName",
              "phoneNumber"
            ],
            "properties": {
              "fullName": {
                "type": "string",
                "minLength": 1,
                "nullable": true
              },
              "phoneNumber": {
                "type": "string",
                "minLength": 1,
                "nullable": true
              }
            }
          },
          "date": {
            "type": "string",
            "minLength": 1,
            "pattern": "(19|20)\\d\\d-(0[1-9]|1[012])-([012]\\d|3[01])T([01]\\d|2[0-3]):([0-5]\\d):([0-5]\\d)Z",
            "example": "2021-04-25T10:24:40Z"
          },
          "analysisResult": {
            "type": "object",
            "required": [
              "score",
              "status"
            ],
            "nullable": true,
            "properties": {
              "score": {
                "type": "number",
                "minimum": -1,
                "maximum": 1,
                "multipleOf": 0.1,
                "nullable": true
              },
              "sentiment": {
                "type": "string",
                "enum": [
                  "POSITIVE",
                  "NEGATIVE",
                  "NEUTRAL",
                  "ERROR",
                  "UNKNOWN"
                ],
                "nullable": true
              },
              "status": {
                "type": "integer",
                "description": "0: Analysis in progress\n1: Transcription available\n2: Analysis completed\n3: Transcription Failed\n4: Sentiment Analysis Failed\n5: Transcription Quota Exceeded",
                "minimum": 0,
                "maximum": 5,
                "readOnly": true
              }
            }
          },
          "channels": {
            "type": "number",
            "minimum": 1,
            "description": "Whether the file is mono (1) or stereo (2)",
            "maximum": 2
          },
          "duration": {
            "type": "number",
            "description": "recording duration expressed in seconds"
          },
          "video": {
            "type": "object",
            "required": [
              "status"
            ],
            "properties": {
              "status": {
                "type": "string",
                "enum": [
                  "OK",
                  "NONE",
                  "ERROR"
                ]
              },
              "errorDetail": {
                "type": "string"
              }
            }
          }
        },
        "required": [
          "id",
          "direction",
          "from",
          "to",
          "date",
          "analysisResult",
          "duration",
          "video"
        ]
      },
      "Error": {
        "title": "Error",
        "type": "object",
        "properties": {
          "errorCode": {
            "type": "number",
            "description": "1. "
          },
          "errorDescription": {
            "type": "string"
          }
        }
      },
      "Speaker": {
        "title": "TranscriptionSpeaker",
        "type": "object",
        "properties": {
          "speakerId": {
            "type": "string"
          },
          "speakerLabel": {
            "type": "string",
            "description": ""
          }
        },
        "required": [
          "speakerId",
          "speakerLabel"
        ]
      },
      "Sentence": {
        "title": "TranscriptionSentence",
        "type": "object",
        "description": "This field specifies a sentence{text} pronouced by the speaker{speakerId}, started at {startTime} and finished at {endTime}.",
        "properties": {
          "speakerId": {
            "type": "string"
          },
          "startTime": {
            "type": "number",
            "description": "expressed in seconds (ss.00). Example: 10.25 s."
          },
          "endTime": {
            "type": "number",
            "description": "expressed in seconds (ss.00). Example: 10.25 s."
          },
          "text": {
            "type": "string"
          }
        },
        "required": [
          "speakerId",
          "startTime",
          "endTime",
          "text"
        ]
      },
      "Tag": {
        "title": "Tag",
        "x-stoplight": {
          "id": "7g6406l1otg9c"
        },
        "type": "object",
        "description": "Recording tag model",
        "x-examples": {
          "example-1": {
            "id": "string",
            "value": "string"
          }
        },
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "value": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "value"
        ]
      },
      "Note": {
        "title": "Note",
        "x-stoplight": {
          "id": "z0972yppa8jfe"
        },
        "type": "object",
        "properties": {
          "noteId": {
            "type": "string",
            "format": "uuid"
          },
          "authorUserId": {
            "type": "string",
            "format": "uuid"
          },
          "noteText": {
            "type": "string",
            "minLength": 1,
            "maxLength": 240
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "lastModified": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "noteId",
          "authorUserId",
          "noteText",
          "createdAt",
          "lastModified"
        ]
      }
    },
    "securitySchemes": {
      "OAuth2 client credentials": {
        "type": "oauth2",
        "description": "For more information, see https://docs.aws.amazon.com/en_us/cognito/latest/developerguide/cognito-userpools-server-contract-reference.html & get tenant configuration API",
        "flows": {
          "clientCredentials": {
            "scopes": {
              "voice-analytics/recordings.write": "write recordings in your account"
            },
            "tokenUrl": "https://[GET_TENANT_CONFIGURATION_API_DOMAIN_NAME]/oauth2/token"
          }
        }
      },
      "Bearer Authentication": {
        "type": "http",
        "scheme": "bearer",
        "description": ""
      }
    }
  },
  "tags": [
    {
      "name": "Recordings"
    },
    {
      "name": "Tags"
    },
    {
      "name": "Notes"
    }
  ]
}