github.com/twilio/twilio-go@v1.20.1/client/jwt/voice_grant.go (about) 1 package jwt 2 3 import "fmt" 4 5 type VoiceGrant struct { 6 Incoming Incoming `json:"incoming"` 7 Outgoing Outgoing `json:"outgoing"` 8 PushCredentialSid string `json:"push_credential_sid"` 9 EndpointID string `json:"endpoint_id"` 10 } 11 12 type Incoming struct { 13 Allow bool `json:"allow"` 14 } 15 16 type Outgoing struct { 17 ApplicationSid string `json:"application_sid"` 18 ApplicationParams map[string]interface{} `json:"params"` 19 } 20 21 func (voiceGrant *VoiceGrant) Key() string { 22 return "voice" 23 } 24 25 func (voiceGrant *VoiceGrant) ToPayload() map[string]interface{} { 26 grant := make(map[string]interface{}) 27 if voiceGrant.Incoming.Allow { 28 grant["incoming"] = map[string]interface{}{ 29 "allow": true, 30 } 31 } 32 if voiceGrant.Outgoing.ApplicationSid != "" { 33 grant["outgoing"] = map[string]interface{}{ 34 "application_sid": voiceGrant.Outgoing.ApplicationSid, 35 } 36 if len(voiceGrant.Outgoing.ApplicationParams) != 0 { 37 grant["outgoing"].(map[string]interface{})["params"] = voiceGrant.Outgoing.ApplicationParams 38 } 39 } 40 41 if voiceGrant.PushCredentialSid != "" { 42 grant["push_credential_sid"] = voiceGrant.PushCredentialSid 43 } 44 if voiceGrant.EndpointID != "" { 45 grant["endpoint_id"] = voiceGrant.EndpointID 46 } 47 48 return grant 49 } 50 51 func (voiceGrant *VoiceGrant) ToString() string { 52 return fmt.Sprintf("<%s %s>", "VoiceGrant", voiceGrant.ToPayload()) 53 }