.. _ratelimitprofiles: ********************* Rate Limit Profiles ********************* RateLimitProfiles define a limit for the maximum number of Reservations that can be created Hourly. When a Worker has a ``rate_limit_profile`` set, you guarantee that the Worker will not be assigned more than a certain number of Tasks **hourly**, regardless of the Task's nature , or which Workflow It's processed through or which TaskQueue it comes from. You can read more about `Rate Limits and Rate Limit Profiles here `_ . Using Rate Limit Profiles helps you group similar Workers together and change their pace of Task consumption from a single point of setting. For example , a Call Center may set a rate limit profile for all the Workers in the support department, which lets them all have 12 calls per hour in the morning session , and then update the Rate Limit Profile and let them have 6 calls per hour in the afternoon session, halving their workload and redirecting it to some other department, with a single Rate Limit Profile update. * With utilizing Rate Limit Profiles , you can : * change the pace of Task consumption or * enforce quotas on limited resources and budgets or * prevent bottlenecks on your application side You can read more about `Rate Limits and Rate Limit Profiles here `_ RateLimitProfile Properties --------------------------------- .. list-table:: Properties :widths: 25 50 :header-rows: 1 * - field - description * - **sid** - The unique string that we created to identify the Rate Limit Profile resource. * - **account_sid** - The SID of the Account that created the RateLimitProfile resource. * - **workspace_sid** - The SID of the Workspace that contains the RateLimitProfile * - **friendly_name** - The string that you assigned to describe the resource. * - **reservations_per_hour** - The maximum number of Reservations that can be created hourly, for a Worker with this RateLimitProfile * - **date_created** - The date and time in GMT when the resource was created, specified in ISO 8601 format. * - **date_updated** - The date and time in GMT when the resource was last updated, specified in ISO 8601 format. * - **url** - The absolute URL of the RateLimitProfile resource * - **links** - The URLs of related resources. Create A RateLimitProfile ----------------------------- .. http:post:: /v1/rindap-rest-gw/Workspaces/{WorkspaceSID}/RateLimitProfiles You can easily create a RateLimitProfile by providind a friendly name and the number of maximum hourly reservations .. list-table:: Query Parameters :widths: 20 15 5 60 :header-rows: 1 * - Parameter - Type - Default - Description * - **WorkspaceSID** - String - "" - The SID of the `Workspace` * - **FriendlyName** - String - "" - Human readable friendly name. It can be 512 characters long * - **ReservationsPerHour** - Integer - "" - The maximum number of Reservations that can be created hourly, for a Worker with this RateLimitProfile Example code pieces using SDKs ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ **Shell** .. code-block:: shell curl -X POST https://api.rindap.com/v1/rindap-rest-gw/Workspaces/WSxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/RateLimitProfiles \ --data-urlencode 'FriendlyName=my rate limit profile for 6 reservations an Hour' --data-urlencode 'ReservationsPerHour=6' -H "Authorization: Bearer {YOUR_ACCOUNT_SID}.{YOUR_AUTH_TOKEN}" \ -H "Content-Type:application/x-www-form-urlencoded" **Java** .. code-block:: java // Install the Java helper library from rindap.com/docs/java/install import com.rindap.Rindap; import com.rindap.rest.v1.workspace.RateLimitProfile; public class Example { // Find your Account Sid and Token at rindap.com/console public static void main(String[] args) { Rindap.init("YOUR_ACCOUNT_SID","YOUR_AUTH_TOKEN"); RateLimitProfile rl = RateLimitProfile.creator("WSxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", "my rate limit profile for 6 reservations an Hour", 6 ) .create(); System.out.println(rl); } } **Python** .. code-block:: python from rindap.rest import Client from rindap.rest import Rindap client = Client("YOUR_ACCOUNT_SID", "YOUR_AUTH_TOKEN") rindap = Rindap(client) workspace = rindap.workspaces.get("WSb9d8cf8597f64f77a45666c4c0263862") rtp = workspace.rate_limit_profiles.create("My Rate Limit", reservation_per_hour=7) print(rtp) **JS** .. code-block:: javascript var Rindap = require('rindap'); // Authenticate var rindap = new Rindap("YOUR_ACCOUNT_SID", "YOUR_AUTH_TOKEN"); // Crate a reservation rindap.workspaces('WSxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx') .rateLimitProfiles .create({ friendlyName: 'New Rate Limit', reservationsPerHour: 4 }, function(err, rateLimitProfile) { console.log(rateLimitProfile.sid); console.log(rateLimitProfile.friendlyName); console.log(rateLimitProfile.reservationsPerHour); }); **C#** .. code-block:: csharp using System; using Rindap; using Rindap.Rest.V1.Workspace; class Program { static void Main(string[] args) { // Authenticate RindapClient.Init("YOUR_ACCOUNT_SID", "YOUR_AUTH_TOKEN"); // Create a RateLimitProfile var rateLimitProfile = RateLimitProfileResource.Create( pathWorkspaceSid: "WSxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", friendlyName: "New RateLimitProfile", reservationsPerHour: 7 ); // Print RateLimitProfile Content Console.WriteLine("SID : " + rateLimitProfile.Sid); Console.WriteLine("FriendlyName : " + rateLimitProfile.FriendlyName); Console.WriteLine("ReservationPerHour: " + rateLimitProfile.ReservationPerHour); } } **The above command returns JSON structured like this:** .. code-block:: json { "sid": "RLxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", "account_sid": "ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", "workspace_sid": "WSxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", "friendly_name": "my rate limit profile for 6 reservations an Hour", "reservations_per_hour": 6, "date_created": "2020-05-06T16:24:36+03:00", "date_updated": "2020-05-06T16:24:36+03:00", "url": "https://api.rindap.com/v1/rindap-rest-gw/Workspaces/WSxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/RateLimitProfiles/RLxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", "links": { "workspace": "https://api.rindap.com/v1/rindap-rest-gw/Workspaces/WSxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" } } Get All RateLimitProfiles ---------------------------- .. http:get:: /v1/rindap-rest-gw/Workspaces/{WorkspaceSID}/RateLimitProfiles This endpoint retrives all RateLimitProfiles .. list-table:: Query Parameters :widths: 20 15 5 60 :header-rows: 1 * - Parameter - Type - Default - Description * - **WorkspaceSID** - String - "" - The SID of the `Workspace` * - **PageSize** - Integer - 50 - Page size for paging * - **Page** - Integer - 0 - Page number for paging Example code pieces using SDKs ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ **Shell** .. code-block:: shell curl -X GET https://api.rindap.com/v1/rindap-rest-gw/Workspaces/WSxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/RateLimitProfiles \ -H "Authorization: Bearer {YOUR_ACCOUNT_SID}.{YOUR_AUTH_TOKEN}" \ -H "Content-Type:application/x-www-form-urlencoded" **Java** .. code-block:: java // Install the Java helper library from rindap.com/docs/java/install import com.rindap.Rindap; import com.rindap.rest.v1.workspace.RateLimitProfile; public class Example { // Find your Account Sid and Token at rindap.com/console public static void main(String[] args) { Rindap.init("YOUR_ACCOUNT_SID","YOUR_AUTH_TOKEN"); RateLimitProfile.Reader reader = RateLimitProfile.reader("WSxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"); for(RateLimitProfile rl:reader.read()) System.out.println(rl); } } **Python** .. code-block:: python from rindap.rest import Client from rindap.rest import Rindap client = Client("YOUR_ACCOUNT_SID", "YOUR_AUTH_TOKEN") rindap = Rindap(client) workspace = rindap.workspaces.get("WSb9d8cf8597f64f77a45666c4c0263862") rate_limit_profiles = workspace.rate_limit_profiles.list(limit=10, page_size=5) for rate_limit_profile in rate_limit_profiles: print("RateLimitProfileSid: {}".format(rate_limit_profile.sid)) print("FriendlyName: {}".format(rate_limit_profile.friendly_name)) **JS** .. code-block:: javascript var Rindap = require('rindap'); // Authenticate var rindap = new Rindap("YOUR_ACCOUNT_SID", "YOUR_AUTH_TOKEN"); // Get all ratelimits rindap.workspaces('WSxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx') .rateLimitProfiles .list({ limit: 100, pageSize: 100 }, function(err, rateLimitProfiles) { rateLimitProfiles.forEach(function(rateLimitProfile){ console.log(rateLimitProfile.sid); console.log(rateLimitProfile.friendlyName); console.log(rateLimitProfile.reservationsPerHour); }); }); **C#** .. code-block:: csharp using System; using Rindap; using Rindap.Rest.V1.Workspace; class Program { static void Main(string[] args) { // Authenticate RindapClient.Init("YOUR_ACCOUNT_SID", "YOUR_AUTH_TOKEN"); // List All RateLimitProfiles var rateLimitProfiles = RateLimitProfileResource.Read( pathWorkspaceSid: "WSxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", limit: 100, pageSize: 100 ); foreach (var rateLimitProfile in rateLimitProfiles) { // Print RateLimitProfile Content Console.WriteLine("SID : " + rateLimitProfile.Sid); Console.WriteLine("FriendlyName : " + rateLimitProfile.FriendlyName); Console.WriteLine("ReservationPerHour: " + rateLimitProfile.ReservationPerHour); } } } **The above command returns JSON structured like this:** .. code-block:: json { "meta": { "page_size": 50, "page": 0, "first_page_url": "https://api.rindap.com/v1/rindap-rest-gw/Workspaces/WSxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/RateLimitProfiles?Page=0&PageSize=50", "previous_page_url": null, "url": "https://api.rindap.com/v1/rindap-rest-gw/Workspaces/WSxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/RateLimitProfiles?Page=0&PageSize=50", "key": "rate_limit_profiles", "next_page_url": "https://api.rindap.com/v1/rindap-rest-gw/Workspaces/WSxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/RateLimitProfiles?Page=1&PageSize=50" }, "rate_limit_profiles": [ { "sid": "RLxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", "account_sid": "ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", "workspace_sid": "WSxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", "friendly_name": "my rate limit profile for 6 reservations an Hour", "reservations_per_hour": 6, "date_created": "2020-05-06T16:24:36+03:00", "date_updated": "2020-05-06T16:24:36+03:00", "url": "https://api.rindap.com/v1/rindap-rest-gw/Workspaces/WSxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/RateLimitProfiles/RLxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", "links": { "workspace": "https://api.rindap.com/v1/rindap-rest-gw/Workspaces/WSxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" } } ] } Fetch a RateLimitProfile ---------------------------- .. http:get:: /v1/rindap-rest-gw/Workspaces/{WorkspaceSid}/RateLimitProfiles/{RateLimitProfileSID} This endpoint fetches a single RateLimitProfile with all Its details .. list-table:: Query Parameters :widths: 20 15 5 60 :header-rows: 1 * - Parameter - Type - Default - Description * - **WorkspaceSID** - String - "" - The SID of the `Workspace` * - **RateLimitProfileSID** - String - "" - The SID of the RateLimitProfile Example code pieces using SDKs ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ **Shell** .. code-block:: shell curl -X GET https://api.rindap.com/v1/rindap-rest-gw/Workspaces/WSxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx \ /RateLimitProfiles/RLxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx -H "Authorization: Bearer {YOUR_ACCOUNT_SID}.{YOUR_AUTH_TOKEN}" \ -H "Content-Type:application/x-www-form-urlencoded" **Java** .. code-block:: java // Install the Java helper library from rindap.com/docs/java/install import com.rindap.Rindap; import com.rindap.rest.v1.workspace.RateLimitProfile; public class Example { // Find your Account Sid and Token at rindap.com/console public static void main(String[] args) { Rindap.init("YOUR_ACCOUNT_SID","YOUR_AUTH_TOKEN"); RateLimitProfiles rl = RateLimitProfile .fetcher("WSxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", "RLxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx") .fetch(); System.out.println(rl); } } **Python** .. code-block:: python from rindap.rest import Client from rindap.rest import Rindap client = Client("YOUR_ACCOUNT_SID", "YOUR_AUTH_TOKEN") rindap = Rindap(client) workspace = rindap.workspaces.get("WSxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx") rate_limit_profile = workspace.rate_limit_profiles.get('RLxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx').fetch() print("RateLimitProfileSid: {}".format(rate_limit_profile.sid)) print("FriendlyName: {}".format(rate_limit_profile.friendly_name)) **JS** .. code-block:: javascript var Rindap = require('rindap'); // Authenticate var rindap = new Rindap("YOUR_ACCOUNT_SID", "YOUR_AUTH_TOKEN"); // Get a ratelimit with SID rindap.workspaces('WSxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx') .rateLimitProfiles("RLxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx") .fetch(function(err, rateLimitProfile) { console.log(rateLimitProfile.sid); console.log(rateLimitProfile.friendlyName); console.log(rateLimitProfile.reservationsPerHour); }); **C#** .. code-block:: csharp using System; using Rindap; using Rindap.Rest.V1.Workspace; class Program { static void Main(string[] args) { // Authenticate RindapClient.Init("YOUR_ACCOUNT_SID", "YOUR_AUTH_TOKEN"); // Get a RateLimitProfile with SID var rateLimitProfile = RateLimitProfileResource.Fetch( pathWorkspaceSid: "WSxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", pathSid: "RLxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" ); // Print RateLimitProfile Content Console.WriteLine("SID : " + rateLimitProfile.Sid); Console.WriteLine("FriendlyName : " + rateLimitProfile.FriendlyName); Console.WriteLine("ReservationPerHour: " + rateLimitProfile.ReservationPerHour); } } **The above command returns JSON structured like this:** .. code-block:: json { "sid": "RLxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", "account_sid": "ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", "workspace_sid": "WSxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", "friendly_name": "my rate limit profile for 6 reservations an Hour", "reservations_per_hour": 6, "date_created": "2020-05-06T16:24:36+03:00", "date_updated": "2020-05-06T16:24:36+03:00", "url": "https://api.rindap.com/v1/rindap-rest-gw/Workspaces/WSxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/RateLimitProfiles/RLxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", "links": { "workspace": "https://api.rindap.com/v1/rindap-rest-gw/Workspaces/WSxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" } } Update a RateLimitProfile ----------------------------- .. http:put:: /v1/rindap-rest-gw/Workspaces/{WorkspaceSID}/RateLimitProfiles/{RateLimitProfileSID} .. warning:: When you update the `reservations_per_hour` field , all the Workers with this RateLimitProfile will be affected immediately, Thus receiving Reservations according to this new value. .. list-table:: Query Parameters :widths: 20 15 5 60 :header-rows: 1 * - Parameter - Type - Default - Description * - **WorkspaceSID** - String - "" - The SID of the Workspace with the Rate Limit Profile to update * - **RateLimitProfileSID** - String - "" - The SID of the Rate Limit Profile to be updated * - **FriendlyName** - String - "" - (optional) Human readable friendly name. It can be 512 characters long * - **ReservationsPerHour** - Integer - "" - (optional) The maximum number of Reservations that can be created hourly, for a Worker with this RateLimitProfile Example code pieces using SDKs ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ **Shell** .. code-block:: shell curl -X PUT https://api.rindap.com/v1/rindap-rest-gw/Workspaces/WSxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx \ /RateLimitProfiles/RLxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx \ --data-urlencode 'FriendlyName=my newly named rate limit profile' \ --data-urlencode 'ReservationsPerHour=30' \ -H "Authorization: Bearer {YOUR_ACCOUNT_SID}.{YOUR_AUTH_TOKEN}" \ -H "Content-Type:application/x-www-form-urlencoded" **Java** .. code-block:: java // Install the Java helper library from rindap.com/docs/java/install import com.rindap.Rindap; import com.rindap.rest.v1.workspace.RateLimitProfile; public class Example { // Find your Account Sid and Token at rindap.com/console public static void main(String[] args) { Rindap.init("YOUR_ACCOUNT_SID","YOUR_AUTH_TOKEN"); RateLimitProfile rl = RateLimitProfile .updater("WSxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", "RLxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx") .setFriendlyName("my newly named rate limit profile") .setReservationsPerHour(30) .update(); System.out.println(rl); } } **Python** .. code-block:: python from rindap.rest import Client from rindap.rest import Rindap client = Client("YOUR_ACCOUNT_SID", "YOUR_AUTH_TOKEN") rindap = Rindap(client) workspace = rindap.workspaces.get("WSb9d8cf8597f64f77a45666c4c0263862") rate_limit_profile_fetcher = workspace.rate_limit_profiles.get('RL8e22315c14294c749db7eee2d9d7bc27') rate_limit_profile = rate_limit_profile_fetcher.update(friendly_name="New New Rate Limit", reservation_per_hour=9) print("RateLimitProfileSid: {}".format(rate_limit_profile.sid)) print("FriendlyName: {}".format(rate_limit_profile.friendly_name)) **JS** .. code-block:: javascript var Rindap = require('rindap'); // Authenticate var rindap = new Rindap("YOUR_ACCOUNT_SID", "YOUR_AUTH_TOKEN"); // Update a ratelimit with SID rindap.workspaces('WSxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx') .rateLimitProfiles("RLxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx") .update({ friendlyName: "New Friendly Name", reservationsPerHour: 7 },function(err, rateLimitProfile) { console.log(rateLimitProfile.sid); console.log(rateLimitProfile.friendlyName); console.log(rateLimitProfile.reservationsPerHour); }); **C#** .. code-block:: csharp using System; using Rindap; using Rindap.Rest.V1.Workspace; class Program { static void Main(string[] args) { // Authenticate RindapClient.Init("YOUR_ACCOUNT_SID", "YOUR_AUTH_TOKEN"); // Update RateLimitProfile var rateLimitProfile = RateLimitProfileResource.Update( pathWorkspaceSid: "WSxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", pathSid: "RLxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", friendlyName: "New Friendly Name", reservationsPerHour: 6 ); // Print RateLimitProfile Content Console.WriteLine("SID : " + rateLimitProfile.Sid); Console.WriteLine("FriendlyName : " + rateLimitProfile.FriendlyName); Console.WriteLine("ReservationPerHour: " + rateLimitProfile.ReservationPerHour); } } **The above command returns JSON structured like this:** .. code-block:: json { "sid": "RLxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", "account_sid": "ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", "workspace_sid": "WSxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", "friendly_name": "my newly named rate limit profile", "reservations_per_hour": 30, "date_created": "2020-05-06T16:24:36+03:00", "date_updated": "2020-05-06T16:24:36+03:00", "url": "https://api.rindap.com/v1/rindap-rest-gw/Workspaces/WSxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/RateLimitProfiles/RLxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", "links": { "workspace": "https://api.rindap.com/v1/rindap-rest-gw/Workspaces/WSxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" } } Delete a RateLimitProfile ------------------------------- .. http:delete:: /v1/rindap-rest-gw/Workspaces/{WorkspaceSID}/RateLimitProfiles/{RateLimitProfileSID} .. warning:: When you DELETE a RateLimitProfile , all the Workers with this RateLimitProfile will be affected immediately, Thus receiving Reservations with NO LIMITS .. list-table:: Query Parameters :widths: 20 15 5 60 :header-rows: 1 * - Parameter - Type - Default - Description * - **WorkspaceSID** - String - "" - The SID of the Workspace with the Rate Limit Profile * - **RateLimitProfileSID** - String - "" - The SID of the Rate Limit Profile Example code pieces using SDKs ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ **Shell** .. code-block:: shell curl -X DEL https://api.rindap.com/v1/rindap-rest-gw/Workspaces/WSxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx \ /RateLimitProfiles/RLxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx -H "Authorization: Bearer {YOUR_ACCOUNT_SID}.{YOUR_AUTH_TOKEN}" \ -H "Content-Type:application/x-www-form-urlencoded" **Java** .. code-block:: java // Install the Java helper library from rindap.com/docs/java/install import com.rindap.Rindap; import com.rindap.rest.v1.workspace.RateLimitProfile; public class Example { // Find your Account Sid and Token at rindap.com/console public static void main(String[] args) { Rindap.init("YOUR_ACCOUNT_SID","YOUR_AUTH_TOKEN"); RateLimitProfile.deleter("WSxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", "RLxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx") .delete(); } } **Python** .. code-block:: python from rindap.rest import Client from rindap.rest import Rindap client = Client("YOUR_ACCOUNT_SID", "YOUR_AUTH_TOKEN") rindap = Rindap(client) workspace = rindap.workspaces.get("WSxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx") if workspace.rate_limit_profiles.get('RLxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx').delete(): print("RateLimitProfile has been deleted!") **JS** .. code-block:: javascript var Rindap = require('rindap'); // Authenticate var rindap = new Rindap("YOUR_ACCOUNT_SID", "YOUR_AUTH_TOKEN"); // Delete a ratelimit with SID rindap.workspaces('WSxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx') .rateLimitProfiles("RLxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx") .remove(); **C#** .. code-block:: csharp using System; using Rindap; using Rindap.Rest.V1.Workspace; class Program { static void Main(string[] args) { // Authenticate RindapClient.Init("YOUR_ACCOUNT_SID", "YOUR_AUTH_TOKEN"); // Update RateLimitProfile var isDeleted = RateLimitProfileResource.Delete( pathWorkspaceSid: "WSxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", pathSid: "RLxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" ); if (isDeleted) { Console.WriteLine("RateLimitProfile has been deleted!"); } } }