public static void ConsoleDisplay(ClientConfig config) { var identityClient = new IdentityClient(config) { Region = Regions.US_ASHBURN_1 }; var budgetClient = new BudgetsClient(config) { Region = Regions.US_ASHBURN_1 }; var listCompartmentRequest = new ListCompartmentRequest() { CompartmentId = config.TenancyId, CompartmentIdInSubtree = true, AccessLevel = ListCompartmentRequest.AccessLevels.ACCESSIBLE }; var compartments = identityClient.ListCompartment(listCompartmentRequest).Items; compartments.Add(new Compartment { Id = config.TenancyId, Name = "root compartment", LifecycleState = "ACTIVE" }); Console.WriteLine("* Budgets Resources------------------------"); foreach (var com in compartments) { if (com.LifecycleState != "ACTIVE") { continue; } Console.WriteLine($" Compartment<{com.Name}>--------"); ListBudgetsRequest listBudgetsRequest = new ListBudgetsRequest() { CompartmentId = com.Id }; var budgets = budgetClient.ListBudgets(listBudgetsRequest); foreach (var budget in budgets.Items) { Console.WriteLine($"\t|-name:{budget.DisplayName}, state:{budget.LifecycleState}, amount:{budget.Amount}"); } } }
public static async void AuditDisplay(ClientConfig config) { // create client AuditClientAsync client = new AuditClientAsync(config) { Region = Regions.US_ASHBURN_1 }; IdentityClient identityClinet = new IdentityClient(config) { Region = Regions.US_ASHBURN_1 }; DateTime now = DateTime.Now.AddDays(-1); var startDate = now.ToString("yyyy-MM-ddT00:00:00Z"); var endDate = now.ToString("yyyy-MM-ddT10:30:00Z"); var listCompartmentRequest = new ListCompartmentRequest() { CompartmentId = config.TenancyId, CompartmentIdInSubtree = true, AccessLevel = ListCompartmentRequest.AccessLevels.ACCESSIBLE }; var compartments = identityClinet.ListCompartment(listCompartmentRequest).Items; // get Audit Events Console.WriteLine("* Audit Events-------------------"); foreach (var compartment in compartments) { // get config var configurationRequest = new GetConfigurationRequest() { CompartmentId = compartment.Id }; var auditConfig = await client.GetConfiguration(configurationRequest); Console.WriteLine($"compartment<{compartment.Name}>---"); Console.WriteLine($"startTime:{startDate}, endTime:{endDate}"); Console.WriteLine($"retentionPeriodDays:{auditConfig.Configuration.RetentionPeriodDays}"); DisplayAudit(config, client, identityClinet, compartment.Id, startDate, endDate, "", ""); } }
public static void MonitoringResourceExample(ClientConfig config) { // create client var identityClient = new IdentityClient(config); var computeClient = new ComputeClient(config); var monitoringClient = new MonitoringClient(config); var listCompartmenRequest = new ListCompartmentRequest() { CompartmentId = identityClient.Config.TenancyId, CompartmentIdInSubtree = true, AccessLevel = ListCompartmentRequest.AccessLevels.ACCESSIBLE, Limit = 10 }; // get compartment var listCompartment = identityClient.ListCompartment(listCompartmenRequest).Items; Console.WriteLine("* List Instance Metrics------------------------"); foreach (var compartment in listCompartment) { if (!compartment.IsAccessible.HasValue || !compartment.IsAccessible.Value) { continue; } var listInstanceRequest = new ListInstancesRequest() { CompartmentId = compartment.Id, Limit = 50, LifecycleState = ListInstancesRequest.LifecycleStates.RUNNING, SortOrder = SortOrder.ASC }; var now = DateTime.UtcNow.AddHours(-2); var endTime = DateTime.UtcNow; // get instance var listInstance = computeClient.ListInstances(listInstanceRequest).Items; foreach (var instance in listInstance) { Console.WriteLine($" |-{instance.DisplayName}------------"); // get all computeagent var listMetricsRequest = new ListMetricsRequest() { CompartmentId = compartment.Id, CompartmentIdInSubtree = compartment.CompartmentId == config.TenancyId, ListMetricsDetails = new ListMetricsDetails() { Namespace = "oci_computeagent", DimensionFilters = new DimensionFilter() { ResourceId = instance.Id } } }; // get Metrics try { var listMetrics = monitoringClient.ListMetrics(listMetricsRequest).Items; foreach (var metrics in listMetrics) { Console.WriteLine($"\t| Mertics: {metrics.Name}"); Console.WriteLine($"\t| NameSpace: {metrics.Namespace}"); // metric dimensions //Console.WriteLine($"\t| {metrics.Dimensions}".Replace("\n", "")); var summarizeMetricsDataRequest = new SummarizeMetricsDataRequest() { CompartmentId = compartment.Id, CompartmentIdInSubtree = compartment.CompartmentId == config.TenancyId, SummarizeMetricsDataDetails = new SummarizeMetricsDataDetails() { Namespace = metrics.Namespace, Query = metrics.Name + "[1h]{resourceId = \"" + instance.Id + "\"}.mean()", StartTime = now.ToString("yyyy-MM-ddThh:MM:ssZ"), EndTime = endTime.ToString("yyyy-MM-ddThh:MM:ssZ") } }; var SummarizeMetricsDatas = monitoringClient.SummarizeMetricsData(summarizeMetricsDataRequest).Items; foreach (var summaryData in SummarizeMetricsDatas) { foreach (var aggregatedDatapoint in summaryData.AggregatedDatapoints) { Console.WriteLine("\t| {"); Console.WriteLine($"\t| \tTimeStamp: {aggregatedDatapoint.Timestamp}"); Console.WriteLine($"\t| \tValue: {aggregatedDatapoint.Value}"); Console.WriteLine("\t| }"); } } } } catch (WebException we) { Console.WriteLine($"notfund:{we.Message}"); } } } Console.WriteLine("* List compartment Alarms------------------------"); foreach (var compartment in listCompartment) { Console.WriteLine(" Alarm status------------------------"); var listAlarmsStatusRequest = new ListAlarmsStatusRequest() { CompartmentId = compartment.Id, Limit = 1000 }; var alarmStatus = monitoringClient.ListAlarmsStatus(listAlarmsStatusRequest); if (alarmStatus.Items.Count > 0) { Console.WriteLine($" |-{compartment.Name}------------"); foreach (var alarm in alarmStatus.Items) { Console.WriteLine($"\tid:{alarm.Id}"); Console.WriteLine($"\tname:{alarm.DisplayName}"); Console.WriteLine($"\tstatus:{alarm.Status}"); Console.WriteLine($"\tseverity:{alarm.Severity}"); } } var listAlarmsRequest = new ListAlarmsRequest() { CompartmentId = compartment.Id, Limit = 10 }; Console.WriteLine(" Alarm logs------------------------"); var listAlarms = monitoringClient.ListAlarms(listAlarmsRequest); if (listAlarms.Items.Count > 0) { Console.WriteLine($" |-{compartment.Name}------------"); foreach (var alarm in listAlarms.Items) { Console.WriteLine($"\tid:{alarm.Id}"); Console.WriteLine($"\tname:{alarm.DisplayName}"); Console.WriteLine($"\tdestinations:{alarm.Destinations}"); Console.WriteLine($"\tenable:{alarm.IsEnabled}"); Console.WriteLine($"\tstate:{alarm.LifecycleState}"); var getAlarmHistoryRequest = new GetAlarmHistoryRequest() { AlarmId = alarm.Id, TimestampGreaterThanOrEqualTo = DateTime.UtcNow.ToString() }; var history = monitoringClient.GetAlarmHistory(getAlarmHistoryRequest); foreach (var his in history.AlarmHistoryCollection.Entries) { Console.WriteLine($"\t\t|-summary:{his.Summary}"); Console.WriteLine($"\t\t| timestamp:{his.Timestamp}"); Console.WriteLine($"\t\t| timestampTriggered:{his.TimestampTriggered}"); } } } // Transactions Per Second (TPS) per-tenancy limit for this operation: 1. System.Threading.Thread.Sleep(1000); } }
public static void BlockStoragesConsoleDisplay(ClientConfig config) { // create client BlockstorageClient blockstorageClient = new BlockstorageClient(config) { Region = Regions.US_ASHBURN_1 }; // get list BootVolumes IdentityClient identityClient = new IdentityClient(config) { Region = Regions.US_ASHBURN_1 }; // get ADs ListAvailabilityDomainsRequest listADsRequest = new ListAvailabilityDomainsRequest() { CompartmentId = config.TenancyId }; var ads = identityClient.ListAvailabilityDomains(listADsRequest); ads.Items.ForEach(ad => { Console.WriteLine("* List BootVolumes-------------------" + ad.Name); var listBootVolumesRequest = new ListBootVolumesRequest() { // target compartment is root compartment(tenancy) CompartmentId = config.TenancyId, AvailabilityDomain = ad.Name, Limit = 10, }; var listBV = blockstorageClient.ListBootVolumes(listBootVolumesRequest); listBV.Items.ForEach(bv => { Console.WriteLine(" |-" + bv.DisplayName); Console.WriteLine(" | id: " + bv.Id); Console.WriteLine(" | lifecycle: " + bv.LifecycleState); Console.WriteLine(" | sizeInGBs: " + bv.SizeInGBs); Console.WriteLine(" | VolumeGroupId: " + bv.VolumeGroupId); }); Console.WriteLine("* List VolumeGroups-------------------" + ad.Name); var listVolumeGroupsRequest = new ListVolumeGroupsRequest() { // target compartment is root compartment(tenancy) CompartmentId = config.TenancyId, AvailabilityDomain = ad.Name, Limit = 10, }; var listVolGroups = blockstorageClient.ListVolumeGroups(listVolumeGroupsRequest); listVolGroups.Items.ForEach(vg => { Console.WriteLine(" |-" + vg.DisplayName); Console.WriteLine(" | id: " + vg.Id); Console.WriteLine(" | lifecycle: " + vg.LifecycleState); Console.WriteLine(" | sizeInGBs: " + vg.SizeInGBs); }); }); ListCompartmentRequest listCompartmentRequest = new ListCompartmentRequest() { CompartmentId = config.TenancyId, CompartmentIdInSubtree = true, AccessLevel = ListCompartmentRequest.AccessLevels.ACCESSIBLE }; var listCom = identityClient.ListCompartment(listCompartmentRequest); Console.WriteLine("* List BootVolumeBackup-------------------"); listCom.Items.ForEach(com => { ListBootVolumeBackupsRequest listBootVolumeBackupsRequest = new ListBootVolumeBackupsRequest() { CompartmentId = com.Id, SortOrder = SortOrder.ASC }; var listBootVolumeBackup = blockstorageClient.ListBootVolumeBackups(listBootVolumeBackupsRequest); listBootVolumeBackup.Items.ForEach(bvB => { Console.WriteLine(" |-" + bvB.DisplayName); Console.WriteLine(" | id: " + bvB.Id); Console.WriteLine(" | lifecycle: " + bvB.LifecycleState); Console.WriteLine(" | type: " + bvB.Type); }); }); Console.WriteLine("* List VolumeBackup-------------------"); listCom.Items.ForEach(com => { ListVolumeBackupsRequest listVolumeBackupsRequest = new ListVolumeBackupsRequest() { CompartmentId = com.Id }; var listVolumeBackup = blockstorageClient.ListVolumeBackups(listVolumeBackupsRequest); listVolumeBackup.Items.ForEach(vB => { Console.WriteLine(" |-" + vB.DisplayName); Console.WriteLine(" | id: " + vB.Id); Console.WriteLine(" | lifecycle: " + vB.LifecycleState); Console.WriteLine(" | type: " + vB.Type); }); }); Console.WriteLine("* List Volume-------------------"); listCom.Items.ForEach(com => { ListVolumesRequest listVolumesRequest = new ListVolumesRequest() { CompartmentId = com.Id }; var listVolume = blockstorageClient.ListVolumes(listVolumesRequest); listVolume.Items.ForEach(vol => { Console.WriteLine(" |-" + vol.DisplayName); Console.WriteLine(" | id: " + vol.Id); Console.WriteLine(" | lifecycle: " + vol.LifecycleState); Console.WriteLine(" | sizeInGBs: " + vol.SizeInGBs); var getVolumeKmsKeyRequest = new GetVolumeKmsKeyRequest() { VolumeId = vol.Id }; try { var kms = blockstorageClient.GetVolumeKmsKey(getVolumeKmsKeyRequest); Console.WriteLine(" | kms: " + kms.VolumeKmsKey.KmsKeyId); } catch (WebException we) { if (we.Status.Equals(WebExceptionStatus.ProtocolError)) { var code = ((HttpWebResponse)we.Response).StatusCode; if (code != HttpStatusCode.NotFound) { throw we; } } } }); }); Console.WriteLine("* List VolumeGroupBackUp-------------------"); listCom.Items.ForEach(com => { var listVolumeGroupBackupsRequest = new ListVolumeGroupBackupsRequest() { CompartmentId = com.Id }; var listVolumeGroupB = blockstorageClient.ListVolumeGroupBackups(listVolumeGroupBackupsRequest); listVolumeGroupB.Items.ForEach(vol => { Console.WriteLine(" |-" + vol.DisplayName); Console.WriteLine(" | id: " + vol.Id); Console.WriteLine(" | lifecycle: " + vol.LifecycleState); Console.WriteLine(" | sizeInGBs: " + vol.SizeInGBs); }); }); Console.WriteLine("* List VolumeBackUpPolicy-------------------"); var listVolumeBackupPoliciesRequest = new ListVolumeBackupPoliciesRequest() { Limit = 10 }; var backupPolicies = blockstorageClient.ListVolumeBackupPolicies(listVolumeBackupPoliciesRequest); backupPolicies.Items.ForEach(policy => { Console.WriteLine(" |-" + policy.DisplayName); Console.WriteLine(" | id: " + policy.Id); Console.WriteLine(" | timeCreated: " + policy.TimeCreated); }); }
public static void DisplayBucketAndObject(ClientConfig config, string namespaceName, ObjectStorageClient client, IdentityClient identityClient) { // Compartment required only to get a bucket var listCompartmentRequest = new ListCompartmentRequest() { CompartmentId = config.TenancyId, CompartmentIdInSubtree = true, AccessLevel = ListCompartmentRequest.AccessLevels.ACCESSIBLE }; var compartments = identityClient.ListCompartment(listCompartmentRequest).Items; // root(tenant) add compartments.Add(new OCISDK.Core.Identity.Model.Compartment { Id = config.TenancyId, Name = "root" }); foreach (var compartment in compartments) { Console.WriteLine($"## Compartment<{compartment.Name}>--------"); // list bucket ListBucketsRequest listBucketsRequest = new ListBucketsRequest() { NamespaceName = namespaceName, CompartmentId = compartment.Id }; var listBucket = client.ListBuckets(listBucketsRequest); Console.WriteLine($"* Bucket------------------------"); Console.WriteLine($" namespace : {namespaceName}"); Console.WriteLine($" comaprtment : {config.TenancyId}"); listBucket.Items.ForEach(bucket => { HeadBucketRequest headBucketRequest = new HeadBucketRequest() { NamespaceName = bucket.Namespace, BucketName = bucket.Name }; var buckethead = client.HeadBucket(headBucketRequest); // get bucket details GetBucketRequest getBucketRequest = new GetBucketRequest() { NamespaceName = bucket.Namespace, BucketName = bucket.Name, IfMatch = buckethead.ETag }; var bucketDetail = client.GetBucket(getBucketRequest); Console.WriteLine($"\t|- * name : {bucketDetail.Bucket.Name}"); Console.WriteLine($"\t| timeCreated : {bucketDetail.Bucket.TimeCreated}"); // Bucket workrequests ListWorkRequestsRequest listWorkRequestsRequest = new ListWorkRequestsRequest { CompartmentId = bucketDetail.Bucket.CompartmentId, BucketName = bucket.Name }; var wrs = client.ListWorkRequests(listWorkRequestsRequest); Console.WriteLine($"\t|* WorkRequest------------------------"); foreach (var wr in wrs.Items) { Console.WriteLine($"\t|\t|- name : {wr.OperationType}"); Console.WriteLine($"\t|\t|- status : {wr.Status}"); Console.WriteLine($"\t|\t|- start : {wr.TimeStarted}"); Console.WriteLine($"\t|\t|- finish : {wr.TimeFinished}"); } // objects Console.WriteLine($"\t|* Object------------------------"); ListObjectsRequest listObjectsRequest = new ListObjectsRequest() { NamespaceName = bucketDetail.Bucket.Namespace, BucketName = bucketDetail.Bucket.Name, Fields = new List <string> { "size", "timeCreated", "md5" } }; var Objs = client.ListObjects(listObjectsRequest); Objs.ListObjects.Objects.ForEach(obj => { Console.WriteLine($"\t|\t|- name : {obj.Name}"); GetObjectRequest getObjectRequest = new GetObjectRequest() { NamespaceName = bucketDetail.Bucket.Namespace, BucketName = bucketDetail.Bucket.Name, ObjectName = obj.Name, }; var ObjDetails = client.GetObject(getObjectRequest); Console.WriteLine($"\t|\t|- contentLength : {ObjDetails.ContentLength}"); // download /*if (!Directory.Exists("./ExampleDownload")) * { * Directory.CreateDirectory("./ExampleDownload"); * } * if (!File.Exists($"./ExampleDownload/{obj.Name.Replace('/', '_')}")) * { * client.DownloadObject(getObjectRequest, "./ExampleDownload/", obj.Name.Replace('/', '_')); * }*/ }); }); } }
public static void Example(ClientConfig config) { ThreadSafeSigner threadSafeSigner = new ThreadSafeSigner(new OciSigner(config)); var client = new ObjectStorageClient(config, threadSafeSigner) { Region = Regions.AP_TOKYO_1 }; var identityClient = new IdentityClient(config, threadSafeSigner) { Region = Regions.AP_TOKYO_1 }; var nameSpaceName = client.GetNamespace(new GetNamespaceRequest()); // Compartment required only to get a bucket var listCompartmentRequest = new ListCompartmentRequest() { CompartmentId = config.TenancyId, CompartmentIdInSubtree = true, AccessLevel = ListCompartmentRequest.AccessLevels.ACCESSIBLE }; var compartments = identityClient.ListCompartment(listCompartmentRequest).Items; // root(tenant) add compartments.Add(new OCISDK.Core.Identity.Model.Compartment { Id = config.TenancyId, Name = "root" }); foreach (var compartment in compartments) { ListBucketsRequest listBucketsRequest = new ListBucketsRequest { NamespaceName = nameSpaceName, CompartmentId = compartment.Id, Limit = 10 }; var bukcets = client.ListBuckets(listBucketsRequest); foreach (var bukcet in bukcets.Items) { ObjectStorageDirectoryInfo directoryInfo = new ObjectStorageDirectoryInfo(client, nameSpaceName, bukcet.Name); Console.WriteLine($"* {bukcet.Name}"); // top files var files = directoryInfo.EnumerateFiles("*", System.IO.SearchOption.TopDirectoryOnly); foreach (var file in files) { Console.WriteLine($"\t|- {file.Name}"); } // top directories and files var topDirs = directoryInfo.EnumerateDirectories("*", System.IO.SearchOption.TopDirectoryOnly); foreach (var dir in topDirs) { Console.WriteLine($"\t|- {dir.Name}"); files = dir.EnumerateFiles("*", System.IO.SearchOption.TopDirectoryOnly); foreach (var file in files) { Console.WriteLine($"\t|\t|- {file.Name}"); } // sub directories and files var subDirInfo = new ObjectStorageDirectoryInfo(client, nameSpaceName, bukcet.Name, dir.Name + "/"); var subDirs = subDirInfo.EnumerateDirectories("*", System.IO.SearchOption.TopDirectoryOnly); foreach (var sub in subDirs) { Console.WriteLine($"\t|\t|- {sub.Name}"); files = sub.EnumerateFiles("*", System.IO.SearchOption.TopDirectoryOnly); foreach (var file in files) { Console.WriteLine($"\t|\t|\t|- {file.Name}"); } } } foreach (var dir in topDirs) { // prefix directories Console.WriteLine("TopDirectoryOnly prefix-----[" + dir.Name + "]"); var preDir = new ObjectStorageDirectoryInfo(client, nameSpaceName, bukcet.Name, dir.Name); var preFiles = preDir.EnumerateFiles("*", System.IO.SearchOption.TopDirectoryOnly); foreach (var file in preFiles) { Console.WriteLine($"\t|- {file.FullName}"); } } foreach (var dir in topDirs) { // prefix directories Console.WriteLine("AllDirectories prefix-----[" + dir.Name + "]"); var preDir = new ObjectStorageDirectoryInfo(client, nameSpaceName, bukcet.Name, dir.Name); var preFiles = preDir.EnumerateFiles("*", System.IO.SearchOption.AllDirectories); foreach (var file in preFiles) { Console.WriteLine($"\t|- {file.FullName}"); } } } } }
public static void ConsoleDisplay(ClientConfig config) { var identityClient = new IdentityClient(config) { Region = Regions.US_ASHBURN_1 }; var lbClient = new LoadBalancerClient(config); var listCompartmentRequest = new ListCompartmentRequest() { CompartmentId = config.TenancyId, CompartmentIdInSubtree = true, AccessLevel = ListCompartmentRequest.AccessLevels.ACCESSIBLE }; var compartments = identityClient.ListCompartment(listCompartmentRequest).Items; Console.WriteLine("* LB Resources------------------------"); foreach (var com in compartments) { if (com.LifecycleState != "ACTIVE") { continue; } Console.WriteLine($" Compartment<{com.Name}>--------"); var listLoadBalancersRequest = new ListLoadBalancersRequest() { CompartmentId = com.Id, SortBy = ListLoadBalancersRequest.SortByParam.DISPLAYNAME }; Console.WriteLine(" LoadBalancer------"); var loadbalancers = lbClient.ListLoadBalancers(listLoadBalancersRequest).Items; foreach (var lb in loadbalancers) { var getLoadBalancerRequest = new GetLoadBalancerRequest() { LoadBalancerId = lb.Id }; var lbDetail = lbClient.GetLoadBalancer(getLoadBalancerRequest).LoadBalancer; Console.WriteLine($"\t|- displayName: {lbDetail.DisplayName}"); Console.WriteLine($"\t| state: {lbDetail.LifecycleState}"); Console.WriteLine($"\t| shape: {lbDetail.ShapeName}"); Console.WriteLine($"\t| timeCreated: {lbDetail.TimeCreated}"); Console.WriteLine($"\t| ipAddresses: {lbDetail.IpAddresses}"); Console.WriteLine($"\t| private: {lbDetail.IsPrivate}"); Console.WriteLine($"\t| listeners:"); foreach (var key in lbDetail.Listeners.Keys) { Console.WriteLine($"\t| |-{key} : {lbDetail.Listeners[key].DefaultBackendSetName}"); } Console.WriteLine($"\t| rules:"); foreach (var key in lbDetail.RuleSets.Keys) { Console.WriteLine($"\t| |-{lbDetail.RuleSets[key].Name}"); foreach (var rule in lbDetail.RuleSets[key].Items) { Console.WriteLine($"\t| | |-{rule.Action}"); } } Console.WriteLine($"\t| workRequest:"); var listWorkRequestsRequest = new ListWorkRequestsRequest() { LoadBalancerId = lb.Id }; var works = lbClient.ListWorkRequests(listWorkRequestsRequest).Items; foreach (var work in works) { Console.WriteLine($"\t| |-{work.Type}"); Console.WriteLine($"\t| | {work.LifecycleState}"); } } Console.WriteLine(" LoadBalancerHealth------"); var listLoadBalancerHealthsRequest = new ListLoadBalancerHealthsRequest() { CompartmentId = com.Id }; var lbHealths = lbClient.ListLoadBalancerHealths(listLoadBalancerHealthsRequest).Items; foreach (var health in lbHealths) { var getLoadBalancerHealthRequest = new GetLoadBalancerHealthRequest() { LoadBalancerId = health.LoadBalancerId }; var healthDetail = lbClient.GetLoadBalancerHealth(getLoadBalancerHealthRequest).LoadBalancerHealth; Console.WriteLine($"\t|- criticalStateBackendSetNames:"); foreach (var name in healthDetail.CriticalStateBackendSetNames) { Console.WriteLine($"\t| |-{name}"); } Console.WriteLine($"\t|- unknownStateBackendSetNames:"); foreach (var name in healthDetail.UnknownStateBackendSetNames) { Console.WriteLine($"\t| |-{name}"); } Console.WriteLine($"\t|- warningStateBackendSetNames:"); foreach (var name in healthDetail.WarningStateBackendSetNames) { Console.WriteLine($"\t| |-{name}"); } } Console.WriteLine(" LoadBalancerPolicy------"); var listLoadBalancerPoliciesRequest = new ListLoadBalancerPoliciesRequest() { CompartmentId = com.Id }; var lbPolicies = lbClient.ListLoadBalancerPolicies(listLoadBalancerPoliciesRequest).Items; foreach (var policy in lbPolicies) { Console.WriteLine($"\t|- name: {policy.Name}"); } Console.WriteLine(" LoadBalancerProtocol------"); var listLoadBalancerProtocolsRequest = new ListLoadBalancerProtocolsRequest() { CompartmentId = com.Id }; var lbProtocols = lbClient.ListLoadBalancerProtocols(listLoadBalancerProtocolsRequest).Items; foreach (var protocol in lbProtocols) { Console.WriteLine($"\t|- name: {protocol.Name}"); } Console.WriteLine(" LoadBalancerShape------"); var listLoadBalancerShapesRequest = new ListLoadBalancerShapesRequest() { CompartmentId = com.Id }; var lbShapes = lbClient.ListLoadBalancerShapes(listLoadBalancerShapesRequest).Items; foreach (var shape in lbShapes) { Console.WriteLine($"\t|- name: {shape.Name}"); } } }
public static void DNSConsoleDisplay(ClientConfig config) { var identityClient = new IdentityClient(config) { Region = Regions.US_ASHBURN_1 }; var dnsClient = new DNSClient(config); var listCompartmentRequest = new ListCompartmentRequest() { CompartmentId = config.TenancyId, CompartmentIdInSubtree = true, AccessLevel = ListCompartmentRequest.AccessLevels.ACCESSIBLE }; var compartments = identityClient.ListCompartment(listCompartmentRequest).Items; Console.WriteLine("* DNS SteeringPolicy------------------------"); foreach (var com in compartments) { if (com.LifecycleState != "ACTIVE") { continue; } Console.WriteLine($" Compartment<{com.Name}>--------"); var listSteeringPoliciesRequest = new ListSteeringPoliciesRequest() { CompartmentId = com.Id, SortBy = ListSteeringPoliciesRequest.SortByParam.DisplayName }; var steeringPolicies = dnsClient.ListSteeringPolicies(listSteeringPoliciesRequest).Items; foreach (var sp in steeringPolicies) { var getSteeringPolicyRequest = new GetSteeringPolicyRequest() { SteeringPolicyId = sp.Id }; var steeringPolicy = dnsClient.GetSteeringPolicy(getSteeringPolicyRequest).SteeringPolicy; Console.WriteLine($"\t|- displayName: {steeringPolicy.DisplayName}"); Console.WriteLine($"\t| state: {steeringPolicy.LifecycleState}"); Console.WriteLine($"\t| timeCreated: {steeringPolicy.TimeCreated}"); Console.WriteLine($"\t| rule: {steeringPolicy.Rules.Count}"); foreach (var rule in steeringPolicy.Rules) { Console.WriteLine($"\t| | type: {rule.RuleType}"); } Console.WriteLine($"\t| Answer: {steeringPolicy.Answers.Count}"); foreach (var answer in steeringPolicy.Answers) { Console.WriteLine($"\t| | name: {answer.Name}"); Console.WriteLine($"\t| | pool: {answer.Pool}"); Console.WriteLine($"\t| | rtype: {answer.Rtype}"); Console.WriteLine($"\t| | rdata: {answer.Rdata}"); } var listSteeringPolicyAttachmentsRequest = new ListSteeringPolicyAttachmentsRequest() { SteeringPolicyId = sp.Id, CompartmentId = com.Id }; var steeringPolicyAttachments = dnsClient.ListSteeringPolicyAttachments(listSteeringPolicyAttachmentsRequest).Items; if (steeringPolicyAttachments.Count > 0) { Console.WriteLine($"\t| Attach: {steeringPolicyAttachments.Count}"); foreach (var attach in steeringPolicyAttachments) { Console.WriteLine($"\t| | state: {attach.LifecycleState}"); Console.WriteLine($"\t| | rtype: {attach.Rtypes}"); Console.WriteLine($"\t| | self: {attach.Self}"); Console.WriteLine($"\t| | timeCreated: {attach.TimeCreated}"); Console.WriteLine($"\t| | zoneId: {attach.ZoneId}"); } } } } Console.WriteLine("* DNS Zone------------------------"); foreach (var com in compartments) { if (com.LifecycleState != "ACTIVE") { continue; } Console.WriteLine($" Compartment<{com.Name}>--------"); var listZonesRequest = new ListZonesRequest() { CompartmentId = com.Id, SortBy = ListZonesRequest.SortByParam.Name }; var zones = dnsClient.ListZones(listZonesRequest).Items; foreach (var zone in zones) { var getZoneRequest = new GetZoneRequest() { CompartmentId = com.Id, ZoneNameOrId = zone.Id }; var zoneDetails = dnsClient.GetZone(getZoneRequest).Zone; Console.WriteLine($"\t|- name: {zone.Name}"); Console.WriteLine($"\t| version: {zone.Version}"); Console.WriteLine($"\t| state: {zone.LifecycleState}"); Console.WriteLine($"\t| timeCreated: {zone.TimeCreated}"); Console.WriteLine($"\t| type: {zone.ZoneType}"); Console.WriteLine($"\t| self: {zone.Self}"); Console.WriteLine($"\t| serial: {zone.Serial}"); Console.WriteLine($"\t| nameservers:"); if (zoneDetails.Nameservers != null) { zoneDetails.Nameservers.ForEach(n => { Console.WriteLine($"\t| |- {n.Hostname}"); }); } Console.WriteLine($"\t| externalMasters:"); if (zoneDetails.ExternalMasters != null) { zoneDetails.ExternalMasters.ForEach(e => { Console.Write($"\t| |- {e.Addres}"); }); } var getZoneRecordsRequest = new GetZoneRecordsRequest() { ZoneNameOrId = zone.Id, CompartmentId = com.Id }; var zrecordRes = dnsClient.GetZoneRecords(getZoneRecordsRequest); var zrecords = zrecordRes.RecordCollection.Items; Console.WriteLine($"\t| zone records"); foreach (var zr in zrecords) { Console.WriteLine($"\t| |- domain: {zr.Domain}"); Console.WriteLine($"\t| | rrsetVersion: {zr.RrsetVersion}"); Console.WriteLine($"\t| | rtype: {zr.Rtype}"); Console.WriteLine($"\t| | rdata: {zr.Rdata}"); var getDomainRecordsRequest = new GetDomainRecordsRequest() { ZoneNameOrId = zone.Id, Domain = zr.Domain, CompartmentId = com.Id }; var drecords = dnsClient.GetDomainRecords(getDomainRecordsRequest).RecordCollection.Items; Console.WriteLine($"\t| |- domain records"); foreach (var dr in drecords) { Console.WriteLine($"\t| | |- domain: {dr.Domain}"); } var getRRSetRequest = new GetRRSetRequest() { ZoneNameOrId = zone.Id, Domain = zr.Domain, Rtype = zr.Rtype, CompartmentId = com.Id }; var rrsets = dnsClient.GetRRSet(getRRSetRequest).RRSet.Items; Console.WriteLine($"\t| |- rrset"); foreach (var rrset in rrsets) { Console.WriteLine($"\t| | |- rdata: {rrset.Rdata}"); Console.WriteLine($"\t| | | ttl: {rrset.Ttl}"); Console.WriteLine($"\t| | | rrsetVersion: {rrset.RrsetVersion}"); } } } } }
public static void AuditDisplay(ClientConfig config) { ThreadSafeSigner threadSafeSigner = new ThreadSafeSigner(new OciSigner(config)); // create client IdentityClient identityClinet = new IdentityClient(config, threadSafeSigner) { Region = Regions.US_ASHBURN_1 }; var executeStart = DateTime.Now; var listRegionSubscriptionsRequest = new ListRegionSubscriptionsRequest() { TenancyId = config.TenancyId }; var regions = identityClinet.ListRegionSubscriptions(listRegionSubscriptionsRequest).Items.Where(r => r.Status.Equals("READY")); // get compartment var listCompartmentRequest = new ListCompartmentRequest() { CompartmentId = config.TenancyId, CompartmentIdInSubtree = true, AccessLevel = ListCompartmentRequest.AccessLevels.ACCESSIBLE }; var compartments = identityClinet.ListCompartment(listCompartmentRequest).Items; // get Audit Events Console.WriteLine("* Audit Events-------------------"); var acquisitionMaxRange = 12; // 長時間化を見込んで時間を分割しながら取得する var endDate = new DateTime(2020, 3, 11); var startDate = new DateTime(2020, 3, 9); var client = new AuditClientAsync(config, threadSafeSigner); var option = client.GetRestOption(); option.TimeoutSeconds = 200; client.SetRestOption(option); foreach (var region in regions) { client.SetRegion(region.RegionName); while (startDate < endDate) { var valiableDay = startDate.AddDays(1); var start = startDate; bool finished = false; while (!finished) { var progressEndDate = start.AddHours(acquisitionMaxRange); if (progressEndDate > valiableDay) { progressEndDate = valiableDay; finished = true; } if (start == progressEndDate) { continue; } foreach (var compartment in compartments) { if (!compartment.LifecycleState.Equals("ACTIVE", StringComparison.OrdinalIgnoreCase)) { continue; } Console.WriteLine($"region:{region.RegionName}, compartment:{compartment.Name}"); AddTasks(DisplayAudit(client, identityClinet, compartment, start.ToString("yyyy-MM-ddTHH:mm:ssZ"), progressEndDate.ToString("yyyy-MM-ddTHH:mm:ssZ"))); } start = progressEndDate; } ExecuteTasks(); startDate = valiableDay; } } ExecuteTasks(); Console.WriteLine($"Count:{Count}"); var executeEnd = DateTime.Now; var saDate = executeEnd - executeStart; Console.WriteLine($"{saDate.Hours}:{saDate.Minutes}:{saDate.Seconds}"); Console.WriteLine("******************************************"); Console.WriteLine("******** All Audit Task Completed ********"); Console.WriteLine("******************************************"); }
public static void ResourcesExample(ClientConfig config) { var client = new NotificationClient(config) { Region = Regions.US_ASHBURN_1 }; var identityClient = new IdentityClient(config) { Region = Regions.US_ASHBURN_1 }; var listCompartmentRequest = new ListCompartmentRequest() { CompartmentId = config.TenancyId, CompartmentIdInSubtree = true, AccessLevel = ListCompartmentRequest.AccessLevels.ACCESSIBLE }; var compartments = identityClient.ListCompartment(listCompartmentRequest).Items; Console.WriteLine("* Notification Topics------------------------"); foreach (var com in compartments) { if (com.LifecycleState != "ACTIVE") { continue; } Console.WriteLine($" Compartment<{com.Name}>--------"); var listTopicsRequest = new ListTopicsRequest() { CompartmentId = com.Id, Limit = 10 }; var topics = client.ListTopics(listTopicsRequest); foreach (var topic in topics.Items) { Console.WriteLine($"\t|- Name:{topic.Name}"); Console.WriteLine($"\t|- Description:{topic.Description}"); Console.WriteLine($"\t|- LifecycleState:{topic.LifecycleState}"); Console.WriteLine($"\t|- TimeCreated:{topic.TimeCreated}"); } } foreach (var com in compartments) { if (com.LifecycleState != "ACTIVE") { continue; } Console.WriteLine($" Compartment<{com.Name}>--------"); var listSubscriptionsRequest = new ListSubscriptionsRequest() { CompartmentId = com.Id, Limit = 10 }; var subscriptions = client.ListSubscriptions(listSubscriptionsRequest); foreach (var subscription in subscriptions.Items) { Console.WriteLine($"\t|- protocol:{subscription.Protocol}"); Console.WriteLine($"\t|- policy:{subscription.DeliverPolicy}"); Console.WriteLine($"\t|- LifecycleState:{subscription.LifecycleState}"); Console.WriteLine($"\t|- CreatedTime:{subscription.CreatedTime}"); } } }
public static void DatabaseConsoleDisplay(ClientConfig config) { var identityClient = new IdentityClient(config) { Region = Regions.US_ASHBURN_1 }; var databaseClient = new DatabaseClient(config); var listCompartmentRequest = new ListCompartmentRequest() { CompartmentId = config.TenancyId, CompartmentIdInSubtree = true, AccessLevel = ListCompartmentRequest.AccessLevels.ACCESSIBLE }; var compartments = identityClient.ListCompartment(listCompartmentRequest).Items; Console.WriteLine("* Database------------------------"); foreach (var com in compartments) { if (com.LifecycleState != "ACTIVE") { continue; } var listDbHomesRequest = new ListDbHomesRequest() { CompartmentId = com.Id, }; var dbHomes = databaseClient.ListDbHomes(listDbHomesRequest).Items; foreach (var home in dbHomes) { Console.WriteLine($" DatabaseHome: {home.DisplayName}"); var listDatabasesRequest = new ListDatabasesRequest() { CompartmentId = com.Id, DbHomeId = home.Id }; var databases = databaseClient.ListDatabases(listDatabasesRequest).Items; foreach (var database in databases) { Console.WriteLine($"\t|- name: {database.DbName}"); Console.WriteLine($"\t| state: {database.LifecycleState}"); Console.WriteLine($"\t| lifecycle: {database.LifecycleDetails}"); Console.WriteLine($"\t| time: {database.TimeCreated}"); } } } Console.WriteLine("* DatabaseShapes------------------------"); foreach (var com in compartments) { if (com.LifecycleState != "ACTIVE") { continue; } var listDbSystemShapesRequest = new ListDbSystemShapesRequest() { CompartmentId = com.Id }; var dbShapes = databaseClient.ListDbSystemShapes(listDbSystemShapesRequest).Items; foreach (var shape in dbShapes) { Console.WriteLine($"\t|- name: {shape.Name}"); Console.WriteLine($"\t| shape: {shape.Shape}"); Console.WriteLine($"\t| shapeFamily: {shape.ShapeFamily}"); Console.WriteLine($"\t| availableCoreCount: {shape.AvailableCoreCount}"); Console.WriteLine($"\t| coreCountIncrement: {shape.CoreCountIncrement}"); Console.WriteLine($"\t| maximumNodeCount: {shape.MaximumNodeCount}"); Console.WriteLine($"\t| minimumCoreCount: {shape.MinimumCoreCount}"); Console.WriteLine($"\t| minimumNodeCount: {shape.MinimumNodeCount}"); } } Console.WriteLine("* DatabaseVersions------------------------"); foreach (var com in compartments) { if (com.LifecycleState != "ACTIVE") { continue; } var listDbVersionsRequest = new ListDbVersionsRequest() { CompartmentId = com.Id }; var dbVersions = databaseClient.ListDbVersions(listDbVersionsRequest).Items; foreach (var version in dbVersions) { Console.WriteLine($"\t|- version: {version.Version}"); Console.WriteLine($"\t| supportsPdb: {version.SupportsPdb}"); Console.WriteLine($"\t| isLatestForMajorVersion: {version.IsLatestForMajorVersion}"); } } }
public static void CompartmentConsoleDisplay(ClientConfig config) { IdentityClient identityClient = new IdentityClient(config) { Region = config.HomeRegion }; Console.WriteLine("* GetTenacy------------------------"); GetTenancyRequest getTenancyRequest = new GetTenancyRequest() { TenancyId = identityClient.Config.TenancyId }; var getTenacy = identityClient.GetTenancy(getTenancyRequest); Console.WriteLine(" name:" + getTenacy.Tenancy.Name + ","); Console.WriteLine(" id:" + getTenacy.Tenancy.Id + ","); Console.WriteLine(" description:" + getTenacy.Tenancy.Description + ","); Console.WriteLine(" homeregion:" + config.GetRegionName(getTenacy.Tenancy.HomeRegionKey) + ","); // tagNamespaces get in tetancy(root compartment) Console.WriteLine(" tagNamespaces:"); var listTagNamespacesRequest = new ListTagNamespacesRequest() { CompartmentId = getTenacy.Tenancy.Id, Limit = 50 }; var listTagNs = identityClient.ListTagNamespaces(listTagNamespacesRequest); listTagNs.Items.ForEach(tagNs => { Console.WriteLine("\t|- name: " + tagNs.Name); Console.WriteLine("\t| id: " + tagNs.Id); Console.WriteLine("\t| description: " + tagNs.Description); //tag list var listTagsRequest = new ListTagsRequest() { TagNamespaceId = tagNs.Id, Limit = 50 }; var listTags = identityClient.ListTags(listTagsRequest); listTags.Items.ForEach(tag => { Console.WriteLine("\t|\t|- * " + tag.Name); Console.WriteLine("\t|\t| id: " + tag.Id); Console.WriteLine("\t|\t| costTracking: " + tag.IsCostTracking); }); }); // tagDefaults get in tetancy(root compartment) Console.WriteLine(" tagDefaults:"); var listTagsDefaultRequest = new ListTagDefaultsRequest() { CompartmentId = getTenacy.Tenancy.Id, Limit = 50 }; var listDefaultTags = identityClient.ListTagDefaults(listTagsDefaultRequest); listDefaultTags.Items.ForEach(tag => { Console.WriteLine("\t|- DefaultTags"); Console.WriteLine("\t| id: " + tag.Id); Console.WriteLine("\t| tagDefinitionName: " + tag.TagDefinitionName); Console.WriteLine("\t| tagNamespaceId: " + tag.TagNamespaceId); Console.WriteLine("\t| tagDefinitionId: " + tag.TagDefinitionId); Console.WriteLine("\t| lifecycleState: " + tag.LifecycleState); }); var listCostTrackingTagsRequest = new ListCostTrackingTagsRequest() { CompartmentId = getTenacy.Tenancy.Id, Limit = 100 }; var listCostTrackingTags = identityClient.ListCostTrackingTags(listCostTrackingTagsRequest); listCostTrackingTags.Items.ForEach(tag => { Console.WriteLine("\t|- CostTackingTags"); Console.WriteLine("\t| id: " + tag.Id); Console.WriteLine("\t| isCostTracking: " + tag.IsCostTracking); Console.WriteLine("\t| tagNamespaceId: " + tag.TagNamespaceId); Console.WriteLine("\t| tagNamespaceName: " + tag.TagNamespaceName); Console.WriteLine("\t| name: " + tag.Name); }); Console.WriteLine(); Console.WriteLine("* ListRegions------------------------"); var listRegion = identityClient.ListRegions(); listRegion.Items.ForEach(r => { Console.WriteLine("\tname: " + r.Name); Console.WriteLine("\tkey: " + r.Key); }); Console.WriteLine("* ListRegionsSubscriptions------------------------"); var listRegionSubscriptionsRequest = new ListRegionSubscriptionsRequest() { TenancyId = getTenacy.Tenancy.Id, }; var listRegionSubscriptions = identityClient.ListRegionSubscriptions(listRegionSubscriptionsRequest); listRegionSubscriptions.Items.ForEach(r => { Console.WriteLine("\tname: " + r.RegionKey); Console.WriteLine("\tkey: " + r.RegionName); Console.WriteLine("\tstatus: " + r.Status); Console.WriteLine("\thome: " + r.IsHomeRegion); }); Console.WriteLine(); Console.WriteLine("* ListAvailabilityDomain------------------------"); var listAvailabilityDomainRequest = new ListAvailabilityDomainsRequest() { CompartmentId = getTenacy.Tenancy.Id }; var listAD = identityClient.ListAvailabilityDomains(listAvailabilityDomainRequest); listAD.Items.ForEach(ad => { Console.WriteLine("\tname: " + ad.Name); Console.WriteLine("\tid: " + ad.Id); }); Console.WriteLine(); Console.WriteLine("* ListCompartment------------------------"); var listCompartmenRequest = new ListCompartmentRequest() { CompartmentId = getTenacy.Tenancy.Id, CompartmentIdInSubtree = true, AccessLevel = ListCompartmentRequest.AccessLevels.ACCESSIBLE, Limit = 10 }; var listCompartment = identityClient.ListCompartment(listCompartmenRequest); listCompartment.Items.ForEach(comp => { // compartment detail get var getCompartmentRequest = new GetCompartmentRequest() { CompartmentId = comp.Id }; var getCompartment = identityClient.GetCompartment(getCompartmentRequest); Console.WriteLine("\t|- name: " + getCompartment.Compartment.Name); Console.WriteLine("\t|\t id: " + getCompartment.Compartment.Id); Console.WriteLine("\t|\t lifecycleState: " + getCompartment.Compartment.LifecycleState); Console.WriteLine("\t|\t timeCreated: " + getCompartment.Compartment.TimeCreated); Console.WriteLine("\t|\t inactiveStatus: " + getCompartment.Compartment.InactiveStatus); var path = GetCompartmetPath(identityClient, getCompartment.Compartment.Id); Console.WriteLine("\t|\t path: " + path); getCompartmentRequest = new GetCompartmentRequest() { CompartmentId = getCompartment.Compartment.CompartmentId }; getCompartment = identityClient.GetCompartment(getCompartmentRequest); Console.WriteLine("\t|\t parent: " + getCompartment.Compartment.Name); // tagNamespaces get in compartment Console.WriteLine("\t|\t tgaNamespaces:"); listTagNamespacesRequest = new ListTagNamespacesRequest() { CompartmentId = comp.Id, Limit = 50 }; listTagNs = identityClient.ListTagNamespaces(listTagNamespacesRequest); listTagNs.Items.ForEach(tagNs => { Console.WriteLine("\t|\t |- name: " + tagNs.Name); Console.WriteLine("\t|\t | id: " + tagNs.Id); Console.WriteLine("\t|\t | description: " + tagNs.Description); Console.WriteLine("\t|\t | timeCreated: " + tagNs.TimeCreated); }); }); }
private static void VirtualNetworkConsoleDisplay(ClientConfig config) { // create client VirtualNetworkClient client = new VirtualNetworkClient(config) { Region = Regions.US_ASHBURN_1 }; Console.WriteLine("* List VCN------------------------"); var listVcnRequest = new ListVcnRequest() { // target compartment is root compartment(tenancy) CompartmentId = config.TenancyId, Limit = 50, SortOrder = SortOrder.ASC }; // get vcns var listVcn = client.ListVcn(listVcnRequest); listVcn.Items.ForEach(vcn => { Console.WriteLine(" |-" + vcn.DisplayName); Console.WriteLine(" | " + vcn.Id); // get dhcps in vcn var listDhcpRequest = new ListDhcpOptionsRequest() { // target is same compartment and VCN CompartmentId = vcn.CompartmentId, VcnId = vcn.Id, Limit = 50, SortOrder = SortOrder.ASC }; var listDhcp = client.ListDhcpOptions(listDhcpRequest); listDhcp.Items.ForEach(dhcp => { Console.WriteLine(" |\t|- * DHCP"); Console.WriteLine(" |\t|\t" + dhcp.DisplayName); Console.WriteLine(" |\t|\t" + dhcp.Id); }); // get RouteTable in vcn var listRouteTableRequest = new ListRouteTableRequest() { // target is same compartment and VCN CompartmentId = vcn.CompartmentId, VcnId = vcn.Id, Limit = 50, SortOrder = SortOrder.ASC }; var listRouteTable = client.ListRouteTableOptions(listRouteTableRequest); listRouteTable.Items.ForEach(rt => { Console.WriteLine(" |\t|- * RouteTable"); Console.WriteLine(" |\t|\t" + rt.DisplayName); Console.WriteLine(" |\t|\t" + rt.Id); // RouteRules rt.RouteRules.ForEach(rr => { if (!string.IsNullOrEmpty(rr.DestinationType)) { Console.WriteLine(" |\t|\t|- DestinationType:" + rr.DestinationType); } if (!string.IsNullOrEmpty(rr.CidrBlock)) { Console.WriteLine(" |\t|\t|\tCidrBlock:" + rr.CidrBlock); } if (!string.IsNullOrEmpty(rr.Destination)) { Console.WriteLine(" |\t|\t|\tDestination:" + rr.Destination); } if (!string.IsNullOrEmpty(rr.NetworkEntityId)) { Console.WriteLine(" |\t|\t|\tNetworkEntityId:" + rr.NetworkEntityId); } }); }); // get RouteTable in vcn var listSecurityListRequest = new ListSecurityListsRequest() { // target is same compartment and VCN CompartmentId = vcn.CompartmentId, VcnId = vcn.Id, Limit = 50, SortOrder = SortOrder.ASC }; var listSecurityList = client.ListSecurityLists(listSecurityListRequest); listSecurityList.Items.ForEach(sl => { Console.WriteLine(" |\t|- * SecurityList"); Console.WriteLine(" |\t|\t" + sl.DisplayName); Console.WriteLine(" |\t|\t" + sl.Id); Console.WriteLine(" |\t|\t" + sl.LifecycleState); }); // get Subnet in vcn var listSubnetRequest = new ListSubnetsRequest() { // target is same compartment and VCN CompartmentId = vcn.CompartmentId, VcnId = vcn.Id, Limit = 50, SortOrder = SortOrder.ASC }; var listSubnet = client.ListSubnets(listSubnetRequest); listSubnet.Items.ForEach(sl => { Console.WriteLine(" |\t|- * Subnet"); Console.WriteLine(" |\t|\t" + sl.DisplayName); Console.WriteLine(" |\t|\t" + sl.Id); Console.WriteLine(" |\t|\t" + sl.LifecycleState); }); // get InternetGateway in vcn var listIGRequest = new ListInternetGatewaysRequest() { // target is same compartment and VCN CompartmentId = vcn.CompartmentId, VcnId = vcn.Id, Limit = 50, SortOrder = SortOrder.ASC }; var listIG = client.ListInternetGateways(listIGRequest); listDhcp.Items.ForEach(ig => { Console.WriteLine(" |\t|- * InternetGateway"); Console.WriteLine(" |\t|\t" + ig.DisplayName); Console.WriteLine(" |\t|\t" + ig.Id); }); }); Console.WriteLine("* List DRG------------------------"); var identityClient = new IdentityClient(config) { Region = Regions.US_ASHBURN_1 }; var listCompartmentRequest = new ListCompartmentRequest() { CompartmentId = config.TenancyId, CompartmentIdInSubtree = true, AccessLevel = ListCompartmentRequest.AccessLevels.ACCESSIBLE }; var compartments = identityClient.ListCompartment(listCompartmentRequest).Items; foreach (var com in compartments) { var listDrgsRequest = new ListDrgsRequest() { CompartmentId = com.Id }; var drgs = client.ListDrgs(listDrgsRequest).Items; foreach (var drg in drgs) { Console.WriteLine($" |-name: {drg.DisplayName}"); Console.WriteLine($" | state: {drg.LifecycleState}"); Console.WriteLine($" | timeCreate: {drg.TimeCreated}"); Console.WriteLine($" | compartment: {com.Name}"); } } }