/// <summary> /// Instantiates a new instance. /// </summary> /// <param name="apiKey">The API key to use to communicate with the Vultr /// API.</param> /// <param name="apiURL">The optional Vultr API URL to use. Set this if you want /// to override the default endpoint (e.g. for testing).</param> /// <exception cref="ArgumentNullException">If <paramref name="apiKey"/> is null /// or empty.</exception> public VultrClient(string apiKey, string apiURL = VultrApiURL) { if (string.IsNullOrEmpty(apiKey)) { throw new ArgumentNullException("apiKey", "apiKey must not be null"); } Account = new AccountClient(apiKey, apiURL); Application = new ApplicationClient(apiKey, apiURL); Auth = new AuthClient(apiKey, apiURL); Backup = new BackupClient(apiKey, apiURL); Block = new BlockClient(apiKey, apiURL); DNS = new DNSClient(apiKey, apiURL); Firewall = new FirewallClient(apiKey, apiURL); ISOImage = new ISOImageClient(apiKey, apiURL); Network = new NetworkClient(apiKey, apiURL); OperatingSystem = new OperatingSystemClient(apiKey, apiURL); Plan = new PlanClient(apiKey, apiURL); Region = new RegionClient(apiKey, apiURL); ReservedIP = new ReservedIPClient(apiKey, apiURL); Server = new ServerClient(apiKey, apiURL); Snapshot = new SnapshotClient(apiKey, apiURL); SSHKey = new SSHKeyClient(apiKey, apiURL); StartupScript = new StartupScriptClient(apiKey, apiURL); User = new UserClient(apiKey, apiURL); }
/// <summary>Snippet for GetIngressRule</summary> /// <remarks> /// This snippet has been automatically generated for illustrative purposes only. /// It may require modifications to work in your environment. /// </remarks> public void GetIngressRuleRequestObject() { // Create client FirewallClient firewallClient = FirewallClient.Create(); // Initialize request argument(s) GetIngressRuleRequest request = new GetIngressRuleRequest { Name = "", }; // Make the request FirewallRule response = firewallClient.GetIngressRule(request); }
/// <summary>Snippet for DeleteIngressRule</summary> /// <remarks> /// This snippet has been automatically generated for illustrative purposes only. /// It may require modifications to work in your environment. /// </remarks> public void DeleteIngressRuleRequestObject() { // Create client FirewallClient firewallClient = FirewallClient.Create(); // Initialize request argument(s) DeleteIngressRuleRequest request = new DeleteIngressRuleRequest { Name = "", }; // Make the request firewallClient.DeleteIngressRule(request); }
/// <summary>Snippet for GetIngressRuleAsync</summary> /// <remarks> /// This snippet has been automatically generated for illustrative purposes only. /// It may require modifications to work in your environment. /// </remarks> public async Task GetIngressRuleRequestObjectAsync() { // Create client FirewallClient firewallClient = await FirewallClient.CreateAsync(); // Initialize request argument(s) GetIngressRuleRequest request = new GetIngressRuleRequest { Name = "", }; // Make the request FirewallRule response = await firewallClient.GetIngressRuleAsync(request); }
/// <summary>Snippet for CreateIngressRule</summary> /// <remarks> /// This snippet has been automatically generated for illustrative purposes only. /// It may require modifications to work in your environment. /// </remarks> public void CreateIngressRuleRequestObject() { // Create client FirewallClient firewallClient = FirewallClient.Create(); // Initialize request argument(s) CreateIngressRuleRequest request = new CreateIngressRuleRequest { Parent = "", Rule = new FirewallRule(), }; // Make the request FirewallRule response = firewallClient.CreateIngressRule(request); }
/// <summary>Snippet for BatchUpdateIngressRules</summary> /// <remarks> /// This snippet has been automatically generated for illustrative purposes only. /// It may require modifications to work in your environment. /// </remarks> public void BatchUpdateIngressRulesRequestObject() { // Create client FirewallClient firewallClient = FirewallClient.Create(); // Initialize request argument(s) BatchUpdateIngressRulesRequest request = new BatchUpdateIngressRulesRequest { Name = "", IngressRules = { new FirewallRule(), }, }; // Make the request BatchUpdateIngressRulesResponse response = firewallClient.BatchUpdateIngressRules(request); }
/// <summary>Snippet for CreateIngressRuleAsync</summary> /// <remarks> /// This snippet has been automatically generated for illustrative purposes only. /// It may require modifications to work in your environment. /// </remarks> public async Task CreateIngressRuleRequestObjectAsync() { // Create client FirewallClient firewallClient = await FirewallClient.CreateAsync(); // Initialize request argument(s) CreateIngressRuleRequest request = new CreateIngressRuleRequest { Parent = "", Rule = new FirewallRule(), }; // Make the request FirewallRule response = await firewallClient.CreateIngressRuleAsync(request); }
/// <summary>Snippet for UpdateIngressRule</summary> /// <remarks> /// This snippet has been automatically generated for illustrative purposes only. /// It may require modifications to work in your environment. /// </remarks> public void UpdateIngressRuleRequestObject() { // Create client FirewallClient firewallClient = FirewallClient.Create(); // Initialize request argument(s) UpdateIngressRuleRequest request = new UpdateIngressRuleRequest { Name = "", Rule = new FirewallRule(), UpdateMask = new FieldMask(), }; // Make the request FirewallRule response = firewallClient.UpdateIngressRule(request); }
/// <summary>Snippet for BatchUpdateIngressRulesAsync</summary> /// <remarks> /// This snippet has been automatically generated for illustrative purposes only. /// It may require modifications to work in your environment. /// </remarks> public async Task BatchUpdateIngressRulesRequestObjectAsync() { // Create client FirewallClient firewallClient = await FirewallClient.CreateAsync(); // Initialize request argument(s) BatchUpdateIngressRulesRequest request = new BatchUpdateIngressRulesRequest { Name = "", IngressRules = { new FirewallRule(), }, }; // Make the request BatchUpdateIngressRulesResponse response = await firewallClient.BatchUpdateIngressRulesAsync(request); }
/// <summary>Snippet for ListIngressRulesAsync</summary> public async Task ListIngressRulesRequestObjectAsync() { // Snippet: ListIngressRulesAsync(ListIngressRulesRequest, CallSettings) // Create client FirewallClient firewallClient = await FirewallClient.CreateAsync(); // Initialize request argument(s) ListIngressRulesRequest request = new ListIngressRulesRequest { Parent = "", MatchingAddress = "", }; // Make the request PagedAsyncEnumerable <ListIngressRulesResponse, FirewallRule> response = firewallClient.ListIngressRulesAsync(request); // Iterate over all response items, lazily performing RPCs as required await response.ForEachAsync((FirewallRule item) => { // Do something with each item Console.WriteLine(item); }); // Or iterate over pages (of server-defined size), performing one RPC per page await response.AsRawResponses().ForEachAsync((ListIngressRulesResponse page) => { // Do something with each page of items Console.WriteLine("A page of results:"); foreach (FirewallRule item in page) { // Do something with each item Console.WriteLine(item); } }); // Or retrieve a single page of known size (unless it's the final page), performing as many RPCs as required int pageSize = 10; Page <FirewallRule> singlePage = await response.ReadPageAsync(pageSize); // Do something with the page of items Console.WriteLine($"A page of {pageSize} results (unless it's the final page):"); foreach (FirewallRule item in singlePage) { // Do something with each item Console.WriteLine(item); } // Store the pageToken, for when the next page is required. string nextPageToken = singlePage.NextPageToken; // End snippet }
/// <summary>Snippet for UpdateIngressRuleAsync</summary> /// <remarks> /// This snippet has been automatically generated for illustrative purposes only. /// It may require modifications to work in your environment. /// </remarks> public async Task UpdateIngressRuleRequestObjectAsync() { // Create client FirewallClient firewallClient = await FirewallClient.CreateAsync(); // Initialize request argument(s) UpdateIngressRuleRequest request = new UpdateIngressRuleRequest { Name = "", Rule = new FirewallRule(), UpdateMask = new FieldMask(), }; // Make the request FirewallRule response = await firewallClient.UpdateIngressRuleAsync(request); }
/// <summary>Snippet for DeleteIngressRuleAsync</summary> public async Task DeleteIngressRuleRequestObjectAsync() { // Snippet: DeleteIngressRuleAsync(DeleteIngressRuleRequest, CallSettings) // Additional: DeleteIngressRuleAsync(DeleteIngressRuleRequest, CancellationToken) // Create client FirewallClient firewallClient = await FirewallClient.CreateAsync(); // Initialize request argument(s) DeleteIngressRuleRequest request = new DeleteIngressRuleRequest { Name = "", }; // Make the request await firewallClient.DeleteIngressRuleAsync(request); // End snippet }
/// <summary> /// Gets the ID of an existing firewall. /// </summary> /// <param name="client">The FirewallClient to use to obtain the firewall /// ID.</param> /// <param name="name">The name of the firewall to obtain the ID for.</param> /// <returns>The firewall ID if it exists. Returns an empty string if no firewall /// exists with the given <paramref name="name"/>.</returns> public static string GetExistingFirewall(this FirewallClient client, string name) { var existingFirewalls = client.GetFirewallGroups(); bool Predicate(KeyValuePair <string, FirewallGroup> existingFirewall) => existingFirewall.Value.description == name; if (existingFirewalls.FirewallGroups == null || !existingFirewalls.FirewallGroups.Exists(Predicate)) { return(""); } var(existingFirewallGroupId, _) = existingFirewalls.FirewallGroups.Single(Predicate); return(existingFirewallGroupId); }
/// <summary>Snippet for ListIngressRules</summary> /// <remarks> /// This snippet has been automatically generated for illustrative purposes only. /// It may require modifications to work in your environment. /// </remarks> public void ListIngressRulesRequestObject() { // Create client FirewallClient firewallClient = FirewallClient.Create(); // Initialize request argument(s) ListIngressRulesRequest request = new ListIngressRulesRequest { Parent = "", MatchingAddress = "", }; // Make the request PagedEnumerable <ListIngressRulesResponse, FirewallRule> response = firewallClient.ListIngressRules(request); // Iterate over all response items, lazily performing RPCs as required foreach (FirewallRule item in response) { // Do something with each item Console.WriteLine(item); } // Or iterate over pages (of server-defined size), performing one RPC per page foreach (ListIngressRulesResponse page in response.AsRawResponses()) { // Do something with each page of items Console.WriteLine("A page of results:"); foreach (FirewallRule item in page) { // Do something with each item Console.WriteLine(item); } } // Or retrieve a single page of known size (unless it's the final page), performing as many RPCs as required int pageSize = 10; Page <FirewallRule> singlePage = response.ReadPage(pageSize); // Do something with the page of items Console.WriteLine($"A page of {pageSize} results (unless it's the final page):"); foreach (FirewallRule item in singlePage) { // Do something with each item Console.WriteLine(item); } // Store the pageToken, for when the next page is required. string nextPageToken = singlePage.NextPageToken; }
/// <summary>Snippet for CreateIngressRuleAsync</summary> public async Task CreateIngressRuleRequestObjectAsync() { // Snippet: CreateIngressRuleAsync(CreateIngressRuleRequest, CallSettings) // Additional: CreateIngressRuleAsync(CreateIngressRuleRequest, CancellationToken) // Create client FirewallClient firewallClient = await FirewallClient.CreateAsync(); // Initialize request argument(s) CreateIngressRuleRequest request = new CreateIngressRuleRequest { Parent = "", Rule = new FirewallRule(), }; // Make the request FirewallRule response = await firewallClient.CreateIngressRuleAsync(request); // End snippet }
/// <summary>Snippet for BatchUpdateIngressRulesAsync</summary> public async Task BatchUpdateIngressRulesRequestObjectAsync() { // Snippet: BatchUpdateIngressRulesAsync(BatchUpdateIngressRulesRequest, CallSettings) // Additional: BatchUpdateIngressRulesAsync(BatchUpdateIngressRulesRequest, CancellationToken) // Create client FirewallClient firewallClient = await FirewallClient.CreateAsync(); // Initialize request argument(s) BatchUpdateIngressRulesRequest request = new BatchUpdateIngressRulesRequest { Name = "", IngressRules = { new FirewallRule(), }, }; // Make the request BatchUpdateIngressRulesResponse response = await firewallClient.BatchUpdateIngressRulesAsync(request); // End snippet }
/// <summary> /// Gets the collection of existing rules for a firewall. /// </summary> /// <param name="client">The FirewallClient to use to obtain the firewall /// rules for.</param> /// <param name="firewallGroupId">The ID of the firewall to obtain the rules /// for.</param> /// <returns>The collection of firewall rules.</returns> public static IReadOnlyDictionary <string, FirewallRule> GetExistingRules( this FirewallClient client, string firewallGroupId) { var existingRules = client.GetFirewallRules( firewallGroupId, "in", "v4") .FirewallRules; foreach (var(firewallId, firewallRule) in client.GetFirewallRules( firewallGroupId, "in", "v6") .FirewallRules) { existingRules[firewallId] = firewallRule; } return(existingRules); }
/// <summary>Snippet for UpdateIngressRuleAsync</summary> public async Task UpdateIngressRuleRequestObjectAsync() { // Snippet: UpdateIngressRuleAsync(UpdateIngressRuleRequest, CallSettings) // Additional: UpdateIngressRuleAsync(UpdateIngressRuleRequest, CancellationToken) // Create client FirewallClient firewallClient = await FirewallClient.CreateAsync(); // Initialize request argument(s) UpdateIngressRuleRequest request = new UpdateIngressRuleRequest { Name = "", Rule = new FirewallRule(), UpdateMask = new FieldMask(), }; // Make the request FirewallRule response = await firewallClient.UpdateIngressRuleAsync(request); // End snippet }
/// <summary> /// Deletes an existing firewall rule. /// </summary> /// <param name="client">The FirewallClient to use to delete the firewall /// rule.</param> /// <param name="firewallName">The name of the firewall the rule belongs /// to.</param> /// <param name="firewallGroupId">The ID of the firewall the rule belongs /// to.</param> /// <param name="rule">The rule to delete.</param> /// <param name="dryrun">Whether or not this is a dryrun. If set to true then /// provision commands will not be sent to the platform and instead messaging /// will be outputted describing what would be done.</param> public static void DeleteRule( this FirewallClient client, string firewallName, string firewallGroupId, FirewallRule rule, bool dryrun) { Console.WriteLine("Deleting existing firewall rule for {0}", firewallName); ConsoleX.WriteLine("port", rule.port); ConsoleX.WriteLine("port", rule.rulenumber); ConsoleX.WriteLine("port", rule.subnet); ConsoleX.WriteLine("port", rule.subnet_size); ConsoleX.WriteLine("protocol", rule.protocol); ConsoleX.WriteLine("source", rule.source); if (!dryrun) { client.DeleteFirewallRule(firewallGroupId, rule.rulenumber); } Console.WriteLine("--"); }