All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.twilio.jwt.accesstoken.VoiceGrant Maven / Gradle / Ivy

There is a newer version: 10.1.5
Show newest version
package com.twilio.jwt.accesstoken;

import com.fasterxml.jackson.annotation.JsonInclude;

import java.util.HashMap;
import java.util.Map;

/**
 * Grant used to access Twilio Voice
 *
 * 

* For more information see: * * https://www.twilio.com/docs/api/rest/access-tokens * *

*/ public class VoiceGrant implements Grant { private Boolean incomingAllow; private String outgoingApplicationSid; private Map outgoingApplicationParams; private String pushCredentialSid; private String endpointId; public VoiceGrant setIncomingAllow(Boolean incomingAllow) { this.incomingAllow = incomingAllow; return this; } public VoiceGrant setOutgoingApplicationSid(String outgoingApplicationSid) { this.outgoingApplicationSid = outgoingApplicationSid; return this; } /** * Set the outgoing application. * * @param outgoingApplicationSid outgoing application sid * @param outgoingApplicationParams outgoing application parameters * @return voice grant */ public VoiceGrant setOutgoingApplication( String outgoingApplicationSid, Map outgoingApplicationParams ) { this.outgoingApplicationSid = outgoingApplicationSid; this.outgoingApplicationParams = outgoingApplicationParams; return this; } public VoiceGrant setPushCredentialSid(String pushCredentialSid) { this.pushCredentialSid = pushCredentialSid; return this; } public VoiceGrant setEndpointId(String endpointId) { this.endpointId = endpointId; return this; } @Override public String getGrantKey() { return "voice"; } @Override public Object getPayload() { return new Payload(this); } @SuppressWarnings("checkstyle:membername") @JsonInclude(JsonInclude.Include.NON_NULL) public class Payload { public Map incoming; public Map outgoing; public String push_credential_sid; public String endpoint_id; /** * Generate VoiceGrant payload. * * @param grant VoiceGrant */ public Payload(VoiceGrant grant) { if (grant.incomingAllow != null) { this.incoming = new HashMap<>(); this.incoming.put("allow", grant.incomingAllow); } if (grant.outgoingApplicationSid != null && !grant.outgoingApplicationSid.isEmpty()) { this.outgoing = new HashMap<>(); this.outgoing.put("application_sid", grant.outgoingApplicationSid); if (grant.outgoingApplicationParams != null) { this.outgoing.put("params", grant.outgoingApplicationParams); } } if (grant.pushCredentialSid != null && !grant.pushCredentialSid.isEmpty()) { this.push_credential_sid = grant.pushCredentialSid; } if (grant.endpointId != null && !grant.endpointId.isEmpty()) { this.endpoint_id = grant.endpointId; } } } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy