- name
- telnyx-texml-go
- description
- Build voice applications using TeXML markup language (TwiML-compatible). Manage applications, calls, conferences, recordings, queues, and streams. This skill provides Go SDK examples.
- metadata
- {"author":"telnyx","product":"texml","language":"go","generated_by":"telnyx-ext-skills-generator"}
<!-- Auto-generated from Telnyx OpenAPI specs. Do not edit. -->
# Telnyx Texml - Go
## Installation
```bash
go get github.com/team-telnyx/telnyx-go
```
## Setup
```go
import (
"context"
"fmt"
"os"
"github.com/team-telnyx/telnyx-go"
"github.com/team-telnyx/telnyx-go/option"
)
client := telnyx.NewClient(
option.WithAPIKey(os.Getenv("TELNYX_API_KEY")),
)
```
All examples below assume `client` is already initialized as shown above.
## List all TeXML Applications
Returns a list of your TeXML Applications.
`GET /texml_applications`
```go
page, err := client.TexmlApplications.List(context.TODO(), telnyx.TexmlApplicationListParams{})
if err != nil {
panic(err.Error())
}
fmt.Printf("%+v\n", page)
```
## Creates a TeXML Application
Creates a TeXML Application.
`POST /texml_applications` — Required: `friendly_name`, `voice_url`
```go
texmlApplication, err := client.TexmlApplications.New(context.TODO(), telnyx.TexmlApplicationNewParams{
FriendlyName: "call-router",
VoiceURL: "https://example.com",
})
if err != nil {
panic(err.Error())
}
fmt.Printf("%+v\n", texmlApplication.Data)
```
## Retrieve a TeXML Application
Retrieves the details of an existing TeXML Application.
`GET /texml_applications/{id}`
```go
texmlApplication, err := client.TexmlApplications.Get(context.TODO(), "1293384261075731499")
if err != nil {
panic(err.Error())
}
fmt.Printf("%+v\n", texmlApplication.Data)
```
## Update a TeXML Application
Updates settings of an existing TeXML Application.
`PATCH /texml_applications/{id}` — Required: `friendly_name`, `voice_url`
```go
texmlApplication, err := client.TexmlApplications.Update(
context.TODO(),
"1293384261075731499",
telnyx.TexmlApplicationUpdateParams{
FriendlyName: "call-router",
VoiceURL: "https://example.com",
},
)
if err != nil {
panic(err.Error())
}
fmt.Printf("%+v\n", texmlApplication.Data)
```
## Deletes a TeXML Application
Deletes a TeXML Application.
`DELETE /texml_applications/{id}`
```go
texmlApplication, err := client.TexmlApplications.Delete(context.TODO(), "1293384261075731499")
if err != nil {
panic(err.Error())
}
fmt.Printf("%+v\n", texmlApplication.Data)
```
## Fetch multiple call resources
Returns multiple call resources for an account.
`GET /texml/Accounts/{account_sid}/Calls`
```go
response, err := client.Texml.Accounts.Calls.GetCalls(
context.TODO(),
"account_sid",
telnyx.TexmlAccountCallGetCallsParams{},
)
if err != nil {
panic(err.Error())
}
fmt.Printf("%+v\n", response.Calls)
```
## Initiate an outbound call
Initiate an outbound TeXML call.
`POST /texml/Accounts/{account_sid}/Calls` — Required: `To`, `From`, `ApplicationSid`
```go
response, err := client.Texml.Accounts.Calls.Calls(
context.TODO(),
"account_sid",
telnyx.TexmlAccountCallCallsParams{
ApplicationSid: "example-app-sid",
From: "+13120001234",
To: "+13121230000",
},
)
if err != nil {
panic(err.Error())
}
fmt.Printf("%+v\n", response.From)
```
## Fetch a call
Returns an individual call identified by its CallSid.
`GET /texml/Accounts/{account_sid}/Calls/{call_sid}`
```go
call, err := client.Texml.Accounts.Calls.Get(
context.TODO(),
"call_sid",
telnyx.TexmlAccountCallGetParams{
AccountSid: "account_sid",
},
)
if err != nil {
panic(err.Error())
}
fmt.Printf("%+v\n", call.AccountSid)
```
## Update call
Update TeXML call.
`POST /texml/Accounts/{account_sid}/Calls/{call_sid}`
```go
call, err := client.Texml.Accounts.Calls.Update(
context.TODO(),
"call_sid",
telnyx.TexmlAccountCallUpdateParams{
AccountSid: "account_sid",
UpdateCall: telnyx.UpdateCallParam{},
},
)
if err != nil {
panic(err.Error())
}
fmt.Printf("%+v\n", call.AccountSid)
```
## List conference participants
Lists conference participants
`GET /texml/Accounts/{account_sid}/Conferences/{conference_sid}/Participants`
```go
response, err := client.Texml.Accounts.Conferences.Participants.GetParticipants(
context.TODO(),
"conference_sid",
telnyx.TexmlAccountConferenceParticipantGetParticipantsParams{
AccountSid: "account_sid",
},
)
if err != nil {
panic(err.Error())
}
fmt.Printf("%+v\n", response.End)
```
## Dial a new conference participant
Dials a new conference participant
`POST /texml/Accounts/{account_sid}/Conferences/{conference_sid}/Participants`
```go
response, err := client.Texml.Accounts.Conferences.Participants.Participants(
context.TODO(),
"conference_sid",
telnyx.TexmlAccountConferenceParticipantParticipantsParams{
AccountSid: "account_sid",
},
)
if err != nil {
panic(err.Error())
}
fmt.Printf("%+v\n", response.AccountSid)
```
## Get conference participant resource
Gets conference participant resource
`GET /texml/Accounts/{account_sid}/Conferences/{conference_sid}/Participants/{call_sid_or_participant_label}`
```go
participant, err := client.Texml.Accounts.Conferences.Participants.Get(
context.TODO(),
"call_sid_or_participant_label",
telnyx.TexmlAccountConferenceParticipantGetParams{
AccountSid: "account_sid",
ConferenceSid: "conference_sid",
},
)
if err != nil {
panic(err.Error())
}
fmt.Printf("%+v\n", participant.AccountSid)
```
## Update a conference participant
Updates a conference participant
`POST /texml/Accounts/{account_sid}/Conferences/{conference_sid}/Participants/{call_sid_or_participant_label}`
```go
participant, err := client.Texml.Accounts.Conferences.Participants.Update(
context.TODO(),
"call_sid_or_participant_label",
telnyx.TexmlAccountConferenceParticipantUpdateParams{
AccountSid: "account_sid",
ConferenceSid: "conference_sid",
},
)
if err != nil {
panic(err.Error())
}
fmt.Printf("%+v\n", participant.AccountSid)
```
## Delete a conference participant
Deletes a conference participant
`DELETE /texml/Accounts/{account_sid}/Conferences/{conference_sid}/Participants/{call_sid_or_participant_label}`
```go
err := client.Texml.Accounts.Conferences.Participants.Delete(
context.TODO(),
"call_sid_or_participant_label",
telnyx.TexmlAccountConferenceParticipantDeleteParams{
AccountSid: "account_sid",
ConferenceSid: "conference_sid",
},
)
if err != nil {
panic(err.Error())
}
```
## List conference resources
Lists conference resources.
`GET /texml/Accounts/{account_sid}/Conferences`
```go
response, err := client.Texml.Accounts.Conferences.GetConferences(
context.TODO(),
"account_sid",
telnyx.TexmlAccountConferenceGetConferencesParams{},
)
if err != nil {
panic(err.Error())
}
fmt.Printf("%+v\n", response.Conferences)
```
## Fetch a conference resource
Returns a conference resource.
`GET /texml/Accounts/{account_sid}/Conferences/{conference_sid}`
```go
conference, err := client.Texml.Accounts.Conferences.Get(
context.TODO(),
"conference_sid",
telnyx.TexmlAccountConferenceGetParams{
AccountSid: "account_sid",
},
)
if err != nil {
panic(err.Error())
}
fmt.Printf("%+v\n", conference.AccountSid)
```
## Update a conference resource
Updates a conference resource.
`POST /texml/Accounts/{account_sid}/Conferences/{conference_sid}`
```go
conference, err := client.Texml.Accounts.Conferences.Update(
context.TODO(),
"conference_sid",
telnyx.TexmlAccountConferenceUpdateParams{
AccountSid: "account_sid",
},
)
if err != nil {
panic(err.Error())
}
fmt.Printf("%+v\n", conference.AccountSid)
```
## List queue resources
Lists queue resources.
`GET /texml/Accounts/{account_sid}/Queues`
```go
page, err := client.Texml.Accounts.Queues.List(
context.TODO(),
"account_sid",
telnyx.TexmlAccountQueueListParams{},
)
if err != nil {
panic(err.Error())
}
fmt.Printf("%+v\n", page)
```
## Create a new queue
Creates a new queue resource.
`POST /texml/Accounts/{account_sid}/Queues`
```go
queue, err := client.Texml.Accounts.Queues.New(
context.TODO(),
"account_sid",
telnyx.TexmlAccountQueueNewParams{},
)
if err != nil {
panic(err.Error())
}
fmt.Printf("%+v\n", queue.AccountSid)
```
## Fetch a queue resource
Returns a queue resource.
`GET /texml/Accounts/{account_sid}/Queues/{queue_sid}`
```go
queue, err := client.Texml.Accounts.Queues.Get(
context.TODO(),
"queue_sid",
telnyx.TexmlAccountQueueGetParams{
AccountSid: "account_sid",
},
)
if err != nil {
panic(err.Error())
}
fmt.Printf("%+v\n", queue.AccountSid)
```
## Update a queue resource
Updates a queue resource.
`POST /texml/Accounts/{account_sid}/Queues/{queue_sid}`
```go
queue, err := client.Texml.Accounts.Queues.Update(
context.TODO(),
"queue_sid",
telnyx.TexmlAccountQueueUpdateParams{
AccountSid: "account_sid",
},
)
if err != nil {
panic(err.Error())
}
fmt.Printf("%+v\n", queue.AccountSid)
```
## Delete a queue resource
Delete a queue resource.
`DELETE /texml/Accounts/{account_sid}/Queues/{queue_sid}`
```go
err := client.Texml.Accounts.Queues.Delete(
context.TODO(),
"queue_sid",
telnyx.TexmlAccountQueueDeleteParams{
AccountSid: "account_sid",
},
)
if err != nil {
panic(err.Error())
}
```
## Fetch multiple recording resources
Returns multiple recording resources for an account.
`GET /texml/Accounts/{account_sid}/Recordings.json`
```go
response, err := client.Texml.Accounts.GetRecordingsJson(
context.TODO(),
"account_sid",
telnyx.TexmlAccountGetRecordingsJsonParams{},
Ver en GitHub