# Assign a resource as a call handler for a Domain Application.
POST https://%7BYour_Space_Name%7D.signalwire.com/api/fabric/resources/{id}/domain_applications
Content-Type: application/json
This endpoint assigns a specific resource to a Domain Application, allowing inbound calls to be handled by the resource.
Currently only supports `calling` as a handler and automatically defaults to it.
#### Permissions
The API token used to authenticate must have the following scope(s) enabled to make a successful request: _Voice_, _Messaging_, _Fax_, or _Video_.
[Learn more about API scopes](/docs/platform/your-signalwire-api-space).
Reference: https://signalwire.com/docs/apis/fabric/domain-applications/assign-resource-domain-application
## OpenAPI Specification
```yaml
openapi: 3.1.0
info:
title: fabric
version: 1.0.0
paths:
/resources/{id}/domain_applications:
post:
operationId: assign-resource-domain-application
summary: Assign a resource as a call handler for a Domain Application.
description: >-
This endpoint assigns a specific resource to a Domain Application,
allowing inbound calls to be handled by the resource.
Currently only supports `calling` as a handler and automatically
defaults to it.
#### Permissions
The API token used to authenticate must have the following scope(s)
enabled to make a successful request: _Voice_, _Messaging_, _Fax_, or
_Video_.
[Learn more about API scopes](/docs/platform/your-signalwire-api-space).
tags:
- subpackage_domainApplications
parameters:
- name: id
in: path
description: The unique identifier of the Resource.
required: true
schema:
$ref: '#/components/schemas/uuid'
- name: Authorization
in: header
description: >-
SignalWire Basic Authentication using Project ID and API Token.
The client sends HTTP requests with the Authorization header
containing
the word Basic followed by a space and a base64-encoded string of
project_id:token.
The project ID will be used as the username and the API token as the
password.
Example:
```
Authorization: Basic base64(project_id:token)
```
required: true
schema:
type: string
responses:
'200':
description: The request has succeeded.
content:
application/json:
schema:
$ref: '#/components/schemas/DomainApplicationResponse'
'401':
description: Access is unauthorized.
content:
application/json:
schema:
$ref: '#/components/schemas/Types.StatusCodes.StatusCode401'
'404':
description: The server cannot find the requested resource.
content:
application/json:
schema:
$ref: '#/components/schemas/Types.StatusCodes.StatusCode404'
'422':
description: The request contains invalid parameters. See errors for details.
content:
application/json:
schema:
$ref: '#/components/schemas/DomainApplicationCreateStatusCode422'
'500':
description: An internal server error occurred.
content:
application/json:
schema:
$ref: '#/components/schemas/Types.StatusCodes.StatusCode500'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/DomainApplicationAssignRequest'
servers:
- url: https://%7BYour_Space_Name%7D.signalwire.com/api/fabric
components:
schemas:
uuid:
type: string
format: uuid
description: Universal Unique Identifier.
title: uuid
DomainApplicationAssignRequest:
type: object
properties:
domain_application_id:
$ref: '#/components/schemas/uuid'
description: The id of the domain application you wish to assign a resource to.
required:
- domain_application_id
title: DomainApplicationAssignRequest
AudioChannel:
type: object
properties:
audio:
type: string
description: Audio Channel of Fabric Address
required:
- audio
title: AudioChannel
MessagingChannel:
type: object
properties:
messaging:
type: string
description: Messaging Channel of Fabric Address
required:
- messaging
title: MessagingChannel
VideoChannel:
type: object
properties:
video:
type: string
description: Video Channel of Fabric Address
required:
- video
title: VideoChannel
AddressChannel:
oneOf:
- $ref: '#/components/schemas/AudioChannel'
- $ref: '#/components/schemas/MessagingChannel'
- $ref: '#/components/schemas/VideoChannel'
title: AddressChannel
DomainApplicationResponseType:
type: string
enum:
- app
description: The display type of a fabric address pointing to an application.
title: DomainApplicationResponseType
DomainApplicationResponse:
type: object
properties:
id:
$ref: '#/components/schemas/uuid'
description: Unique ID of the Fabric Address.
name:
type: string
description: Name of the Fabric Address.
display_name:
type: string
description: Display name of the Fabric Address.
cover_url:
type: string
description: Cover url of the Fabric Address.
preview_url:
type: string
description: Preview url of the Fabric Address.
locked:
type: boolean
description: >-
Locks the Fabric Address. This is used to prevent the Fabric Address
from accepting calls.
channels:
$ref: '#/components/schemas/AddressChannel'
description: Channels of the Fabric Address.
created_at:
type: string
format: date-time
description: Fabric Address Creation Date.
type:
$ref: '#/components/schemas/DomainApplicationResponseType'
description: The display type of a fabric address pointing to an application.
required:
- id
- name
- display_name
- cover_url
- preview_url
- locked
- channels
- created_at
- type
title: DomainApplicationResponse
TypesStatusCodesStatusCode401Error:
type: string
enum:
- Unauthorized
title: TypesStatusCodesStatusCode401Error
Types.StatusCodes.StatusCode401:
type: object
properties:
error:
$ref: '#/components/schemas/TypesStatusCodesStatusCode401Error'
required:
- error
description: Access is unauthorized.
title: Types.StatusCodes.StatusCode401
TypesStatusCodesStatusCode404Error:
type: string
enum:
- Not Found
title: TypesStatusCodesStatusCode404Error
Types.StatusCodes.StatusCode404:
type: object
properties:
error:
$ref: '#/components/schemas/TypesStatusCodesStatusCode404Error'
required:
- error
description: The server cannot find the requested resource.
title: Types.StatusCodes.StatusCode404
Types.StatusCodes.RestApiErrorItem:
type: object
properties:
type:
type: string
description: The category of error.
code:
type: string
description: A specific error code.
message:
type: string
description: A description of what caused the error.
attribute:
type:
- string
- 'null'
description: The request parameter that caused the error, if applicable.
url:
type: string
description: A link to documentation about this error.
required:
- type
- code
- message
- url
description: Details about a specific error.
title: Types.StatusCodes.RestApiErrorItem
DomainApplicationCreateStatusCode422:
type: object
properties:
errors:
type: array
items:
$ref: '#/components/schemas/Types.StatusCodes.RestApiErrorItem'
description: List of validation errors.
required:
- errors
description: The request contains invalid parameters. See errors for details.
title: DomainApplicationCreateStatusCode422
TypesStatusCodesStatusCode500Error:
type: string
enum:
- Internal Server Error
title: TypesStatusCodesStatusCode500Error
Types.StatusCodes.StatusCode500:
type: object
properties:
error:
$ref: '#/components/schemas/TypesStatusCodesStatusCode500Error'
required:
- error
description: An internal server error occurred.
title: Types.StatusCodes.StatusCode500
securitySchemes:
SignalWireBasicAuth:
type: http
scheme: basic
description: >-
SignalWire Basic Authentication using Project ID and API Token.
The client sends HTTP requests with the Authorization header containing
the word Basic followed by a space and a base64-encoded string of
project_id:token.
The project ID will be used as the username and the API token as the
password.
Example:
```
Authorization: Basic base64(project_id:token)
```
```
## SDK Code Examples
```python
import requests
url = "https://{your_space_name}.signalwire.com/api/fabric/resources/id/domain_applications"
payload = { "domain_application_id": "993ed018-9e79-4e50-b97b-984bd5534095" }
headers = {
"Authorization": "Basic :",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.json())
```
```javascript
const url = 'https://{your_space_name}.signalwire.com/api/fabric/resources/id/domain_applications';
const options = {
method: 'POST',
headers: {
Authorization: 'Basic :',
'Content-Type': 'application/json'
},
body: '{"domain_application_id":"993ed018-9e79-4e50-b97b-984bd5534095"}'
};
try {
const response = await fetch(url, options);
const data = await response.json();
console.log(data);
} catch (error) {
console.error(error);
}
```
```go
package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://{your_space_name}.signalwire.com/api/fabric/resources/id/domain_applications"
payload := strings.NewReader("{\n \"domain_application_id\": \"993ed018-9e79-4e50-b97b-984bd5534095\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Basic :")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(res)
fmt.Println(string(body))
}
```
```ruby
require 'uri'
require 'net/http'
url = URI("https://{your_space_name}.signalwire.com/api/fabric/resources/id/domain_applications")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Basic :'
request["Content-Type"] = 'application/json'
request.body = "{\n \"domain_application_id\": \"993ed018-9e79-4e50-b97b-984bd5534095\"\n}"
response = http.request(request)
puts response.read_body
```
```java
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;
HttpResponse response = Unirest.post("https://{your_space_name}.signalwire.com/api/fabric/resources/id/domain_applications")
.header("Authorization", "Basic :")
.header("Content-Type", "application/json")
.body("{\n \"domain_application_id\": \"993ed018-9e79-4e50-b97b-984bd5534095\"\n}")
.asString();
```
```php
request('POST', 'https://{your_space_name}.signalwire.com/api/fabric/resources/id/domain_applications', [
'body' => '{
"domain_application_id": "993ed018-9e79-4e50-b97b-984bd5534095"
}',
'headers' => [
'Authorization' => 'Basic :',
'Content-Type' => 'application/json',
],
]);
echo $response->getBody();
```
```csharp
using RestSharp;
var client = new RestClient("https://{your_space_name}.signalwire.com/api/fabric/resources/id/domain_applications");
var request = new RestRequest(Method.POST);
request.AddHeader("Authorization", "Basic :");
request.AddHeader("Content-Type", "application/json");
request.AddParameter("application/json", "{\n \"domain_application_id\": \"993ed018-9e79-4e50-b97b-984bd5534095\"\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
```
```swift
import Foundation
let headers = [
"Authorization": "Basic :",
"Content-Type": "application/json"
]
let parameters = ["domain_application_id": "993ed018-9e79-4e50-b97b-984bd5534095"] as [String : Any]
let postData = JSONSerialization.data(withJSONObject: parameters, options: [])
let request = NSMutableURLRequest(url: NSURL(string: "https://{your_space_name}.signalwire.com/api/fabric/resources/id/domain_applications")! as URL,
cachePolicy: .useProtocolCachePolicy,
timeoutInterval: 10.0)
request.httpMethod = "POST"
request.allHTTPHeaderFields = headers
request.httpBody = postData as Data
let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
if (error != nil) {
print(error as Any)
} else {
let httpResponse = response as? HTTPURLResponse
print(httpResponse)
}
})
dataTask.resume()
```