Api >

Service Portal REST API

POST creates a Frontdesk Service with Percontract License
Given I am authenticated as customer K0002
with a FRONTDESK_PER_CONTRACT license
and there exists a Conference Service with serviceNumber 12 for customer K0002
When I send /api/customers/K0002/targets/frontdesk-services as application/json; charset=UTF-8 with following body:
{
  "links": [{
    "rel": "fallbackTarget",
    "href": "/api/customers/K0002/targets/conference-services/12"
  }],
  "data": [{
    "name": "displayName",
    "value": "Frontdesk basic agent"
  }, {
    "name": "extensionNumber",
    "value": "35"
  }, {
    "name": "voice",
    "value": "de-DE-KatjaNeural"
  }, {
    "name": "introText",
    "value": "welcome frontdesk agent"
  }, {
    "name": "context",
    "value": "Frontdesk agent context"
  }, {
    "name": "description",
    "value": "Frontdesk agent description"
  }]
}
Then I should receive HTTP/1.1 201 Created with header http://localhost:9998/api/customers/K0002/targets/frontdesk-services/0 and body
{
  "href": "/api/customers/K0002/targets/frontdesk-services/0",
  "links": [],
  "data": null
}
Given I am authenticated as customer K0002
Then request /api/customers/K0002/targets/frontdesk-services/0 should return
{
  "href": "/api/customers/K0002/targets/frontdesk-services/0",
  "links": [{
    "rel": "fallbackTarget",
    "href": "/api/customers/K0002/targets/conference-services/12"
  }, {
    "rel": "inboundTrunkNumbers",
    "href": "/api/customers/K0002/targets/frontdesk-services/0/inbound-trunk-numbers"
  }],
  "data": [{
    "name": "name",
    "value": "Frontdesk basic agent"
  }, {
    "name": "displayName",
    "value": "Frontdesk basic agent"
  }, {
    "name": "extensionNumber",
    "value": "35"
  }, {
    "name": "type",
    "value": "FRONTDESK"
  }, {
    "name": "serviceNumber",
    "value": 0
  }, {
    "name": "serviceCode",
    "value": "*710000"
  }, {
    "name": "context",
    "value": "Frontdesk agent context"
  }, {
    "name": "introText",
    "value": "welcome frontdesk agent"
  }, {
    "name": "voice",
    "value": "de-DE-KatjaNeural"
  }, {
    "name": "description",
    "value": "Frontdesk agent description"
  }, {
    "name": "language",
    "value": "de"
  }]
}
POST creates a Frontdesk Service with Perservice License
Given I am authenticated as customer K0002
with a FRONTDESK license
and there exists a Conference Service with serviceNumber 12 for customer K0002
When I send /api/customers/K0002/targets/frontdesk-services as application/json; charset=UTF-8 with following body:
{
  "links": [{
    "rel": "fallbackTarget",
    "href": "/api/customers/K0002/targets/conference-services/12"
  }],
  "data": [{
    "name": "displayName",
    "value": "Frontdesk basic agent"
  }, {
    "name": "extensionNumber",
    "value": "35"
  }, {
    "name": "voice",
    "value": "de-DE-KatjaNeural"
  }, {
    "name": "introText",
    "value": "welcome frontdesk agent"
  }, {
    "name": "context",
    "value": "Frontdesk agent context"
  }, {
    "name": "description",
    "value": "Frontdesk agent description"
  }]
}
Then I should receive HTTP/1.1 201 Created
POST cannot create a Frontdesk Service without License
Given I am authenticated as customer K0002 without any FRONTDESK license
and there exists a Conference Service with serviceNumber 12 for customer K0002
When I send /api/customers/K0002/targets/frontdesk-services as application/json; charset=UTF-8 with following body:
{
  "links": [{
    "rel": "fallbackTarget",
    "href": "/api/customers/K0002/targets/conference-services/12"
  }],
  "data": [{
    "name": "displayName",
    "value": "Frontdesk basic agent"
  }, {
    "name": "extensionNumber",
    "value": "35"
  }, {
    "name": "voice",
    "value": "de-DE-KatjaNeural"
  }, {
    "name": "introText",
    "value": "welcome frontdesk agent"
  }, {
    "name": "context",
    "value": "Frontdesk agent context"
  }, {
    "name": "description",
    "value": "Frontdesk agent description"
  }]
}
Then I should receive HTTP/1.1 403 Forbidden with body
{
  "detail": "Customer with identifier K0002 has no Frontdesk license left",
  "title": "Customer has no Frontdesk license left",
  "described_by": "http://api.nfon.net/probs/customer-has-no-frontdesk-license"
}
POST cannot create a Frontdesk Service with a fallbackTarget of another customer
Given I am authenticated as customer K0002
with a FRONTDESK_PER_CONTRACT license
and there exists a Conference Service with serviceNumber 12 for customer K0003
When I send /api/customers/K0002/targets/frontdesk-services as application/json; charset=UTF-8 with following body:
{
  "links": [{
    "rel": "fallbackTarget",
    "href": "/api/customers/K0003/targets/conference-services/12"
  }],
  "data": [{
    "name": "displayName",
    "value": "Frontdesk basic agent"
  }, {
    "name": "extensionNumber",
    "value": "35"
  }, {
    "name": "voice",
    "value": "de-DE-KatjaNeural"
  }, {
    "name": "introText",
    "value": "welcome frontdesk agent"
  }, {
    "name": "context",
    "value": "Frontdesk agent context"
  }, {
    "name": "description",
    "value": "Frontdesk agent description"
  }]
}
Then I should receive HTTP/1.1 403 Forbidden with following body:
{
  "detail": "Access denied to [Customer] with id [K0003]",
  "title": "Access forbidden",
  "described_by": "http://api.nfon.net/probs/invalid-authorization"
}
POST creates a Frontdesk Service with language field
Given I am authenticated as customer K0002
with a FRONTDESK_PER_CONTRACT license
and there exists a Conference Service with serviceNumber 12 for customer K0002
When I send /api/customers/K0002/targets/frontdesk-services as application/json; charset=UTF-8 with following body:
{
  "links": [{
    "rel": "fallbackTarget",
    "href": "/api/customers/K0002/targets/conference-services/12"
  }],
  "data": [{
    "name": "displayName",
    "value": "Frontdesk basic agent"
  }, {
    "name": "extensionNumber",
    "value": "35"
  }, {
    "name": "voice",
    "value": "de-DE-KatjaNeural"
  }, {
    "name": "introText",
    "value": "welcome frontdesk agent"
  }, {
    "name": "context",
    "value": "Frontdesk agent context"
  }, {
    "name": "description",
    "value": "Frontdesk agent description"
  }, {
    "name": "language",
    "value": "en"
  }]
}
Then I should receive HTTP/1.1 201 Created with header http://localhost:9998/api/customers/K0002/targets/frontdesk-services/0 and body
{
  "href": "/api/customers/K0002/targets/frontdesk-services/0",
  "links": [],
  "data": null
}
Given I am authenticated as customer K0002
Then request /api/customers/K0002/targets/frontdesk-services/0 should return
{
  "href": "/api/customers/K0002/targets/frontdesk-services/0",
  "links": [{
    "rel": "fallbackTarget",
    "href": "/api/customers/K0002/targets/conference-services/12"
  }, {
    "rel": "inboundTrunkNumbers",
    "href": "/api/customers/K0002/targets/frontdesk-services/0/inbound-trunk-numbers"
  }],
  "data": [{
    "name": "name",
    "value": "Frontdesk basic agent"
  }, {
    "name": "displayName",
    "value": "Frontdesk basic agent"
  }, {
    "name": "extensionNumber",
    "value": "35"
  }, {
    "name": "type",
    "value": "FRONTDESK"
  }, {
    "name": "serviceNumber",
    "value": 0
  }, {
    "name": "serviceCode",
    "value": "*710000"
  }, {
    "name": "context",
    "value": "Frontdesk agent context"
  }, {
    "name": "introText",
    "value": "welcome frontdesk agent"
  }, {
    "name": "voice",
    "value": "de-DE-KatjaNeural"
  }, {
    "name": "description",
    "value": "Frontdesk agent description"
  }, {
    "name": "language",
    "value": "en"
  }]
}
POST tries to create a Frontdesk Service with non-predefined language field
Given I am authenticated as customer K0002
with a FRONTDESK_PER_CONTRACT license
and there exists a Conference Service with serviceNumber 12 for customer K0002
When I send /api/customers/K0002/targets/frontdesk-services as application/json; charset=UTF-8 with following body:
{
  "links": [{
    "rel": "fallbackTarget",
    "href": "/api/customers/K0002/targets/conference-services/12"
  }],
  "data": [{
    "name": "displayName",
    "value": "Frontdesk basic agent"
  }, {
    "name": "extensionNumber",
    "value": "35"
  }, {
    "name": "voice",
    "value": "de-DE-KatjaNeural"
  }, {
    "name": "introText",
    "value": "welcome frontdesk agent"
  }, {
    "name": "context",
    "value": "Frontdesk agent context"
  }, {
    "name": "description",
    "value": "Frontdesk agent description"
  }, {
    "name": "language",
    "value": "em"
  }]
}
Then I should receive HTTP/1.1 400 Bad Request with following body:
{
  "detail": "Could not create or update resource due to constraint violations",
  "title": "Validation error",
  "errors": [{
    "message": "Invalid input",
    "path": "language",
    "value": "em"
  }],
  "described_by": "http://api.nfon.net/probs/validation-error"
}
POST does not create Frontdesk Service if agent's fallbackTarget is missing
Given I am authenticated as customer K0002
with a FRONTDESK_PER_CONTRACT license
and there exists a Conference Service with serviceNumber 12 for customer K0002
When I send /api/customers/K0002/targets/frontdesk-services as application/json; charset=UTF-8 with following body:
{
  "data": [{
    "name": "displayName",
    "value": "Frontdesk basic agent"
  }, {
    "name": "extensionNumber",
    "value": "35"
  }, {
    "name": "voice",
    "value": "de-DE-KatjaNeural"
  }, {
    "name": "introText",
    "value": "welcome frontdesk agent"
  }, {
    "name": "context",
    "value": "Frontdesk agent context"
  }, {
    "name": "description",
    "value": "Frontdesk agent description"
  }]
}
Then I should receive HTTP/1.1 400 Bad Request with following body:
{
  "detail": "Could not create or update resource due to constraint violations",
  "title": "Validation error",
  "errors": [{
    "message": "Fallback target must not be null.",
    "path": "fallbackTarget",
    "value": null
  }],
  "described_by": "http://api.nfon.net/probs/validation-error"
}
Given I am authenticated as customer K0002
Then request /api/customers/K0002/targets/frontdesk-services/0 should return HTTP/1.1 404 Not Found With following body:
{
  "detail": "Frontdesk Service with service number 0 not found",
  "title": "Frontdesk Service not found",
  "described_by": "http://api.nfon.net/probs/frontdesk-service-not-found"
}
POST does not create Frontdesk Service if request data fields are missing
Given I am authenticated as customer K0002
with a FRONTDESK_PER_CONTRACT license
and there exists a Conference Service with serviceNumber 12 for customer K0002
When I send /api/customers/K0002/targets/frontdesk-services as application/json; charset=UTF-8 with following body:
{
  "links": [{
    "rel": "fallbackTarget",
    "href": "/api/customers/K0002/targets/conference-services/12"
  }]
}
Then I should receive HTTP/1.1 400 Bad Request with following body:
{
  "detail": "Could not create or update resource due to constraint violations",
  "title": "Validation error",
  "errors": [{
    "message": "Introduction text must not be null or blank (only whitespace).",
    "path": "introText",
    "value": null
  }, {
    "message": "Voice must not be null or blank (only whitespace).",
    "path": "voice",
    "value": null
  }, {
    "message": "Description must not be null or blank (only whitespace).",
    "path": "description",
    "value": null
  }],
  "described_by": "http://api.nfon.net/probs/validation-error"
}
Given I am authenticated as customer K0002
with a FRONTDESK_PER_CONTRACT license
Then request /api/customers/K0002/targets/frontdesk-services/0 should return HTTP/1.1 404 Not Found With following body:
{
  "detail": "Frontdesk Service with service number 0 not found",
  "title": "Frontdesk Service not found",
  "described_by": "http://api.nfon.net/probs/frontdesk-service-not-found"
}
POST does not create a Frontdesk Service without a displayName
Given I am authenticated as customer K0002
with a FRONTDESK_PER_CONTRACT license
and there exists a Conference Service with serviceNumber 12 for customer K0002
When I send /api/customers/K0002/targets/frontdesk-services as application/json; charset=UTF-8 with following body:
{
  "links": [{
    "rel": "fallbackTarget",
    "href": "/api/customers/K0002/targets/conference-services/12"
  }],
  "data": [{
    "name": "extensionNumber",
    "value": "35"
  }, {
    "name": "voice",
    "value": "de-DE-KatjaNeural"
  }, {
    "name": "introText",
    "value": "welcome frontdesk agent"
  }, {
    "name": "context",
    "value": "Frontdesk agent context"
  }, {
    "name": "description",
    "value": "Frontdesk agent description"
  }]
}
Then I should receive HTTP/1.1 400 Bad Request with following body:
{
  "errors": [{
    "message": "Display name is missing",
    "path": "displayName"
  }]
}
Given I am authenticated as customer K0002
Then request /api/customers/K0002/targets/frontdesk-services/0 should return HTTP/1.1 404 Not Found With following body:
{
  "detail": "Frontdesk Service with service number 0 not found",
  "title": "Frontdesk Service not found",
  "described_by": "http://api.nfon.net/probs/frontdesk-service-not-found"
}
POST does not create a Frontdesk Service if display name contains invalid characters
Given I am authenticated as customer K0002
with a FRONTDESK_PER_CONTRACT license
and there exists a Conference Service with serviceNumber 12 for customer K0002
When I send /api/customers/K0002/targets/frontdesk-services as application/json; charset=UTF-8 with following body:
{
  "links": [{
    "rel": "fallbackTarget",
    "href": "/api/customers/K0002/targets/conference-services/12"
  }],
  "data": [{
    "name": "displayName",
    "value": "invalid display=name"
  }, {
    "name": "extensionNumber",
    "value": "35"
  }, {
    "name": "voice",
    "value": "de-DE-KatjaNeural"
  }, {
    "name": "introText",
    "value": "welcome frontdesk agent"
  }, {
    "name": "context",
    "value": "Frontdesk agent context"
  }, {
    "name": "description",
    "value": "Frontdesk agent description"
  }]
}
Then I should receive HTTP/1.1 400 Bad Request with following body:
{
  "errors": [{
    "message": "Display name should not contain these characters: & $ ! ? = | \" { }",
    "path": "displayName",
    "value": "invalid display=name"
  }]
}
Given I am authenticated as customer K0002
Then request /api/customers/K0002/targets/frontdesk-services/0 should return HTTP/1.1 404 Not Found With following body:
{
  "detail": "Frontdesk Service with service number 0 not found",
  "title": "Frontdesk Service not found",
  "described_by": "http://api.nfon.net/probs/frontdesk-service-not-found"
}
POST does not create Frontdesk Service with too long display name
Given I am authenticated as customer K0002
with a FRONTDESK_PER_CONTRACT license
and there exists a Conference Service with serviceNumber 12 for customer K0002
When I send /api/customers/K0002/targets/frontdesk-services as application/json; charset=UTF-8 with following body:
{
  "links": [{
    "rel": "fallbackTarget",
    "href": "/api/customers/K0002/targets/conference-services/12"
  }],
  "data": [{
    "name": "displayName",
    "value": "this is a way, way, way, way, way, way, way, way, way to long displayName"
  }, {
    "name": "extensionNumber",
    "value": "35"
  }, {
    "name": "voice",
    "value": "de-DE-KatjaNeural"
  }, {
    "name": "introText",
    "value": "welcome frontdesk agent"
  }, {
    "name": "context",
    "value": "Frontdesk agent context"
  }, {
    "name": "description",
    "value": "Frontdesk agent description"
  }]
}
Then I should receive HTTP/1.1 400 Bad Request with following body:
{
  "errors": [{
    "message": "Display name should have a length between 1 and 50 characters",
    "path": "displayName",
    "value": "this is a way, way, way, way, way, way, way, way, way to long displayName"
  }]
}
Given I am authenticated as customer K0002
Then request /api/customers/K0002/targets/frontdesk-services/0 should return HTTP/1.1 404 Not Found With following body:
{
  "detail": "Frontdesk Service with service number 0 not found",
  "title": "Frontdesk Service not found",
  "described_by": "http://api.nfon.net/probs/frontdesk-service-not-found"
}
POST does not create a Frontdesk Service with invalid format of extension number
Given I am authenticated as customer K0002
with a FRONTDESK_PER_CONTRACT license
and there exists a Conference Service with serviceNumber 12 for customer K0002
When I send /api/customers/K0002/targets/frontdesk-services as application/json; charset=UTF-8 with following body:
{
  "links": [{
    "rel": "fallbackTarget",
    "href": "/api/customers/K0002/targets/conference-services/12"
  }],
  "data": [{
    "name": "displayName",
    "value": "Frontdesk basic agent"
  }, {
    "name": "extensionNumber",
    "value": "0123"
  }, {
    "name": "voice",
    "value": "de-DE-KatjaNeural"
  }, {
    "name": "introText",
    "value": "welcome frontdesk agent"
  }, {
    "name": "context",
    "value": "Frontdesk agent context"
  }, {
    "name": "description",
    "value": "Frontdesk agent description"
  }]
}
Then I should receive HTTP/1.1 400 Bad Request with following body:
{
  "errors": [{
    "message": "Invalid extension number format. Must not start with the dial-out-prefix (default 0)",
    "path": "extensionNumber",
    "value": "0123"
  }]
}
Given I am authenticated as customer K0002
Then request /api/customers/K0002/targets/frontdesk-services/0 should return HTTP/1.1 404 Not Found With following body:
{
  "detail": "Frontdesk Service with service number 0 not found",
  "title": "Frontdesk Service not found",
  "described_by": "http://api.nfon.net/probs/frontdesk-service-not-found"
}
POST does not create a Frontdesk Service with too long extension number
Given I am authenticated as customer K0002

with a FRONTDESK_PER_CONTRACT license
and there exists a Conference Service with serviceNumber 12 for customer K0002
When I send /api/customers/K0002/targets/frontdesk-services as application/json; charset=UTF-8 with following body:
{
  "links": [{
    "rel": "fallbackTarget",
    "href": "/api/customers/K0002/targets/conference-services/12"
  }],
  "data": [{
    "name": "displayName",
    "value": "Frontdesk basic agent"
  }, {
    "name": "extensionNumber",
    "value": "12345678901234567890123456789"
  }, {
    "name": "voice",
    "value": "de-DE-KatjaNeural"
  }, {
    "name": "introText",
    "value": "welcome frontdesk agent"
  }, {
    "name": "context",
    "value": "Frontdesk agent context"
  }, {
    "name": "description",
    "value": "Frontdesk agent description"
  }]
}
Then I should receive HTTP/1.1 400 Bad Request with following body:
{
  "errors": [{
    "message": "Extension number length should not exceed 20 characters",
    "path": "extensionNumber",
    "value": "12345678901234567890123456789"
  }]
}
Given I am authenticated as customer K0002
Then request /api/customers/K0002/targets/frontdesk-services/0 should return HTTP/1.1 404 Not Found With following body:
{
  "detail": "Frontdesk Service with service number 0 not found",
  "title": "Frontdesk Service not found",
  "described_by": "http://api.nfon.net/probs/frontdesk-service-not-found"
}
POST does not create a Frontdesk Service with duplicated extension number
Given I am authenticated as customer K0002
with a FRONTDESK_PER_CONTRACT license
and there exists a Conference Service with serviceNumber 12 for customer K0002
and there exists a Frontdesk Service with:
  • extension 87
  • display name Frontdesk advanced agent
  • serviceNumber 456
When I send /api/customers/K0002/targets/frontdesk-services as application/json; charset=UTF-8 with following body:
{
  "links": [{
    "rel": "fallbackTarget",
    "href": "/api/customers/K0002/targets/conference-services/12"
  }],
  "data": [{
    "name": "displayName",
    "value": "Frontdesk basic agent"
  }, {
    "name": "extensionNumber",
    "value": "87"
  }, {
    "name": "voice",
    "value": "de-DE-KatjaNeural"
  }, {
    "name": "introText",
    "value": "welcome frontdesk agent"
  }, {
    "name": "context",
    "value": "Frontdesk agent context"
  }, {
    "name": "description",
    "value": "Frontdesk agent description"
  }]
}
Then I should receive HTTP/1.1 400 Bad Request with following body:
{
  "detail": "Could not create or update resource due to constraint violations",
  "title": "Validation error",
  "errors": [{
    "message": "Extension number is not unique.",
    "path": "extensionNumber",
    "value": "87"
  }],
  "described_by": "http://api.nfon.net/probs/validation-error"
}
Given I am authenticated as customer K0002
Then request /api/customers/K0002/targets/frontdesk-services/0 should return HTTP/1.1 404 Not Found With following body:
{
  "detail": "Frontdesk Service with service number 0 not found",
  "title": "Frontdesk Service not found",
  "described_by": "http://api.nfon.net/probs/frontdesk-service-not-found"
}
Missing Customer
Given I am authenticated as Admin
and there exists a Conference Service with serviceNumber 12 for customer K0002
When I send /api/customers/K0404/targets/frontdesk-services as application/json; charset=UTF-8 with following body:
{
  "href": "/api/customers/K0002/targets/frontdesk-services/0",
  "links": [{
    "rel": "fallbackTarget",
    "href": "/api/customers/K0002/targets/conference-services/12"
  }, {
    "rel": "inboundTrunkNumbers",
    "href": "/api/customers/K0002/targets/frontdesk-services/0/inbound-trunk-numbers"
  }],
  "data": [{
    "name": "name",
    "value": "Frontdesk basic agent"
  }, {
    "name": "displayName",
    "value": "Frontdesk basic agent"
  }, {
    "name": "extensionNumber",
    "value": "35"
  }, {
    "name": "type",
    "value": "FRONTDESK"
  }, {
    "name": "serviceNumber",
    "value": 0
  }, {
    "name": "serviceCode",
    "value": "*710000"
  }, {
    "name": "context",
    "value": "Frontdesk agent context"
  }, {
    "name": "introText",
    "value": "welcome frontdesk agent"
  }, {
    "name": "voice",
    "value": "de-DE-KatjaNeural"
  }, {
    "name": "description",
    "value": "Frontdesk agent description"
  }]
}
Then I should receive HTTP/1.1 404 Not Found
And Content-Type header should be application/api-problem+json
with following body:
{
  "title": "Customer not found",
  "detail": "Customer with identifier K0404 has not been found",
  "described_by": "http://api.nfon.net/probs/customer-not-found"
}
GET returns 403 if Customer is trying to create Frontdesk Service for other Customer
Given I am authenticated as K0003
and there exists a Conference Service with serviceNumber 12 for customer K0002
When I send /api/customers/K0002/targets/frontdesk-services as application/json; charset=UTF-8 with following body:
{
  "href": "/api/customers/K0002/targets/frontdesk-services/0",
  "links": [{
    "rel": "fallbackTarget",
    "href": "/api/customers/K0002/targets/conference-services/12"
  }, {
    "rel": "inboundTrunkNumbers",
    "href": "/api/customers/K0002/targets/frontdesk-services/0/inbound-trunk-numbers"
  }],
  "data": [{
    "name": "name",
    "value": "Frontdesk basic agent"
  }, {
    "name": "displayName",
    "value": "Frontdesk basic agent"
  }, {
    "name": "extensionNumber",
    "value": "35"
  }, {
    "name": "type",
    "value": "FRONTDESK"
  }, {
    "name": "serviceNumber",
    "value": 0
  }, {
    "name": "serviceCode",
    "value": "*710000"
  }, {
    "name": "context",
    "value": "Frontdesk agent context"
  }, {
    "name": "introText",
    "value": "welcome frontdesk agent"
  }, {
    "name": "voice",
    "value": "de-DE-KatjaNeural"
  }, {
    "name": "description",
    "value": "Frontdesk agent description"
  }]
}
Then I should receive HTTP/1.1 403 Forbidden with following body:
{
  "title": "Access forbidden",
  "detail": "Access denied to [Customer] with id [K0002]",
  "described_by": "http://api.nfon.net/probs/invalid-authorization"
}
System Integrator cannot create Frontdesk Service for Customer that does not belong to him
Given I am authenticated as System Integrator S0002
and there exists a Conference Service with serviceNumber 12 for customer K0002
When I send /api/customers/K0003/targets/frontdesk-services as application/json; charset=UTF-8 with following body:
{
  "href": "/api/customers/K0002/targets/frontdesk-services/0",
  "links": [{
    "rel": "fallbackTarget",
    "href": "/api/customers/K0002/targets/conference-services/12"
  }, {
    "rel": "inboundTrunkNumbers",
    "href": "/api/customers/K0002/targets/frontdesk-services/0/inbound-trunk-numbers"
  }],
  "data": [{
    "name": "name",
    "value": "Frontdesk basic agent"
  }, {
    "name": "displayName",
    "value": "Frontdesk basic agent"
  }, {
    "name": "extensionNumber",
    "value": "35"
  }, {
    "name": "type",
    "value": "FRONTDESK"
  }, {
    "name": "serviceNumber",
    "value": 0
  }, {
    "name": "serviceCode",
    "value": "*710000"
  }, {
    "name": "context",
    "value": "Frontdesk agent context"
  }, {
    "name": "introText",
    "value": "welcome frontdesk agent"
  }, {
    "name": "voice",
    "value": "de-DE-KatjaNeural"
  }, {
    "name": "description",
    "value": "Frontdesk agent description"
  }]
}
Then I should receive HTTP/1.1 403 Forbidden
with following body
{
  "title": "Access forbidden",
  "detail": "Access denied to [Customer] with id [K0003]",
  "described_by": "http://api.nfon.net/probs/invalid-authorization"
}
Operator cannot create Frontdesk Service for Customer that does not belong to him
Given I am authenticated as Operator C0002
and there exists a Conference Service with serviceNumber 12 for customer K0002
When I send /api/customers/K0003/targets/frontdesk-services as application/json; charset=UTF-8 with following body:
{
  "href": "/api/customers/K0002/targets/frontdesk-services/0",
  "links": [{
    "rel": "fallbackTarget",
    "href": "/api/customers/K0002/targets/conference-services/12"
  }, {
    "rel": "inboundTrunkNumbers",
    "href": "/api/customers/K0002/targets/frontdesk-services/0/inbound-trunk-numbers"
  }],
  "data": [{
    "name": "name",
    "value": "Frontdesk basic agent"
  }, {
    "name": "displayName",
    "value": "Frontdesk basic agent"
  }, {
    "name": "extensionNumber",
    "value": "35"
  }, {
    "name": "type",
    "value": "FRONTDESK"
  }, {
    "name": "serviceNumber",
    "value": 0
  }, {
    "name": "serviceCode",
    "value": "*710000"
  }, {
    "name": "context",
    "value": "Frontdesk agent context"
  }, {
    "name": "introText",
    "value": "welcome frontdesk agent"
  }, {
    "name": "voice",
    "value": "de-DE-KatjaNeural"
  }, {
    "name": "description",
    "value": "Frontdesk agent description"
  }]
}
Then I should receive HTTP/1.1 403 Forbidden
with following body
{
  "title": "Access forbidden",
  "detail": "Access denied to [Customer] with id [K0003]",
  "described_by": "http://api.nfon.net/probs/invalid-authorization"
}
Cannot create Frontdesk Service for with a RoutingPrefix as a Fallback Target
Given I am authenticated as customer K0002
with a FRONTDESK_PER_CONTRACT license
and there is a Routing Prefix Extension with extension number 87 and display name Routing Prefix Extension
When I send /api/customers/K0002/targets/frontdesk-services as application/json; charset=UTF-8 with following body:
{
  "links": [{
    "rel": "fallbackTarget",
    "href": "/api/customers/K0002/targets/routing-prefix/87"
  }],
  "data": [{
    "name": "displayName",
    "value": "Frontdesk basic agent"
  }, {
    "name": "extensionNumber",
    "value": "35"
  }, {
    "name": "voice",
    "value": "de-DE-KatjaNeural"
  }, {
    "name": "introText",
    "value": "welcome frontdesk agent"
  }, {
    "name": "context",
    "value": "Frontdesk agent context"
  }, {
    "name": "description",
    "value": "Frontdesk agent description"
  }]
}
Then I should receive HTTP/1.1 400 Bad Request
with following body
{
  "errors": [{
    "message": "Routing Prefix Extension can not be used as fallback target",
    "path": "fallbackTarget",
    "value": "/api/customers/K0002/targets/routing-prefix/87"
  }]
}