// This is an automatically generated code sample.
// To make this code sample work in your Oracle Cloud tenancy,
// please replace the values for any parameters whose current values do not fit
// your use case (such as resource IDs, strings containing ‘EXAMPLE’ or ‘unique_id’, and
// boolean, number, and enum parameters with values not fitting your use case).
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using Oci.LoadbalancerService;
using Oci.Common;
using Oci.Common.Auth;
namespace Oci.Sdk.DotNet.Example.Loadbalancer
{
public class CreateLoadBalancerExample
{
public static async Task Main()
{
// Create a request and dependent object(s).
var createLoadBalancerDetails = new Oci.LoadbalancerService.Models.CreateLoadBalancerDetails
{
CompartmentId = "ocid1.test.oc1..<unique_ID>EXAMPLE-compartmentId-Value",
DisplayName = "EXAMPLE-displayName-Value",
ShapeName = "EXAMPLE-shapeName-Value",
ShapeDetails = new Oci.LoadbalancerService.Models.ShapeDetails
{
MinimumBandwidthInMbps = 1910,
MaximumBandwidthInMbps = 297
},
IsPrivate = true,
IsDeleteProtectionEnabled = true,
IpMode = Oci.LoadbalancerService.Models.CreateLoadBalancerDetails.IpModeEnum.Ipv6,
Ipv6SubnetCidr = "EXAMPLE-ipv6SubnetCidr-Value",
IsRequestIdEnabled = true,
RequestIdHeader = "EXAMPLE-requestIdHeader-Value",
ReservedIps = new List<Oci.LoadbalancerService.Models.ReservedIP>
{
new Oci.LoadbalancerService.Models.ReservedIP
{
Id = "ocid1.test.oc1..<unique_ID>EXAMPLE-id-Value"
}
},
Listeners = new Dictionary<string, Oci.LoadbalancerService.Models.ListenerDetails>()
{
{
"EXAMPLE_KEY_5vdJZ",
new Oci.LoadbalancerService.Models.ListenerDetails
{
DefaultBackendSetName = "EXAMPLE-defaultBackendSetName-Value",
Port = 6080,
Protocol = "EXAMPLE-protocol-Value",
HostnameNames = new List<string>
{
"EXAMPLE--Value"
},
PathRouteSetName = "EXAMPLE-pathRouteSetName-Value",
SslConfiguration = new Oci.LoadbalancerService.Models.SSLConfigurationDetails
{
VerifyDepth = 216,
VerifyPeerCertificate = false,
HasSessionResumption = true,
TrustedCertificateAuthorityIds = new List<string>
{
"EXAMPLE--Value"
},
CertificateIds = new List<string>
{
"EXAMPLE--Value"
},
CertificateName = "EXAMPLE-certificateName-Value",
Protocols = new List<string>
{
"EXAMPLE--Value"
},
CipherSuiteName = "EXAMPLE-cipherSuiteName-Value",
ServerOrderPreference = Oci.LoadbalancerService.Models.SSLConfigurationDetails.ServerOrderPreferenceEnum.Disabled
},
ConnectionConfiguration = new Oci.LoadbalancerService.Models.ConnectionConfiguration
{
IdleTimeout = 857,
BackendTcpProxyProtocolVersion = 1,
BackendTcpProxyProtocolOptions = new List<Oci.LoadbalancerService.Models.ConnectionConfiguration.BackendTcpProxyProtocolOptionsEnum>
{
Oci.LoadbalancerService.Models.ConnectionConfiguration.BackendTcpProxyProtocolOptionsEnum.Pp2TypeAuthority
}
},
RoutingPolicyName = "EXAMPLE-routingPolicyName-Value",
RuleSetNames = new List<string>
{
"EXAMPLE--Value"
}
}
}
},
Hostnames = new Dictionary<string, Oci.LoadbalancerService.Models.HostnameDetails>()
{
{
"EXAMPLE_KEY_UzqNH",
new Oci.LoadbalancerService.Models.HostnameDetails
{
Name = "EXAMPLE-name-Value",
Hostname = "EXAMPLE-hostname-Value"
}
}
},
BackendSets = new Dictionary<string, Oci.LoadbalancerService.Models.BackendSetDetails>()
{
{
"EXAMPLE_KEY_gT7hW",
new Oci.LoadbalancerService.Models.BackendSetDetails
{
Policy = "EXAMPLE-policy-Value",
Backends = new List<Oci.LoadbalancerService.Models.BackendDetails>
{
new Oci.LoadbalancerService.Models.BackendDetails
{
IpAddress = "EXAMPLE-ipAddress-Value",
Port = 5086,
Weight = 425,
MaxConnections = 4666,
Backup = true,
Drain = false,
Offline = false
}
},
BackendMaxConnections = 31433,
HealthChecker = new Oci.LoadbalancerService.Models.HealthCheckerDetails
{
Protocol = "EXAMPLE-protocol-Value",
UrlPath = "EXAMPLE-urlPath-Value",
Port = 52273,
ReturnCode = 385,
Retries = 617,
TimeoutInMillis = 315042,
IntervalInMillis = 342702,
ResponseBodyRegex = "EXAMPLE-responseBodyRegex-Value",
IsForcePlainText = true
},
SslConfiguration = new Oci.LoadbalancerService.Models.SSLConfigurationDetails
{
VerifyDepth = 654,
VerifyPeerCertificate = true,
HasSessionResumption = false,
TrustedCertificateAuthorityIds = new List<string>
{
"EXAMPLE--Value"
},
CertificateIds = new List<string>
{
"EXAMPLE--Value"
},
CertificateName = "EXAMPLE-certificateName-Value",
Protocols = new List<string>
{
"EXAMPLE--Value"
},
CipherSuiteName = "EXAMPLE-cipherSuiteName-Value",
ServerOrderPreference = Oci.LoadbalancerService.Models.SSLConfigurationDetails.ServerOrderPreferenceEnum.Enabled
},
SessionPersistenceConfiguration = new Oci.LoadbalancerService.Models.SessionPersistenceConfigurationDetails
{
CookieName = "EXAMPLE-cookieName-Value",
DisableFallback = false
},
LbCookieSessionPersistenceConfiguration = new Oci.LoadbalancerService.Models.LBCookieSessionPersistenceConfigurationDetails
{
CookieName = "EXAMPLE-cookieName-Value",
DisableFallback = true,
Domain = "EXAMPLE-domain-Value",
Path = "EXAMPLE-path-Value",
MaxAgeInSeconds = 403,
IsSecure = true,
IsHttpOnly = false
}
}
}
},
NetworkSecurityGroupIds = new List<string>
{
"EXAMPLE--Value"
},
SubnetIds = new List<string>
{
"EXAMPLE--Value"
},
Certificates = new Dictionary<string, Oci.LoadbalancerService.Models.CertificateDetails>()
{
{
"EXAMPLE_KEY_nrzWp",
new Oci.LoadbalancerService.Models.CertificateDetails
{
Passphrase = "EXAMPLE-passphrase-Value",
PrivateKey = "EXAMPLE-privateKey-Value",
PublicCertificate = "EXAMPLE-publicCertificate-Value",
CaCertificate = "EXAMPLE-caCertificate-Value",
CertificateName = "EXAMPLE-certificateName-Value"
}
}
},
SslCipherSuites = new Dictionary<string, Oci.LoadbalancerService.Models.SSLCipherSuiteDetails>()
{
{
"EXAMPLE_KEY_ASMqq",
new Oci.LoadbalancerService.Models.SSLCipherSuiteDetails
{
Name = "EXAMPLE-name-Value",
Ciphers = new List<string>
{
"EXAMPLE--Value"
}
}
}
},
PathRouteSets = new Dictionary<string, Oci.LoadbalancerService.Models.PathRouteSetDetails>()
{
{
"EXAMPLE_KEY_ojNBd",
new Oci.LoadbalancerService.Models.PathRouteSetDetails
{
PathRoutes = new List<Oci.LoadbalancerService.Models.PathRoute>
{
new Oci.LoadbalancerService.Models.PathRoute
{
Path = "EXAMPLE-path-Value",
PathMatchType = new Oci.LoadbalancerService.Models.PathMatchType
{
MatchType = Oci.LoadbalancerService.Models.PathMatchType.MatchTypeEnum.PrefixMatch
},
BackendSetName = "EXAMPLE-backendSetName-Value"
}
}
}
}
},
FreeformTags = new Dictionary<string, string>()
{
{
"EXAMPLE_KEY_uEYQx",
"EXAMPLE_VALUE_JSupsKKQVP0fAWUZwHx2"
}
},
DefinedTags = new Dictionary<string, Dictionary<string, Object>>()
{
{
"EXAMPLE_KEY_qfBCg",
new Dictionary<string, Object>()
{
{
"EXAMPLE_KEY_gdvwp",
"EXAMPLE--Value"
}
}
}
},
SecurityAttributes = new Dictionary<string, Dictionary<string, Object>>()
{
{
"EXAMPLE_KEY_4r9RE",
new Dictionary<string, Object>()
{
{
"EXAMPLE_KEY_EOaQq",
"EXAMPLE--Value"
}
}
}
},
RuleSets = new Dictionary<string, Oci.LoadbalancerService.Models.RuleSetDetails>()
{
{
"EXAMPLE_KEY_c89pB",
new Oci.LoadbalancerService.Models.RuleSetDetails
{
Items = new List<Oci.LoadbalancerService.Models.Rule>
{
new Oci.LoadbalancerService.Models.RedirectRule
{
ResponseCode = 303,
Conditions = new List<Oci.LoadbalancerService.Models.RuleCondition>
{
new Oci.LoadbalancerService.Models.SourceVcnIdCondition
{
AttributeValue = "EXAMPLE-attributeValue-Value"
}
},
RedirectUri = new Oci.LoadbalancerService.Models.RedirectUri
{
Protocol = "EXAMPLE-protocol-Value",
Host = "EXAMPLE-host-Value",
Port = 6684,
Path = "EXAMPLE-path-Value",
Query = "EXAMPLE-query-Value"
}
}
}
}
}
}
};
var createLoadBalancerRequest = new Oci.LoadbalancerService.Requests.CreateLoadBalancerRequest
{
CreateLoadBalancerDetails = createLoadBalancerDetails,
OpcRequestId = "P2SYUTPVKDUITENVJPKU<unique_ID>",
OpcRetryToken = "EXAMPLE-opcRetryToken-Value"
};
// Create a default authentication provider that uses the DEFAULT
// profile in the configuration file.
// Refer to <see href="https://docs.cloud.oracle.com/en-us/iaas/Content/API/Concepts/sdkconfig.htm#SDK_and_CLI_Configuration_File>the public documentation</see> on how to prepare a configuration file.
var provider = new ConfigFileAuthenticationDetailsProvider("DEFAULT");
try
{
// Create a service client and send the request.
using (var client = new LoadBalancerClient(provider, new ClientConfiguration()))
{
var response = await client.CreateLoadBalancer(createLoadBalancerRequest);
// Retrieve value from the response.
var versionValue = response.httpResponseMessage.Version;
}
}
catch (Exception e)
{
Console.WriteLine($"CreateLoadBalancer Failed with {e.Message}");
throw e;
}
}
}
}