/// <summary> /// constructer /// </summary> /// <param name="config"></param> public OciSession(ClientConfig config) { var streamConfig = new ClientConfigStream { AccountId = config.AccountId, DomainName = config.DomainName, Fingerprint = config.Fingerprint, HomeRegion = config.HomeRegion, IdentityDomain = config.IdentityDomain, Password = config.Password, PrivateKeyPassphrase = config.PrivateKeyPassphrase, TenancyId = config.TenancyId, UserId = config.UserId, UserName = config.UserName }; using (var key = File.OpenText(config.PrivateKey)) { streamConfig.PrivateKey = key; } OciSigner = new OciSigner( streamConfig.TenancyId, streamConfig.UserId, streamConfig.Fingerprint, streamConfig.PrivateKey, streamConfig.PrivateKeyPassphrase ); ClientConfigStream = streamConfig; }
/// <summary> /// constructer /// </summary> /// <param name="config"></param> public ServiceClient(ClientConfig config) { var streamConfig = new ClientConfigStream { AccountId = config.AccountId, DomainName = config.DomainName, Fingerprint = config.Fingerprint, HomeRegion = config.HomeRegion, IdentityDomain = config.IdentityDomain, Password = config.Password, PrivateKeyPassphrase = config.PrivateKeyPassphrase, TenancyId = config.TenancyId, UserId = config.UserId, UserName = config.UserName, ProxyHost = config.ProxyHost, ProxyPort = config.ProxyPort }; using (var key = File.OpenText(config.PrivateKey)) { streamConfig.PrivateKey = key; Initialize(streamConfig); } }
/// <summary> /// Initialize Client /// </summary> /// <param name="config"></param> public void Initialize(ClientConfigStream config) { var signer = new OciSigner( config.TenancyId, config.UserId, config.Fingerprint, config.PrivateKey, config.PrivateKeyPassphrase); Initialize(config, signer); }
/// <summary> /// constructer /// </summary> /// <param name="config"></param> public OciSession(ClientConfigStream config) { OciSigner = new OciSigner( config.TenancyId, config.UserId, config.Fingerprint, config.PrivateKey, config.PrivateKeyPassphrase ); ClientConfigStream = config; }
/// <summary> /// initialization /// </summary> /// <param name="config"></param> /// <param name="ociSigner"></param> public void Initialize(ClientConfigStream config, IOciSigner ociSigner) { Config = config; Signer = ociSigner; JsonSerializer = new JsonDefaultSerializer(); WebRequestPolicy = new DefaultWebRequestPolicy(); // default region setting if (string.IsNullOrEmpty(config.HomeRegion)) { // set ashburn if no default region found Region = Regions.US_ASHBURN_1; } else { // home region Region = config.HomeRegion; } // proxy setting if (!string.IsNullOrEmpty(config.ProxyHost) && config.ProxyPort.HasValue) { WebProxy = new WebProxy(config.ProxyHost, config.ProxyPort.Value); } this.RestClient = new RestClient() { Signer = this.Signer, JsonSerializer = JsonSerializer, WebRequestPolicy = WebRequestPolicy, WebProxy = WebProxy, Option = new RestOption() }; this.RestClientAsync = new RestClientAsync() { Signer = this.Signer, JsonSerializer = JsonSerializer, WebRequestPolicy = WebRequestPolicy, WebProxy = WebProxy, Option = new RestOption() }; }
/// <summary> /// initialization /// </summary> /// <param name="config"></param> /// <param name="ociSigner"></param> public void Initialize(ClientConfigStream config, IOciSigner ociSigner) { Config = config; Signer = ociSigner; JsonSerializer = new JsonDefaultSerializer(); WebRequestPolicy = new DefaultWebRequestPolicy(); // default region setting if (string.IsNullOrEmpty(config.HomeRegion)) { // set ashburn if no default region found Region = Regions.US_ASHBURN_1; } else { // home region Region = config.HomeRegion; } RestOption = new RestOption(); RestClient = new RestClient() { Signer = this.Signer, JsonSerializer = JsonSerializer, WebRequestPolicy = WebRequestPolicy, Option = RestOption }; RestClientAsync = new RestClientAsync() { Signer = this.Signer, JsonSerializer = JsonSerializer, WebRequestPolicy = WebRequestPolicy, Option = RestOption }; }
/// <summary> /// Constructer /// </summary> public GeneralElemenClient(ClientConfigStream config) : base(config) { IdentityClient = new IdentityClient(config); ObjectStorageClient = new ObjectStorageClient(config); }
/// <summary> /// Constructer /// </summary> public ComputeClientAsync(ClientConfigStream config) : base(config) { ServiceName = "core"; }
/// <summary> /// Constructer /// </summary> public ComputeManagementClientAsync(ClientConfigStream config) : base(config) { ServiceName = CoreServices.CoreServiceName; }
/// <summary> /// Constructer /// </summary> public MonitoringClientAsync(ClientConfigStream config) : base(config) { ServiceName = monitaringServiceName; }
/// <summary> /// Constructer /// </summary> public ContainerServiceClient(ClientConfigStream config) : base(config) { ServiceName = ContainerServiceName; }
/// <summary> /// Constructer /// </summary> public CommercialClient(ClientConfigStream config) : base(config) { ServiceName = CommercialServiceName; }
/// <summary> /// Constructer /// </summary> public AuditClientAsync(ClientConfigStream config) : base(config) { ServiceName = AuditServiceName; }
/// <summary> /// Constructer /// </summary> public ComputeClient(ClientConfigStream config) : base(config) { ServiceName = Compute; }
static void Main(string[] args) { Console.WriteLine("+----------------------------------------+"); Console.WriteLine("| |"); Console.WriteLine("| OCISDK SessionExample |"); Console.WriteLine("| |"); Console.WriteLine("+----------------------------------------+"); string configPath = ".oci/config"; System.OperatingSystem os = System.Environment.OSVersion; // windows if (os.Platform == PlatformID.Win32NT) { string rootPath = Directory.GetDirectoryRoot(Directory.GetCurrentDirectory()); configPath = $"{rootPath}/{configPath}"; if (!Directory.Exists($"{rootPath}/.oci")) { Directory.CreateDirectory($"{rootPath}/.oci"); } } else { configPath = $"/home/user/{configPath}"; } string profile; ConfigFile configReader; if (File.Exists(configPath)) { Console.Write("Connection ProfileName(Empty Input is DEFAULT): "); profile = Console.ReadLine(); if (string.IsNullOrEmpty(profile)) { profile = "DEFAULT"; } // load connection file configReader = ConfigFileReader.Parse(configPath, profile); } else { profile = "DEFAULT"; // create connection file Console.WriteLine("Create connection settings to Oracle Cloud Infrastructure"); Console.Write("TenancyId (Required): "); string tenancyId = OCIDInput(); Console.Write("UserId (Required): "); string userId = OCIDInput(); Console.Write("Fingerprint (Required): "); string fingerprint = KeyInput(); Console.Write("PrivateKeyPath (Required): "); string privateKeyPath = KeyInput(); Console.Write("PrivateKeyPassphrase: "); string privateKeyPassphrase = InputPassword(); string testFileContentsMyProfile = $"[{profile}]\n" + $"tenancy={tenancyId}\n" + $"user={userId}\n" + $"fingerprint={fingerprint}\n" + $"key_file={privateKeyPath}\n" + $"pass_phrase={privateKeyPassphrase}\n"; File.WriteAllText(configPath, testFileContentsMyProfile); configReader = ConfigFileReader.Parse(configPath, profile); } // ClientConfig settings var configSt = new ClientConfigStream(); IOciSession session; using (var st = File.OpenText(configReader.Get("key_file"))) { configSt = new ClientConfigStream { TenancyId = configReader.Get("tenancy"), UserId = configReader.Get("user"), Fingerprint = configReader.Get("fingerprint"), PrivateKey = st, PrivateKeyPassphrase = configReader.Get("pass_phrase"), AccountId = configReader.Get("accountId"), IdentityDomain = configReader.Get("domain"), UserName = configReader.Get("user"), Password = configReader.Get("password"), HomeRegion = configReader.Get("home_region") }; session = new OciSession(configSt); } var comClient = session.GetCommercialClient(); var listPurchaseEntitlementsRequest = new ListPurchaseEntitlementsRequest { CompartmentId = configSt.TenancyId }; var purchase = comClient.ListPurchaseEntitlements(listPurchaseEntitlementsRequest); var getServiceEntitlementRegistrationsRequest = new ListServiceEntitlementRegistrationsRequest() { CompartmentId = configSt.TenancyId }; var services = comClient.ListServiceEntitlementRegistrations(getServiceEntitlementRegistrationsRequest); var costClient = session.GetUsageCostsClient(); var getSubscriptionInfoRequest = new GetSubscriptionInfoRequest { TenancyId = configSt.TenancyId }; var subsc = costClient.GetSubscriptionInfo(getSubscriptionInfoRequest); // get Client var identityClient = session.GetIdentityClient(); var getTenancyRequest = new GetTenancyRequest() { TenancyId = configSt.TenancyId }; var getTenacy = identityClient.GetTenancy(getTenancyRequest); Console.WriteLine($"tenantName: {getTenacy.Tenancy.Name}"); // get compute var computeClient = session.GetComputeClient(); IDictionary <string, IDictionary <string, string> > tags = new Dictionary <string, IDictionary <string, string> >(); tags.Add("CostTracking", new Dictionary <string, string> { { "cost-trakcerA", "aaaa" } }); var dbClient = session.GetDatabaseClient(); GetDbSystemRequest getDbSystemRequest = new GetDbSystemRequest() { DbSystemId = "ocid1.dbsystem.oc1.iad.abuwcljrbukbjzlameegvsn3u7qb3qcqvtcdvl74jxfth7xjsya7cxkdpibq" }; var dbSystem = dbClient.GetDbSystem(getDbSystemRequest); UpdateDbSystemRequest updateDbSystemRequest = new UpdateDbSystemRequest() { DbSystemId = "ocid1.dbsystem.oc1.iad.abuwcljrbukbjzlameegvsn3u7qb3qcqvtcdvl74jxfth7xjsya7cxkdpibq", UpdateDbSystemDetails = new OCISDK.Core.Database.Model.UpdateDbSystemDetails() { DefinedTags = tags } }; dbClient.UpdateDbSystem(updateDbSystemRequest); var listCompartmentRequest = new ListCompartmentRequest() { CompartmentId = getTenacy.Tenancy.Id, CompartmentIdInSubtree = true }; var cmparts = identityClient.ListCompartment(listCompartmentRequest); foreach (var com in cmparts.Items) { Console.WriteLine($"compartmentName: {com.Name}"); var listInstanceRequest = new ListInstancesRequest() { CompartmentId = com.Id, Limit = 10, SortOrder = SortOrder.ASC }; var instances = computeClient.ListInstances(listInstanceRequest); foreach (var ins in instances.Items) { Console.WriteLine($"rootCompartmentInstanceName: {ins.DisplayName}"); var workReqestClient = session.GetWorkRequestClient(); var listWorkRequestsRequest = new OCISDK.Core.Core.Request.WorkRequest.ListWorkRequestsRequest() { CompartmentId = ins.CompartmentId, ResourceId = ins.Id }; var workreqs = workReqestClient.ListWorkRequests(listWorkRequestsRequest); foreach (var wq in workreqs.Items) { Console.WriteLine($"\tWorkRequest: {wq.OperationType}, state:{wq.Status}"); var getWorkRequestRequest = new OCISDK.Core.Core.Request.WorkRequest.GetWorkRequestRequest() { WorkRequestId = wq.Id }; var gw = workReqestClient.GetWorkRequest(getWorkRequestRequest); Console.WriteLine($"\taccepted:{gw.WorkRequest.TimeAccepted}, finished:{gw.WorkRequest.TimeFinished}"); var listWorkRequestErrorsRequest = new OCISDK.Core.Core.Request.WorkRequest.ListWorkRequestErrorsRequest() { WorkRequestId = wq.Id, Limit = 100, SortOrder = SortOrder.ASC }; var wqErrors = workReqestClient.ListWorkRequestErrors(listWorkRequestErrorsRequest); foreach (var error in wqErrors.Items) { Console.WriteLine($"\tErrorCode: {error.Code}, ErrorMessage:{error.Message}, ErrorTimeStamp:{error.Timestamp}"); } var listWorkRequestLogsRequest = new OCISDK.Core.Core.Request.WorkRequest.ListWorkRequestLogsRequest() { WorkRequestId = wq.Id, Limit = 100, SortOrder = SortOrder.ASC }; var wqLogs = workReqestClient.ListWorkRequestLogs(listWorkRequestLogsRequest); foreach (var log in wqLogs.Items) { Console.WriteLine($"\tLogMessage:{log.Message}, LogTimeStamp:{log.Timestamp}"); } } } } Console.WriteLine("Exit with key press..."); Console.ReadLine(); }
/// <summary> /// Constructer /// </summary> public WorkRequestClientAsync(ClientConfigStream config) : base(config) { ServiceName = "core"; }
/// <summary> /// Constructer /// </summary> public WorkRequestClientAsync(ClientConfigStream config, OciSigner ociSigner) : base(config, ociSigner) { ServiceName = "core"; }
/// <summary> /// Constructer /// </summary> public AuditClientAsync(ClientConfigStream config, OciSigner ociSigner) : base(config, ociSigner) { ServiceName = AuditServiceName; }
/// <summary> /// Constructer /// </summary> public CommercialClient(ClientConfigStream config, OciSigner ociSigner) : base(config, ociSigner) { ServiceName = CommercialServiceName; }
/// <summary> /// Constructer /// </summary> public BudgetsClient(ClientConfigStream config) : base(config) { ServiceName = BudgetsServiceName; }
/// <summary> /// Constructer /// </summary> public ContainerServiceClient(ClientConfigStream config, OciSigner ociSigner) : base(config, ociSigner) { ServiceName = ContainerServiceName; }
/// <summary> /// Constructer /// </summary> public BudgetsClient(ClientConfigStream config, IOciSigner ociSigner) : base(config, ociSigner) { ServiceName = BudgetsServiceName; }
/// <summary> /// Constructer /// </summary> public MonitoringClientAsync(ClientConfigStream config, IOciSigner ociSigner) : base(config, ociSigner) { ServiceName = monitaringServiceName; }
/// <summary> /// Constructer /// </summary> public WaasClient(ClientConfigStream config) : base(config) { ServiceName = WaasServiceName; }
/// <summary> /// Constructer /// </summary> public ComputeManagementClientAsync(ClientConfigStream config, OciSigner ociSigner) : base(config, ociSigner) { ServiceName = CoreServices.CoreServiceName; }
/// <summary> /// Constructer /// </summary> public WaasClient(ClientConfigStream config, IOciSigner ociSigner) : base(config, ociSigner) { ServiceName = WaasServiceName; }
/// <summary> /// Constructer /// </summary> public ComputeClientAsync(ClientConfigStream config, OciSigner ociSigner) : base(config, ociSigner) { ServiceName = "core"; }
/// <summary> /// Constructer /// </summary> public UsageClient(ClientConfigStream config) : base(config) { ServiceName = UsageServiceName; }
/// <summary> /// Constructer /// </summary> public GeneralElemenClient(ClientConfigStream config, OciSigner ociSigner) : base(config, ociSigner) { IdentityClient = new IdentityClient(config, ociSigner); ObjectStorageClient = new ObjectStorageClient(config, ociSigner); }
/// <summary> /// Constructer /// </summary> public UsageClient(ClientConfigStream config, IOciSigner ociSigner) : base(config, ociSigner) { ServiceName = UsageServiceName; }