diff options
Diffstat (limited to 'examples')
23 files changed, 3212 insertions, 0 deletions
diff --git a/examples/accesssettings/accesssettings.cs b/examples/accesssettings/accesssettings.cs new file mode 100644 index 0000000..15fe8b0 --- /dev/null +++ b/examples/accesssettings/accesssettings.cs @@ -0,0 +1,92 @@ +using System; +using SendGrid.Helpers.Mail; +using System.Collections.Generic; + +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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + diff --git a/examples/apikeys/apikeys.cs b/examples/apikeys/apikeys.cs new file mode 100644 index 0000000..eff23ec --- /dev/null +++ b/examples/apikeys/apikeys.cs @@ -0,0 +1,89 @@ +using System; +using SendGrid.Helpers.Mail; +using System.Collections.Generic; + +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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + diff --git a/examples/asm/asm.cs b/examples/asm/asm.cs new file mode 100644 index 0000000..4f5bde7 --- /dev/null +++ b/examples/asm/asm.cs @@ -0,0 +1,172 @@ +using System; +using SendGrid.Helpers.Mail; +using System.Collections.Generic; + +string _apiKey = Environment.GetEnvironmentVariable("SENDGRID_APIKEY", EnvironmentVariableTarget.User); +dynamic sg = new SendGrid.SendGridAPIClient(_apiKey); + +//////////////////////////////////////////////////////// +// Create a new suppression group +// POST /asm/groups + +string data = @"{ + 'description': 'Suggestions for products our users might like.', + 'is_default': true, + 'name': 'Product Suggestions' +}"; +dynamic response = sg.client.asm.groups.post(requestBody: data); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// Retrieve information about multiple suppression groups +// GET /asm/groups + +string queryParams = @"{ + 'id': 1 +}"; +dynamic response = sg.client.asm.groups.get(queryParams: queryParams); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// Retrieve all suppressions +// GET /asm/suppressions + +dynamic response = sg.client.asm.suppressions.get(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// Retrieve all suppression groups for an email address +// GET /asm/suppressions/{email} + +var email = "test_url_param"; +dynamic response = sg.client.asm.suppressions._(email).get(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + diff --git a/examples/browsers/browsers.cs b/examples/browsers/browsers.cs new file mode 100644 index 0000000..43d52e5 --- /dev/null +++ b/examples/browsers/browsers.cs @@ -0,0 +1,25 @@ +using System; +using SendGrid.Helpers.Mail; +using System.Collections.Generic; + +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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + diff --git a/examples/campaigns/campaigns.cs b/examples/campaigns/campaigns.cs new file mode 100644 index 0000000..03bbadc --- /dev/null +++ b/examples/campaigns/campaigns.cs @@ -0,0 +1,168 @@ +using System; +using SendGrid.Helpers.Mail; +using System.Collections.Generic; + +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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + diff --git a/examples/categories/categories.cs b/examples/categories/categories.cs new file mode 100644 index 0000000..82899ea --- /dev/null +++ b/examples/categories/categories.cs @@ -0,0 +1,59 @@ +using System; +using SendGrid.Helpers.Mail; +using System.Collections.Generic; + +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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + diff --git a/examples/clients/clients.cs b/examples/clients/clients.cs new file mode 100644 index 0000000..ecefdcd --- /dev/null +++ b/examples/clients/clients.cs @@ -0,0 +1,38 @@ +using System; +using SendGrid.Helpers.Mail; +using System.Collections.Generic; + +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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + diff --git a/examples/contactdb/contactdb.cs b/examples/contactdb/contactdb.cs new file mode 100644 index 0000000..ea388d2 --- /dev/null +++ b/examples/contactdb/contactdb.cs @@ -0,0 +1,454 @@ +using System; +using SendGrid.Helpers.Mail; +using System.Collections.Generic; + +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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// Retrieve all custom fields +// GET /contactdb/custom_fields + +dynamic response = sg.client.contactdb.custom_fields.get(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// Retrieve all lists +// GET /contactdb/lists + +dynamic response = sg.client.contactdb.lists.get(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// Retrieve a Count of Recipients +// GET /contactdb/recipients/count + +dynamic response = sg.client.contactdb.recipients.count.get(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// Retrieve reserved fields +// GET /contactdb/reserved_fields + +dynamic response = sg.client.contactdb.reserved_fields.get(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// Retrieve all segments +// GET /contactdb/segments + +dynamic response = sg.client.contactdb.segments.get(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + diff --git a/examples/devices/devices.cs b/examples/devices/devices.cs new file mode 100644 index 0000000..e813871 --- /dev/null +++ b/examples/devices/devices.cs @@ -0,0 +1,24 @@ +using System; +using SendGrid.Helpers.Mail; +using System.Collections.Generic; + +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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + diff --git a/examples/geo/geo.cs b/examples/geo/geo.cs new file mode 100644 index 0000000..25faa04 --- /dev/null +++ b/examples/geo/geo.cs @@ -0,0 +1,25 @@ +using System; +using SendGrid.Helpers.Mail; +using System.Collections.Generic; + +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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + diff --git a/examples/ips/ips.cs b/examples/ips/ips.cs new file mode 100644 index 0000000..640da91 --- /dev/null +++ b/examples/ips/ips.cs @@ -0,0 +1,175 @@ +using System; +using SendGrid.Helpers.Mail; +using System.Collections.Generic; + +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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// Retrieve all assigned IPs +// GET /ips/assigned + +dynamic response = sg.client.ips.assigned.get(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// Retrieve all IP pools. +// GET /ips/pools + +dynamic response = sg.client.ips.pools.get(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// Retrieve all IPs currently in warmup +// GET /ips/warmup + +dynamic response = sg.client.ips.warmup.get(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + diff --git a/examples/mail/mail.cs b/examples/mail/mail.cs new file mode 100644 index 0000000..7cad2be --- /dev/null +++ b/examples/mail/mail.cs @@ -0,0 +1,182 @@ +using System; +using SendGrid.Helpers.Mail; +using System.Collections.Generic; + +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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// v3 Mail Send +// POST /mail/send +# This endpoint has a helper, check it out [here](https://github.com/sendgrid/sendgrid-csharp/blob/master/SendGrid/SendGrid/Helpers/Mail/README.md). + +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 GOES HERE]></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.post(requestBody: data); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + diff --git a/examples/mailboxproviders/mailboxproviders.cs b/examples/mailboxproviders/mailboxproviders.cs new file mode 100644 index 0000000..b307fc4 --- /dev/null +++ b/examples/mailboxproviders/mailboxproviders.cs @@ -0,0 +1,25 @@ +using System; +using SendGrid.Helpers.Mail; +using System.Collections.Generic; + +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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + diff --git a/examples/mailsettings/mailsettings.cs b/examples/mailsettings/mailsettings.cs new file mode 100644 index 0000000..8f0c519 --- /dev/null +++ b/examples/mailsettings/mailsettings.cs @@ -0,0 +1,242 @@ +using System; +using SendGrid.Helpers.Mail; +using System.Collections.Generic; + +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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// Retrieve all BCC mail settings +// GET /mail_settings/bcc + +dynamic response = sg.client.mail_settings.bcc.get(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// Retrieve footer mail settings +// GET /mail_settings/footer + +dynamic response = sg.client.mail_settings.footer.get(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// Retrieve legacy template mail settings +// GET /mail_settings/template + +dynamic response = sg.client.mail_settings.template.get(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + diff --git a/examples/partnersettings/partnersettings.cs b/examples/partnersettings/partnersettings.cs new file mode 100644 index 0000000..5f253b3 --- /dev/null +++ b/examples/partnersettings/partnersettings.cs @@ -0,0 +1,46 @@ +using System; +using SendGrid.Helpers.Mail; +using System.Collections.Generic; + +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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + diff --git a/examples/scopes/scopes.cs b/examples/scopes/scopes.cs new file mode 100644 index 0000000..c5a5c68 --- /dev/null +++ b/examples/scopes/scopes.cs @@ -0,0 +1,17 @@ +using System; +using SendGrid.Helpers.Mail; +using System.Collections.Generic; + +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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + diff --git a/examples/stats/stats.cs b/examples/stats/stats.cs new file mode 100644 index 0000000..a363952 --- /dev/null +++ b/examples/stats/stats.cs @@ -0,0 +1,24 @@ +using System; +using SendGrid.Helpers.Mail; +using System.Collections.Generic; + +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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + diff --git a/examples/subusers/subusers.cs b/examples/subusers/subusers.cs new file mode 100644 index 0000000..208e13c --- /dev/null +++ b/examples/subusers/subusers.cs @@ -0,0 +1,218 @@ +using System; +using SendGrid.Helpers.Mail; +using System.Collections.Generic; + +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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + diff --git a/examples/suppression/suppression.cs b/examples/suppression/suppression.cs new file mode 100644 index 0000000..6cd819a --- /dev/null +++ b/examples/suppression/suppression.cs @@ -0,0 +1,244 @@ +using System; +using SendGrid.Helpers.Mail; +using System.Collections.Generic; + +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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + diff --git a/examples/templates/templates.cs b/examples/templates/templates.cs new file mode 100644 index 0000000..beea4d0 --- /dev/null +++ b/examples/templates/templates.cs @@ -0,0 +1,140 @@ +using System; +using SendGrid.Helpers.Mail; +using System.Collections.Generic; + +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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// Retrieve all transactional templates. +// GET /templates + +dynamic response = sg.client.templates.get(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + diff --git a/examples/trackingsettings/trackingsettings.cs b/examples/trackingsettings/trackingsettings.cs new file mode 100644 index 0000000..cba044d --- /dev/null +++ b/examples/trackingsettings/trackingsettings.cs @@ -0,0 +1,123 @@ +using System; +using SendGrid.Helpers.Mail; +using System.Collections.Generic; + +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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// Retrieve Click Track Settings +// GET /tracking_settings/click + +dynamic response = sg.client.tracking_settings.click.get(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// Get Open Tracking Settings +// GET /tracking_settings/open + +dynamic response = sg.client.tracking_settings.open.get(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// Retrieve Subscription Tracking Settings +// GET /tracking_settings/subscription + +dynamic response = sg.client.tracking_settings.subscription.get(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + diff --git a/examples/user/user.cs b/examples/user/user.cs new file mode 100644 index 0000000..c81acc6 --- /dev/null +++ b/examples/user/user.cs @@ -0,0 +1,271 @@ +using System; +using SendGrid.Helpers.Mail; +using System.Collections.Generic; + +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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// Retrieve your credit balance +// GET /user/credits + +dynamic response = sg.client.user.credits.get(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// Retrieve your account email address +// GET /user/email + +dynamic response = sg.client.user.email.get(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// Get a user's profile +// GET /user/profile + +dynamic response = sg.client.user.profile.get(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// Retrieve all scheduled sends +// GET /user/scheduled_sends + +dynamic response = sg.client.user.scheduled_sends.get(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// Retrieve your username +// GET /user/username + +dynamic response = sg.client.user.username.get(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + diff --git a/examples/whitelabel/whitelabel.cs b/examples/whitelabel/whitelabel.cs new file mode 100644 index 0000000..80be1c1 --- /dev/null +++ b/examples/whitelabel/whitelabel.cs @@ -0,0 +1,359 @@ +using System; +using SendGrid.Helpers.Mail; +using System.Collections.Generic; + +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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// Get the default domain whitelabel. +// GET /whitelabel/domains/default + +dynamic response = sg.client.whitelabel.domains._("default").get(); +Console.WriteLine(response.StatusCode); +Console.WriteLine(response.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + +//////////////////////////////////////////////////////// +// 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.Body.ReadAsStringAsync().Result); +Console.WriteLine(response.Headers.ToString()); +Console.ReadLine(); + |