Skip to content

Latest commit

 

History

History
818 lines (693 loc) · 43.9 KB

README.md

File metadata and controls

818 lines (693 loc) · 43.9 KB

telnyx

Telnyx API

  • API version: 2.0.0

SIP trunking, SMS, MMS, Call Control and Telephony Data Services.

Automatically generated by the Swagger Codegen

Requirements

Building the API client library requires:

  1. Java 1.7+
  2. Maven/Gradle

Installation

To install the API client library to your local Maven repository, simply execute:

mvn clean install

To deploy it to a remote Maven repository instead, configure the settings of the repository and execute:

mvn clean deploy

Refer to the OSSRH Guide for more information.

Maven users

Add this dependency to your project's POM:

<dependency>
  <groupId>com.telnyx.sdk</groupId>
  <artifactId>telnyx</artifactId>
  <version>1.0.0</version>
  <scope>compile</scope>
</dependency>

Gradle users

Add this dependency to your project's build file:

compile "com.telnyx.sdk:telnyx:1.0.0"

Others

At first generate the JAR by executing:

mvn clean package

Then manually install the following JARs:

  • target/telnyx-1.0.0.jar
  • target/lib/*.jar

Getting Started

Please follow the installation instruction and execute the following Java code:

import io.swagger.client.*;
import io.swagger.client.auth.*;
import io.swagger.client.model.*;
import io.swagger.client.api.CallCommandsApi;

import java.io.File;
import java.util.*;

public class CallCommandsApiExample {

    public static void main(String[] args) {
        ApiClient defaultClient = Configuration.getDefaultApiClient();


        CallCommandsApi apiInstance = new CallCommandsApi();
        AnswerRequest body = new AnswerRequest(); // AnswerRequest | Answer call request
        String callControlId = "callControlId_example"; // String | Unique identifier and token for controlling the call
        try {
            CallControlCommandResponse result = apiInstance.callControlAnswer(body, callControlId);
            System.out.println(result);
        } catch (ApiException e) {
            System.err.println("Exception when calling CallCommandsApi#callControlAnswer");
            e.printStackTrace();
        }
    }
}
import io.swagger.client.*;
import io.swagger.client.auth.*;
import io.swagger.client.model.*;
import io.swagger.client.api.CallCommandsApi;

import java.io.File;
import java.util.*;

public class CallCommandsApiExample {

    public static void main(String[] args) {
        ApiClient defaultClient = Configuration.getDefaultApiClient();


        CallCommandsApi apiInstance = new CallCommandsApi();
        BridgeRequest body = new BridgeRequest(); // BridgeRequest | Bridge call request
        String callControlId = "callControlId_example"; // String | Unique identifier and token for controlling the call
        try {
            CallControlCommandResponse result = apiInstance.callControlBridge(body, callControlId);
            System.out.println(result);
        } catch (ApiException e) {
            System.err.println("Exception when calling CallCommandsApi#callControlBridge");
            e.printStackTrace();
        }
    }
}
import io.swagger.client.*;
import io.swagger.client.auth.*;
import io.swagger.client.model.*;
import io.swagger.client.api.CallCommandsApi;

import java.io.File;
import java.util.*;

public class CallCommandsApiExample {

    public static void main(String[] args) {
        ApiClient defaultClient = Configuration.getDefaultApiClient();


        CallCommandsApi apiInstance = new CallCommandsApi();
        DialRequest body = new DialRequest(); // DialRequest | Dial request
        try {
            RetrieveCallStatusResponse result = apiInstance.callControlDial(body);
            System.out.println(result);
        } catch (ApiException e) {
            System.err.println("Exception when calling CallCommandsApi#callControlDial");
            e.printStackTrace();
        }
    }
}
import io.swagger.client.*;
import io.swagger.client.auth.*;
import io.swagger.client.model.*;
import io.swagger.client.api.CallCommandsApi;

import java.io.File;
import java.util.*;

public class CallCommandsApiExample {

    public static void main(String[] args) {
        ApiClient defaultClient = Configuration.getDefaultApiClient();


        CallCommandsApi apiInstance = new CallCommandsApi();
        StartForkingRequest body = new StartForkingRequest(); // StartForkingRequest | Fork media request
        String callControlId = "callControlId_example"; // String | Unique identifier and token for controlling the call
        try {
            CallControlCommandResponse result = apiInstance.callControlForkStart(body, callControlId);
            System.out.println(result);
        } catch (ApiException e) {
            System.err.println("Exception when calling CallCommandsApi#callControlForkStart");
            e.printStackTrace();
        }
    }
}
import io.swagger.client.*;
import io.swagger.client.auth.*;
import io.swagger.client.model.*;
import io.swagger.client.api.CallCommandsApi;

import java.io.File;
import java.util.*;

public class CallCommandsApiExample {

    public static void main(String[] args) {
        ApiClient defaultClient = Configuration.getDefaultApiClient();


        CallCommandsApi apiInstance = new CallCommandsApi();
        StopForkingRequest body = new StopForkingRequest(); // StopForkingRequest | Stop forking media request
        String callControlId = "callControlId_example"; // String | Unique identifier and token for controlling the call
        try {
            CallControlCommandResponse result = apiInstance.callControlForkStop(body, callControlId);
            System.out.println(result);
        } catch (ApiException e) {
            System.err.println("Exception when calling CallCommandsApi#callControlForkStop");
            e.printStackTrace();
        }
    }
}
import io.swagger.client.*;
import io.swagger.client.auth.*;
import io.swagger.client.model.*;
import io.swagger.client.api.CallCommandsApi;

import java.io.File;
import java.util.*;

public class CallCommandsApiExample {

    public static void main(String[] args) {
        ApiClient defaultClient = Configuration.getDefaultApiClient();


        CallCommandsApi apiInstance = new CallCommandsApi();
        StopGatherRequest body = new StopGatherRequest(); // StopGatherRequest | Stop current gather
        String callControlId = "callControlId_example"; // String | Unique identifier and token for controlling the call
        try {
            CallControlCommandResponse result = apiInstance.callControlGatherStop(body, callControlId);
            System.out.println(result);
        } catch (ApiException e) {
            System.err.println("Exception when calling CallCommandsApi#callControlGatherStop");
            e.printStackTrace();
        }
    }
}
import io.swagger.client.*;
import io.swagger.client.auth.*;
import io.swagger.client.model.*;
import io.swagger.client.api.CallCommandsApi;

import java.io.File;
import java.util.*;

public class CallCommandsApiExample {

    public static void main(String[] args) {
        ApiClient defaultClient = Configuration.getDefaultApiClient();


        CallCommandsApi apiInstance = new CallCommandsApi();
        GatherUsingAudioRequest body = new GatherUsingAudioRequest(); // GatherUsingAudioRequest | Gather using audio request
        String callControlId = "callControlId_example"; // String | Unique identifier and token for controlling the call
        try {
            CallControlCommandResponse result = apiInstance.callControlGatherUsingAudio(body, callControlId);
            System.out.println(result);
        } catch (ApiException e) {
            System.err.println("Exception when calling CallCommandsApi#callControlGatherUsingAudio");
            e.printStackTrace();
        }
    }
}
import io.swagger.client.*;
import io.swagger.client.auth.*;
import io.swagger.client.model.*;
import io.swagger.client.api.CallCommandsApi;

import java.io.File;
import java.util.*;

public class CallCommandsApiExample {

    public static void main(String[] args) {
        ApiClient defaultClient = Configuration.getDefaultApiClient();


        CallCommandsApi apiInstance = new CallCommandsApi();
        GatherUsingSpeakRequest body = new GatherUsingSpeakRequest(); // GatherUsingSpeakRequest | Gather using speak request
        String callControlId = "callControlId_example"; // String | Unique identifier and token for controlling the call
        try {
            CallControlCommandResponse result = apiInstance.callControlGatherUsingSpeak(body, callControlId);
            System.out.println(result);
        } catch (ApiException e) {
            System.err.println("Exception when calling CallCommandsApi#callControlGatherUsingSpeak");
            e.printStackTrace();
        }
    }
}
import io.swagger.client.*;
import io.swagger.client.auth.*;
import io.swagger.client.model.*;
import io.swagger.client.api.CallCommandsApi;

import java.io.File;
import java.util.*;

public class CallCommandsApiExample {

    public static void main(String[] args) {
        ApiClient defaultClient = Configuration.getDefaultApiClient();


        CallCommandsApi apiInstance = new CallCommandsApi();
        HangupRequest body = new HangupRequest(); // HangupRequest | Hangup request
        String callControlId = "callControlId_example"; // String | Unique identifier and token for controlling the call
        try {
            CallControlCommandResponse result = apiInstance.callControlHangup(body, callControlId);
            System.out.println(result);
        } catch (ApiException e) {
            System.err.println("Exception when calling CallCommandsApi#callControlHangup");
            e.printStackTrace();
        }
    }
}
import io.swagger.client.*;
import io.swagger.client.auth.*;
import io.swagger.client.model.*;
import io.swagger.client.api.CallCommandsApi;

import java.io.File;
import java.util.*;

public class CallCommandsApiExample {

    public static void main(String[] args) {
        ApiClient defaultClient = Configuration.getDefaultApiClient();


        CallCommandsApi apiInstance = new CallCommandsApi();
        PlayAudioUrlRequest body = new PlayAudioUrlRequest(); // PlayAudioUrlRequest | Play audio URL request
        String callControlId = "callControlId_example"; // String | Unique identifier and token for controlling the call
        try {
            CallControlCommandResponse result = apiInstance.callControlPlaybackStart(body, callControlId);
            System.out.println(result);
        } catch (ApiException e) {
            System.err.println("Exception when calling CallCommandsApi#callControlPlaybackStart");
            e.printStackTrace();
        }
    }
}
import io.swagger.client.*;
import io.swagger.client.auth.*;
import io.swagger.client.model.*;
import io.swagger.client.api.CallCommandsApi;

import java.io.File;
import java.util.*;

public class CallCommandsApiExample {

    public static void main(String[] args) {
        ApiClient defaultClient = Configuration.getDefaultApiClient();


        CallCommandsApi apiInstance = new CallCommandsApi();
        PlaybackStopRequest body = new PlaybackStopRequest(); // PlaybackStopRequest | Stop audio playback request
        String callControlId = "callControlId_example"; // String | Unique identifier and token for controlling the call
        try {
            CallControlCommandResponse result = apiInstance.callControlPlaybackStop(body, callControlId);
            System.out.println(result);
        } catch (ApiException e) {
            System.err.println("Exception when calling CallCommandsApi#callControlPlaybackStop");
            e.printStackTrace();
        }
    }
}
import io.swagger.client.*;
import io.swagger.client.auth.*;
import io.swagger.client.model.*;
import io.swagger.client.api.CallCommandsApi;

import java.io.File;
import java.util.*;

public class CallCommandsApiExample {

    public static void main(String[] args) {
        ApiClient defaultClient = Configuration.getDefaultApiClient();


        CallCommandsApi apiInstance = new CallCommandsApi();
        StartRecordingRequest body = new StartRecordingRequest(); // StartRecordingRequest | Start recording audio request
        String callControlId = "callControlId_example"; // String | Unique identifier and token for controlling the call
        try {
            CallControlCommandResponse result = apiInstance.callControlRecordStart(body, callControlId);
            System.out.println(result);
        } catch (ApiException e) {
            System.err.println("Exception when calling CallCommandsApi#callControlRecordStart");
            e.printStackTrace();
        }
    }
}
import io.swagger.client.*;
import io.swagger.client.auth.*;
import io.swagger.client.model.*;
import io.swagger.client.api.CallCommandsApi;

import java.io.File;
import java.util.*;

public class CallCommandsApiExample {

    public static void main(String[] args) {
        ApiClient defaultClient = Configuration.getDefaultApiClient();


        CallCommandsApi apiInstance = new CallCommandsApi();
        StopRecordingRequest body = new StopRecordingRequest(); // StopRecordingRequest | Stop recording call request
        String callControlId = "callControlId_example"; // String | Unique identifier and token for controlling the call
        try {
            CallControlCommandResponse result = apiInstance.callControlRecordStop(body, callControlId);
            System.out.println(result);
        } catch (ApiException e) {
            System.err.println("Exception when calling CallCommandsApi#callControlRecordStop");
            e.printStackTrace();
        }
    }
}
import io.swagger.client.*;
import io.swagger.client.auth.*;
import io.swagger.client.model.*;
import io.swagger.client.api.CallCommandsApi;

import java.io.File;
import java.util.*;

public class CallCommandsApiExample {

    public static void main(String[] args) {
        ApiClient defaultClient = Configuration.getDefaultApiClient();


        CallCommandsApi apiInstance = new CallCommandsApi();
        RejectRequest body = new RejectRequest(); // RejectRequest | Reject request
        String callControlId = "callControlId_example"; // String | Unique identifier and token for controlling the call
        try {
            CallControlCommandResponse result = apiInstance.callControlReject(body, callControlId);
            System.out.println(result);
        } catch (ApiException e) {
            System.err.println("Exception when calling CallCommandsApi#callControlReject");
            e.printStackTrace();
        }
    }
}
import io.swagger.client.*;
import io.swagger.client.auth.*;
import io.swagger.client.model.*;
import io.swagger.client.api.CallCommandsApi;

import java.io.File;
import java.util.*;

public class CallCommandsApiExample {

    public static void main(String[] args) {
        ApiClient defaultClient = Configuration.getDefaultApiClient();


        CallCommandsApi apiInstance = new CallCommandsApi();
        SendDTMFRequest body = new SendDTMFRequest(); // SendDTMFRequest | Send DTMF request
        String callControlId = "callControlId_example"; // String | Unique identifier and token for controlling the call
        try {
            CallControlCommandResponse result = apiInstance.callControlSendDTMF(body, callControlId);
            System.out.println(result);
        } catch (ApiException e) {
            System.err.println("Exception when calling CallCommandsApi#callControlSendDTMF");
            e.printStackTrace();
        }
    }
}
import io.swagger.client.*;
import io.swagger.client.auth.*;
import io.swagger.client.model.*;
import io.swagger.client.api.CallCommandsApi;

import java.io.File;
import java.util.*;

public class CallCommandsApiExample {

    public static void main(String[] args) {
        ApiClient defaultClient = Configuration.getDefaultApiClient();


        CallCommandsApi apiInstance = new CallCommandsApi();
        SpeakRequest body = new SpeakRequest(); // SpeakRequest | Speak request
        String callControlId = "callControlId_example"; // String | Unique identifier and token for controlling the call
        try {
            CallControlCommandResponse result = apiInstance.callControlSpeak(body, callControlId);
            System.out.println(result);
        } catch (ApiException e) {
            System.err.println("Exception when calling CallCommandsApi#callControlSpeak");
            e.printStackTrace();
        }
    }
}
import io.swagger.client.*;
import io.swagger.client.auth.*;
import io.swagger.client.model.*;
import io.swagger.client.api.CallCommandsApi;

import java.io.File;
import java.util.*;

public class CallCommandsApiExample {

    public static void main(String[] args) {
        ApiClient defaultClient = Configuration.getDefaultApiClient();


        CallCommandsApi apiInstance = new CallCommandsApi();
        TransferCallRequest body = new TransferCallRequest(); // TransferCallRequest | Transfer call request
        String callControlId = "callControlId_example"; // String | Unique identifier and token for controlling the call
        try {
            CallControlCommandResponse result = apiInstance.callControlTransfer(body, callControlId);
            System.out.println(result);
        } catch (ApiException e) {
            System.err.println("Exception when calling CallCommandsApi#callControlTransfer");
            e.printStackTrace();
        }
    }
}

Documentation for API Endpoints

All URIs are relative to https://api.telnyx.com/v2

Class Method HTTP request Description
CallCommandsApi callControlAnswer POST /calls/{call_control_id}/actions/answer Answer call
CallCommandsApi callControlBridge POST /calls/{call_control_id}/actions/bridge Bridge calls
CallCommandsApi callControlDial POST /calls Dial
CallCommandsApi callControlForkStart POST /calls/{call_control_id}/actions/fork_start Forking start
CallCommandsApi callControlForkStop POST /calls/{call_control_id}/actions/fork_stop Forking stop
CallCommandsApi callControlGatherStop POST /calls/{call_control_id}/actions/gather_stop Gather stop
CallCommandsApi callControlGatherUsingAudio POST /calls/{call_control_id}/actions/gather_using_audio Gather using audio
CallCommandsApi callControlGatherUsingSpeak POST /calls/{call_control_id}/actions/gather_using_speak Gather using speak
CallCommandsApi callControlHangup POST /calls/{call_control_id}/actions/hangup Hangup call
CallCommandsApi callControlPlaybackStart POST /calls/{call_control_id}/actions/playback_start Play audio URL
CallCommandsApi callControlPlaybackStop POST /calls/{call_control_id}/actions/playback_stop Stop audio playback
CallCommandsApi callControlRecordStart POST /calls/{call_control_id}/actions/record_start Recording start
CallCommandsApi callControlRecordStop POST /calls/{call_control_id}/actions/record_stop Recording stop
CallCommandsApi callControlReject POST /calls/{call_control_id}/actions/reject Reject call
CallCommandsApi callControlSendDTMF POST /calls/{call_control_id}/actions/send_dtmf Send DTMF
CallCommandsApi callControlSpeak POST /calls/{call_control_id}/actions/speak Speak text
CallCommandsApi callControlTransfer POST /calls/{call_control_id}/actions/transfer Transfer call
CallInformationApi retrieveCallStatus GET /calls/{call_control_id} Retrieve call status
ConferenceCommandsApi callControlRecordConferenceStart POST /conferences/{id}/actions/record_start Conference recording start
ConferenceCommandsApi callControlRecordConferenceStop POST /conferences/{id}/actions/record_stop Conference recording stop
ConferenceCommandsApi createConference POST /conferences Create conference
ConferenceCommandsApi getConference GET /conferences/{id} Retrieve a conference
ConferenceCommandsApi getConferenceParticipants GET /conferences/{id}/participants List conference participants
ConferenceCommandsApi getConferences GET /conferences List conferences
ConferenceCommandsApi holdConference POST /conferences/{id}/actions/hold Hold conference participants
ConferenceCommandsApi joinConference POST /conferences/{id}/actions/join Join a conference
ConferenceCommandsApi muteConference POST /conferences/{id}/actions/mute Mute conference participants
ConferenceCommandsApi unholdConference POST /conferences/{id}/actions/unhold Unhold conference participants
ConferenceCommandsApi unmuteConference POST /conferences/{id}/actions/unmute Unmute conference participants
CsvDownloadsApi createCsvDownload POST /phone_numbers/csv_downloads create a new CSV download request
CsvDownloadsApi findCsvDownloads GET /phone_numbers/csv_downloads List your submitted CSV download requests
CsvDownloadsApi retrieveCsvDownload GET /phone_numbers/csv_downloads/{id} Get a single submitted CSV download request.
DebuggingApi callControlDebuggingEventList GET /call_events List call events
MessagesApi createLongCodeMessage POST /messages/long_code Send a Long Code message
MessagesApi createMessage POST /messages Send a message
MessagesApi createNumberPoolMessage POST /messages/number_pool Send a message using Number Pool
MessagesApi createShortCodeMessage POST /messages/short_code Send a Short Code message
MessagesApi retrieveMessage GET /messages/{id} Retrieve a message
MessagingHostedNumberApi deleteMessagingHostedNumber DELETE /messaging_hosted_numbers/{id} Delete Messaging Hosted Number
MessagingHostedNumberApi getMessagingHostedNumberOrder GET /messaging_hosted_number_orders/{id} Get Messaging Hosted Numbers Order Information
MessagingHostedNumberApi listMessagingHostedNumberOrder GET /messaging_hosted_number_orders List All Messaging Hosted Number Orders
MessagingHostedNumberApi newMessagingHostedNumberOrder POST /messaging_hosted_number_orders New Messaging Hosted Numbers Order
MessagingHostedNumberApi uploadFilesMessagingHostedNumberOrder POST /messaging_hosted_number_orders/{id}/actions/file_upload Upload LOA and Bill required for a Messaging Hosted Number Order
MessagingProfilesApi createMessagingProfile POST /messaging_profiles Create a messaging profile
MessagingProfilesApi deleteMessagingProfile DELETE /messaging_profiles/{id} Delete a messaging profile
MessagingProfilesApi getMessagingProfileDetailedMetrics GET /messaging_profiles/{id}/metrics Get detailed messaging metrics for a messaging profile
MessagingProfilesApi listMessagingProfileMetrics GET /messaging_profile_metrics List high-level messaging profile metrics
MessagingProfilesApi listMessagingProfilePhoneNumbers GET /messaging_profiles/{id}/phone_numbers List all phone numbers associated with a messaging profile
MessagingProfilesApi listMessagingProfileShortCodes GET /messaging_profiles/{id}/short_codes List all short codes associated with a messaging profile
MessagingProfilesApi listMessagingProfiles GET /messaging_profiles List all messaging profiles
MessagingProfilesApi retrieveMessagingProfile GET /messaging_profiles/{id} Retrieve a messaging profile
MessagingProfilesApi updateMessagingProfile PATCH /messaging_profiles/{id} Update a messaging profile
MessagingUrlDomainsApi getAllMessagingUrlDomains GET /messaging_url_domains List all available messaging URL domains
NumberConfigurationsApi deletePhoneNumber DELETE /phone_numbers/{id} Delete a phone number
NumberConfigurationsApi enableEmergencyPhoneNumber POST /phone_numbers/{id}/actions/enable_emergency Enable emergency for a phone number
NumberConfigurationsApi findPhoneNumberVoices GET /phone_numbers/voice List voice settings for multiple phone numbers
NumberConfigurationsApi findPhoneNumbers GET /phone_numbers List all phone numbers
NumberConfigurationsApi getPhoneNumber GET /phone_numbers/{id} Get the settings for a phone number
NumberConfigurationsApi listPhoneNumberMessagingSettings GET /phone_numbers/messaging List all phone numbers' messaging settings
NumberConfigurationsApi retrievePhoneNumberMessagingSettings GET /phone_numbers/{id}/messaging Retrieve the messaging settings for a phone number
NumberConfigurationsApi retrievePhoneNumberVoice GET /phone_numbers/{id}/voice Get the voice settings for a phone number
NumberConfigurationsApi updatePhoneNumber PATCH /phone_numbers/{id} Update the settings for a phone number
NumberConfigurationsApi updatePhoneNumberMessagingSettings PATCH /phone_numbers/{id}/messaging Update the messaging settings for a phone number
NumberConfigurationsApi updatePhoneNumberVoice PATCH /phone_numbers/{id}/voice Update the voice settings for a phone number
NumberOrderDocumentsApi createNumberOrderDocument POST /number_order_documents Upload Number Order Document
NumberOrderDocumentsApi listNumberOrderDocuments GET /number_order_documents Get Uploaded Number Order Documents
NumberOrderDocumentsApi retrieveNumberOrderDocument GET /number_order_documents/{number_order_document_id} Get a Single Number Order Document
NumberOrderDocumentsApi updateNumberOrderDocument PATCH /number_order_documents/{number_order_document_id} Update Number Order Document
NumberOrderRegulatoryRequirementsApi listNumberOrderRegulatoryRequirements GET /regulatory_requirements Get list of Number Order Regulatory Requirements
NumberOrderRegulatoryRequirementsApi listPhoneNumberRegulatoryRequirements GET /phone_number_regulatory_requirements Get Regulatory Requirements Per Number
NumberOrderRegulatoryRequirementsApi retrieveNumberOrderRegulatoryRequirement GET /regulatory_requirements/{requirement_id} Get Detailed Number Order Regulatory Requirement
NumberOrdersApi createNumberOrder POST /number_orders Create Phone Number Order
NumberOrdersApi listNumberOrders GET /number_orders Get multiple Number Orders
NumberOrdersApi retrieveNumberOrder GET /number_orders/{number_order_id} Get a single phone number order
NumberOrdersApi updateNumberOrder PATCH /number_orders/{number_order_id} Update phone number order
NumberReservationsApi createNumberReservations POST /number_reservations Create a Phone Number Reservation
NumberReservationsApi extendNumberReservationExpiryTime POST /number_reservations/{number_reservation_id}/actions/extend Extend a Phone Number Reservation
NumberReservationsApi listNumberReservations GET /number_reservations List multiple Number Reservations
NumberReservationsApi retrieveNumberReservation GET /number_reservations/{number_reservation_id} Get a Single Phone Number Reservation
NumberSearchApi listAvailablePhoneNumbers GET /available_phone_numbers List available phone numbers
ShortCodesApi listShortCodes GET /short_codes List all short codes
ShortCodesApi retrieveShortCode GET /short_codes/{id} Retrieve a short code
ShortCodesApi updateShortCode PATCH /short_codes/{id} Update short code

Documentation for Models

Documentation for Authorization

Authentication schemes defined for the API:

bearerAuth

Recommendation

It's recommended to create an instance of ApiClient per thread in a multithreaded environment to avoid any potential issues.

Author

[email protected]