{"id":20364341,"url":"https://github.com/bandwidth/csharp-bandwidth-iris","last_synced_at":"2026-02-10T22:10:49.170Z","repository":{"id":23183896,"uuid":"26540115","full_name":"Bandwidth/csharp-bandwidth-iris","owner":"Bandwidth","description":"Dot Net SDK for Bandwidth's Phone Number Dashboard (AKA Dashboard, Iris)","archived":false,"fork":false,"pushed_at":"2026-02-05T16:08:15.000Z","size":2496,"stargazers_count":3,"open_issues_count":1,"forks_count":6,"subscribers_count":9,"default_branch":"master","last_synced_at":"2026-02-06T02:31:39.923Z","etag":null,"topics":["sdk"],"latest_commit_sha":null,"homepage":"https://bandwidth.com","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"LuckSiege/PictureSelector","license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Bandwidth.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2014-11-12T14:38:31.000Z","updated_at":"2025-11-21T18:33:07.000Z","dependencies_parsed_at":"2024-01-04T01:10:18.979Z","dependency_job_id":"33b7c878-5b9c-4f23-b2d3-275107e228cb","html_url":"https://github.com/Bandwidth/csharp-bandwidth-iris","commit_stats":null,"previous_names":[],"tags_count":30,"template":false,"template_full_name":null,"purl":"pkg:github/Bandwidth/csharp-bandwidth-iris","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Bandwidth%2Fcsharp-bandwidth-iris","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Bandwidth%2Fcsharp-bandwidth-iris/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Bandwidth%2Fcsharp-bandwidth-iris/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Bandwidth%2Fcsharp-bandwidth-iris/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Bandwidth","download_url":"https://codeload.github.com/Bandwidth/csharp-bandwidth-iris/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Bandwidth%2Fcsharp-bandwidth-iris/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29319507,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-10T20:44:44.282Z","status":"ssl_error","status_checked_at":"2026-02-10T20:44:43.393Z","response_time":65,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["sdk"],"created_at":"2024-11-15T00:11:22.232Z","updated_at":"2026-02-10T22:10:49.155Z","avatar_url":"https://github.com/Bandwidth.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Bandwidth C# IRIS Client\n\n## Installing\nBandwidth C# SDK uses Nuget for Package Management\n\nRun\n```\nnuget install Bandwidth.Iris\n```\nOr install Bandwidth.Iris via UI in Visual Studio\n\n## Getting Started\n* Install Bandwidth.Iris\n* Get an account ID, user name and password from Bandwidth for your account\n* Configure the Client\n\n```csharp\n// Auth using Bearer token\nvar client = Client.GetInstanceWithAccessToken(\"accountId\", \"accessToken\");\n\n// Auth using client credentials\nvar client = Client.GetInstanceWithClientCredentials(\"accountId\", \"clientId\", \"clientSecret\");\n\n// Auth using basic auth\nvar client = Client.GetInstance(\"accountId\", \"username\", \"password\", \"apiEndpoint\")\n//Or\n//Uses the System Environment Variables as detailed below\nvar client = Client.GetInstance()\n```\n\n| Environment Variable | Definition |\n|----------------------|------------|\n|BANDWIDTH_API_ACCOUNT_ID| Your Bandwidth Account Id |\n|BANDWIDTH_API_USERNAME| Your Bandwidth username |\n|BANDWIDTH_API_PASSWORD| Your Bandwidth password|\n|BANDWIDTH_API_ENDPOINT| https://dashboard.bandwidth.com/api |\n|BANDWIDTH_API_VERSION| v1.0 |\n\n\n\n## Usage\nAll static functions support 2 ways to be called: With a client instance as the first arg or without the client instance (default client instance will then be used)\n\n```csharp\nvar site = await Site.get(client, \"siteId\");\n//Or\nvar site = await Site.get(\"siteId\"); //This will use the default client where supported\n```\n\n## API Objects\n\n### General Principles\nWhen using the objects, there are generally static methods for Create, Get and List of each entity.  Once you have an instance of any entity, you can call the instance methods of that entity to perform additional operations.\n\n```csharp\nvar sites = await Site.List(client);\nvar site = await Site.Get(client, \"siteId\");\nvar newSite = await Site.Create(client, new Site(){\n  Name = \"MyTest Site\"\n\n});\nvar sipPeers = await site.GetSipPeers();\nsite.Delete();\n```\n\n### Error Handling Tips\n\nWhen making making API calls the client can throw an `AggregateException` this will normally contain a `BandwidthIrisException`.  A suggested way to handle the API calls is to catch the `AggregateException` that API calls can create and `#Handle` the `BandwidthIrisException`. Example:\n\n```csharp\n try\n{\n    var site = await Site.Get(client, \"siteId\");\n} catch (AggregateException e)\n{\n    e.Handle((x) =\u003e\n    {\n        if(x is BandwidthIrisException)\n        {\n            //Do something \n            return true;\n        }\n\n        return false;\n    });\n}\n```\n\n## Available NpaNxx\n```csharp\nvar query = new Dictionary\u003cstring, object\u003e();\nquery.Add(\"areaCode\", \"805\");\nquery.Add(\"quantity\", 3);\nvar items = await AvailableNpaNxx.List(_client, query);\nforeach (AvailableNpaNxx npaNxx in items)\n{\n    Console.WriteLine(string.Format(\"NpaNxx: {0}\",npaNxx.Npa + npaNxx.Nxx));\n}\n```\n\n## Available Numbers\n```csharp\nvar query = new Dictionary\u003cstring, object\u003e();\nquery.Add(\"areaCode\", \"805\");\nquery.Add(\"quantity\", 3);\nvar result = await AvailableNumbers.List(_client, query);\nforeach (string number in result.TelephoneNumberList)\n{\n    Console.WriteLine(string.Format(\"Number: {0}\", number));\n}\n\n```\n\n## Cities\n```csharp\nvar query = new Dictionary\u003cstring, object\u003e();\nquery.Add(\"state\", \"CA\");\nquery.Add(\"available\", true);\nvar result = await City.List(_client, query);\nforeach (City city in result)\n{\n    Console.WriteLine(\"City Name: {0}\", city.Name);\n}\n```\n## Rate Centers\n```csharp\nvar query = new Dictionary\u003cstring, object\u003e();\nquery.Add(\"state\", \"CA\");\nquery.Add(\"available\", true);\nvar result = await RateCenter.List(query);\nforeach (RateCenter rateCenter in result)\n{\n    Console.WriteLine(\"RateCenter Name: {0}\", rateCenter.Name);\n}\n```\n\n\n## Covered Rate Centers\n```csharp\nvar query = new Dictionary\u003cstring, object\u003e();\nquery.Add(\"zip\", \"27609\");\nvar result = await CoveredRateCenter.List(_client, query);\nforeach (CoveredRateCenter rateCenter in result)\n{\n    Console.WriteLine(\"RateCenter Name: {0}\", rateCenter.Name);\n}\n```\n\n## Orders\n\n### Create Order\n```csharp\nvar result = await Order.Create(_client, new Order\n{\n    Name = \"Test Order\",\n    SiteId = \"SiteId\",\n    CustomerOrderId = \"SomeCustomerId\",\n    LataSearchAndOrderType = new LataSearchAndOrderType\n    {\n        Lata = \"224\",\n        Quantity = 1\n    }\n});\n\n```\n### Get Order\n```csharp\nvar order = await Order.Get(\"orderId\");\n```\n\n### Order Instance Methods\n\n```csharp\norder.Update()\norder.AddNote(var note);\norder.GetNotes();\norder.GetAreaCodes();\norder.GetNpaNxx();\norder.GetTotals();\norder.GetTns();\norder.GetHistory();\n```\n\n### List Orders\n```csharp\nvar query = new Dictionary\u003cstring, object\u003e();\nquery.Add(\"page\", \"1\");\nquery.Add(\"size\", \"10\");\nquery.Add(\"zip\", \"27516\");\n\nOrderListResponse orderListResponse = await Order.List(client, query);\n```\n\n### OrderListResponse \n```csharp\norderListResponse.Orders.TotalCount;\norderListResponse.Orders.Links.First;\norderListResponse.Orders.Links.Next;\norderListResponse.Orders.Links.Last;\norderListResponse.Orders.OrderDetails.Count;\norderListResponse.Orders.OrderDetails[0].CountOfTns;\norderListResponse.Orders.OrderDetails[0].OrderStatus;\norderListResponse.Orders.OrderDetails[0].OrderId;\norderListResponse.Orders.OrderDetails[0].LastModifiedDate;\norderListResponse.Orders.OrderDetails[0].OrderDate;\norderListResponse.Orders.OrderDetails[0].UserId;\norderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.States.Count;\norderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.States[0].Count;\norderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.States[0].State;\norderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.RateCenters.Count;\norderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.RateCenters[0].Count;\norderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.RateCenters[0].RateCenter;\norderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.Cities.Count;\norderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.Cities[0].Count;\norderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.Cities[0].City;\norderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.Tiers.Count;\norderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.Tiers[0].Count;\norderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.Tiers[0].Tier;\norderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.Vendors.Count;\norderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.Vendors[0].Count;\norderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.Vendors[0].VendorId;\norderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.Vendors[0].VendorName;\n```\n\n## Applications \n\n### Create Application \n```csharp\nvar application = new Application\n{\n    ApplicationId = \"d3e418e9-1833-49c1-b6c7-ca1700f79586\",\n    ServiceType = \"Voice-V2\",\n    AppName = \"v1\",\n    CallbackCreds = new CallbackCreds\n    {\n        UserId = \"login123\"\n    },\n    CallStatusMethod = \"GET\",\n    CallInitiatedMethod = \"GET\",\n    CallInitiatedCallbackUrl = \"https://a.com\",\n    CallStatusCallbackUrl = \"https://b.com\"\n};\n\nvar response = await Application.Create(client, application);\n```\n\n### List Applications\n```csharp\nvar response = await Application.List(client);\n```\n\n### Get Application\n```csharp\nvar response = await Application.Get(client, applicationId);\n```\n\n### Partial Update Application\n```csharp\nvar application = new Application\n{\n    AppName = \"XgRIdP\"\n};\n\nvar response = await Application.PartialUpdate(client, applicationId, application);\n```\n\n### Full Update Application\n```csharp\nvar application = new Application\n{\n    ServiceType = \"Voice-V2\",\n    AppName = \"v1\",\n    CallbackCreds = new CallbackCreds\n    {\n        UserId = \"login123\"\n    },\n    CallStatusMethod = \"GET\",\n    CallInitiatedMethod = \"GET\",\n    CallInitiatedCallbackUrl = \"https://a.com\",\n    CallStatusCallbackUrl = \"https://b.com\"\n};\n\nvar response = await Application.FullUpdate(client, applicationId, application);\n```\n\n### Delete Application\n```csharp\nvar response = await Application.Delete(client, applicationId);\n```\n\n### List Application's Associated Peers\n```csharp\nvar response = await Application.ListAssociatedSippeers(client, applicationId);\n```\n\n## Port Ins\n\n### Port In Check\n\nFor LNP Checker, send one number at a time when using the C# SDK.\n\n#### Example request and error handling iterating over each error in the response.\n\n```csharp\ntry\n{\n    var result = await LnpChecker.Check(client, new string[] { \"555555\" });\n    Console.WriteLine(result);\n}\ncatch (Bandwidth.Iris.BandwidthIrisException error)\n{\n    Console.WriteLine(error.Message);\n}\ncatch (Exception e)\n{\n    Exception innerEx = e;\n\n    while(innerEx != null)\n    {\n        string msg = innerEx.Message;\n        Console.WriteLine(msg);\n        innerEx = innerEx.InnerException;\n    }\n}\n```\n\n### Create PortIn\n```csharp\nvar data = new PortIn\n    {\n        BillingTelephoneNumber = \"+1-202-555-0158\",\n        Subscriber = new Subscriber\n            {\n                SubscriberType = \"BUSINESS\",\n                BusinessName = \"Company\",\n                FirstName = \"John\",\n\t\tLastName = \"Doe\",\n                ServiceAddress = new Address\n                    {\n                        City = \"City\",\n                        StateCode = \"State\",\n                        Country = \"Country\"\n                    }\n            },\n        PeerId = sipPeer.Id,\n        SiteId = site.Id\n    };\nvar order = await PortIn.Create(_client, data);\n```\n\n### Get PortIn\n```csharp\nvar portInOrder = PortIn.Get(\"orderId\");\n```\n\n### Put File Metadata\n```csharp\nvar portIn = new PortIn { Id = \"1\" };\nportIn.SetClient(client);\n\nvar fileMetadata = new FileMetadata {\n\tDocumentType = \"INVOICE\",\n\tDocumentName = \"docName\"\n};\n\nvar r = portIn.PutFileMetadata(\"test\", fileMetadata).Result;\n```\n\n### PortIn Instance Methods\n```csharp\nportInOrder.Update();\nportInOrder.Delete();\nportInOrder.AddNote(Note n);\nportInOrder.GetNotes();\n\n```\n\n### Port In LOA Management\n```csharp\nportInOrder.CreateFile(Stream s, string mediaType);\nportInOrder.CreateFile(byte[] buffer, string mediaType);\nportInOrder.UpdateFile(string fileName, Stream s, string mediaType);\nportInOrder.UpdateFile(string fileName, byte[] buffer, string mediaType);\nportInOrder.GetFileMetaData(string fileName);\nPutFileMetadata(string fileName, FileMetadata fileMetadata);\nportInOrder.DeleteFile(string fileName);\nportInOrder.GetFiles(bool metaData);\nportInOrder.GetFile(string fileName);\n```\n\n## Sites\n\n### Create Site\n```csharp\nvar newSite = await Site.Create(_client, new Site()\n  {\n      Name = \"Csharp Test Site\",\n      Description = \"A site from the C# Example\",\n      Address = new Address()\n          {\n              HouseNumber = \"123\",\n              StreetName = \"Anywhere St\",\n              City = \"Raleigh\",\n              StateCode = \"NC\",\n              Zip = \"27609\",\n              AddressType = \"Service\"\n          }\n\n  });\n```\n### List all sites\n```csharp\nvar sites = awaite Site.List();\n```\n\n### Deleting a Site\n```csharp\nsite.Delete();\n```\n\n## Sip Peers\n\n### Create a Sip Peer\n```csharp\nvar sipPeerHost = \"1.2.3.4\";\nvar newSipPeer = await SipPeer.Create(_client, new SipPeer()\n    {\n        IsDefaultPeer = true,\n        ShortMessagingProtocol = \"SMPP\",\n        SiteId = \"SiteId,\n        VoiceHosts = new []\n            {\n                new HostData\n                    {\n                        HostName = sipPeerHost\n                    }\n            },\n        SmsHosts = new []\n            {\n                new HostData\n                    {\n                        HostName = sipPeerHost\n                    }\n            },\n        TerminationHosts = new TerminationHost[]\n            {\n                new TerminationHost()\n                    {\n                        HostName = sipPeerHost,\n                        Port = 5060\n                    }\n            }\n\n    });\n```\n\n### Get Sip Peer\n```csharp\nvar sipPeer = await SipPeer.Get(\"sipPeerId\");\n```\n\n### Delete Sip Peer\n```csharp\nvar sipPeer = await SipPeer.Get(\"sipPeerId\");\nsipPeer.Delete();\n```\n\n### Sip Peer TN Methods\n```csharp\nsipPeer.GetTn(number);\nsipPeer.UpdateTns(number, data);\nsipPeer.MoveTns(new string[] numbers);\n```\n\n### Get Origination Settings for Sip Peer\n```csharp\nvar sipPeerOriginationSettingsResponse = await SipPeer.GetOriginationSettings(siteId, sipPeerId);\n```\n\n### Set Origination Settings for Sip Peer\n```csharp\nvar sipPeerOriginationSettings = new SipPeerOriginationSettings\n{\n    VoiceProtocol = \"HTTP\",\n    HttpSettings = new HttpSettings\n    {\n        HttpVoiceV2AppId = \"469ebbac-4459-4d98-bc19-a038960e787f\"\n    }\n};\n\nvar sipPeerOriginationSettingsResponse = await SipPeer.SetOriginationSettings(siteId, sipPeerId, sipPeerOriginationSettings);\n```\n\n### Update Origination Settings for Sip Peer\n```csharp\nvar sipPeerOriginationSettings = new SipPeerOriginationSettings\n{\n    VoiceProtocol = \"HTTP\",\n    HttpSettings = new HttpSettings\n    {\n        HttpVoiceV2AppId = \"469ebbac-4459-4d98-bc19-a038960e787f\"\n    }\n};\n\nSipPeer.UpdateOriginationSettings(siteId, sipPeerId, SipPeerOriginationSettings).Wait();\n```\n\n\n### Get Termination Settings for Sip Peer\n```csharp\nvar sipPeerTerminationSettingsResponse = await SipPeer.GetTerminationSetting(siteId, sipPeerId);\n```\n\n### Set Termination Settings for Sip Peer\n```csharp\nvar sipPeerTerminationSettings = new SipPeerTerminationSettings\n{\n    VoiceProtocol = \"HTTP\",\n    HttpSettings = new HttpSettings\n    {\n        HttpVoiceV2AppId = \"469ebbac-4459-4d98-bc19-a038960e787f\"\n    }\n};\n\nvar sipPeerTerminationSettingsResponse = await SipPeer.GetTerminationSetting(siteId, sipPeerId, sipPeerTerminationSettings);\n```\n\n### Update Termination Settings for Sip Peer\n```csharp\nvar sipPeerTerminationSettings = new SipPeerTerminationSettings\n{\n    VoiceProtocol = \"HTTP\",\n    HttpSettings = new HttpSettings\n    {\n        HttpVoiceV2AppId = \"469ebbac-4459-4d98-bc19-a038960e787f\"\n    }\n};\n\nSipPeer.UpdateTerminationSettings(client, siteId, sipPeerId, SipPeerTerminationSettings).Wait();\n```\n\n### Get SMS Feature Settings for Sip Peer\n```csharp\nvar sipPeerSmsFeatureResponse = await SipPeer.GetSMSSetting(siteId, sipPeerId);\n```\n\n### Set SMS Feature Setting for Sip Peer\n```csharp\nvar sipPeerSmsFeature = new SipPeerSmsFeature\n{\n    SipPeerSmsFeatureSettings = new SipPeerSmsFeatureSettings\n    {\n        TollFree = true\n    },\n    SmppHosts = new SmppHost[]\n    {\n        new SmppHost\n        {\n            HostName = \"Host\"\n        }\n    }\n};\n\nvar sipPeerSmsFeatureResponse = await SipPeer.CreateSMSSettings(siteId, sipPeerId, sipPeerSmsFeature);\n```\n\n### Update SMS Feature Setting for Sip Peer\n```csharp\nvar sipPeerSmsFeature = new SipPeerSmsFeature\n{\n    SipPeerSmsFeatureSettings = new SipPeerSmsFeatureSettings\n    {\n        TollFree = true\n    },\n    SmppHosts = new SmppHost[]\n    {\n        new SmppHost\n        {\n            HostName = \"Host\"\n        }\n    }\n};\n\nvar sipPeerSmsFeatureResponse = await SipPeer.UpdateSMSSettings(siteId, sipPeerId, sipPeerSmsFeature);\n```\n\n### Delete SMS Feature Settings for Sip Peer\n```csharp\nSipPeer.DeleteSMSSettings(siteId, sipPeerId).Wait();\n```\n\n### Get MMS Feature Settings for Sip Peer\n```csharp\nvar MmsFeatureResponse = await SipPeer.GetMMSSetting(siteId, sipPeerId);\n```\n\n### Set MMS Feature Setting for Sip Peer\n```csharp\nvar mmsFeature = new MmsFeature\n{\n    Protocols = new Protocols\n    {\n        MM4 = new MM4\n        {\n            Tls = \"OFF\"\n        }\n    }\n};\n\nvar MmsFeatureResponse = await SipPeer.CreateMMSSettings(siteId, sipPeerId, mmsFeature);\n```\n\n### Update MMS Feature Setting for Sip Peer\n```csharp\nvar mmsFeature = new MmsFeature\n{\n    Protocols = new Protocols\n    {\n        MM4 = new MM4\n        {\n            Tls = \"OFF\"\n        }\n    }\n};\n\nSipPeer.UpdateMMSSettings(siteId, sipPeerId, MmsFeature).Wait();\n```\n\n### Delete MMS Feature Settings for Sip Peer\n```csharp\nSipPeer.DeleteMMSSettings(siteId, sipPeerId).Wait();\n```\n\n### Get Application Settings\n```csharp\nvar applicationsSettingsResponse = await SipPeer.GetApplicationSetting(siteId, sipPeerId);\n```\n\n### Update Application Settings\n```csharp\nvar applicationSettings = new ApplicationsSettings\n{\n    HttpMessagingV2AppId = \"c3b0f805-06ab-4d36-8bf4-8baff7623398\"\n};\n\nSipPeer.UpdateApplicationSettings(siteId, sipPeerId, applicationSettings).Wait();\n```\n\n### Remove Application Settings\n```csharp\nSipPeer.RemoveApplicationSettings(siteId, sipPeerId).Wait();\n```\n\n## Subscriptions\n### Create Subscription\n```csharp\nvar subscription = await Subscription.Create(new Subscription()\n{\n    OrderType = \"orders\",\n    OrderId = \"100\",\n    EmailSubscription = new EmailSubscription\n    {\n        Email = \"test@test\",\n        DigestRequested = \"NONE\"\n    }\n};\n```\n\n### Get Subscription\n```csharp\nvar subscription = await Subscription.Get(\"subscriptionId\");\n```\n\n### List Subscriptions\n```\nvar list = await Subscription.List(new Dictionary\u003cstring,object\u003e{{\"orderType\", \"orders\"}})\n```\n\n### Subscription Instance Methods\n```csharp\nsubscription.Update();\nsubscription.Delete();\n```\n\n## TNs\n\n### Get TN Details\n```csharp\nvar result = await Tn.Get(\"9195551212\");\nvar details = await result.GetDetails();\n```\n\n### List TNs\n```csharp\nvar result = await Tn.List(new Dictionary\u003cstring, object\u003e{{{\"npa\", \"919\"}})\n```\n\n## TN Reservation\n### Create TN Reservation\n\n```csharp\nvar item = await TnReservation.Create(new TnReservation()\n{\n    AccountId = \"accountId\",\n    ReservedTn = \"9195551212\",\n    ReservationExpires = 0\n};\n```\n\n### Get TN Reservation\n\n```csharp\nvar reservation = await TnReservation.Get(\"Id\");\n```\n\n### Delete TN Reservation\n\n```csharp\nreservation.Delete();\n```\n\n## Dlda\n\n### Create Ddla\n```csharp\nvar dlda = new Dlda\n            {\n                CustomerOrderId = \"Your Order Id\",\n                DldaTnGroups = new[]{\n                new DldaTnGroup{\n                  TelephoneNumbers  =  new TelephoneNumbers {Numbers =  new[]{\"9195551212\"}},\n                  SubscriberType  =  \"RESIDENTIAL\",\n                  ListingType  =  \"LISTED\",\n                  ListingName  =  new ListingName{\n                    FirstName  =  \"John\",\n                    LastName  =  \"Smith\"\n                  },\n                  ListAddress  =  true,\n                  Address  =  new Address{\n                    HouseNumber  =  \"123\",\n                    StreetName  =  \"Elm\",\n                    StreetSuffix  =  \"Ave\",\n                    City  =  \"Carpinteria\",\n                    StateCode  =  \"CA\",\n                    Zip  =  \"93013\",\n                    AddressType  =  \"DLDA\"\n                  }\n                }\n              }\n            };\n\nawait Dlda.Create(dlda);\n```\n\n### Get Dlda\n```csharp\nvar dlda = await Dlda.Get(id);\n```\n\n### Get Dlda History\n```csharp\nvar list = await Dlda.GetHistory();\n```\n## Lidb\n\n### Create\n```csharp\nvar item = new Lidb\n    {\n        CustomerOrderId = \"A Test order\",\n        LidbTnGroups = new[] {\n            new LidbTnGroup{\n                TelephoneNumbers = new []{\"8048030097\", \"8045030098\"},\n                SubscriberInformation = \"Joes Grarage\",\n                UseType = \"RESIDENTIAL\",\n                Visibility = \"PUBLIC\"\n            }\n        }\n    };\nawait Lidb.Create(item);\n```\n### Get Lidb\n```csharp\nvar item = await Lidb.Get(id);\n```\n### List Lidbs\n```csharp\nvar list = await Lidb.List();\n```\n\n## LineOptionOrder\n\n### Create an order\n\n```csharp\nvar item = new TnLineOptions\n{\n    TelephoneNumber = \"5209072451\",\n    CallingNameDisplay = \"off\"\n};\nvar numbers = await LineOptionOrder.Create(item);\n```\n\n## InServiceNumber\n\n### List\n\n```csharp\nvar list = await InServiceNumber.List(new Dictionary\u003cstring, object\u003e{{\"city\", \"Cary\"}});\n\n```\n\n### Get totals\n\n```csharp\nvar totals = await InServiceNumber.GetTotals();\n```\n\n## DiscNumber\n\n### List numbers\n\n```csharp\nvar list = await DiscNumber.List(new Dictionary\u003cstring, object\u003e{{\"type\", \"NPA\"}});\n```\n\n### Get totals\n```csharp\nvar totals = await DiscNumber.GetTotals();\n```\n\n## Host\n\n### List hosts\n\n```csharp\nvar list = await Host.List(new Dictionary\u003cstring,object\u003e{{\"type\", \"SMS\"}});\n```\n\n## ImportTnOrders\n\n### Create A ImportTnOrders Reqeust\n\n```csharp\nvar order = new ImportTnOrder\n    {\n        OrderId = \"fbd17609-be44-48e7-a301-90bd6cf42248\",\n        AccountId = \"account\",\n        SipPeerId = 1,\n        SiteId = 2\n    };\n\nvar response = await ImportTnOrder.Create(client, order);\n```\n\n\n### Retrieve ImportOrders List\n\n```csharp\nvar response = await ImportTnOrder.List(client, new Dictionary\u003cstring, object\u003e { { \"accountId\", \"1\" } });\n```\n\n### Get ImportOrder by OrderId\n\n```csharp\nvar response = await ImportTnOrder.Get(client, orderId);\n```\n\n### Get ImportOrder History by OrderId\n\n```csharp\nvar response = await ImportTnOrder.GetHistory(client, orderId )\n```\n\n\n## RemoveImportedTnOrders\n\n### Create A ImportTnOrders Reqeust\n\n```csharp\nvar order = new RemoveImportedTnOrder\n    {\n        OrderId = \"fbd17609-be44-48e7-a301-90bd6cf42248\",\n        AccountId = \"account\"\n    };\n\nvar response = await RemoveImportedTnOrder.Create(client, order);\n```\n\n\n### Retrieve RemoveImportedTnOrders List\n\n```csharp\nvar response = await RemoveImportedTnOrder.List(client, new Dictionary\u003cstring, object\u003e { { \"accountId\", \"1\" } });\n```\n\n### Get RemoveImportedTnOrder by OrderId\n\n```csharp\nvar response = await RemoveImportedTnOrder.Get(client, orderId);\n```\n\n### Get RemoveImportedTnOrder History by OrderId\n\n```csharp\nvar response = await RemoveImportedTnOrder.GetHistory(client, orderId )\n```\n\n## ImportTnChecker\n\n### Request Portability Information on a Set of TNs\n\n```csharp\nvar payload = new ImportTnCheckerPayload\n{\n    TelephoneNumbers = new TelephoneNumber[]\n    {\n        new TelephoneNumber\n        {\n            FullNumber = \"3032281000\"\n        }\n    }\n};\n\nvar response = await ImportTnChecker.Create(client, payload);\n```\n\n\n## Csrs \n\n### Create Csrs Order \n\n```csharp\nvar csr = new Csr\n{\n    AccountId =  \"accountId\"\n    //Additional information\n};\n\nvar response = await Csr.Create(client, csr);\n```\n\n### Get Csr Order \n\n```csharp\nvar response = await Csr.Get(client, orderId);\n```\n\n### Replace Csr Order \n\n```csharp\nvar csr = new Csr\n{\n    AccountId =  \"new accountId\"\n    //Additional information\n};\n\nvar response = await Csr.Replace(client, orderId, csr);\n```\n\n### List Notes on Csr Order \n\n```csharp\nvar response = await Csr.ListNotes(client, orderId);\n```\n\n### Create Note on Csr Order\n\n```csharp\nvar note = new Note\n{\n    Description = \"Description goes here\"\n};\n\nCsr.CreateNote(client, orderId, note);\n```\n\n### Update Note on Csr Order\n\n```csharp\nvar note = new Note\n{\n    Description = \"Updated description goes here\"\n};\n\nCsr.UpdateNote(client, orderId, noteId, note);\n```\n\n## Emergency Notifications\n\n### Get Recipients\n\n```csharp\nvar result = await EmergencyNotification.GetRecipients(client, orderId);\n```\n\n### List Recipients \n\n```csharp\nvar result = await EmergencyNotification.ListRecipients(client, new Dictionary\u003cstring, Object\u003e\n{\n    {\"EnrNotificationType\", \"SMS\" }\n});\n```\n\n### Create Recipients \n\n```csharp\nvar result = await EmergencyNotification.CreateRecipients(client, new EmergencyNotificationRecipient\n{\n    ModifiedByUser = \"testuser\",\n    Type = \"EMAIL\",\n    EmailAddress = \"test@example.com\"\n});\n```\n\n### Update Recipients\n\n```csharp\nvar result = await EmergencyNotification.UpdateRecipients(client, id, new EmergencyNotificationRecipient\n{\n    ModifiedByUser = \"testuser\",\n    Type = \"EMAIL\",\n    EmailAddress = \"test@example.com\"\n});\n```\n\n### Delete Recipients\n\n```csharp\nEmergencyNotification.DeleteRecipients(client, id).Wait();\n```\n\n### Get Group Orders\n\n```csharp\nvar result = await EmergencyNotification.GetGroupOrders(client, id);\n```\n\n### List Group Orders\n\n```csharp\nvar result = await EmergencyNotification.ListGroupOrders(client, new Dictionary\u003cstring, Object\u003e\n{\n    {\"EnrNotificationType\", \"TTS\" }\n});\n```\n\n### Create Group Order\n\n```csharp\nvar result = await EmergencyNotification.CreateGroupOrders(client, new EmergencyNotificationGroupOrder\n{\n    CustomerOrderId = \"test\",\n    AddedEmergencyNotificationGroup = new EmergencyNotificationGroup\n    {\n        CreatedBy = \"samwise\"\n    }\n});\n```\n\n### Get Groups\n\n```csharp\nvar result = await EmergencyNotification.GetGroups(client, id);\n```\n\n### List Groups\n\n```csharp\nvar result = await EmergencyNotification.ListGroups(client, new Dictionary\u003cstring, Object\u003e\n{\n    {\"EnrDetails\", \"true\" },\n    {\"EnrEmailAddress\", \"test@example.com\" }\n});\n```\n\n### Get Endpoint Order \n\n```csharp\nvar result = await EmergencyNotification.GetEndpointOrders(client, id);\n```\n\n### List Endpoint Orders \n\n```csharp\nvar result = await EmergencyNotification.ListEndpointOrders(client, new Dictionary\u003cstring, Object\u003e\n{\n    {\"EepTns\", \"404\" }\n});\n```\n\n### Create Endpoint Order \n\n```csharp\nvar result = await EmergencyNotification.CreateEndpointOrders(client, endpointOrder);\n```\n\n## Aeuis\n\n### Get Aeui\n\n```csharp\nvar response = await Aeui.Get(client, id);\n```\n\n### List Aeui\n\n```csharp\nvar response = await Aeui.List(client);\n```\n\n## TN Options\n\n### Create TN Option\n\nCreate TN Option order(s) to assign line features to the telephone number\n\n#### Add PortOutPasscode\n\n```csharp\nvar order = new TnOptionOrder\n{\n    CustomerOrderId = \"customerOrderId\",\n    TnOptionGroups = new List\u003cTnOptionGroup\u003e\n    {\n        new TnOptionGroup {\n            PortOutPasscode = \"a1b2c3\",\n            TelephoneNumbers = new List\u003cstring\u003e\n            {\n                \"2018551020\",\n                \"2018551025\"\n            }\n        }\n    }\n};\n\nvar result = await TnOptions.Create(client, order);\n```\n\n#### Enable SMS\n\n```csharp\nvar order = new TnOptionOrder\n{\n    CustomerOrderId = \"customerOrderId\",\n    TnOptionGroups = new List\u003cTnOptionGroup\u003e\n    {\n        new TnOptionGroup {\n            Sms = \"on\",\n            TelephoneNumbers = new List\u003cstring\u003e\n            {\n                \"2018551020\",\n                \"2018551025\"\n            }\n        }\n    }\n};\n\nvar result = await TnOptions.Create(client, order);\n```\n\n#### Add CallForward Number\n\n```csharp\nvar order = new TnOptionOrder\n{\n    CustomerOrderId = \"customerOrderId\",\n    TnOptionGroups = new List\u003cTnOptionGroup\u003e\n    {\n        new TnOptionGroup {\n            CallForward = \"6042661720\",\n            TelephoneNumbers = new List\u003cstring\u003e\n            {\n                \"2018551020\",\n                \"2018551025\"\n            }\n        }\n    }\n};\n\nvar result = await TnOptions.Create(client, order);\n```\n\n### Get Tn Option Order\n\n#### Get Tn Option Order (No Error)\n\n```csharp\nTnOptionOrder response = null;\ntry{\nresponse = await TnOptions.Get(client, orderId);\n} catch (Exception ex) {\n    //No error thrown\n}\n\nConsole.WriteLine(response.OrderCreateDate); //\"2016-01-15T11:22:58.789Z\"\n```\n\n#### Get Tn Option Order (With Error)\n\n```csharp\nTnOptionOrder response = null;\ntry{\n    response = await TnOptions.Get(client, orderId);\n} catch (Exception ex) {\n    if (ex.InnerException is BandwidthIrisException)\n    {\n        var exInner = (BandwidthIrisException)ex.InnerException;\n        Console.WriteLine(exInner.Message); //\"Telephone number is not available\"\n        Console.WriteLine(exInner.Body); // \u003cTnOptionOrders\u003e\u003cTotalCount\u003e2\u003c/TotalCount\u003e\u003cTnOptionOrder\u003e..........\u003c/TnOptionOrder\u003e\u003c/TnOptionOrders\u003e\n    } \n}\n```\n\n### List Tn Option Orders\n\n```csharp\nvar result = await TnOptions.List(client, new Dictionary\u003cstring, Object\u003e\n    {\n        {\"status\", \"9199918388\" }\n    });\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbandwidth%2Fcsharp-bandwidth-iris","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbandwidth%2Fcsharp-bandwidth-iris","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbandwidth%2Fcsharp-bandwidth-iris/lists"}