// 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 = 6942,
MaximumBandwidthInMbps = 550
},
IsPrivate = true,
IsDeleteProtectionEnabled = true,
IpMode = Oci.LoadbalancerService.Models.CreateLoadBalancerDetails.IpModeEnum.Ipv4,
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_rxAUH",
new Oci.LoadbalancerService.Models.ListenerDetails
{
DefaultBackendSetName = "EXAMPLE-defaultBackendSetName-Value",
Port = 23245,
Protocol = "EXAMPLE-protocol-Value",
HostnameNames = new List<string>
{
"EXAMPLE--Value"
},
PathRouteSetName = "EXAMPLE-pathRouteSetName-Value",
SslConfiguration = new Oci.LoadbalancerService.Models.SSLConfigurationDetails
{
VerifyDepth = 666,
VerifyPeerCertificate = true,
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.Enabled
},
ConnectionConfiguration = new Oci.LoadbalancerService.Models.ConnectionConfiguration
{
IdleTimeout = 967,
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_ujtfG",
new Oci.LoadbalancerService.Models.HostnameDetails
{
Name = "EXAMPLE-name-Value",
Hostname = "EXAMPLE-hostname-Value"
}
}
},
BackendSets = new Dictionary<string, Oci.LoadbalancerService.Models.BackendSetDetails>()
{
{
"EXAMPLE_KEY_xXbYu",
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 = 56096,
Weight = 432,
MaxConnections = 50312,
Backup = false,
Drain = true,
Offline = true
}
},
BackendMaxConnections = 9789,
HealthChecker = new Oci.LoadbalancerService.Models.HealthCheckerDetails
{
Protocol = "EXAMPLE-protocol-Value",
UrlPath = "EXAMPLE-urlPath-Value",
Port = 8910,
ReturnCode = 38,
Retries = 287,
TimeoutInMillis = 367429,
IntervalInMillis = 1200416,
ResponseBodyRegex = "EXAMPLE-responseBodyRegex-Value",
IsForcePlainText = true
},
SslConfiguration = new Oci.LoadbalancerService.Models.SSLConfigurationDetails
{
VerifyDepth = 542,
VerifyPeerCertificate = false,
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 = true
},
LbCookieSessionPersistenceConfiguration = new Oci.LoadbalancerService.Models.LBCookieSessionPersistenceConfigurationDetails
{
CookieName = "EXAMPLE-cookieName-Value",
DisableFallback = false,
Domain = "EXAMPLE-domain-Value",
Path = "EXAMPLE-path-Value",
MaxAgeInSeconds = 125,
IsSecure = true,
IsHttpOnly = true
}
}
}
},
NetworkSecurityGroupIds = new List<string>
{
"EXAMPLE--Value"
},
SubnetIds = new List<string>
{
"EXAMPLE--Value"
},
Certificates = new Dictionary<string, Oci.LoadbalancerService.Models.CertificateDetails>()
{
{
"EXAMPLE_KEY_AeOOV",
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_8OWRD",
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_ZkJGT",
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_HQYmo",
"EXAMPLE_VALUE_NfaGDdrANhq0jTgQYYdv"
}
},
DefinedTags = new Dictionary<string, Dictionary<string, Object>>()
{
{
"EXAMPLE_KEY_v6yso",
new Dictionary<string, Object>()
{
{
"EXAMPLE_KEY_4sLDM",
"EXAMPLE--Value"
}
}
}
},
SecurityAttributes = new Dictionary<string, Dictionary<string, Object>>()
{
{
"EXAMPLE_KEY_owPgy",
new Dictionary<string, Object>()
{
{
"EXAMPLE_KEY_XnNAe",
"EXAMPLE--Value"
}
}
}
},
RuleSets = new Dictionary<string, Oci.LoadbalancerService.Models.RuleSetDetails>()
{
{
"EXAMPLE_KEY_SNhq9",
new Oci.LoadbalancerService.Models.RuleSetDetails
{
Items = new List<Oci.LoadbalancerService.Models.Rule>
{
new Oci.LoadbalancerService.Models.HttpHeaderRule
{
AreInvalidCharactersAllowed = false,
HttpLargeHeaderSizeInKB = 168
}
}
}
}
}
};
var createLoadBalancerRequest = new Oci.LoadbalancerService.Requests.CreateLoadBalancerRequest
{
CreateLoadBalancerDetails = createLoadBalancerDetails,
OpcRequestId = "WMBV0VHXUHXPPBFSYIAJ<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;
}
}
}
}