diff options
author | Elmer Thomas <elmer@thinkingserious.com> | 2016-06-01 10:50:02 -0700 |
---|---|---|
committer | Elmer Thomas <elmer@thinkingserious.com> | 2016-06-01 10:50:02 -0700 |
commit | 4cde4e7ee0329c179fa8745655a602521f1c2dd8 (patch) | |
tree | b1cf20f427ef68c644f6c0cd724b72440d53728d | |
parent | 5e5c58f4245647611eb33e03d26d032b7ec2b26e (diff) | |
download | sendgrid-csharp-4cde4e7ee0329c179fa8745655a602521f1c2dd8.zip sendgrid-csharp-4cde4e7ee0329c179fa8745655a602521f1c2dd8.tar.gz sendgrid-csharp-4cde4e7ee0329c179fa8745655a602521f1c2dd8.tar.bz2 |
Added examples for v3 Web API endpoints
23 files changed, 2997 insertions, 0 deletions
diff --git a/examples/accesssettings/accesssettings.cs b/examples/accesssettings/accesssettings.cs new file mode 100644 index 0000000..ea3b19c --- /dev/null +++ b/examples/accesssettings/accesssettings.cs @@ -0,0 +1,87 @@ +using System; +using SendGrid.Helpers.Mail; +using System.Collections.Generic; +using System.Net; + +string _apiKey = Environment.GetEnvironmentVariable("SENDGRID_APIKEY", EnvironmentVariableTarget.User); +dynamic sg = new SendGrid.SendGridAPIClient(_apiKey); + +################################################## +# Retrieve all recent access attempts # +# GET /access_settings/activity # + +string queryParams = @"{ + 'limit': 1 +}"; +dynamic response = sg.client.access_settings.activity.get(queryParams: queryParams); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Add one or more IPs to the whitelist # +# POST /access_settings/whitelist # + +string data = @"{ + 'ips': [ + { + 'ip': '192.168.1.1' + }, + { + 'ip': '192.*.*.*' + }, + { + 'ip': '192.168.1.3/32' + } + ] +}"; +dynamic response = sg.client.access_settings.whitelist.post(requestBody: data); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Retrieve a list of currently whitelisted IPs # +# GET /access_settings/whitelist # + +dynamic response = sg.client.access_settings.whitelist.get(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Remove one or more IPs from the whitelist # +# DELETE /access_settings/whitelist # + +string data = @"{ + 'ids': [ + 1, + 2, + 3 + ] +}"; +dynamic response = sg.client.access_settings.whitelist.delete(requestBody: data); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Retrieve a specific whitelisted IP # +# GET /access_settings/whitelist/{rule_id} # + +var rule_id = "test_url_param"; +dynamic response = sg.client.access_settings.whitelist._(rule_id).get(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Remove a specific IP from the whitelist # +# DELETE /access_settings/whitelist/{rule_id} # + +var rule_id = "test_url_param"; +dynamic response = sg.client.access_settings.whitelist._(rule_id).delete(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + diff --git a/examples/apikeys/apikeys.cs b/examples/apikeys/apikeys.cs new file mode 100644 index 0000000..763dc0f --- /dev/null +++ b/examples/apikeys/apikeys.cs @@ -0,0 +1,84 @@ +using System; +using SendGrid.Helpers.Mail; +using System.Collections.Generic; +using System.Net; + +string _apiKey = Environment.GetEnvironmentVariable("SENDGRID_APIKEY", EnvironmentVariableTarget.User); +dynamic sg = new SendGrid.SendGridAPIClient(_apiKey); + +################################################## +# Create API keys # +# POST /api_keys # + +string data = @"{ + 'name': 'My API Key', + 'scopes': [ + 'mail.send', + 'alerts.create', + 'alerts.read' + ] +}"; +dynamic response = sg.client.api_keys.post(requestBody: data); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Retrieve all API Keys belonging to the authenticated user # +# GET /api_keys # + +dynamic response = sg.client.api_keys.get(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Update the name & scopes of an API Key # +# PUT /api_keys/{api_key_id} # + +string data = @"{ + 'name': 'A New Hope', + 'scopes': [ + 'user.profile.read', + 'user.profile.update' + ] +}"; +var api_key_id = "test_url_param"; +dynamic response = sg.client.api_keys._(api_key_id).put(requestBody: data); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Update API keys # +# PATCH /api_keys/{api_key_id} # + +string data = @"{ + 'name': 'A New Hope' +}"; +var api_key_id = "test_url_param"; +dynamic response = sg.client.api_keys._(api_key_id).patch(requestBody: data); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Retrieve an existing API Key # +# GET /api_keys/{api_key_id} # + +var api_key_id = "test_url_param"; +dynamic response = sg.client.api_keys._(api_key_id).get(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Delete API keys # +# DELETE /api_keys/{api_key_id} # + +var api_key_id = "test_url_param"; +dynamic response = sg.client.api_keys._(api_key_id).delete(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + diff --git a/examples/asm/asm.cs b/examples/asm/asm.cs new file mode 100644 index 0000000..b63ee7b --- /dev/null +++ b/examples/asm/asm.cs @@ -0,0 +1,138 @@ +using System; +using SendGrid.Helpers.Mail; +using System.Collections.Generic; +using System.Net; + +string _apiKey = Environment.GetEnvironmentVariable("SENDGRID_APIKEY", EnvironmentVariableTarget.User); +dynamic sg = new SendGrid.SendGridAPIClient(_apiKey); + +################################################## +# Create a Group # +# POST /asm/groups # + +string data = @"{ + 'description': 'A group description', + 'is_default': false, + 'name': 'A group name' +}"; +dynamic response = sg.client.asm.groups.post(requestBody: data); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Retrieve all suppression groups associated with the user. # +# GET /asm/groups # + +dynamic response = sg.client.asm.groups.get(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Update a suppression group. # +# PATCH /asm/groups/{group_id} # + +string data = @"{ + 'description': 'Suggestions for items our users might like.', + 'id': 103, + 'name': 'Item Suggestions' +}"; +var group_id = "test_url_param"; +dynamic response = sg.client.asm.groups._(group_id).patch(requestBody: data); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Get information on a single suppression group. # +# GET /asm/groups/{group_id} # + +var group_id = "test_url_param"; +dynamic response = sg.client.asm.groups._(group_id).get(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Delete a suppression group. # +# DELETE /asm/groups/{group_id} # + +var group_id = "test_url_param"; +dynamic response = sg.client.asm.groups._(group_id).delete(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Add suppressions to a suppression group # +# POST /asm/groups/{group_id}/suppressions # + +string data = @"{ + 'recipient_emails': [ + 'test1@example.com', + 'test2@example.com' + ] +}"; +var group_id = "test_url_param"; +dynamic response = sg.client.asm.groups._(group_id).suppressions.post(requestBody: data); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Retrieve all suppressions for a suppression group # +# GET /asm/groups/{group_id}/suppressions # + +var group_id = "test_url_param"; +dynamic response = sg.client.asm.groups._(group_id).suppressions.get(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Delete a suppression from a suppression group # +# DELETE /asm/groups/{group_id}/suppressions/{email} # + +var group_id = "test_url_param"; +var email = "test_url_param"; +dynamic response = sg.client.asm.groups._(group_id).suppressions._(email).delete(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Add recipient addresses to the global suppression group. # +# POST /asm/suppressions/global # + +string data = @"{ + 'recipient_emails': [ + 'test1@example.com', + 'test2@example.com' + ] +}"; +dynamic response = sg.client.asm.suppressions.global.post(requestBody: data); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Retrieve a Global Suppression # +# GET /asm/suppressions/global/{email} # + +var email = "test_url_param"; +dynamic response = sg.client.asm.suppressions.global._(email).get(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Delete a Global Suppression # +# DELETE /asm/suppressions/global/{email} # + +var email = "test_url_param"; +dynamic response = sg.client.asm.suppressions.global._(email).delete(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + diff --git a/examples/browsers/browsers.cs b/examples/browsers/browsers.cs new file mode 100644 index 0000000..a0cc53b --- /dev/null +++ b/examples/browsers/browsers.cs @@ -0,0 +1,25 @@ +using System; +using SendGrid.Helpers.Mail; +using System.Collections.Generic; +using System.Net; + +string _apiKey = Environment.GetEnvironmentVariable("SENDGRID_APIKEY", EnvironmentVariableTarget.User); +dynamic sg = new SendGrid.SendGridAPIClient(_apiKey); + +################################################## +# Retrieve email statistics by browser. # +# GET /browsers/stats # + +string queryParams = @"{ + 'aggregated_by': 'day', + 'browsers': 'test_string', + 'end_date': '2016-04-01', + 'limit': 'test_string', + 'offset': 'test_string', + 'start_date': '2016-01-01' +}"; +dynamic response = sg.client.browsers.stats.get(queryParams: queryParams); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + diff --git a/examples/campaigns/campaigns.cs b/examples/campaigns/campaigns.cs new file mode 100644 index 0000000..0d40cb1 --- /dev/null +++ b/examples/campaigns/campaigns.cs @@ -0,0 +1,158 @@ +using System; +using SendGrid.Helpers.Mail; +using System.Collections.Generic; +using System.Net; + +string _apiKey = Environment.GetEnvironmentVariable("SENDGRID_APIKEY", EnvironmentVariableTarget.User); +dynamic sg = new SendGrid.SendGridAPIClient(_apiKey); + +################################################## +# Create a Campaign # +# POST /campaigns # + +string data = @"{ + 'categories': [ + 'spring line' + ], + 'custom_unsubscribe_url': '', + 'html_content': '<html><head><title></title></head><body><p>Check out our spring line!</p></body></html>', + 'ip_pool': 'marketing', + 'list_ids': [ + 110, + 124 + ], + 'plain_content': 'Check out our spring line!', + 'segment_ids': [ + 110 + ], + 'sender_id': 124451, + 'subject': 'New Products for Spring!', + 'suppression_group_id': 42, + 'title': 'March Newsletter' +}"; +dynamic response = sg.client.campaigns.post(requestBody: data); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Retrieve all Campaigns # +# GET /campaigns # + +string queryParams = @"{ + 'limit': 0, + 'offset': 0 +}"; +dynamic response = sg.client.campaigns.get(queryParams: queryParams); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Update a Campaign # +# PATCH /campaigns/{campaign_id} # + +string data = @"{ + 'categories': [ + 'summer line' + ], + 'html_content': '<html><head><title></title></head><body><p>Check out our summer line!</p></body></html>', + 'plain_content': 'Check out our summer line!', + 'subject': 'New Products for Summer!', + 'title': 'May Newsletter' +}"; +var campaign_id = "test_url_param"; +dynamic response = sg.client.campaigns._(campaign_id).patch(requestBody: data); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Retrieve a single campaign # +# GET /campaigns/{campaign_id} # + +var campaign_id = "test_url_param"; +dynamic response = sg.client.campaigns._(campaign_id).get(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Delete a Campaign # +# DELETE /campaigns/{campaign_id} # + +var campaign_id = "test_url_param"; +dynamic response = sg.client.campaigns._(campaign_id).delete(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Update a Scheduled Campaign # +# PATCH /campaigns/{campaign_id}/schedules # + +string data = @"{ + 'send_at': 1489451436 +}"; +var campaign_id = "test_url_param"; +dynamic response = sg.client.campaigns._(campaign_id).schedules.patch(requestBody: data); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Schedule a Campaign # +# POST /campaigns/{campaign_id}/schedules # + +string data = @"{ + 'send_at': 1489771528 +}"; +var campaign_id = "test_url_param"; +dynamic response = sg.client.campaigns._(campaign_id).schedules.post(requestBody: data); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# View Scheduled Time of a Campaign # +# GET /campaigns/{campaign_id}/schedules # + +var campaign_id = "test_url_param"; +dynamic response = sg.client.campaigns._(campaign_id).schedules.get(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Unschedule a Scheduled Campaign # +# DELETE /campaigns/{campaign_id}/schedules # + +var campaign_id = "test_url_param"; +dynamic response = sg.client.campaigns._(campaign_id).schedules.delete(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Send a Campaign # +# POST /campaigns/{campaign_id}/schedules/now # + +var campaign_id = "test_url_param"; +dynamic response = sg.client.campaigns._(campaign_id).schedules.now.post(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Send a Test Campaign # +# POST /campaigns/{campaign_id}/schedules/test # + +string data = @"{ + 'to': 'your.email@example.com' +}"; +var campaign_id = "test_url_param"; +dynamic response = sg.client.campaigns._(campaign_id).schedules.test.post(requestBody: data); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + diff --git a/examples/categories/categories.cs b/examples/categories/categories.cs new file mode 100644 index 0000000..2cea83c --- /dev/null +++ b/examples/categories/categories.cs @@ -0,0 +1,57 @@ +using System; +using SendGrid.Helpers.Mail; +using System.Collections.Generic; +using System.Net; + +string _apiKey = Environment.GetEnvironmentVariable("SENDGRID_APIKEY", EnvironmentVariableTarget.User); +dynamic sg = new SendGrid.SendGridAPIClient(_apiKey); + +################################################## +# Retrieve all categories # +# GET /categories # + +string queryParams = @"{ + 'category': 'test_string', + 'limit': 1, + 'offset': 1 +}"; +dynamic response = sg.client.categories.get(queryParams: queryParams); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Retrieve Email Statistics for Categories # +# GET /categories/stats # + +string queryParams = @"{ + 'aggregated_by': 'day', + 'categories': 'test_string', + 'end_date': '2016-04-01', + 'limit': 1, + 'offset': 1, + 'start_date': '2016-01-01' +}"; +dynamic response = sg.client.categories.stats.get(queryParams: queryParams); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Retrieve sums of email stats for each category [Needs: Stats object defined, has category ID?] # +# GET /categories/stats/sums # + +string queryParams = @"{ + 'aggregated_by': 'day', + 'end_date': '2016-04-01', + 'limit': 1, + 'offset': 1, + 'sort_by_direction': 'asc', + 'sort_by_metric': 'test_string', + 'start_date': '2016-01-01' +}"; +dynamic response = sg.client.categories.stats.sums.get(queryParams: queryParams); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + diff --git a/examples/clients/clients.cs b/examples/clients/clients.cs new file mode 100644 index 0000000..5ff7d56 --- /dev/null +++ b/examples/clients/clients.cs @@ -0,0 +1,37 @@ +using System; +using SendGrid.Helpers.Mail; +using System.Collections.Generic; +using System.Net; + +string _apiKey = Environment.GetEnvironmentVariable("SENDGRID_APIKEY", EnvironmentVariableTarget.User); +dynamic sg = new SendGrid.SendGridAPIClient(_apiKey); + +################################################## +# Retrieve email statistics by client type. # +# GET /clients/stats # + +string queryParams = @"{ + 'aggregated_by': 'day', + 'end_date': '2016-04-01', + 'start_date': '2016-01-01' +}"; +dynamic response = sg.client.clients.stats.get(queryParams: queryParams); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Retrieve stats by a specific client type. # +# GET /clients/{client_type}/stats # + +string queryParams = @"{ + 'aggregated_by': 'day', + 'end_date': '2016-04-01', + 'start_date': '2016-01-01' +}"; +var client_type = "test_url_param"; +dynamic response = sg.client.clients._(client_type).stats.get(queryParams: queryParams); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + diff --git a/examples/contactdb/contactdb.cs b/examples/contactdb/contactdb.cs new file mode 100644 index 0000000..3bb384d --- /dev/null +++ b/examples/contactdb/contactdb.cs @@ -0,0 +1,424 @@ +using System; +using SendGrid.Helpers.Mail; +using System.Collections.Generic; +using System.Net; + +string _apiKey = Environment.GetEnvironmentVariable("SENDGRID_APIKEY", EnvironmentVariableTarget.User); +dynamic sg = new SendGrid.SendGridAPIClient(_apiKey); + +################################################## +# Create a Custom Field # +# POST /contactdb/custom_fields # + +string data = @"{ + 'name': 'pet', + 'type': 'text' +}"; +dynamic response = sg.client.contactdb.custom_fields.post(requestBody: data); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Retrieve all custom fields # +# GET /contactdb/custom_fields # + +dynamic response = sg.client.contactdb.custom_fields.get(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Retrieve a Custom Field # +# GET /contactdb/custom_fields/{custom_field_id} # + +var custom_field_id = "test_url_param"; +dynamic response = sg.client.contactdb.custom_fields._(custom_field_id).get(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Delete a Custom Field # +# DELETE /contactdb/custom_fields/{custom_field_id} # + +var custom_field_id = "test_url_param"; +dynamic response = sg.client.contactdb.custom_fields._(custom_field_id).delete(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Create a List # +# POST /contactdb/lists # + +string data = @"{ + 'name': 'your list name' +}"; +dynamic response = sg.client.contactdb.lists.post(requestBody: data); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Retrieve all lists # +# GET /contactdb/lists # + +dynamic response = sg.client.contactdb.lists.get(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Delete Multiple lists # +# DELETE /contactdb/lists # + +string data = @"[ + 1, + 2, + 3, + 4 +]"; +dynamic response = sg.client.contactdb.lists.delete(requestBody: data); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Update a List # +# PATCH /contactdb/lists/{list_id} # + +string data = @"{ + 'name': 'newlistname' +}"; +string queryParams = @"{ + 'list_id': 0 +}"; +var list_id = "test_url_param"; +dynamic response = sg.client.contactdb.lists._(list_id).patch(requestBody: data, queryParams: queryParams); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Retrieve a single list # +# GET /contactdb/lists/{list_id} # + +string queryParams = @"{ + 'list_id': 0 +}"; +var list_id = "test_url_param"; +dynamic response = sg.client.contactdb.lists._(list_id).get(queryParams: queryParams); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Delete a List # +# DELETE /contactdb/lists/{list_id} # + +string queryParams = @"{ + 'delete_contacts': 'true' +}"; +var list_id = "test_url_param"; +dynamic response = sg.client.contactdb.lists._(list_id).delete(queryParams: queryParams); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Add Multiple Recipients to a List # +# POST /contactdb/lists/{list_id}/recipients # + +string data = @"[ + 'recipient_id1', + 'recipient_id2' +]"; +var list_id = "test_url_param"; +dynamic response = sg.client.contactdb.lists._(list_id).recipients.post(requestBody: data); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Retrieve all recipients on a List # +# GET /contactdb/lists/{list_id}/recipients # + +string queryParams = @"{ + 'list_id': 0, + 'page': 1, + 'page_size': 1 +}"; +var list_id = "test_url_param"; +dynamic response = sg.client.contactdb.lists._(list_id).recipients.get(queryParams: queryParams); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Add a Single Recipient to a List # +# POST /contactdb/lists/{list_id}/recipients/{recipient_id} # + +var list_id = "test_url_param"; +var recipient_id = "test_url_param"; +dynamic response = sg.client.contactdb.lists._(list_id).recipients._(recipient_id).post(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Delete a Single Recipient from a Single List # +# DELETE /contactdb/lists/{list_id}/recipients/{recipient_id} # + +string queryParams = @"{ + 'list_id': 0, + 'recipient_id': 0 +}"; +var list_id = "test_url_param"; +var recipient_id = "test_url_param"; +dynamic response = sg.client.contactdb.lists._(list_id).recipients._(recipient_id).delete(queryParams: queryParams); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Update Recipient # +# PATCH /contactdb/recipients # + +string data = @"[ + { + 'email': 'jones@example.com', + 'first_name': 'Guy', + 'last_name': 'Jones' + } +]"; +dynamic response = sg.client.contactdb.recipients.patch(requestBody: data); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Add recipients # +# POST /contactdb/recipients # + +string data = @"[ + { + 'age': 25, + 'email': 'example@example.com', + 'first_name': '', + 'last_name': 'User' + }, + { + 'age': 25, + 'email': 'example2@example.com', + 'first_name': 'Example', + 'last_name': 'User' + } +]"; +dynamic response = sg.client.contactdb.recipients.post(requestBody: data); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Retrieve recipients # +# GET /contactdb/recipients # + +string queryParams = @"{ + 'page': 1, + 'page_size': 1 +}"; +dynamic response = sg.client.contactdb.recipients.get(queryParams: queryParams); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Delete Recipient # +# DELETE /contactdb/recipients # + +string data = @"[ + 'recipient_id1', + 'recipient_id2' +]"; +dynamic response = sg.client.contactdb.recipients.delete(requestBody: data); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Retrieve the count of billable recipients # +# GET /contactdb/recipients/billable_count # + +dynamic response = sg.client.contactdb.recipients.billable_count.get(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Retrieve a Count of Recipients # +# GET /contactdb/recipients/count # + +dynamic response = sg.client.contactdb.recipients.count.get(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Retrieve recipients matching search criteria # +# GET /contactdb/recipients/search # + +string queryParams = @"{ + '{field_name}': 'test_string' +}"; +dynamic response = sg.client.contactdb.recipients.search.get(queryParams: queryParams); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Retrieve a single recipient # +# GET /contactdb/recipients/{recipient_id} # + +var recipient_id = "test_url_param"; +dynamic response = sg.client.contactdb.recipients._(recipient_id).get(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Delete a Recipient # +# DELETE /contactdb/recipients/{recipient_id} # + +var recipient_id = "test_url_param"; +dynamic response = sg.client.contactdb.recipients._(recipient_id).delete(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Retrieve the lists that a recipient is on # +# GET /contactdb/recipients/{recipient_id}/lists # + +var recipient_id = "test_url_param"; +dynamic response = sg.client.contactdb.recipients._(recipient_id).lists.get(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Retrieve reserved fields # +# GET /contactdb/reserved_fields # + +dynamic response = sg.client.contactdb.reserved_fields.get(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Create a Segment # +# POST /contactdb/segments # + +string data = @"{ + 'conditions': [ + { + 'and_or': '', + 'field': 'last_name', + 'operator': 'eq', + 'value': 'Miller' + }, + { + 'and_or': 'and', + 'field': 'last_clicked', + 'operator': 'gt', + 'value': '01/02/2015' + }, + { + 'and_or': 'or', + 'field': 'clicks.campaign_identifier', + 'operator': 'eq', + 'value': '513' + } + ], + 'list_id': 4, + 'name': 'Last Name Miller' +}"; +dynamic response = sg.client.contactdb.segments.post(requestBody: data); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Retrieve all segments # +# GET /contactdb/segments # + +dynamic response = sg.client.contactdb.segments.get(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Update a segment # +# PATCH /contactdb/segments/{segment_id} # + +string data = @"{ + 'conditions': [ + { + 'and_or': '', + 'field': 'last_name', + 'operator': 'eq', + 'value': 'Miller' + } + ], + 'list_id': 5, + 'name': 'The Millers' +}"; +string queryParams = @"{ + 'segment_id': 'test_string' +}"; +var segment_id = "test_url_param"; +dynamic response = sg.client.contactdb.segments._(segment_id).patch(requestBody: data, queryParams: queryParams); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Retrieve a segment # +# GET /contactdb/segments/{segment_id} # + +string queryParams = @"{ + 'segment_id': 0 +}"; +var segment_id = "test_url_param"; +dynamic response = sg.client.contactdb.segments._(segment_id).get(queryParams: queryParams); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Delete a segment # +# DELETE /contactdb/segments/{segment_id} # + +string queryParams = @"{ + 'delete_contacts': 'true' +}"; +var segment_id = "test_url_param"; +dynamic response = sg.client.contactdb.segments._(segment_id).delete(queryParams: queryParams); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Retrieve recipients on a segment # +# GET /contactdb/segments/{segment_id}/recipients # + +string queryParams = @"{ + 'page': 1, + 'page_size': 1 +}"; +var segment_id = "test_url_param"; +dynamic response = sg.client.contactdb.segments._(segment_id).recipients.get(queryParams: queryParams); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + diff --git a/examples/devices/devices.cs b/examples/devices/devices.cs new file mode 100644 index 0000000..e480f3d --- /dev/null +++ b/examples/devices/devices.cs @@ -0,0 +1,24 @@ +using System; +using SendGrid.Helpers.Mail; +using System.Collections.Generic; +using System.Net; + +string _apiKey = Environment.GetEnvironmentVariable("SENDGRID_APIKEY", EnvironmentVariableTarget.User); +dynamic sg = new SendGrid.SendGridAPIClient(_apiKey); + +################################################## +# Retrieve email statistics by device type. # +# GET /devices/stats # + +string queryParams = @"{ + 'aggregated_by': 'day', + 'end_date': '2016-04-01', + 'limit': 1, + 'offset': 1, + 'start_date': '2016-01-01' +}"; +dynamic response = sg.client.devices.stats.get(queryParams: queryParams); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + diff --git a/examples/geo/geo.cs b/examples/geo/geo.cs new file mode 100644 index 0000000..7003650 --- /dev/null +++ b/examples/geo/geo.cs @@ -0,0 +1,25 @@ +using System; +using SendGrid.Helpers.Mail; +using System.Collections.Generic; +using System.Net; + +string _apiKey = Environment.GetEnvironmentVariable("SENDGRID_APIKEY", EnvironmentVariableTarget.User); +dynamic sg = new SendGrid.SendGridAPIClient(_apiKey); + +################################################## +# Retrieve email statistics by country and state/province. # +# GET /geo/stats # + +string queryParams = @"{ + 'aggregated_by': 'day', + 'country': 'US', + 'end_date': '2016-04-01', + 'limit': 1, + 'offset': 1, + 'start_date': '2016-01-01' +}"; +dynamic response = sg.client.geo.stats.get(queryParams: queryParams); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + diff --git a/examples/ips/ips.cs b/examples/ips/ips.cs new file mode 100644 index 0000000..9b9bfe0 --- /dev/null +++ b/examples/ips/ips.cs @@ -0,0 +1,162 @@ +using System; +using SendGrid.Helpers.Mail; +using System.Collections.Generic; +using System.Net; + +string _apiKey = Environment.GetEnvironmentVariable("SENDGRID_APIKEY", EnvironmentVariableTarget.User); +dynamic sg = new SendGrid.SendGridAPIClient(_apiKey); + +################################################## +# Retrieve all IP addresses # +# GET /ips # + +string queryParams = @"{ + 'exclude_whitelabels': 'true', + 'ip': 'test_string', + 'limit': 1, + 'offset': 1, + 'subuser': 'test_string' +}"; +dynamic response = sg.client.ips.get(queryParams: queryParams); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Retrieve all assigned IPs # +# GET /ips/assigned # + +dynamic response = sg.client.ips.assigned.get(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Create an IP pool. # +# POST /ips/pools # + +string data = @"{ + 'name': 'marketing' +}"; +dynamic response = sg.client.ips.pools.post(requestBody: data); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Retrieve all IP pools. # +# GET /ips/pools # + +dynamic response = sg.client.ips.pools.get(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Update an IP pools name. # +# PUT /ips/pools/{pool_name} # + +string data = @"{ + 'name': 'new_pool_name' +}"; +var pool_name = "test_url_param"; +dynamic response = sg.client.ips.pools._(pool_name).put(requestBody: data); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Retrieve all IPs in a specified pool. # +# GET /ips/pools/{pool_name} # + +var pool_name = "test_url_param"; +dynamic response = sg.client.ips.pools._(pool_name).get(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Delete an IP pool. # +# DELETE /ips/pools/{pool_name} # + +var pool_name = "test_url_param"; +dynamic response = sg.client.ips.pools._(pool_name).delete(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Add an IP address to a pool # +# POST /ips/pools/{pool_name}/ips # + +string data = @"{ + 'ip': '0.0.0.0' +}"; +var pool_name = "test_url_param"; +dynamic response = sg.client.ips.pools._(pool_name).ips.post(requestBody: data); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Remove an IP address from a pool. # +# DELETE /ips/pools/{pool_name}/ips/{ip} # + +var pool_name = "test_url_param"; +var ip = "test_url_param"; +dynamic response = sg.client.ips.pools._(pool_name).ips._(ip).delete(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Add an IP to warmup # +# POST /ips/warmup # + +string data = @"{ + 'ip': '0.0.0.0' +}"; +dynamic response = sg.client.ips.warmup.post(requestBody: data); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Retrieve all IPs currently in warmup # +# GET /ips/warmup # + +dynamic response = sg.client.ips.warmup.get(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Retrieve warmup status for a specific IP address # +# GET /ips/warmup/{ip_address} # + +var ip_address = "test_url_param"; +dynamic response = sg.client.ips.warmup._(ip_address).get(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Remove an IP from warmup # +# DELETE /ips/warmup/{ip_address} # + +var ip_address = "test_url_param"; +dynamic response = sg.client.ips.warmup._(ip_address).delete(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Retrieve all IP pools an IP address belongs to # +# GET /ips/{ip_address} # + +var ip_address = "test_url_param"; +dynamic response = sg.client.ips._(ip_address).get(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + diff --git a/examples/mail/mail.cs b/examples/mail/mail.cs new file mode 100644 index 0000000..7e329d0 --- /dev/null +++ b/examples/mail/mail.cs @@ -0,0 +1,179 @@ +using System; +using SendGrid.Helpers.Mail; +using System.Collections.Generic; +using System.Net; + +string _apiKey = Environment.GetEnvironmentVariable("SENDGRID_APIKEY", EnvironmentVariableTarget.User); +dynamic sg = new SendGrid.SendGridAPIClient(_apiKey); + +################################################## +# Create a batch ID # +# POST /mail/batch # + +dynamic response = sg.client.mail.batch.post(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Validate batch ID # +# GET /mail/batch/{batch_id} # + +var batch_id = "test_url_param"; +dynamic response = sg.client.mail.batch._(batch_id).get(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# v3 Mail Send Beta # +# POST /mail/send/beta # + +string data = @"{ + 'asm': { + 'group_id': 1, + 'groups_to_display': [ + 1, + 2, + 3 + ] + }, + 'attachments': [ + { + 'content': '[BASE64 encoded content block here]', + 'content_id': 'ii_139db99fdb5c3704', + 'disposition': 'inline', + 'filename': 'file1.jpg', + 'name': 'file1', + 'type': 'jpg' + } + ], + 'batch_id': '[YOUR BATCH ID GOES HERE]', + 'categories': [ + 'category1', + 'category2' + ], + 'content': [ + { + 'type': 'text/html', + 'value': '<html><p>Hello, world!</p><img src='cid:ii_139db99fdb5c3704'></img></html>' + } + ], + 'custom_args': { + 'New Argument 1': 'New Value 1', + 'activationAttempt': '1', + 'customerAccountNumber': '[CUSTOMER ACCOUNT NUMBER GOES HERE]' + }, + 'from': { + 'email': 'sam.smith@example.com', + 'name': 'Sam Smith' + }, + 'headers': {}, + 'ip_pool_name': '[YOUR POOL NAME GOES HERE]', + 'mail_settings': { + 'bcc': { + 'email': 'ben.doe@example.com', + 'enable': true + }, + 'bypass_list_management': { + 'enable': true + }, + 'footer': { + 'enable': true, + 'html': '<p>Thanks</br>The SendGrid Team</p>', + 'text': 'Thanks,/n The SendGrid Team' + }, + 'sandbox_mode': { + 'enable': false + }, + 'spam_check': { + 'enable': true, + 'post_to_url': 'http://example.com/compliance', + 'threshold': 3 + } + }, + 'personalizations': [ + { + 'bcc': [ + { + 'email': 'sam.doe@example.com', + 'name': 'Sam Doe' + } + ], + 'cc': [ + { + 'email': 'jane.doe@example.com', + 'name': 'Jane Doe' + } + ], + 'custom_args': { + 'New Argument 1': 'New Value 1', + 'activationAttempt': '1', + 'customerAccountNumber': '[CUSTOMER ACCOUNT NUMBER GOES HERE]' + }, + 'headers': { + 'X-Accept-Language': 'en', + 'X-Mailer': 'MyApp' + }, + 'send_at': 1409348513, + 'subject': 'Hello, World!', + 'substitutions': { + 'sub': { + '%name%': [ + 'John', + 'Jane', + 'Sam' + ] + } + }, + 'to': [ + { + 'email': 'john.doe@example.com', + 'name': 'John Doe' + } + ] + } + ], + 'reply_to': { + 'email': 'sam.smith@example.com', + 'name': 'Sam Smith' + }, + 'sections': { + 'section': { + ':sectionName1': 'section 1 text', + ':sectionName2': 'section 2 text' + } + }, + 'send_at': 1409348513, + 'subject': 'Hello, World!', + 'template_id': '[YOUR TEMPLATE ID GOES HERE]', + 'tracking_settings': { + 'click_tracking': { + 'enable': true, + 'enable_text': true + }, + 'ganalytics': { + 'enable': true, + 'utm_campaign': '[NAME OF YOUR REFERRER SOURCE]', + 'utm_content': '[USE THIS SPACE TO DIFFERENTIATE YOUR EMAIL FROM ADS]', + 'utm_medium': '[NAME OF YOUR MARKETING MEDIUM e.g. email]', + 'utm_name': '[NAME OF YOUR CAMPAIGN]', + 'utm_term': '[IDENTIFY PAID KEYWORDS HERE]' + }, + 'open_tracking': { + 'enable': true, + 'substitution_tag': '%opentrack' + }, + 'subscription_tracking': { + 'enable': true, + 'html': 'If you would like to unsubscribe and stop receiving these emails <% clickhere %>.', + 'substitution_tag': '<%click here%>', + 'text': 'If you would like to unsubscribe and stop receiveing these emails <% click here %>.' + } + } +}"; +dynamic response = sg.client.mail.send.beta.post(requestBody: data); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + diff --git a/examples/mailboxproviders/mailboxproviders.cs b/examples/mailboxproviders/mailboxproviders.cs new file mode 100644 index 0000000..c58c79a --- /dev/null +++ b/examples/mailboxproviders/mailboxproviders.cs @@ -0,0 +1,25 @@ +using System; +using SendGrid.Helpers.Mail; +using System.Collections.Generic; +using System.Net; + +string _apiKey = Environment.GetEnvironmentVariable("SENDGRID_APIKEY", EnvironmentVariableTarget.User); +dynamic sg = new SendGrid.SendGridAPIClient(_apiKey); + +################################################## +# Retrieve email statistics by mailbox provider. # +# GET /mailbox_providers/stats # + +string queryParams = @"{ + 'aggregated_by': 'day', + 'end_date': '2016-04-01', + 'limit': 1, + 'mailbox_providers': 'test_string', + 'offset': 1, + 'start_date': '2016-01-01' +}"; +dynamic response = sg.client.mailbox_providers.stats.get(queryParams: queryParams); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + diff --git a/examples/mailsettings/mailsettings.cs b/examples/mailsettings/mailsettings.cs new file mode 100644 index 0000000..5005d69 --- /dev/null +++ b/examples/mailsettings/mailsettings.cs @@ -0,0 +1,224 @@ +using System; +using SendGrid.Helpers.Mail; +using System.Collections.Generic; +using System.Net; + +string _apiKey = Environment.GetEnvironmentVariable("SENDGRID_APIKEY", EnvironmentVariableTarget.User); +dynamic sg = new SendGrid.SendGridAPIClient(_apiKey); + +################################################## +# Retrieve all mail settings # +# GET /mail_settings # + +string queryParams = @"{ + 'limit': 1, + 'offset': 1 +}"; +dynamic response = sg.client.mail_settings.get(queryParams: queryParams); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Update address whitelist mail settings # +# PATCH /mail_settings/address_whitelist # + +string data = @"{ + 'enabled': true, + 'list': [ + 'email1@example.com', + 'example.com' + ] +}"; +dynamic response = sg.client.mail_settings.address_whitelist.patch(requestBody: data); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Retrieve address whitelist mail settings # +# GET /mail_settings/address_whitelist # + +dynamic response = sg.client.mail_settings.address_whitelist.get(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Update BCC mail settings # +# PATCH /mail_settings/bcc # + +string data = @"{ + 'email': 'email@example.com', + 'enabled': false +}"; +dynamic response = sg.client.mail_settings.bcc.patch(requestBody: data); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Retrieve all BCC mail settings # +# GET /mail_settings/bcc # + +dynamic response = sg.client.mail_settings.bcc.get(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Update bounce purge mail settings # +# PATCH /mail_settings/bounce_purge # + +string data = @"{ + 'enabled': true, + 'hard_bounces': 5, + 'soft_bounces': 5 +}"; +dynamic response = sg.client.mail_settings.bounce_purge.patch(requestBody: data); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Retrieve bounce purge mail settings # +# GET /mail_settings/bounce_purge # + +dynamic response = sg.client.mail_settings.bounce_purge.get(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Update footer mail settings # +# PATCH /mail_settings/footer # + +string data = @"{ + 'enabled': true, + 'html_content': '...', + 'plain_content': '...' +}"; +dynamic response = sg.client.mail_settings.footer.patch(requestBody: data); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Retrieve footer mail settings # +# GET /mail_settings/footer # + +dynamic response = sg.client.mail_settings.footer.get(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Update forward bounce mail settings # +# PATCH /mail_settings/forward_bounce # + +string data = @"{ + 'email': 'example@example.com', + 'enabled': true +}"; +dynamic response = sg.client.mail_settings.forward_bounce.patch(requestBody: data); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Retrieve forward bounce mail settings # +# GET /mail_settings/forward_bounce # + +dynamic response = sg.client.mail_settings.forward_bounce.get(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Update forward spam mail settings # +# PATCH /mail_settings/forward_spam # + +string data = @"{ + 'email': '', + 'enabled': false +}"; +dynamic response = sg.client.mail_settings.forward_spam.patch(requestBody: data); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Retrieve forward spam mail settings # +# GET /mail_settings/forward_spam # + +dynamic response = sg.client.mail_settings.forward_spam.get(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Update plain content mail settings # +# PATCH /mail_settings/plain_content # + +string data = @"{ + 'enabled': false +}"; +dynamic response = sg.client.mail_settings.plain_content.patch(requestBody: data); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Retrieve plain content mail settings # +# GET /mail_settings/plain_content # + +dynamic response = sg.client.mail_settings.plain_content.get(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Update spam check mail settings # +# PATCH /mail_settings/spam_check # + +string data = @"{ + 'enabled': true, + 'max_score': 5, + 'url': 'url' +}"; +dynamic response = sg.client.mail_settings.spam_check.patch(requestBody: data); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Retrieve spam check mail settings # +# GET /mail_settings/spam_check # + +dynamic response = sg.client.mail_settings.spam_check.get(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Update template mail settings # +# PATCH /mail_settings/template # + +string data = @"{ + 'enabled': true, + 'html_content': '<% body %>' +}"; +dynamic response = sg.client.mail_settings.template.patch(requestBody: data); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Retrieve legacy template mail settings # +# GET /mail_settings/template # + +dynamic response = sg.client.mail_settings.template.get(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + diff --git a/examples/partnersettings/partnersettings.cs b/examples/partnersettings/partnersettings.cs new file mode 100644 index 0000000..d3ca871 --- /dev/null +++ b/examples/partnersettings/partnersettings.cs @@ -0,0 +1,44 @@ +using System; +using SendGrid.Helpers.Mail; +using System.Collections.Generic; +using System.Net; + +string _apiKey = Environment.GetEnvironmentVariable("SENDGRID_APIKEY", EnvironmentVariableTarget.User); +dynamic sg = new SendGrid.SendGridAPIClient(_apiKey); + +################################################## +# Returns a list of all partner settings. # +# GET /partner_settings # + +string queryParams = @"{ + 'limit': 1, + 'offset': 1 +}"; +dynamic response = sg.client.partner_settings.get(queryParams: queryParams); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Updates New Relic partner settings. # +# PATCH /partner_settings/new_relic # + +string data = @"{ + 'enable_subuser_statistics': true, + 'enabled': true, + 'license_key': '' +}"; +dynamic response = sg.client.partner_settings.new_relic.patch(requestBody: data); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Returns all New Relic partner settings. # +# GET /partner_settings/new_relic # + +dynamic response = sg.client.partner_settings.new_relic.get(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + diff --git a/examples/scopes/scopes.cs b/examples/scopes/scopes.cs new file mode 100644 index 0000000..5dcf278 --- /dev/null +++ b/examples/scopes/scopes.cs @@ -0,0 +1,17 @@ +using System; +using SendGrid.Helpers.Mail; +using System.Collections.Generic; +using System.Net; + +string _apiKey = Environment.GetEnvironmentVariable("SENDGRID_APIKEY", EnvironmentVariableTarget.User); +dynamic sg = new SendGrid.SendGridAPIClient(_apiKey); + +################################################## +# Retrieve a list of scopes for which this user has access. # +# GET /scopes # + +dynamic response = sg.client.scopes.get(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + diff --git a/examples/stats/stats.cs b/examples/stats/stats.cs new file mode 100644 index 0000000..7506b9b --- /dev/null +++ b/examples/stats/stats.cs @@ -0,0 +1,24 @@ +using System; +using SendGrid.Helpers.Mail; +using System.Collections.Generic; +using System.Net; + +string _apiKey = Environment.GetEnvironmentVariable("SENDGRID_APIKEY", EnvironmentVariableTarget.User); +dynamic sg = new SendGrid.SendGridAPIClient(_apiKey); + +################################################## +# Retrieve global email statistics # +# GET /stats # + +string queryParams = @"{ + 'aggregated_by': 'day', + 'end_date': '2016-04-01', + 'limit': 1, + 'offset': 1, + 'start_date': '2016-01-01' +}"; +dynamic response = sg.client.stats.get(queryParams: queryParams); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + diff --git a/examples/subusers/subusers.cs b/examples/subusers/subusers.cs new file mode 100644 index 0000000..f680426 --- /dev/null +++ b/examples/subusers/subusers.cs @@ -0,0 +1,205 @@ +using System; +using SendGrid.Helpers.Mail; +using System.Collections.Generic; +using System.Net; + +string _apiKey = Environment.GetEnvironmentVariable("SENDGRID_APIKEY", EnvironmentVariableTarget.User); +dynamic sg = new SendGrid.SendGridAPIClient(_apiKey); + +################################################## +# Create Subuser # +# POST /subusers # + +string data = @"{ + 'email': 'John@example.com', + 'ips': [ + '1.1.1.1', + '2.2.2.2' + ], + 'password': 'johns_password', + 'username': 'John@example.com' +}"; +dynamic response = sg.client.subusers.post(requestBody: data); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# List all Subusers # +# GET /subusers # + +string queryParams = @"{ + 'limit': 0, + 'offset': 0, + 'username': 'test_string' +}"; +dynamic response = sg.client.subusers.get(queryParams: queryParams); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Retrieve Subuser Reputations # +# GET /subusers/reputations # + +string queryParams = @"{ + 'usernames': 'test_string' +}"; +dynamic response = sg.client.subusers.reputations.get(queryParams: queryParams); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Retrieve email statistics for your subusers. # +# GET /subusers/stats # + +string queryParams = @"{ + 'aggregated_by': 'day', + 'end_date': '2016-04-01', + 'limit': 1, + 'offset': 1, + 'start_date': '2016-01-01', + 'subusers': 'test_string' +}"; +dynamic response = sg.client.subusers.stats.get(queryParams: queryParams); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Retrieve monthly stats for all subusers # +# GET /subusers/stats/monthly # + +string queryParams = @"{ + 'date': 'test_string', + 'limit': 1, + 'offset': 1, + 'sort_by_direction': 'asc', + 'sort_by_metric': 'test_string', + 'subuser': 'test_string' +}"; +dynamic response = sg.client.subusers.stats.monthly.get(queryParams: queryParams); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Retrieve the totals for each email statistic metric for all subusers. # +# GET /subusers/stats/sums # + +string queryParams = @"{ + 'aggregated_by': 'day', + 'end_date': '2016-04-01', + 'limit': 1, + 'offset': 1, + 'sort_by_direction': 'asc', + 'sort_by_metric': 'test_string', + 'start_date': '2016-01-01' +}"; +dynamic response = sg.client.subusers.stats.sums.get(queryParams: queryParams); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Enable/disable a subuser # +# PATCH /subusers/{subuser_name} # + +string data = @"{ + 'disabled': false +}"; +var subuser_name = "test_url_param"; +dynamic response = sg.client.subusers._(subuser_name).patch(requestBody: data); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Delete a subuser # +# DELETE /subusers/{subuser_name} # + +var subuser_name = "test_url_param"; +dynamic response = sg.client.subusers._(subuser_name).delete(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Update IPs assigned to a subuser # +# PUT /subusers/{subuser_name}/ips # + +string data = @"[ + '127.0.0.1' +]"; +var subuser_name = "test_url_param"; +dynamic response = sg.client.subusers._(subuser_name).ips.put(requestBody: data); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Update Monitor Settings for a subuser # +# PUT /subusers/{subuser_name}/monitor # + +string data = @"{ + 'email': 'example@example.com', + 'frequency': 500 +}"; +var subuser_name = "test_url_param"; +dynamic response = sg.client.subusers._(subuser_name).monitor.put(requestBody: data); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Create monitor settings # +# POST /subusers/{subuser_name}/monitor # + +string data = @"{ + 'email': 'example@example.com', + 'frequency': 50000 +}"; +var subuser_name = "test_url_param"; +dynamic response = sg.client.subusers._(subuser_name).monitor.post(requestBody: data); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Retrieve monitor settings for a subuser # +# GET /subusers/{subuser_name}/monitor # + +var subuser_name = "test_url_param"; +dynamic response = sg.client.subusers._(subuser_name).monitor.get(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Delete monitor settings # +# DELETE /subusers/{subuser_name}/monitor # + +var subuser_name = "test_url_param"; +dynamic response = sg.client.subusers._(subuser_name).monitor.delete(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Retrieve the monthly email statistics for a single subuser # +# GET /subusers/{subuser_name}/stats/monthly # + +string queryParams = @"{ + 'date': 'test_string', + 'limit': 0, + 'offset': 1, + 'sort_by_direction': 'asc', + 'sort_by_metric': 'test_string' +}"; +var subuser_name = "test_url_param"; +dynamic response = sg.client.subusers._(subuser_name).stats.monthly.get(queryParams: queryParams); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + diff --git a/examples/suppression/suppression.cs b/examples/suppression/suppression.cs new file mode 100644 index 0000000..9eb4f69 --- /dev/null +++ b/examples/suppression/suppression.cs @@ -0,0 +1,228 @@ +using System; +using SendGrid.Helpers.Mail; +using System.Collections.Generic; +using System.Net; + +string _apiKey = Environment.GetEnvironmentVariable("SENDGRID_APIKEY", EnvironmentVariableTarget.User); +dynamic sg = new SendGrid.SendGridAPIClient(_apiKey); + +################################################## +# Retrieve all blocks # +# GET /suppression/blocks # + +string queryParams = @"{ + 'end_time': 1, + 'limit': 1, + 'offset': 1, + 'start_time': 1 +}"; +dynamic response = sg.client.suppression.blocks.get(queryParams: queryParams); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Delete blocks # +# DELETE /suppression/blocks # + +string data = @"{ + 'delete_all': false, + 'emails': [ + 'example1@example.com', + 'example2@example.com' + ] +}"; +dynamic response = sg.client.suppression.blocks.delete(requestBody: data); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Retrieve a specific block # +# GET /suppression/blocks/{email} # + +var email = "test_url_param"; +dynamic response = sg.client.suppression.blocks._(email).get(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Delete a specific block # +# DELETE /suppression/blocks/{email} # + +var email = "test_url_param"; +dynamic response = sg.client.suppression.blocks._(email).delete(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Retrieve all bounces # +# GET /suppression/bounces # + +string queryParams = @"{ + 'end_time': 0, + 'start_time': 0 +}"; +dynamic response = sg.client.suppression.bounces.get(queryParams: queryParams); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Delete bounces # +# DELETE /suppression/bounces # + +string data = @"{ + 'delete_all': true, + 'emails': [ + 'example@example.com', + 'example2@example.com' + ] +}"; +dynamic response = sg.client.suppression.bounces.delete(requestBody: data); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Retrieve a Bounce # +# GET /suppression/bounces/{email} # + +var email = "test_url_param"; +dynamic response = sg.client.suppression.bounces._(email).get(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Delete a bounce # +# DELETE /suppression/bounces/{email} # + +string queryParams = @"{ + 'email_address': 'example@example.com' +}"; +var email = "test_url_param"; +dynamic response = sg.client.suppression.bounces._(email).delete(queryParams: queryParams); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Retrieve all invalid emails # +# GET /suppression/invalid_emails # + +string queryParams = @"{ + 'end_time': 1, + 'limit': 1, + 'offset': 1, + 'start_time': 1 +}"; +dynamic response = sg.client.suppression.invalid_emails.get(queryParams: queryParams); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Delete invalid emails # +# DELETE /suppression/invalid_emails # + +string data = @"{ + 'delete_all': false, + 'emails': [ + 'example1@example.com', + 'example2@example.com' + ] +}"; +dynamic response = sg.client.suppression.invalid_emails.delete(requestBody: data); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Retrieve a specific invalid email # +# GET /suppression/invalid_emails/{email} # + +var email = "test_url_param"; +dynamic response = sg.client.suppression.invalid_emails._(email).get(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Delete a specific invalid email # +# DELETE /suppression/invalid_emails/{email} # + +var email = "test_url_param"; +dynamic response = sg.client.suppression.invalid_emails._(email).delete(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Retrieve a specific spam report # +# GET /suppression/spam_report/{email} # + +var email = "test_url_param"; +dynamic response = sg.client.suppression.spam_report._(email).get(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Delete a specific spam report # +# DELETE /suppression/spam_report/{email} # + +var email = "test_url_param"; +dynamic response = sg.client.suppression.spam_report._(email).delete(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Retrieve all spam reports # +# GET /suppression/spam_reports # + +string queryParams = @"{ + 'end_time': 1, + 'limit': 1, + 'offset': 1, + 'start_time': 1 +}"; +dynamic response = sg.client.suppression.spam_reports.get(queryParams: queryParams); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Delete spam reports # +# DELETE /suppression/spam_reports # + +string data = @"{ + 'delete_all': false, + 'emails': [ + 'example1@example.com', + 'example2@example.com' + ] +}"; +dynamic response = sg.client.suppression.spam_reports.delete(requestBody: data); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Retrieve all global suppressions # +# GET /suppression/unsubscribes # + +string queryParams = @"{ + 'end_time': 1, + 'limit': 1, + 'offset': 1, + 'start_time': 1 +}"; +dynamic response = sg.client.suppression.unsubscribes.get(queryParams: queryParams); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + diff --git a/examples/templates/templates.cs b/examples/templates/templates.cs new file mode 100644 index 0000000..a897f8d --- /dev/null +++ b/examples/templates/templates.cs @@ -0,0 +1,131 @@ +using System; +using SendGrid.Helpers.Mail; +using System.Collections.Generic; +using System.Net; + +string _apiKey = Environment.GetEnvironmentVariable("SENDGRID_APIKEY", EnvironmentVariableTarget.User); +dynamic sg = new SendGrid.SendGridAPIClient(_apiKey); + +################################################## +# Create a transactional template. # +# POST /templates # + +string data = @"{ + 'name': 'example_name' +}"; +dynamic response = sg.client.templates.post(requestBody: data); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Retrieve all transactional templates. # +# GET /templates # + +dynamic response = sg.client.templates.get(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Edit a transactional template. # +# PATCH /templates/{template_id} # + +string data = @"{ + 'name': 'new_example_name' +}"; +var template_id = "test_url_param"; +dynamic response = sg.client.templates._(template_id).patch(requestBody: data); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Retrieve a single transactional template. # +# GET /templates/{template_id} # + +var template_id = "test_url_param"; +dynamic response = sg.client.templates._(template_id).get(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Delete a template. # +# DELETE /templates/{template_id} # + +var template_id = "test_url_param"; +dynamic response = sg.client.templates._(template_id).delete(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Create a new transactional template version. # +# POST /templates/{template_id}/versions # + +string data = @"{ + 'active': 1, + 'html_content': '<%body%>', + 'name': 'example_version_name', + 'plain_content': '<%body%>', + 'subject': '<%subject%>', + 'template_id': 'ddb96bbc-9b92-425e-8979-99464621b543' +}"; +var template_id = "test_url_param"; +dynamic response = sg.client.templates._(template_id).versions.post(requestBody: data); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Edit a transactional template version. # +# PATCH /templates/{template_id}/versions/{version_id} # + +string data = @"{ + 'active': 1, + 'html_content': '<%body%>', + 'name': 'updated_example_name', + 'plain_content': '<%body%>', + 'subject': '<%subject%>' +}"; +var template_id = "test_url_param"; +var version_id = "test_url_param"; +dynamic response = sg.client.templates._(template_id).versions._(version_id).patch(requestBody: data); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Retrieve a specific transactional template version. # +# GET /templates/{template_id}/versions/{version_id} # + +var template_id = "test_url_param"; +var version_id = "test_url_param"; +dynamic response = sg.client.templates._(template_id).versions._(version_id).get(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Delete a transactional template version. # +# DELETE /templates/{template_id}/versions/{version_id} # + +var template_id = "test_url_param"; +var version_id = "test_url_param"; +dynamic response = sg.client.templates._(template_id).versions._(version_id).delete(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Activate a transactional template version. # +# POST /templates/{template_id}/versions/{version_id}/activate # + +var template_id = "test_url_param"; +var version_id = "test_url_param"; +dynamic response = sg.client.templates._(template_id).versions._(version_id).activate.post(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + diff --git a/examples/trackingsettings/trackingsettings.cs b/examples/trackingsettings/trackingsettings.cs new file mode 100644 index 0000000..1c8da6c --- /dev/null +++ b/examples/trackingsettings/trackingsettings.cs @@ -0,0 +1,115 @@ +using System; +using SendGrid.Helpers.Mail; +using System.Collections.Generic; +using System.Net; + +string _apiKey = Environment.GetEnvironmentVariable("SENDGRID_APIKEY", EnvironmentVariableTarget.User); +dynamic sg = new SendGrid.SendGridAPIClient(_apiKey); + +################################################## +# Retrieve Tracking Settings # +# GET /tracking_settings # + +string queryParams = @"{ + 'limit': 1, + 'offset': 1 +}"; +dynamic response = sg.client.tracking_settings.get(queryParams: queryParams); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Update Click Tracking Settings # +# PATCH /tracking_settings/click # + +string data = @"{ + 'enabled': true +}"; +dynamic response = sg.client.tracking_settings.click.patch(requestBody: data); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Retrieve Click Track Settings # +# GET /tracking_settings/click # + +dynamic response = sg.client.tracking_settings.click.get(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Update Google Analytics Settings # +# PATCH /tracking_settings/google_analytics # + +string data = @"{ + 'enabled': true, + 'utm_campaign': 'website', + 'utm_content': '', + 'utm_medium': 'email', + 'utm_source': 'sendgrid.com', + 'utm_term': '' +}"; +dynamic response = sg.client.tracking_settings.google_analytics.patch(requestBody: data); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Retrieve Google Analytics Settings # +# GET /tracking_settings/google_analytics # + +dynamic response = sg.client.tracking_settings.google_analytics.get(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Update Open Tracking Settings # +# PATCH /tracking_settings/open # + +string data = @"{ + 'enabled': true +}"; +dynamic response = sg.client.tracking_settings.open.patch(requestBody: data); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Get Open Tracking Settings # +# GET /tracking_settings/open # + +dynamic response = sg.client.tracking_settings.open.get(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Update Subscription Tracking Settings # +# PATCH /tracking_settings/subscription # + +string data = @"{ + 'enabled': true, + 'html_content': 'html content', + 'landing': 'landing page html', + 'plain_content': 'text content', + 'replace': 'replacement tag', + 'url': 'url' +}"; +dynamic response = sg.client.tracking_settings.subscription.patch(requestBody: data); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Retrieve Subscription Tracking Settings # +# GET /tracking_settings/subscription # + +dynamic response = sg.client.tracking_settings.subscription.get(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + diff --git a/examples/user/user.cs b/examples/user/user.cs new file mode 100644 index 0000000..d54706f --- /dev/null +++ b/examples/user/user.cs @@ -0,0 +1,251 @@ +using System; +using SendGrid.Helpers.Mail; +using System.Collections.Generic; +using System.Net; + +string _apiKey = Environment.GetEnvironmentVariable("SENDGRID_APIKEY", EnvironmentVariableTarget.User); +dynamic sg = new SendGrid.SendGridAPIClient(_apiKey); + +################################################## +# Get a user's account information. # +# GET /user/account # + +dynamic response = sg.client.user.account.get(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Retrieve your credit balance # +# GET /user/credits # + +dynamic response = sg.client.user.credits.get(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Update your account email address # +# PUT /user/email # + +string data = @"{ + 'email': 'example@example.com' +}"; +dynamic response = sg.client.user.email.put(requestBody: data); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Retrieve your account email address # +# GET /user/email # + +dynamic response = sg.client.user.email.get(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Update your password # +# PUT /user/password # + +string data = @"{ + 'new_password': 'new_password', + 'old_password': 'old_password' +}"; +dynamic response = sg.client.user.password.put(requestBody: data); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Update a user's profile # +# PATCH /user/profile # + +string data = @"{ + 'city': 'Orange', + 'first_name': 'Example', + 'last_name': 'User' +}"; +dynamic response = sg.client.user.profile.patch(requestBody: data); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Get a user's profile # +# GET /user/profile # + +dynamic response = sg.client.user.profile.get(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Cancel or pause a scheduled send # +# POST /user/scheduled_sends # + +string data = @"{ + 'batch_id': 'YOUR_BATCH_ID', + 'status': 'pause' +}"; +dynamic response = sg.client.user.scheduled_sends.post(requestBody: data); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Retrieve all scheduled sends # +# GET /user/scheduled_sends # + +dynamic response = sg.client.user.scheduled_sends.get(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Update user scheduled send information # +# PATCH /user/scheduled_sends/{batch_id} # + +string data = @"{ + 'status': 'pause' +}"; +var batch_id = "test_url_param"; +dynamic response = sg.client.user.scheduled_sends._(batch_id).patch(requestBody: data); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Retrieve scheduled send # +# GET /user/scheduled_sends/{batch_id} # + +var batch_id = "test_url_param"; +dynamic response = sg.client.user.scheduled_sends._(batch_id).get(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Delete a cancellation or pause of a scheduled send # +# DELETE /user/scheduled_sends/{batch_id} # + +var batch_id = "test_url_param"; +dynamic response = sg.client.user.scheduled_sends._(batch_id).delete(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Update Enforced TLS settings # +# PATCH /user/settings/enforced_tls # + +string data = @"{ + 'require_tls': true, + 'require_valid_cert': false +}"; +dynamic response = sg.client.user.settings.enforced_tls.patch(requestBody: data); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Retrieve current Enforced TLS settings. # +# GET /user/settings/enforced_tls # + +dynamic response = sg.client.user.settings.enforced_tls.get(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Update your username # +# PUT /user/username # + +string data = @"{ + 'username': 'test_username' +}"; +dynamic response = sg.client.user.username.put(requestBody: data); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Retrieve your username # +# GET /user/username # + +dynamic response = sg.client.user.username.get(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Update Event Notification Settings # +# PATCH /user/webhooks/event/settings # + +string data = @"{ + 'bounce': true, + 'click': true, + 'deferred': true, + 'delivered': true, + 'dropped': true, + 'enabled': true, + 'group_resubscribe': true, + 'group_unsubscribe': true, + 'open': true, + 'processed': true, + 'spam_report': true, + 'unsubscribe': true, + 'url': 'url' +}"; +dynamic response = sg.client.user.webhooks._("event").settings.patch(requestBody: data); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Retrieve Event Webhook settings # +# GET /user/webhooks/event/settings # + +dynamic response = sg.client.user.webhooks._("event").settings.get(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Test Event Notification Settings # +# POST /user/webhooks/event/test # + +string data = @"{ + 'url': 'url' +}"; +dynamic response = sg.client.user.webhooks._("event").test.post(requestBody: data); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Retrieve Parse Webhook settings # +# GET /user/webhooks/parse/settings # + +dynamic response = sg.client.user.webhooks.parse.settings.get(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Retrieves Inbound Parse Webhook statistics. # +# GET /user/webhooks/parse/stats # + +string queryParams = @"{ + 'aggregated_by': 'day', + 'end_date': '2016-04-01', + 'limit': 'test_string', + 'offset': 'test_string', + 'start_date': '2016-01-01' +}"; +dynamic response = sg.client.user.webhooks.parse.stats.get(queryParams: queryParams); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + diff --git a/examples/whitelabel/whitelabel.cs b/examples/whitelabel/whitelabel.cs new file mode 100644 index 0000000..409204e --- /dev/null +++ b/examples/whitelabel/whitelabel.cs @@ -0,0 +1,333 @@ +using System; +using SendGrid.Helpers.Mail; +using System.Collections.Generic; +using System.Net; + +string _apiKey = Environment.GetEnvironmentVariable("SENDGRID_APIKEY", EnvironmentVariableTarget.User); +dynamic sg = new SendGrid.SendGridAPIClient(_apiKey); + +################################################## +# Create a domain whitelabel. # +# POST /whitelabel/domains # + +string data = @"{ + 'automatic_security': false, + 'custom_spf': true, + 'default': true, + 'domain': 'example.com', + 'ips': [ + '192.168.1.1', + '192.168.1.2' + ], + 'subdomain': 'news', + 'username': 'john@example.com' +}"; +dynamic response = sg.client.whitelabel.domains.post(requestBody: data); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# List all domain whitelabels. # +# GET /whitelabel/domains # + +string queryParams = @"{ + 'domain': 'test_string', + 'exclude_subusers': 'true', + 'limit': 1, + 'offset': 1, + 'username': 'test_string' +}"; +dynamic response = sg.client.whitelabel.domains.get(queryParams: queryParams); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Get the default domain whitelabel. # +# GET /whitelabel/domains/default # + +dynamic response = sg.client.whitelabel.domains._("default").get(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# List the domain whitelabel associated with the given user. # +# GET /whitelabel/domains/subuser # + +dynamic response = sg.client.whitelabel.domains.subuser.get(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Disassociate a domain whitelabel from a given user. # +# DELETE /whitelabel/domains/subuser # + +dynamic response = sg.client.whitelabel.domains.subuser.delete(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Update a domain whitelabel. # +# PATCH /whitelabel/domains/{domain_id} # + +string data = @"{ + 'custom_spf': true, + 'default': false +}"; +var domain_id = "test_url_param"; +dynamic response = sg.client.whitelabel.domains._(domain_id).patch(requestBody: data); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Retrieve a domain whitelabel. # +# GET /whitelabel/domains/{domain_id} # + +var domain_id = "test_url_param"; +dynamic response = sg.client.whitelabel.domains._(domain_id).get(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Delete a domain whitelabel. # +# DELETE /whitelabel/domains/{domain_id} # + +var domain_id = "test_url_param"; +dynamic response = sg.client.whitelabel.domains._(domain_id).delete(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Associate a domain whitelabel with a given user. # +# POST /whitelabel/domains/{domain_id}/subuser # + +string data = @"{ + 'username': 'jane@example.com' +}"; +var domain_id = "test_url_param"; +dynamic response = sg.client.whitelabel.domains._(domain_id).subuser.post(requestBody: data); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Add an IP to a domain whitelabel. # +# POST /whitelabel/domains/{id}/ips # + +string data = @"{ + 'ip': '192.168.0.1' +}"; +var id = "test_url_param"; +dynamic response = sg.client.whitelabel.domains._(id).ips.post(requestBody: data); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Remove an IP from a domain whitelabel. # +# DELETE /whitelabel/domains/{id}/ips/{ip} # + +var id = "test_url_param"; +var ip = "test_url_param"; +dynamic response = sg.client.whitelabel.domains._(id).ips._(ip).delete(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Validate a domain whitelabel. # +# POST /whitelabel/domains/{id}/validate # + +var id = "test_url_param"; +dynamic response = sg.client.whitelabel.domains._(id).validate.post(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Create an IP whitelabel # +# POST /whitelabel/ips # + +string data = @"{ + 'domain': 'example.com', + 'ip': '192.168.1.1', + 'subdomain': 'email' +}"; +dynamic response = sg.client.whitelabel.ips.post(requestBody: data); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Retrieve all IP whitelabels # +# GET /whitelabel/ips # + +string queryParams = @"{ + 'ip': 'test_string', + 'limit': 1, + 'offset': 1 +}"; +dynamic response = sg.client.whitelabel.ips.get(queryParams: queryParams); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Retrieve an IP whitelabel # +# GET /whitelabel/ips/{id} # + +var id = "test_url_param"; +dynamic response = sg.client.whitelabel.ips._(id).get(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Delete an IP whitelabel # +# DELETE /whitelabel/ips/{id} # + +var id = "test_url_param"; +dynamic response = sg.client.whitelabel.ips._(id).delete(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Validate an IP whitelabel # +# POST /whitelabel/ips/{id}/validate # + +var id = "test_url_param"; +dynamic response = sg.client.whitelabel.ips._(id).validate.post(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Create a Link Whitelabel # +# POST /whitelabel/links # + +string data = @"{ + 'default': true, + 'domain': 'example.com', + 'subdomain': 'mail' +}"; +string queryParams = @"{ + 'limit': 1, + 'offset': 1 +}"; +dynamic response = sg.client.whitelabel.links.post(requestBody: data, queryParams: queryParams); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Retrieve all link whitelabels # +# GET /whitelabel/links # + +string queryParams = @"{ + 'limit': 1 +}"; +dynamic response = sg.client.whitelabel.links.get(queryParams: queryParams); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Retrieve a Default Link Whitelabel # +# GET /whitelabel/links/default # + +string queryParams = @"{ + 'domain': 'test_string' +}"; +dynamic response = sg.client.whitelabel.links._("default").get(queryParams: queryParams); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Retrieve Associated Link Whitelabel # +# GET /whitelabel/links/subuser # + +string queryParams = @"{ + 'username': 'test_string' +}"; +dynamic response = sg.client.whitelabel.links.subuser.get(queryParams: queryParams); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Disassociate a Link Whitelabel # +# DELETE /whitelabel/links/subuser # + +string queryParams = @"{ + 'username': 'test_string' +}"; +dynamic response = sg.client.whitelabel.links.subuser.delete(queryParams: queryParams); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Update a Link Whitelabel # +# PATCH /whitelabel/links/{id} # + +string data = @"{ + 'default': true +}"; +var id = "test_url_param"; +dynamic response = sg.client.whitelabel.links._(id).patch(requestBody: data); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Retrieve a Link Whitelabel # +# GET /whitelabel/links/{id} # + +var id = "test_url_param"; +dynamic response = sg.client.whitelabel.links._(id).get(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Delete a Link Whitelabel # +# DELETE /whitelabel/links/{id} # + +var id = "test_url_param"; +dynamic response = sg.client.whitelabel.links._(id).delete(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Validate a Link Whitelabel # +# POST /whitelabel/links/{id}/validate # + +var id = "test_url_param"; +dynamic response = sg.client.whitelabel.links._(id).validate.post(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + +################################################## +# Associate a Link Whitelabel # +# POST /whitelabel/links/{link_id}/subuser # + +string data = @"{ + 'username': 'jane@example.com' +}"; +var link_id = "test_url_param"; +dynamic response = sg.client.whitelabel.links._(link_id).subuser.post(requestBody: data); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.ResponseBody.ReadAsStringAsync().Result); +Console.WriteLine(response.ResponseHeaders.ToString()); + |