// 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.OdaService;
using Oci.Common;
using Oci.Common.Auth;

namespace Oci.Sdk.DotNet.Example.Oda
{
    public class BulkCreateSkillEntitiesExample
    {
        public static async Task Main()
        {
            // Create a request and dependent object(s).
			var bulkCreateSkillEntitiesDetails = new Oci.OdaService.Models.BulkCreateSkillEntitiesDetails
			{
				Items = new List<Oci.OdaService.Models.CreateSkillEntityDetails>
				{
					new Oci.OdaService.Models.CreateSkillCompositeEntityDetails
					{
						Attributes = new List<Oci.OdaService.Models.EntityAttribute>
						{
							new Oci.OdaService.Models.EntityAttribute
							{
								Name = "EXAMPLE-name-Value",
								Type = Oci.OdaService.Models.EntityAttributeType.AttributeReference,
								NaturalLanguageMapping = new Oci.OdaService.Models.EntityAttributeNaturalLanguageMapping
								{
									Languages = new List<Oci.OdaService.Models.LanguageMapping>
									{
										new Oci.OdaService.Models.LanguageMapping
										{
											LanguageTag = "EXAMPLE-languageTag-Value",
											PrimaryName = "EXAMPLE-primaryName-Value",
											Names = new List<Oci.OdaService.Models.NameMapping>
											{
												new Oci.OdaService.Models.NameMapping
												{
													Name = "EXAMPLE-name-Value"
												}
											}
										}
									}
								},
								IsMultiValue = false,
								IsFuzzyMatch = false,
								IsInvertComparisons = false,
								TemporalPreference = Oci.OdaService.Models.TemporalPreference.Past,
								EntityName = "EXAMPLE-entityName-Value"
							}
						},
						Actions = new List<Oci.OdaService.Models.EntityAction>
						{
							new Oci.OdaService.Models.EntityAction
							{
								Name = "EXAMPLE-name-Value",
								CrudType = "EXAMPLE-crudType-Value",
								NaturalLanguageMapping = new Oci.OdaService.Models.EntityActionNaturalLanguageMapping
								{
									Languages = new List<Oci.OdaService.Models.LanguageMapping>
									{
										new Oci.OdaService.Models.LanguageMapping
										{
											LanguageTag = "EXAMPLE-languageTag-Value",
											PrimaryName = "EXAMPLE-primaryName-Value",
											Names = new List<Oci.OdaService.Models.NameMapping>
											{
												new Oci.OdaService.Models.NameMapping
												{
													Name = "EXAMPLE-name-Value"
												}
											}
										}
									}
								},
								Arguments = new List<Oci.OdaService.Models.EntityActionArgument>
								{
									new Oci.OdaService.Models.EntityActionArgument
									{
										Name = "EXAMPLE-name-Value",
										Type = Oci.OdaService.Models.EntityAttributeType.Entity,
										MetaType = "EXAMPLE-metaType-Value",
										NaturalLanguageMapping = new Oci.OdaService.Models.EntityActionArgumentNaturalLanguageMapping
										{
											Languages = new List<Oci.OdaService.Models.LanguageMapping>
											{
												new Oci.OdaService.Models.LanguageMapping
												{
													LanguageTag = "EXAMPLE-languageTag-Value",
													PrimaryName = "EXAMPLE-primaryName-Value",
													Names = new List<Oci.OdaService.Models.NameMapping>
													{
														new Oci.OdaService.Models.NameMapping
														{
															Name = "EXAMPLE-name-Value"
														}
													}
												}
											}
										},
										IsMultiValue = false,
										EntityName = "EXAMPLE-entityName-Value"
									}
								}
							}
						},
						NaturalLanguageMapping = new Oci.OdaService.Models.EntityNaturalLanguageMapping
						{
							Languages = new List<Oci.OdaService.Models.LanguageMapping>
							{
								new Oci.OdaService.Models.LanguageMapping
								{
									LanguageTag = "EXAMPLE-languageTag-Value",
									PrimaryName = "EXAMPLE-primaryName-Value",
									Names = new List<Oci.OdaService.Models.NameMapping>
									{
										new Oci.OdaService.Models.NameMapping
										{
											Name = "EXAMPLE-name-Value"
										}
									}
								}
							}
						},
						Name = "EXAMPLE-name-Value"
					}
				}
			};
			var bulkCreateSkillEntitiesRequest = new Oci.OdaService.Requests.BulkCreateSkillEntitiesRequest
			{
				OdaInstanceId = "ocid1.test.oc1..<unique_ID>EXAMPLE-odaInstanceId-Value",
				SkillId = "ocid1.test.oc1..<unique_ID>EXAMPLE-skillId-Value",
				BulkCreateSkillEntitiesDetails = bulkCreateSkillEntitiesDetails,
				OpcRequestId = "L060POXRS3OBHR0WLF2G<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 ManagementClient(provider, new ClientConfiguration()))
				{
					var response = await client.BulkCreateSkillEntities(bulkCreateSkillEntitiesRequest);
					// Retrieve value from the response.
					var versionValue = response.httpResponseMessage.Version;
				}
            }
            catch (Exception e)
            {
                Console.WriteLine($"BulkCreateSkillEntities Failed with {e.Message}");
                throw e;
            }
        }

    }
}