com.twilio.rest.verify.v2.ServiceUpdater Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of twilio Show documentation
Show all versions of twilio Show documentation
Twilio Java Helper Library
/**
* This code was generated by
* \ / _ _ _| _ _
* | (_)\/(_)(_|\/| |(/_ v1.0.0
* / /
*/
package com.twilio.rest.verify.v2;
import com.twilio.base.Updater;
import com.twilio.converter.Converter;
import com.twilio.exception.ApiConnectionException;
import com.twilio.exception.ApiException;
import com.twilio.exception.RestException;
import com.twilio.http.HttpMethod;
import com.twilio.http.Request;
import com.twilio.http.Response;
import com.twilio.http.TwilioRestClient;
import com.twilio.rest.Domains;
import java.util.Map;
public class ServiceUpdater extends Updater {
private final String pathSid;
private String friendlyName;
private Integer codeLength;
private Boolean lookupEnabled;
private Boolean skipSmsToLandlines;
private Boolean dtmfInputRequired;
private String ttsName;
private Boolean psd2Enabled;
private Boolean doNotShareWarningEnabled;
private Boolean customCodeEnabled;
private Map push;
/**
* Construct a new ServiceUpdater.
*
* @param pathSid The unique string that identifies the resource
*/
public ServiceUpdater(final String pathSid) {
this.pathSid = pathSid;
}
/**
* A descriptive string that you create to describe the verification service. It
* can be up to 64 characters long. **This value should not contain PII.**.
*
* @param friendlyName A string to describe the verification service
* @return this
*/
public ServiceUpdater setFriendlyName(final String friendlyName) {
this.friendlyName = friendlyName;
return this;
}
/**
* The length of the verification code to generate. Must be an integer value
* between 4 and 10, inclusive..
*
* @param codeLength The length of the verification code to generate
* @return this
*/
public ServiceUpdater setCodeLength(final Integer codeLength) {
this.codeLength = codeLength;
return this;
}
/**
* Whether to perform a lookup with each verification started and return info
* about the phone number..
*
* @param lookupEnabled Whether to perform a lookup with each verification
* @return this
*/
public ServiceUpdater setLookupEnabled(final Boolean lookupEnabled) {
this.lookupEnabled = lookupEnabled;
return this;
}
/**
* Whether to skip sending SMS verifications to landlines. Requires
* `lookup_enabled`..
*
* @param skipSmsToLandlines Whether to skip sending SMS verifications to
* landlines
* @return this
*/
public ServiceUpdater setSkipSmsToLandlines(final Boolean skipSmsToLandlines) {
this.skipSmsToLandlines = skipSmsToLandlines;
return this;
}
/**
* Whether to ask the user to press a number before delivering the verify code
* in a phone call..
*
* @param dtmfInputRequired Whether to ask the user to press a number before
* delivering the verify code in a phone call
* @return this
*/
public ServiceUpdater setDtmfInputRequired(final Boolean dtmfInputRequired) {
this.dtmfInputRequired = dtmfInputRequired;
return this;
}
/**
* The name of an alternative text-to-speech service to use in phone calls.
* Applies only to TTS languages..
*
* @param ttsName The name of an alternative text-to-speech service to use in
* phone calls
* @return this
*/
public ServiceUpdater setTtsName(final String ttsName) {
this.ttsName = ttsName;
return this;
}
/**
* Whether to pass PSD2 transaction parameters when starting a verification..
*
* @param psd2Enabled Whether to pass PSD2 transaction parameters when starting
* a verification
* @return this
*/
public ServiceUpdater setPsd2Enabled(final Boolean psd2Enabled) {
this.psd2Enabled = psd2Enabled;
return this;
}
/**
* Whether to add a privacy warning at the end of an SMS. **Disabled by default
* and applies only for SMS.**.
*
* @param doNotShareWarningEnabled Whether to add a privacy warning at the end
* of an SMS.
* @return this
*/
public ServiceUpdater setDoNotShareWarningEnabled(final Boolean doNotShareWarningEnabled) {
this.doNotShareWarningEnabled = doNotShareWarningEnabled;
return this;
}
/**
* Whether to allow sending verifications with a custom code instead of a
* randomly generated one. Not available for all customers..
*
* @param customCodeEnabled Whether to allow sending verifications with a
* custom code.
* @return this
*/
public ServiceUpdater setCustomCodeEnabled(final Boolean customCodeEnabled) {
this.customCodeEnabled = customCodeEnabled;
return this;
}
/**
* Configurations for the Push factors (channel) created under this Service. If
* present, it must be a json string with the following format:
* {"notify_service_sid": "ISXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", "include_date":
* true}. If `include_date` is set to `true`, which is the default, that means
* that the push challenge’s response will include the date created value. If
* `include_date` is set to `false`, then the date created value will not be
* included. See Challenge
* resource’s details parameter for more info.
*
* @param push Optional service level push factors configuration
* @return this
*/
public ServiceUpdater setPush(final Map push) {
this.push = push;
return this;
}
/**
* Make the request to the Twilio API to perform the update.
*
* @param client TwilioRestClient with which to make the request
* @return Updated Service
*/
@Override
@SuppressWarnings("checkstyle:linelength")
public Service update(final TwilioRestClient client) {
Request request = new Request(
HttpMethod.POST,
Domains.VERIFY.toString(),
"/v2/Services/" + this.pathSid + ""
);
addPostParams(request);
Response response = client.request(request);
if (response == null) {
throw new ApiConnectionException("Service update failed: Unable to connect to server");
} else if (!TwilioRestClient.SUCCESS.test(response.getStatusCode())) {
RestException restException = RestException.fromJson(response.getStream(), client.getObjectMapper());
if (restException == null) {
throw new ApiException("Server Error, no content");
}
throw new ApiException(restException);
}
return Service.fromJson(response.getStream(), client.getObjectMapper());
}
/**
* Add the requested post parameters to the Request.
*
* @param request Request to add post params to
*/
private void addPostParams(final Request request) {
if (friendlyName != null) {
request.addPostParam("FriendlyName", friendlyName);
}
if (codeLength != null) {
request.addPostParam("CodeLength", codeLength.toString());
}
if (lookupEnabled != null) {
request.addPostParam("LookupEnabled", lookupEnabled.toString());
}
if (skipSmsToLandlines != null) {
request.addPostParam("SkipSmsToLandlines", skipSmsToLandlines.toString());
}
if (dtmfInputRequired != null) {
request.addPostParam("DtmfInputRequired", dtmfInputRequired.toString());
}
if (ttsName != null) {
request.addPostParam("TtsName", ttsName);
}
if (psd2Enabled != null) {
request.addPostParam("Psd2Enabled", psd2Enabled.toString());
}
if (doNotShareWarningEnabled != null) {
request.addPostParam("DoNotShareWarningEnabled", doNotShareWarningEnabled.toString());
}
if (customCodeEnabled != null) {
request.addPostParam("CustomCodeEnabled", customCodeEnabled.toString());
}
if (push != null) {
request.addPostParam("Push", Converter.mapToJson(push));
}
}
}