diff --git a/src/ApiGenerator/ApiGenerator.csproj b/src/ApiGenerator/ApiGenerator.csproj index e270485685..ea7bd766f9 100644 --- a/src/ApiGenerator/ApiGenerator.csproj +++ b/src/ApiGenerator/ApiGenerator.csproj @@ -1,4 +1,4 @@ - + Exe @@ -9,6 +9,7 @@ true + diff --git a/src/ApiGenerator/Configuration/CodeConfiguration.cs b/src/ApiGenerator/Configuration/CodeConfiguration.cs index 309757a0d7..2a6db3f9d4 100644 --- a/src/ApiGenerator/Configuration/CodeConfiguration.cs +++ b/src/ApiGenerator/Configuration/CodeConfiguration.cs @@ -31,11 +31,19 @@ using System.IO; using System.Linq; using System.Text.RegularExpressions; +using GlobExpressions; namespace ApiGenerator.Configuration { public static class CodeConfiguration - { + { + private static readonly Glob[] OperationsToInclude = + { + // e.g. new Glob("nodes.*"), + }; + + public static bool IncludeOperation(string name) => OperationsToInclude.Any(g => g.IsMatch(name)); + /// /// Map API default names for API's we are only supporting on the low level client first /// diff --git a/src/ApiGenerator/Configuration/GeneratorLocations.cs b/src/ApiGenerator/Configuration/GeneratorLocations.cs index 3065a155a0..f97b7d80df 100644 --- a/src/ApiGenerator/Configuration/GeneratorLocations.cs +++ b/src/ApiGenerator/Configuration/GeneratorLocations.cs @@ -39,10 +39,15 @@ public static class GeneratorLocations public static string OpenSearchNetFolder { get; } = $@"{Root}../../src/OpenSearch.Net/"; public static string OpenSearchClientFolder { get; } = $@"{Root}../../src/OpenSearch.Client/"; - // @formatter:on — enable formatter after this line - public static string HighLevel(params string[] paths) => OpenSearchClientFolder + string.Join("/", paths); - public static string LowLevel(params string[] paths) => OpenSearchNetFolder + string.Join("/", paths); + public static string LowLevelGeneratedFolder { get; } = $"{OpenSearchNetFolder}_Generated/"; + + public static string HighLevelGeneratedFolder { get; } = $"{OpenSearchClientFolder}_Generated/"; + + // @formatter:on — enable formatter after this line + + public static string HighLevel(params string[] paths) => HighLevelGeneratedFolder + string.Join("/", paths); + public static string LowLevel(params string[] paths) => LowLevelGeneratedFolder + string.Join("/", paths); public static readonly Assembly Assembly = typeof(Generator.ApiGenerator).Assembly; diff --git a/src/ApiGenerator/Generator/ApiEndpointFactory.cs b/src/ApiGenerator/Generator/ApiEndpointFactory.cs index 8f3b492fdb..2698510c4f 100644 --- a/src/ApiGenerator/Generator/ApiEndpointFactory.cs +++ b/src/ApiGenerator/Generator/ApiEndpointFactory.cs @@ -141,7 +141,7 @@ private static string GetOpenSearchType(JsonSchema schema) while (schema.HasReference) schema = schema.Reference; if (schema.GetExtension("x-data-type") is string dataType) - return dataType; + return dataType == "array" ? "list" : dataType; return schema.Type switch { diff --git a/src/ApiGenerator/Generator/ApiGenerator.cs b/src/ApiGenerator/Generator/ApiGenerator.cs index e30861048f..9dae100585 100644 --- a/src/ApiGenerator/Generator/ApiGenerator.cs +++ b/src/ApiGenerator/Generator/ApiGenerator.cs @@ -29,9 +29,10 @@ using System; using System.Collections.Generic; using System.Collections.Immutable; +using System.IO; using System.Linq; - using System.Threading; - using System.Threading.Tasks; +using System.Threading; +using System.Threading.Tasks; using ApiGenerator.Configuration; using ApiGenerator.Domain; using ApiGenerator.Generator.Razor; @@ -42,11 +43,11 @@ namespace ApiGenerator.Generator { public class ApiGenerator { - public static List Warnings { get; private set; } = new List(); + public static List Warnings { get; private set; } = new(); public static async Task Generate(bool lowLevelOnly, RestApiSpec spec, CancellationToken token) { - static async Task DoGenerate(ICollection generators, RestApiSpec restApiSpec, bool highLevel, CancellationToken token) + async Task DoGenerate(IReadOnlyCollection generators, bool highLevel) { var pbarOpts = new ProgressBarOptions { ProgressCharacter = '─', BackgroundColor = ConsoleColor.Yellow }; var message = $"Generating {(highLevel ? "high" : "low")} level code"; @@ -54,36 +55,39 @@ static async Task DoGenerate(ICollection generators, RestApi foreach (var generator in generators) { pbar.Message = "Generating " + generator.Title; - await generator.Generate(restApiSpec, pbar, token); + await generator.Generate(spec, pbar, token); pbar.Tick("Generated " + generator.Title); } } + RecursiveDelete(GeneratorLocations.LowLevelGeneratedFolder); + await DoGenerate( + new RazorGeneratorBase[] { + //low level client + new LowLevelClientInterfaceGenerator(), + new LowLevelClientImplementationGenerator(), + new RequestParametersGenerator(), + new EnumsGenerator() + }, + highLevel: false + ); - var lowLevelGenerators = new List - { - //low level client - new LowLevelClientInterfaceGenerator(), - new LowLevelClientImplementationGenerator(), - new RequestParametersGenerator(), - new EnumsGenerator(), - new ApiUrlsLookupsGenerator(), - }; - - var highLevelGenerators = new List - { - //high level client - new HighLevelClientInterfaceGenerator(), - new HighLevelClientImplementationGenerator(), - new DescriptorsGenerator(), - new RequestsGenerator(), - }; + if (lowLevelOnly) return; - await DoGenerate(lowLevelGenerators, spec, highLevel: false, token); - if (!lowLevelOnly) - await DoGenerate(highLevelGenerators, spec, highLevel: true, token); - - } + RecursiveDelete(GeneratorLocations.HighLevelGeneratedFolder); + await DoGenerate( + new RazorGeneratorBase[] + { + //high level client + new ApiUrlsLookupsGenerator(), + new HighLevelClientInterfaceGenerator(), + new HighLevelClientImplementationGenerator(), + new DescriptorsGenerator(), + new RequestsGenerator(), + }, + highLevel: true + ); + } public static async Task CreateRestApiSpecModel(CancellationToken token = default) { @@ -93,10 +97,18 @@ public static async Task CreateRestApiSpecModel(CancellationToken t .Select(kv => new { HttpPath = kv.Key, PathItem = kv.Value }) .SelectMany(p => p.PathItem.Select(kv => new { p.HttpPath, p.PathItem, HttpMethod = kv.Key, Operation = kv.Value })) .GroupBy(o => o.Operation.ExtensionData["x-operation-group"].ToString()) + .Where(o => CodeConfiguration.IncludeOperation(o.Key)) .Select(o => ApiEndpointFactory.From(o.Key, o.Select(i => (i.HttpPath, i.PathItem, i.HttpMethod, i.Operation)).ToList())) .ToImmutableSortedDictionary(e => e.Name, e => e); return new RestApiSpec { Endpoints = endpoints }; } + + private static void RecursiveDelete(string path) + { + if (!Directory.Exists(path)) return; + + Directory.Delete(path, true); + } } } diff --git a/src/ApiGenerator/Generator/Razor/ApiUrlsLookupsGenerator.cs b/src/ApiGenerator/Generator/Razor/ApiUrlsLookupsGenerator.cs index c0a2fef2bd..3a05ab54fb 100644 --- a/src/ApiGenerator/Generator/Razor/ApiUrlsLookupsGenerator.cs +++ b/src/ApiGenerator/Generator/Razor/ApiUrlsLookupsGenerator.cs @@ -41,7 +41,7 @@ public class ApiUrlsLookupsGenerator : RazorGeneratorBase public override async Task Generate(RestApiSpec spec, ProgressBar progressBar, CancellationToken token) { var view = ViewLocations.HighLevel("Requests", "ApiUrlsLookup.cshtml"); - var target = GeneratorLocations.HighLevel("_Generated", "ApiUrlsLookup.generated.cs"); + var target = GeneratorLocations.HighLevel("ApiUrlsLookup.cs"); await DoRazor(spec, view, target, token); } diff --git a/src/ApiGenerator/Generator/Razor/DescriptorsGenerator.cs b/src/ApiGenerator/Generator/Razor/DescriptorsGenerator.cs index 523ea35145..4ea3773855 100644 --- a/src/ApiGenerator/Generator/Razor/DescriptorsGenerator.cs +++ b/src/ApiGenerator/Generator/Razor/DescriptorsGenerator.cs @@ -42,11 +42,7 @@ public class DescriptorsGenerator : RazorGeneratorBase public override async Task Generate(RestApiSpec spec, ProgressBar progressBar, CancellationToken token) { - // Delete existing files - foreach (var file in Directory.GetFiles(GeneratorLocations.OpenSearchClientFolder, "Descriptors.*.cs")) - File.Delete(file); - - var view = ViewLocations.HighLevel("Descriptors", "RequestDescriptorBase.cshtml"); + var view = ViewLocations.HighLevel("Descriptors", "RequestDescriptorBase.cshtml"); var target = GeneratorLocations.HighLevel("Descriptors.cs"); await DoRazor(spec, view, target, token); diff --git a/src/ApiGenerator/Generator/Razor/EnumsGenerator.cs b/src/ApiGenerator/Generator/Razor/EnumsGenerator.cs index 74d3c56830..46b45e65d8 100644 --- a/src/ApiGenerator/Generator/Razor/EnumsGenerator.cs +++ b/src/ApiGenerator/Generator/Razor/EnumsGenerator.cs @@ -40,8 +40,8 @@ public class EnumsGenerator : RazorGeneratorBase public override async Task Generate(RestApiSpec spec, ProgressBar progressBar, CancellationToken token) { - var view = ViewLocations.LowLevel("Enums.Generated.cshtml"); - var target = GeneratorLocations.LowLevel("Api", "Enums.Generated.cs"); + var view = ViewLocations.LowLevel("Enums.cshtml"); + var target = GeneratorLocations.LowLevel("Api", "Enums.cs"); await DoRazor(spec, view, target, token); } diff --git a/src/ApiGenerator/Generator/Razor/HighLevelClientImplementationGenerator.cs b/src/ApiGenerator/Generator/Razor/HighLevelClientImplementationGenerator.cs index eacbe058e8..362396187d 100644 --- a/src/ApiGenerator/Generator/Razor/HighLevelClientImplementationGenerator.cs +++ b/src/ApiGenerator/Generator/Razor/HighLevelClientImplementationGenerator.cs @@ -43,11 +43,7 @@ public class HighLevelClientImplementationGenerator : RazorGeneratorBase public override async Task Generate(RestApiSpec spec, ProgressBar progressBar, CancellationToken token) { - // Delete existing files - foreach (var file in Directory.GetFiles(GeneratorLocations.OpenSearchClientFolder, "OpenSearchClient.*.cs")) - File.Delete(file); - - var view = ViewLocations.HighLevel("Client", "Implementation", "OpenSearchClient.cshtml"); + var view = ViewLocations.HighLevel("Client", "Implementation", "OpenSearchClient.cshtml"); var target = GeneratorLocations.HighLevel($"OpenSearchClient.{CsharpNames.RootNamespace}.cs"); await DoRazor(spec, view, target, token); diff --git a/src/ApiGenerator/Generator/Razor/HighLevelClientInterfaceGenerator.cs b/src/ApiGenerator/Generator/Razor/HighLevelClientInterfaceGenerator.cs index b9957db2f5..1c6aafb7ac 100644 --- a/src/ApiGenerator/Generator/Razor/HighLevelClientInterfaceGenerator.cs +++ b/src/ApiGenerator/Generator/Razor/HighLevelClientInterfaceGenerator.cs @@ -41,7 +41,7 @@ public class HighLevelClientInterfaceGenerator : RazorGeneratorBase public override async Task Generate(RestApiSpec spec, ProgressBar progressBar, CancellationToken token) { var view = ViewLocations.HighLevel("Client", "Interface", "IOpenSearchClient.cshtml"); - var target = GeneratorLocations.HighLevel("IOpenSearchClient.Generated.cs"); + var target = GeneratorLocations.HighLevel("IOpenSearchClient.cs"); await DoRazor(spec, view, target, token); } diff --git a/src/ApiGenerator/Generator/Razor/LowLevelClientImplementationGenerator.cs b/src/ApiGenerator/Generator/Razor/LowLevelClientImplementationGenerator.cs index da174b21db..f9a9038fc1 100644 --- a/src/ApiGenerator/Generator/Razor/LowLevelClientImplementationGenerator.cs +++ b/src/ApiGenerator/Generator/Razor/LowLevelClientImplementationGenerator.cs @@ -43,11 +43,7 @@ public class LowLevelClientImplementationGenerator : RazorGeneratorBase public override async Task Generate(RestApiSpec spec, ProgressBar progressBar, CancellationToken token) { - // Delete existing files - foreach (var file in Directory.GetFiles(GeneratorLocations.OpenSearchNetFolder, "OpenSearchLowLevelClient.*.cs")) - File.Delete(file); - - var view = ViewLocations.LowLevel("Client", "Implementation", "OpenSearchLowLevelClient.cshtml"); + var view = ViewLocations.LowLevel("Client", "Implementation", "OpenSearchLowLevelClient.cshtml"); var target = GeneratorLocations.LowLevel($"OpenSearchLowLevelClient.{CsharpNames.RootNamespace}.cs"); await DoRazor(spec, view, target, token); diff --git a/src/ApiGenerator/Generator/Razor/LowLevelClientInterfaceGenerator.cs b/src/ApiGenerator/Generator/Razor/LowLevelClientInterfaceGenerator.cs index 6340b66b35..1d18a5204a 100644 --- a/src/ApiGenerator/Generator/Razor/LowLevelClientInterfaceGenerator.cs +++ b/src/ApiGenerator/Generator/Razor/LowLevelClientInterfaceGenerator.cs @@ -41,7 +41,7 @@ public class LowLevelClientInterfaceGenerator : RazorGeneratorBase public override async Task Generate(RestApiSpec spec, ProgressBar progressBar, CancellationToken token) { var view = ViewLocations.LowLevel("Client", "Interface", "IOpenSearchLowLevelClient.cshtml"); - var target = GeneratorLocations.LowLevel("IOpenSearchLowLevelClient.Generated.cs"); + var target = GeneratorLocations.LowLevel("IOpenSearchLowLevelClient.cs"); await DoRazor(spec, view, target, token); } diff --git a/src/ApiGenerator/Generator/Razor/RazorGeneratorBase.cs b/src/ApiGenerator/Generator/Razor/RazorGeneratorBase.cs index 8a4ef0200a..26696a8e8a 100644 --- a/src/ApiGenerator/Generator/Razor/RazorGeneratorBase.cs +++ b/src/ApiGenerator/Generator/Razor/RazorGeneratorBase.cs @@ -93,7 +93,10 @@ protected static void WriteFormattedCsharpFile(string path, string contents) var tree = CSharpSyntaxTree.ParseText(contents); var root = tree.GetRoot().NormalizeWhitespace(indentation:"\t", "\n"); contents = root.ToFullString(); - File.WriteAllText(path, contents); + + if (Directory.GetParent(path) is { Exists: false } dir) dir.Create(); + + File.WriteAllText(path, contents); } public abstract string Title { get; } diff --git a/src/ApiGenerator/Generator/Razor/RequestParametersGenerator.cs b/src/ApiGenerator/Generator/Razor/RequestParametersGenerator.cs index 05d3609acc..0edd2cd9ac 100644 --- a/src/ApiGenerator/Generator/Razor/RequestParametersGenerator.cs +++ b/src/ApiGenerator/Generator/Razor/RequestParametersGenerator.cs @@ -42,11 +42,7 @@ public class RequestParametersGenerator : RazorGeneratorBase public override async Task Generate(RestApiSpec spec, ProgressBar progressBar, CancellationToken token) { - // Delete existing files - foreach (var file in Directory.GetFiles(GeneratorLocations.OpenSearchNetFolder, "RequestParameters.*.cs")) - File.Delete(file); - - var view = ViewLocations.LowLevel("RequestParameters", "RequestParameters.cshtml"); + var view = ViewLocations.LowLevel("RequestParameters", "RequestParameters.cshtml"); string Target(string id) => GeneratorLocations.LowLevel("Api", "RequestParameters", $"RequestParameters.{id}.cs"); var namespaced = spec.EndpointsPerNamespaceLowLevel.ToList(); diff --git a/src/ApiGenerator/Generator/Razor/RequestsGenerator.cs b/src/ApiGenerator/Generator/Razor/RequestsGenerator.cs index 60ca992f73..dc54bf101f 100644 --- a/src/ApiGenerator/Generator/Razor/RequestsGenerator.cs +++ b/src/ApiGenerator/Generator/Razor/RequestsGenerator.cs @@ -42,10 +42,6 @@ public class RequestsGenerator : RazorGeneratorBase public override async Task Generate(RestApiSpec spec, ProgressBar progressBar, CancellationToken token) { - // Delete existing files - foreach (var file in Directory.GetFiles(GeneratorLocations.OpenSearchClientFolder, "Requests.*.cs")) - File.Delete(file); - var view = ViewLocations.HighLevel("Requests", "PlainRequestBase.cshtml"); var target = GeneratorLocations.HighLevel("Requests.cs"); await DoRazor(spec, view, target, token); diff --git a/src/ApiGenerator/OpenSearch.openapi.json b/src/ApiGenerator/OpenSearch.openapi.json index 6ca528e451..dad791663a 100644 --- a/src/ApiGenerator/OpenSearch.openapi.json +++ b/src/ApiGenerator/OpenSearch.openapi.json @@ -112,7 +112,7 @@ "type": "string", "pattern": "^(?!_|template|query|field|point|clear|usage|stats|hot|reload|painless)", "description": "Comma-separated list of alias names.", - "x-data-type": "list" + "x-data-type": "array" }, "required": true }, @@ -177,7 +177,7 @@ "type": "string", "pattern": "^(?!_|template|query|field|point|clear|usage|stats|hot|reload|painless)", "description": "Comma-separated list of alias names.", - "x-data-type": "list" + "x-data-type": "array" }, "required": true }, @@ -242,7 +242,8 @@ "$ref": "#/components/schemas/IndicesUpdateAliases_BodyParams" } } - } + }, + "required": true }, "parameters": [ { @@ -289,15 +290,6 @@ "application/json": { "schema": { "$ref": "#/components/schemas/IndicesUpdateAliasesResponseContent" - }, - "examples": { - "IndicesUpdateAliases_example1": { - "summary": "Examples for Post Aliases Operation.", - "description": "", - "value": { - "acknowledged": true - } - } } } } @@ -381,7 +373,8 @@ "$ref": "#/components/schemas/Bulk_BodyParams" } } - } + }, + "required": true }, "parameters": [ { @@ -511,7 +504,8 @@ "$ref": "#/components/schemas/Bulk_BodyParams" } } - } + }, + "required": true }, "parameters": [ { @@ -882,7 +876,7 @@ "type": "string", "pattern": "^(?!_|template|query|field|point|clear|usage|stats|hot|reload|painless)", "description": "Comma-separated list of alias names.", - "x-data-type": "list" + "x-data-type": "array" }, "required": true }, @@ -1103,7 +1097,7 @@ "type": "string", "pattern": "^(?!_|template|query|field|point|clear|usage|stats|hot|reload|painless)", "description": "Comma-separated list of node IDs or names to limit the returned information.", - "x-data-type": "list" + "x-data-type": "array" }, "required": true }, @@ -1417,7 +1411,7 @@ "type": "string", "pattern": "^(?!_|template|query|field|point|clear|usage|stats|hot|reload|painless)", "description": "Comma-separated list of indices to limit the returned information.", - "x-data-type": "list" + "x-data-type": "array" }, "required": true }, @@ -1599,7 +1593,7 @@ "type": "string", "pattern": "^(?!_|template|query|field|point|clear|usage|stats|hot|reload|painless)", "description": "Comma-separated list of fields to return the fielddata size.", - "x-data-type": "list" + "x-data-type": "array" }, "required": true }, @@ -1942,14 +1936,7 @@ ], "responses": { "200": { - "description": "CatIndices 200 response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CatIndicesOutputPayload" - } - } - } + "description": "CatIndices 200 response" } }, "x-operation-group": "cat.indices", @@ -1969,7 +1956,7 @@ "type": "string", "pattern": "^(?!_|template|query|field|point|clear|usage|stats|hot|reload|painless)", "description": "Comma-separated list of indices to limit the returned information.", - "x-data-type": "list" + "x-data-type": "array" }, "required": true, "examples": { @@ -2127,14 +2114,7 @@ ], "responses": { "200": { - "description": "CatIndices_WithIndex 200 response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CatIndices_WithIndexOutputPayload" - } - } - } + "description": "CatIndices_WithIndex 200 response" } }, "x-operation-group": "cat.indices", @@ -2499,14 +2479,7 @@ ], "responses": { "200": { - "description": "CatNodes 200 response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CatNodesOutputPayload" - } - } - } + "description": "CatNodes 200 response" } }, "x-operation-group": "cat.nodes", @@ -2882,7 +2855,7 @@ "type": "string", "pattern": "^(?!_|template|query|field|point|clear|usage|stats|hot|reload|painless)", "description": "Comma-separated list or wildcard expression of index names to limit the returned information.", - "x-data-type": "list" + "x-data-type": "array" }, "required": true }, @@ -3277,7 +3250,7 @@ "type": "string", "pattern": "^(?!_|template|query|field|point|clear|usage|stats|hot|reload|painless)", "description": "Comma-separated list or wildcard expression of index names to limit the returned information.", - "x-data-type": "list" + "x-data-type": "array" }, "required": true }, @@ -3544,7 +3517,7 @@ "type": "string", "pattern": "^(?!_|template|query|field|point|clear|usage|stats|hot|reload|painless)", "description": "Comma-separated list of indices to limit the returned information.", - "x-data-type": "list" + "x-data-type": "array" }, "required": true }, @@ -3788,7 +3761,7 @@ "type": "string", "pattern": "^(?!_|template|query|field|point|clear|usage|stats|hot|reload|painless)", "description": "Comma-separated list of indices to limit the returned information.", - "x-data-type": "list" + "x-data-type": "array" }, "required": true }, @@ -4042,7 +4015,7 @@ "type": "string", "pattern": "^(?!_|template|query|field|point|clear|usage|stats|hot|reload|painless)", "description": "Comma-separated list of repository names.", - "x-data-type": "list" + "x-data-type": "array" }, "required": true }, @@ -4650,7 +4623,7 @@ "type": "string", "pattern": "^(?!_|template|query|field|point|clear|usage|stats|hot|reload|painless)", "description": "Comma-separated list of regular-expressions to filter the thread pools in the output.", - "x-data-type": "list" + "x-data-type": "array" }, "required": true }, @@ -5100,7 +5073,7 @@ "type": "string", "pattern": "^(?!_|template|query|field|point|clear|usage|stats|hot|reload|painless)", "description": "Limit the information returned to specific indicies.", - "x-data-type": "list" + "x-data-type": "array" }, "required": true }, @@ -5427,7 +5400,7 @@ "type": "string", "pattern": "^(?!_|template|query|field|point|clear|usage|stats|hot|reload|painless)", "description": "Comma-separated list of node IDs or names to limit the returned information; use `_local` to return information from the node you're connecting to, leave empty to get information from all nodes.", - "x-data-type": "list" + "x-data-type": "array" }, "required": true }, @@ -5520,7 +5493,7 @@ "type": "string", "pattern": "^(?!_|template|query|field|point|clear|usage|stats|hot|reload|painless)", "description": "Comma-separated list of node IDs or names to limit the returned information; use `_local` to return information from the node you're connecting to, leave empty to get information from all nodes.", - "x-data-type": "list" + "x-data-type": "array" }, "required": true }, @@ -5942,7 +5915,8 @@ "$ref": "#/components/schemas/ClusterPutSettings_BodyParams" } } - } + }, + "required": true }, "parameters": [ { @@ -6143,7 +6117,7 @@ "cluster_manager_node", "version" ], - "x-data-type": "list" + "x-data-type": "array" }, "required": true }, @@ -6262,7 +6236,7 @@ "type": "string", "pattern": "^(?!_|template|query|field|point|clear|usage|stats|hot|reload|painless)", "description": "Comma-separated list of indices; use `_all` or empty string to perform the operation on all indices.", - "x-data-type": "list" + "x-data-type": "array" }, "required": true }, @@ -6285,7 +6259,7 @@ "cluster_manager_node", "version" ], - "x-data-type": "list" + "x-data-type": "array" }, "required": true }, @@ -6444,7 +6418,7 @@ "type": "string", "pattern": "^(?!_|template|query|field|point|clear|usage|stats|hot|reload|painless)", "description": "Comma-separated list of node IDs or names to limit the returned information; use `_local` to return information from the node you're connecting to, leave empty to get information from all nodes.", - "x-data-type": "list" + "x-data-type": "array" }, "required": true }, @@ -6685,7 +6659,7 @@ "type": "string", "pattern": "^(?!_|template|query|field|point|clear|usage|stats|hot|reload|painless)", "description": "The Comma-separated names of the component templates.", - "x-data-type": "list" + "x-data-type": "array" }, "required": true }, @@ -6795,7 +6769,8 @@ "$ref": "#/components/schemas/ClusterPutComponentTemplate_BodyParams" } } - } + }, + "required": true }, "parameters": [ { @@ -6878,7 +6853,8 @@ "$ref": "#/components/schemas/ClusterPutComponentTemplate_BodyParams" } } - } + }, + "required": true }, "parameters": [ { @@ -7471,7 +7447,7 @@ "type": "string", "pattern": "^(?!_|template|query|field|point|clear|usage|stats|hot|reload|painless)", "description": "Comma-separated list of data streams; use `_all` or empty string to perform the operation on all data streams.", - "x-data-type": "list" + "x-data-type": "array" }, "required": true } @@ -7496,7 +7472,7 @@ "type": "string", "pattern": "^(?!_|template|query|field|point|clear|usage|stats|hot|reload|painless)", "description": "Comma-separated list of data streams; use `_all` or empty string to perform the operation on all data streams.", - "x-data-type": "list" + "x-data-type": "array" }, "required": true } @@ -7560,7 +7536,7 @@ "type": "string", "pattern": "^(?!_|template|query|field|point|clear|usage|stats|hot|reload|painless)", "description": "Comma-separated list of data streams; use `_all` or empty string to perform the operation on all data streams.", - "x-data-type": "list" + "x-data-type": "array" }, "required": true } @@ -8330,7 +8306,7 @@ "type": "string", "pattern": "^(?!_|template|query|field|point|clear|usage|stats|hot|reload|painless)", "description": "Comma-separated names of the index templates.", - "x-data-type": "list" + "x-data-type": "array" }, "required": true }, @@ -8460,7 +8436,8 @@ "$ref": "#/components/schemas/IndicesPutIndexTemplate_BodyParams" } } - } + }, + "required": true }, "parameters": [ { @@ -8542,7 +8519,8 @@ "$ref": "#/components/schemas/IndicesPutIndexTemplate_BodyParams" } } - } + }, + "required": true }, "parameters": [ { @@ -8693,7 +8671,8 @@ "$ref": "#/components/schemas/IngestSimulate_BodyParams" } } - } + }, + "required": true }, "parameters": [ { @@ -8793,7 +8772,7 @@ "type": "string", "pattern": "^(?!_|template|query|field|point|clear|usage|stats|hot|reload|painless)", "description": "Comma-separated list of pipeline ids. Wildcards supported.", - "x-data-type": "list" + "x-data-type": "array" }, "required": true }, @@ -8845,7 +8824,8 @@ "$ref": "#/components/schemas/IngestPutPipeline_BodyParams" } } - } + }, + "required": true }, "parameters": [ { @@ -8950,7 +8930,8 @@ "$ref": "#/components/schemas/IngestSimulate_BodyParams" } } - } + }, + "required": true }, "parameters": [ { @@ -9101,7 +9082,7 @@ "type": "string", "pattern": "^(?!_|template|query|field|point|clear|usage|stats|hot|reload|painless)", "description": "Comma-separated list of fields.", - "x-data-type": "list" + "x-data-type": "array" }, "required": true }, @@ -9281,7 +9262,8 @@ "$ref": "#/components/schemas/Mget_BodyParams" } } - } + }, + "required": true }, "parameters": [ { @@ -9483,7 +9465,8 @@ "$ref": "#/components/schemas/Msearch_BodyParams" } } - } + }, + "required": true }, "parameters": [ { @@ -9639,7 +9622,8 @@ "$ref": "#/components/schemas/MsearchTemplate_BodyParams" } } - } + }, + "required": true }, "parameters": [ { @@ -10372,7 +10356,7 @@ "discovery", "indexing_pressure" ], - "x-data-type": "list" + "x-data-type": "array" }, "required": true }, @@ -10512,7 +10496,7 @@ "discovery", "indexing_pressure" ], - "x-data-type": "list" + "x-data-type": "array" }, "required": true }, @@ -10542,7 +10526,7 @@ "warmer", "suggest" ], - "x-data-type": "list" + "x-data-type": "array" }, "required": true }, @@ -10702,7 +10686,7 @@ "_all", "rest_actions" ], - "x-data-type": "list" + "x-data-type": "array" }, "required": true }, @@ -10741,7 +10725,7 @@ "pattern": "^(?!_|template|query|field|point|clear|usage|stats|hot|reload|painless)", "description": "Comma-separated list of node IDs or names to limit the returned information; use `_local` to return information from the node you're connecting to, leave empty to get information from all nodes.", "x-overloaded-param": "metric", - "x-data-type": "list" + "x-data-type": "array" }, "required": true }, @@ -10789,7 +10773,7 @@ "type": "string", "pattern": "^(?!_|template|query|field|point|clear|usage|stats|hot|reload|painless)", "description": "Comma-separated list of node IDs or names to limit the returned information; use `_local` to return information from the node you're connecting to, leave empty to get information from all nodes.", - "x-data-type": "list" + "x-data-type": "array" }, "required": true }, @@ -10879,7 +10863,7 @@ "type": "string", "pattern": "^(?!_|template|query|field|point|clear|usage|stats|hot|reload|painless)", "description": "Comma-separated list of node IDs or names to limit the returned information; use `_local` to return information from the node you're connecting to, leave empty to get information from all nodes.", - "x-data-type": "list" + "x-data-type": "array" }, "required": true }, @@ -10980,7 +10964,7 @@ "type": "string", "pattern": "^(?!_|template|query|field|point|clear|usage|stats|hot|reload|painless)", "description": "Comma-separated list of node IDs to span the reload/reinit call. Should stay empty because reloading usually involves all cluster nodes.", - "x-data-type": "list" + "x-data-type": "array" }, "required": true }, @@ -11018,7 +11002,7 @@ "type": "string", "pattern": "^(?!_|template|query|field|point|clear|usage|stats|hot|reload|painless)", "description": "Comma-separated list of node IDs or names to limit the returned information; use `_local` to return information from the node you're connecting to, leave empty to get information from all nodes.", - "x-data-type": "list" + "x-data-type": "array" }, "required": true }, @@ -11158,7 +11142,7 @@ "discovery", "indexing_pressure" ], - "x-data-type": "list" + "x-data-type": "array" }, "required": true }, @@ -11170,7 +11154,7 @@ "type": "string", "pattern": "^(?!_|template|query|field|point|clear|usage|stats|hot|reload|painless)", "description": "Comma-separated list of node IDs or names to limit the returned information; use `_local` to return information from the node you're connecting to, leave empty to get information from all nodes.", - "x-data-type": "list" + "x-data-type": "array" }, "required": true }, @@ -11310,7 +11294,7 @@ "discovery", "indexing_pressure" ], - "x-data-type": "list" + "x-data-type": "array" }, "required": true }, @@ -11340,7 +11324,7 @@ "warmer", "suggest" ], - "x-data-type": "list" + "x-data-type": "array" }, "required": true }, @@ -11352,7 +11336,7 @@ "type": "string", "pattern": "^(?!_|template|query|field|point|clear|usage|stats|hot|reload|painless)", "description": "Comma-separated list of node IDs or names to limit the returned information; use `_local` to return information from the node you're connecting to, leave empty to get information from all nodes.", - "x-data-type": "list" + "x-data-type": "array" }, "required": true }, @@ -11478,7 +11462,7 @@ "type": "string", "pattern": "^(?!_|template|query|field|point|clear|usage|stats|hot|reload|painless)", "description": "Comma-separated list of node IDs or names to limit the returned information; use `_local` to return information from the node you're connecting to, leave empty to get information from all nodes.", - "x-data-type": "list" + "x-data-type": "array" }, "required": true }, @@ -11520,7 +11504,7 @@ "_all", "rest_actions" ], - "x-data-type": "list" + "x-data-type": "array" }, "required": true }, @@ -11532,7 +11516,7 @@ "type": "string", "pattern": "^(?!_|template|query|field|point|clear|usage|stats|hot|reload|painless)", "description": "Comma-separated list of node IDs or names to limit the returned information; use `_local` to return information from the node you're connecting to, leave empty to get information from all nodes.", - "x-data-type": "list" + "x-data-type": "array" }, "required": true }, @@ -11570,7 +11554,7 @@ "type": "string", "pattern": "^(?!_|template|query|field|point|clear|usage|stats|hot|reload|painless)", "description": "Comma-separated list of node IDs or names to limit the returned information; use `_local` to return information from the node you're connecting to, leave empty to get information from all nodes.", - "x-data-type": "list" + "x-data-type": "array" }, "required": true }, @@ -11593,7 +11577,7 @@ "plugins", "ingest" ], - "x-data-type": "list" + "x-data-type": "array" }, "required": true }, @@ -11628,6 +11612,209 @@ "x-version-added": "1.0" } }, + "/_plugins/_security/api/tenants/": { + "get": { + "description": "Retrieves all tenants.", + "externalDocs": { + "description": "API Reference", + "url": "https://opensearch.org/docs/2.7/security/access-control/api/#get-tenants" + }, + "operationId": "GetTenants", + "responses": { + "200": { + "description": "GetTenants 200 response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetTenantsResponseContent" + } + } + } + } + }, + "x-operation-group": "security.get_tenants", + "x-version-added": "1.0" + }, + "patch": { + "description": "Add, delete, or modify multiple tenants in a single call.", + "externalDocs": { + "description": "API Reference", + "url": "https://opensearch.org/docs/2.7/security/access-control/api/#patch-tenants" + }, + "operationId": "PatchTenants", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PatchTenantsParams" + } + } + } + }, + "responses": { + "200": { + "description": "PatchTenants 200 response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PatchTenantsResponseContent" + } + } + } + } + }, + "x-operation-group": "security.patch_tenants", + "x-version-added": "1.0" + } + }, + "/_plugins/_security/api/tenants/{tenant}": { + "delete": { + "description": "Delete the specified tenant.", + "externalDocs": { + "description": "API Reference", + "url": "https://opensearch.org/docs/latest/security/access-control/api/#delete-action-group" + }, + "operationId": "DeleteTenant", + "parameters": [ + { + "name": "tenant", + "in": "path", + "schema": { + "type": "string" + }, + "required": true + } + ], + "responses": { + "200": { + "description": "DeleteTenant 200 response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeleteTenantResponseContent" + } + } + } + } + }, + "x-operation-group": "security.delete_tenant", + "x-version-added": "1.0" + }, + "get": { + "description": "Retrieves one tenant.", + "externalDocs": { + "description": "API Reference", + "url": "https://opensearch.org/docs/2.7/security/access-control/api/#get-tenant" + }, + "operationId": "GetTenant", + "parameters": [ + { + "name": "tenant", + "in": "path", + "schema": { + "type": "string" + }, + "required": true + } + ], + "responses": { + "200": { + "description": "GetTenant 200 response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetTenantResponseContent" + } + } + } + } + }, + "x-operation-group": "security.get_tenant", + "x-version-added": "1.0" + }, + "patch": { + "description": "Add, delete, or modify a single tenant.", + "externalDocs": { + "description": "API Reference", + "url": "https://opensearch.org/docs/2.7/security/access-control/api/#patch-tenant" + }, + "operationId": "PatchTenant", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PatchTenantParams" + } + } + } + }, + "parameters": [ + { + "name": "tenant", + "in": "path", + "schema": { + "type": "string" + }, + "required": true + } + ], + "responses": { + "200": { + "description": "PatchTenant 200 response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PatchTenantResponseContent" + } + } + } + } + }, + "x-operation-group": "security.patch_tenant", + "x-version-added": "1.0" + }, + "put": { + "description": "Creates or replaces the specified tenant.", + "externalDocs": { + "description": "API Reference", + "url": "https://opensearch.org/docs/2.7/security/access-control/api/#create-tenant" + }, + "operationId": "CreateTenant", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateTenantParams" + } + } + } + }, + "parameters": [ + { + "name": "tenant", + "in": "path", + "schema": { + "type": "string" + }, + "required": true + } + ], + "responses": { + "200": { + "description": "CreateTenant 200 response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateTenantResponseContent" + } + } + } + } + }, + "x-operation-group": "security.create_tenant", + "x-version-added": "1.0" + } + }, "/_rank_eval": { "get": { "description": "Allows to evaluate the quality of ranked search results over a set of typical search queries.", @@ -11690,7 +11877,8 @@ "$ref": "#/components/schemas/RankEval_BodyParams" } } - } + }, + "required": true }, "parameters": [ { @@ -11875,7 +12063,8 @@ "$ref": "#/components/schemas/Reindex_BodyParams" } } - } + }, + "required": true }, "parameters": [ { @@ -12055,7 +12244,8 @@ } } } - } + }, + "required": true }, "parameters": [ { @@ -12227,7 +12417,7 @@ "type": "string", "pattern": "^(?!_|template|query|field|point|clear|usage|stats|hot|reload|painless)", "description": "Comma-separated list of names or wildcard expressions.", - "x-data-type": "list" + "x-data-type": "array" }, "required": true }, @@ -12448,7 +12638,8 @@ "$ref": "#/components/schemas/PutScript_BodyParams" } } - } + }, + "required": true }, "parameters": [ { @@ -12521,7 +12712,8 @@ "$ref": "#/components/schemas/PutScript_BodyParams" } } - } + }, + "required": true }, "parameters": [ { @@ -12592,7 +12784,8 @@ "$ref": "#/components/schemas/PutScript_BodyParams" } } - } + }, + "required": true }, "parameters": [ { @@ -12672,7 +12865,8 @@ "$ref": "#/components/schemas/PutScript_BodyParams" } } - } + }, + "required": true }, "parameters": [ { @@ -13724,7 +13918,8 @@ "$ref": "#/components/schemas/DeletePit_BodyParams" } } - } + }, + "required": true }, "responses": { "200": { @@ -13916,7 +14111,7 @@ "pattern": "^(?!_|template|query|field|point|clear|usage|stats|hot|reload|painless)", "description": "Comma-separated list of scroll IDs to clear.", "deprecated": true, - "x-data-type": "list" + "x-data-type": "array" }, "required": true } @@ -14208,7 +14403,8 @@ "$ref": "#/components/schemas/SearchTemplate_BodyParams" } } - } + }, + "required": true }, "parameters": [ { @@ -14656,7 +14852,8 @@ "$ref": "#/components/schemas/IndicesPutSettings_BodyParams" } } - } + }, + "required": true }, "parameters": [ { @@ -14764,7 +14961,7 @@ "type": "string", "pattern": "^(?!_|template|query|field|point|clear|usage|stats|hot|reload|painless)", "description": "Comma-separated list of settings.", - "x-data-type": "list" + "x-data-type": "array" }, "required": true }, @@ -15043,7 +15240,7 @@ "type": "string", "pattern": "^(?!_|template|query|field|point|clear|usage|stats|hot|reload|painless)", "description": "Name of the snapshot repository to unregister. Wildcard (`*`) patterns are supported.", - "x-data-type": "list" + "x-data-type": "array" }, "required": true }, @@ -15104,7 +15301,7 @@ "type": "string", "pattern": "^(?!_|template|query|field|point|clear|usage|stats|hot|reload|painless)", "description": "Comma-separated list of repository names.", - "x-data-type": "list" + "x-data-type": "array" }, "required": true }, @@ -15162,7 +15359,8 @@ "$ref": "#/components/schemas/SnapshotCreateRepository_BodyParams" } } - } + }, + "required": true }, "parameters": [ { @@ -15244,7 +15442,8 @@ "$ref": "#/components/schemas/SnapshotCreateRepository_BodyParams" } } - } + }, + "required": true }, "parameters": [ { @@ -15598,7 +15797,7 @@ "type": "string", "pattern": "^(?!_|template|query|field|point|clear|usage|stats|hot|reload|painless)", "description": "Comma-separated list of snapshot names.", - "x-data-type": "list" + "x-data-type": "array" }, "required": true }, @@ -15833,7 +16032,8 @@ "$ref": "#/components/schemas/SnapshotClone_BodyParams" } } - } + }, + "required": true }, "parameters": [ { @@ -16013,7 +16213,7 @@ "type": "string", "pattern": "^(?!_|template|query|field|point|clear|usage|stats|hot|reload|painless)", "description": "Comma-separated list of snapshot names.", - "x-data-type": "list" + "x-data-type": "array" }, "required": true }, @@ -16214,7 +16414,7 @@ "warmer", "suggest" ], - "x-data-type": "list" + "x-data-type": "array" }, "required": true }, @@ -16756,7 +16956,7 @@ "type": "string", "pattern": "^(?!_|template|query|field|point|clear|usage|stats|hot|reload|painless)", "description": "Comma-separated names of the index templates.", - "x-data-type": "list" + "x-data-type": "array" }, "required": true }, @@ -16830,7 +17030,7 @@ "type": "string", "pattern": "^(?!_|template|query|field|point|clear|usage|stats|hot|reload|painless)", "description": "Comma-separated names of the index templates.", - "x-data-type": "list" + "x-data-type": "array" }, "required": true }, @@ -16887,7 +17087,8 @@ "$ref": "#/components/schemas/IndicesPutTemplate_BodyParams" } } - } + }, + "required": true }, "parameters": [ { @@ -16969,7 +17170,8 @@ "$ref": "#/components/schemas/IndicesPutTemplate_BodyParams" } } - } + }, + "required": true }, "parameters": [ { @@ -17653,7 +17855,7 @@ "type": "string", "pattern": "^(?!_|template|query|field|point|clear|usage|stats|hot|reload|painless)", "description": "Comma-separated list of indices to delete; use `_all` or `*` string to delete all indices.", - "x-data-type": "list" + "x-data-type": "array" }, "required": true, "examples": { @@ -17758,7 +17960,7 @@ "type": "string", "pattern": "^(?!_|template|query|field|point|clear|usage|stats|hot|reload|painless)", "description": "Comma-separated list of indices.", - "x-data-type": "list" + "x-data-type": "array" }, "required": true }, @@ -17870,7 +18072,7 @@ "type": "string", "pattern": "^(?!_|template|query|field|point|clear|usage|stats|hot|reload|painless)", "description": "Comma-separated list of indices.", - "x-data-type": "list" + "x-data-type": "array" }, "required": true }, @@ -18062,7 +18264,7 @@ "type": "string", "pattern": "^(?!_|template|query|field|point|clear|usage|stats|hot|reload|painless)", "description": "Comma-separated list of indices to filter aliases.", - "x-data-type": "list" + "x-data-type": "array" }, "required": true }, @@ -18129,7 +18331,7 @@ "type": "string", "pattern": "^(?!_|template|query|field|point|clear|usage|stats|hot|reload|painless)", "description": "Comma-separated list of indices; use `_all` or empty string to perform the operation on all indices.", - "x-data-type": "list" + "x-data-type": "array" }, "required": true }, @@ -18141,7 +18343,7 @@ "type": "string", "pattern": "^(?!_|template|query|field|point|clear|usage|stats|hot|reload|painless)", "description": "Comma-separated list of aliases to delete (supports wildcards); use `_all` to delete all aliases for the specified indices.", - "x-data-type": "list" + "x-data-type": "array" }, "required": true }, @@ -18202,7 +18404,7 @@ "type": "string", "pattern": "^(?!_|template|query|field|point|clear|usage|stats|hot|reload|painless)", "description": "Comma-separated list of indices to filter aliases.", - "x-data-type": "list" + "x-data-type": "array" }, "required": true }, @@ -18214,7 +18416,7 @@ "type": "string", "pattern": "^(?!_|template|query|field|point|clear|usage|stats|hot|reload|painless)", "description": "Comma-separated list of alias names.", - "x-data-type": "list" + "x-data-type": "array" }, "required": true }, @@ -18275,7 +18477,7 @@ "type": "string", "pattern": "^(?!_|template|query|field|point|clear|usage|stats|hot|reload|painless)", "description": "Comma-separated list of indices to filter aliases.", - "x-data-type": "list" + "x-data-type": "array" }, "required": true }, @@ -18287,7 +18489,7 @@ "type": "string", "pattern": "^(?!_|template|query|field|point|clear|usage|stats|hot|reload|painless)", "description": "Comma-separated list of alias names.", - "x-data-type": "list" + "x-data-type": "array" }, "required": true }, @@ -18357,7 +18559,7 @@ "type": "string", "pattern": "^(?!_|template|query|field|point|clear|usage|stats|hot|reload|painless)", "description": "Comma-separated list of indices; use `_all` or empty string to perform the operation on all indices.", - "x-data-type": "list" + "x-data-type": "array" }, "required": true }, @@ -18442,7 +18644,7 @@ "type": "string", "pattern": "^(?!_|template|query|field|point|clear|usage|stats|hot|reload|painless)", "description": "Comma-separated list of indices; use `_all` or empty string to perform the operation on all indices.", - "x-data-type": "list" + "x-data-type": "array" }, "required": true }, @@ -18516,7 +18718,7 @@ "type": "string", "pattern": "^(?!_|template|query|field|point|clear|usage|stats|hot|reload|painless)", "description": "Comma-separated list of indices; use `_all` or empty string to perform the operation on all indices.", - "x-data-type": "list" + "x-data-type": "array" }, "required": true }, @@ -18528,7 +18730,7 @@ "type": "string", "pattern": "^(?!_|template|query|field|point|clear|usage|stats|hot|reload|painless)", "description": "Comma-separated list of aliases to delete (supports wildcards); use `_all` to delete all aliases for the specified indices.", - "x-data-type": "list" + "x-data-type": "array" }, "required": true }, @@ -18598,7 +18800,7 @@ "type": "string", "pattern": "^(?!_|template|query|field|point|clear|usage|stats|hot|reload|painless)", "description": "Comma-separated list of indices; use `_all` or empty string to perform the operation on all indices.", - "x-data-type": "list" + "x-data-type": "array" }, "required": true }, @@ -18679,7 +18881,7 @@ "type": "string", "pattern": "^(?!_|template|query|field|point|clear|usage|stats|hot|reload|painless)", "description": "Comma-separated list of indices; use `_all` or empty string to perform the operation on all indices.", - "x-data-type": "list" + "x-data-type": "array" }, "required": true }, @@ -18834,7 +19036,7 @@ "type": "string", "pattern": "^(?!_|template|query|field|point|clear|usage|stats|hot|reload|painless)", "description": "Comma-separated list of indices to add a block to.", - "x-data-type": "list" + "x-data-type": "array" }, "required": true }, @@ -18932,7 +19134,8 @@ "$ref": "#/components/schemas/Bulk_BodyParams" } } - } + }, + "required": true }, "parameters": [ { @@ -19073,7 +19276,8 @@ "$ref": "#/components/schemas/Bulk_BodyParams" } } - } + }, + "required": true }, "parameters": [ { @@ -19218,7 +19422,7 @@ "type": "string", "pattern": "^(?!_|template|query|field|point|clear|usage|stats|hot|reload|painless)", "description": "Comma-separated list of indices; use `_all` or empty string to perform the operation on all indices.", - "x-data-type": "list" + "x-data-type": "array" }, "required": true }, @@ -19514,7 +19718,7 @@ "type": "string", "pattern": "^(?!_|template|query|field|point|clear|usage|stats|hot|reload|painless)", "description": "Comma-separated list of indices to close.", - "x-data-type": "list" + "x-data-type": "array" }, "required": true }, @@ -19612,7 +19816,7 @@ "type": "string", "pattern": "^(?!_|template|query|field|point|clear|usage|stats|hot|reload|painless)", "description": "Comma-separated list of indices to restrict the results.", - "x-data-type": "list" + "x-data-type": "array" }, "required": true }, @@ -19779,7 +19983,7 @@ "type": "string", "pattern": "^(?!_|template|query|field|point|clear|usage|stats|hot|reload|painless)", "description": "Comma-separated list of indices to restrict the results.", - "x-data-type": "list" + "x-data-type": "array" }, "required": true }, @@ -19937,7 +20141,8 @@ "$ref": "#/components/schemas/Create_BodyParams" } } - } + }, + "required": true }, "parameters": [ { @@ -20050,7 +20255,8 @@ "$ref": "#/components/schemas/Create_BodyParams" } } - } + }, + "required": true }, "parameters": [ { @@ -20165,7 +20371,8 @@ "$ref": "#/components/schemas/DeleteByQuery_BodyParams" } } - } + }, + "required": true }, "parameters": [ { @@ -20176,7 +20383,7 @@ "type": "string", "pattern": "^(?!_|template|query|field|point|clear|usage|stats|hot|reload|painless)", "description": "Comma-separated list of indices; use `_all` or empty string to perform the operation on all indices.", - "x-data-type": "list" + "x-data-type": "array" }, "required": true }, @@ -20549,7 +20756,8 @@ "$ref": "#/components/schemas/Index_BodyParams" } } - } + }, + "required": true }, "parameters": [ { @@ -21134,7 +21342,8 @@ "$ref": "#/components/schemas/Index_BodyParams" } } - } + }, + "required": true }, "parameters": [ { @@ -21281,7 +21490,8 @@ "$ref": "#/components/schemas/Index_BodyParams" } } - } + }, + "required": true }, "parameters": [ { @@ -21777,7 +21987,7 @@ "type": "string", "pattern": "^(?!_|template|query|field|point|clear|usage|stats|hot|reload|painless)", "description": "Comma-separated list of indices; use `_all` or empty string to perform the operation on all indices.", - "x-data-type": "list" + "x-data-type": "array" }, "required": true }, @@ -21861,7 +22071,7 @@ "type": "string", "pattern": "^(?!_|template|query|field|point|clear|usage|stats|hot|reload|painless)", "description": "Comma-separated list of indices; use `_all` or empty string to perform the operation on all indices.", - "x-data-type": "list" + "x-data-type": "array" }, "required": true }, @@ -21938,7 +22148,7 @@ "type": "string", "pattern": "^(?!_|template|query|field|point|clear|usage|stats|hot|reload|painless)", "description": "Comma-separated list of indices; use `_all` or empty string to perform the operation on all indices.", - "x-data-type": "list" + "x-data-type": "array" }, "required": true }, @@ -22008,7 +22218,7 @@ "type": "string", "pattern": "^(?!_|template|query|field|point|clear|usage|stats|hot|reload|painless)", "description": "Comma-separated list of indices; use `_all` or empty string to perform the operation on all indices.", - "x-data-type": "list" + "x-data-type": "array" }, "required": true }, @@ -22080,7 +22290,7 @@ "type": "string", "pattern": "^(?!_|template|query|field|point|clear|usage|stats|hot|reload|painless)", "description": "Comma-separated list of indices; use `_all` or empty string to perform the operation on all indices.", - "x-data-type": "list" + "x-data-type": "array" }, "required": true }, @@ -22162,7 +22372,7 @@ "type": "string", "pattern": "^(?!_|template|query|field|point|clear|usage|stats|hot|reload|painless)", "description": "Comma-separated list of indices.", - "x-data-type": "list" + "x-data-type": "array" }, "required": true }, @@ -22249,7 +22459,8 @@ "$ref": "#/components/schemas/IndicesPutMapping_BodyParams" } } - } + }, + "required": true }, "parameters": [ { @@ -22260,7 +22471,7 @@ "type": "string", "pattern": "^(?!_|template|query|field|point|clear|usage|stats|hot|reload|painless)", "description": "Comma-separated list of indices; use `_all` or empty string to perform the operation on all indices.", - "x-data-type": "list" + "x-data-type": "array" }, "required": true }, @@ -22366,7 +22577,8 @@ "$ref": "#/components/schemas/IndicesPutMapping_BodyParams" } } - } + }, + "required": true }, "parameters": [ { @@ -22377,16 +22589,9 @@ "type": "string", "pattern": "^(?!_|template|query|field|point|clear|usage|stats|hot|reload|painless)", "description": "Comma-separated list of indices; use `_all` or empty string to perform the operation on all indices.", - "x-data-type": "list" + "x-data-type": "array" }, - "required": true, - "examples": { - "IndicesPutMapping_Put_example1": { - "summary": "Examples for Put Index Mapping with index Operation.", - "description": "", - "value": "books" - } - } + "required": true }, { "name": "timeout", @@ -22468,15 +22673,6 @@ "application/json": { "schema": { "$ref": "#/components/schemas/IndicesPutMapping_PutResponseContent" - }, - "examples": { - "IndicesPutMapping_Put_example1": { - "summary": "Examples for Put Index Mapping with index Operation.", - "description": "", - "value": { - "acknowledged": true - } - } } } } @@ -22499,7 +22695,7 @@ "type": "string", "pattern": "^(?!_|template|query|field|point|clear|usage|stats|hot|reload|painless)", "description": "Comma-separated list of indices.", - "x-data-type": "list" + "x-data-type": "array" }, "required": true }, @@ -22511,7 +22707,7 @@ "type": "string", "pattern": "^(?!_|template|query|field|point|clear|usage|stats|hot|reload|painless)", "description": "Comma-separated list of fields.", - "x-data-type": "list" + "x-data-type": "array" }, "required": true }, @@ -22698,7 +22894,8 @@ "$ref": "#/components/schemas/Mget_BodyParams" } } - } + }, + "required": true }, "parameters": [ { @@ -22828,7 +23025,7 @@ "type": "string", "pattern": "^(?!_|template|query|field|point|clear|usage|stats|hot|reload|painless)", "description": "Comma-separated list of indices to use as default.", - "x-data-type": "list" + "x-data-type": "array" }, "required": true }, @@ -22919,7 +23116,8 @@ "$ref": "#/components/schemas/Msearch_BodyParams" } } - } + }, + "required": true }, "parameters": [ { @@ -22930,7 +23128,7 @@ "type": "string", "pattern": "^(?!_|template|query|field|point|clear|usage|stats|hot|reload|painless)", "description": "Comma-separated list of indices to use as default.", - "x-data-type": "list" + "x-data-type": "array" }, "required": true }, @@ -23025,7 +23223,7 @@ "type": "string", "pattern": "^(?!_|template|query|field|point|clear|usage|stats|hot|reload|painless)", "description": "Comma-separated list of indices to use as default.", - "x-data-type": "list" + "x-data-type": "array" }, "required": true }, @@ -23095,7 +23293,8 @@ "$ref": "#/components/schemas/MsearchTemplate_BodyParams" } } - } + }, + "required": true }, "parameters": [ { @@ -23106,7 +23305,7 @@ "type": "string", "pattern": "^(?!_|template|query|field|point|clear|usage|stats|hot|reload|painless)", "description": "Comma-separated list of indices to use as default.", - "x-data-type": "list" + "x-data-type": "array" }, "required": true }, @@ -23493,7 +23692,7 @@ "type": "string", "pattern": "^(?!_|template|query|field|point|clear|usage|stats|hot|reload|painless)", "description": "Comma-separated list of indices to open.", - "x-data-type": "list" + "x-data-type": "array" }, "required": true }, @@ -23580,7 +23779,7 @@ "type": "string", "pattern": "^(?!_|template|query|field|point|clear|usage|stats|hot|reload|painless)", "description": "Comma-separated list of indices; use `_all` or empty string to perform the operation on all indices.", - "x-data-type": "list" + "x-data-type": "array" }, "required": true }, @@ -23637,7 +23836,8 @@ "$ref": "#/components/schemas/RankEval_BodyParams" } } - } + }, + "required": true }, "parameters": [ { @@ -23648,7 +23848,7 @@ "type": "string", "pattern": "^(?!_|template|query|field|point|clear|usage|stats|hot|reload|painless)", "description": "Comma-separated list of indices; use `_all` or empty string to perform the operation on all indices.", - "x-data-type": "list" + "x-data-type": "array" }, "required": true }, @@ -23709,7 +23909,7 @@ "type": "string", "pattern": "^(?!_|template|query|field|point|clear|usage|stats|hot|reload|painless)", "description": "Comma-separated list of indices; use `_all` or empty string to perform the operation on all indices.", - "x-data-type": "list" + "x-data-type": "array" }, "required": true }, @@ -23756,7 +23956,7 @@ "type": "string", "pattern": "^(?!_|template|query|field|point|clear|usage|stats|hot|reload|painless)", "description": "Comma-separated list of indices; use `_all` or empty string to perform the operation on all indices.", - "x-data-type": "list" + "x-data-type": "array" }, "required": true }, @@ -23807,7 +24007,7 @@ "type": "string", "pattern": "^(?!_|template|query|field|point|clear|usage|stats|hot|reload|painless)", "description": "Comma-separated list of indices; use `_all` or empty string to perform the operation on all indices.", - "x-data-type": "list" + "x-data-type": "array" }, "required": true }, @@ -23860,7 +24060,7 @@ "type": "string", "pattern": "^(?!_|template|query|field|point|clear|usage|stats|hot|reload|painless)", "description": "Comma-separated list of indices; use `_all` or empty string to perform the operation on all indices.", - "x-data-type": "list" + "x-data-type": "array" }, "required": true }, @@ -24349,7 +24549,7 @@ "type": "string", "pattern": "^(?!_|template|query|field|point|clear|usage|stats|hot|reload|painless)", "description": "Comma-separated list of indices; use `_all` or empty string to perform the operation on all indices.", - "x-data-type": "list" + "x-data-type": "array" }, "required": true, "examples": { @@ -24857,7 +25057,7 @@ "type": "string", "pattern": "^(?!_|template|query|field|point|clear|usage|stats|hot|reload|painless)", "description": "Comma-separated list of indices; use `_all` or empty string to perform the operation on all indices.", - "x-data-type": "list" + "x-data-type": "array" }, "required": true }, @@ -24926,7 +25126,7 @@ "type": "string", "pattern": "^(?!_|template|query|field|point|clear|usage|stats|hot|reload|painless)", "description": "Comma-separated list of indices; use `_all` or empty string to perform the operation on all indices.", - "x-data-type": "list" + "x-data-type": "array" }, "required": true }, @@ -25074,7 +25274,8 @@ "$ref": "#/components/schemas/SearchTemplate_BodyParams" } } - } + }, + "required": true }, "parameters": [ { @@ -25085,7 +25286,7 @@ "type": "string", "pattern": "^(?!_|template|query|field|point|clear|usage|stats|hot|reload|painless)", "description": "Comma-separated list of indices; use `_all` or empty string to perform the operation on all indices.", - "x-data-type": "list" + "x-data-type": "array" }, "required": true }, @@ -25237,7 +25438,7 @@ "type": "string", "pattern": "^(?!_|template|query|field|point|clear|usage|stats|hot|reload|painless)", "description": "Comma-separated list of indices; use `_all` or empty string to perform the operation on all indices.", - "x-data-type": "list" + "x-data-type": "array" }, "required": true }, @@ -25317,7 +25518,7 @@ "type": "string", "pattern": "^(?!_|template|query|field|point|clear|usage|stats|hot|reload|painless)", "description": "Comma-separated list of indices; use `_all` or empty string to perform the operation on all indices.", - "x-data-type": "list" + "x-data-type": "array" }, "required": true }, @@ -25399,7 +25600,7 @@ "type": "string", "pattern": "^(?!_|template|query|field|point|clear|usage|stats|hot|reload|painless)", "description": "Comma-separated list of indices; use `_all` or empty string to perform the operation on all indices.", - "x-data-type": "list" + "x-data-type": "array" }, "required": true }, @@ -25462,7 +25663,7 @@ "type": "string", "pattern": "^(?!_|template|query|field|point|clear|usage|stats|hot|reload|painless)", "description": "Comma-separated list of indices; use `_all` or empty string to perform the operation on all indices.", - "x-data-type": "list" + "x-data-type": "array" }, "required": true, "examples": { @@ -25573,7 +25774,8 @@ "$ref": "#/components/schemas/IndicesPutSettings_BodyParams" } } - } + }, + "required": true }, "parameters": [ { @@ -25584,7 +25786,7 @@ "type": "string", "pattern": "^(?!_|template|query|field|point|clear|usage|stats|hot|reload|painless)", "description": "Comma-separated list of indices; use `_all` or empty string to perform the operation on all indices.", - "x-data-type": "list" + "x-data-type": "array" }, "required": true }, @@ -25693,7 +25895,7 @@ "type": "string", "pattern": "^(?!_|template|query|field|point|clear|usage|stats|hot|reload|painless)", "description": "Comma-separated list of indices; use `_all` or empty string to perform the operation on all indices.", - "x-data-type": "list" + "x-data-type": "array" }, "required": true, "examples": { @@ -25712,7 +25914,7 @@ "type": "string", "pattern": "^(?!_|template|query|field|point|clear|usage|stats|hot|reload|painless)", "description": "Comma-separated list of settings.", - "x-data-type": "list" + "x-data-type": "array" }, "required": true, "examples": { @@ -25827,7 +26029,7 @@ "type": "string", "pattern": "^(?!_|template|query|field|point|clear|usage|stats|hot|reload|painless)", "description": "Comma-separated list of indices; use `_all` or empty string to perform the operation on all indices.", - "x-data-type": "list" + "x-data-type": "array" }, "required": true }, @@ -26590,7 +26792,7 @@ "type": "string", "pattern": "^(?!_|template|query|field|point|clear|usage|stats|hot|reload|painless)", "description": "Comma-separated list of indices; use `_all` or empty string to perform the operation on all indices.", - "x-data-type": "list" + "x-data-type": "array" }, "required": true }, @@ -26719,7 +26921,7 @@ "type": "string", "pattern": "^(?!_|template|query|field|point|clear|usage|stats|hot|reload|painless)", "description": "Comma-separated list of indices; use `_all` or empty string to perform the operation on all indices.", - "x-data-type": "list" + "x-data-type": "array" }, "required": true }, @@ -26749,7 +26951,7 @@ "warmer", "suggest" ], - "x-data-type": "list" + "x-data-type": "array" }, "required": true }, @@ -27468,7 +27670,8 @@ "$ref": "#/components/schemas/Update_BodyParams" } } - } + }, + "required": true }, "parameters": [ { @@ -27660,7 +27863,7 @@ "type": "string", "pattern": "^(?!_|template|query|field|point|clear|usage|stats|hot|reload|painless)", "description": "Comma-separated list of indices; use `_all` or empty string to perform the operation on all indices.", - "x-data-type": "list" + "x-data-type": "array" }, "required": true }, @@ -28040,7 +28243,7 @@ "type": "string", "pattern": "^(?!_|template|query|field|point|clear|usage|stats|hot|reload|painless)", "description": "Comma-separated list of indices; use `_all` or empty string to perform the operation on all indices.", - "x-data-type": "list" + "x-data-type": "array" }, "required": true }, @@ -28091,7 +28294,7 @@ "type": "string", "pattern": "^(?!_|template|query|field|point|clear|usage|stats|hot|reload|painless)", "description": "Comma-separated list of indices; use `_all` or empty string to perform the operation on all indices.", - "x-data-type": "list" + "x-data-type": "array" }, "required": true }, @@ -28163,7 +28366,7 @@ "type": "string", "pattern": "^(?!_|template|query|field|point|clear|usage|stats|hot|reload|painless)", "description": "Comma-separated list of indices; use `_all` or empty string to perform the operation on all indices.", - "x-data-type": "list" + "x-data-type": "array" }, "required": true }, @@ -28304,7 +28507,7 @@ "type": "string", "pattern": "^(?!_|template|query|field|point|clear|usage|stats|hot|reload|painless)", "description": "Comma-separated list of indices; use `_all` or empty string to perform the operation on all indices.", - "x-data-type": "list" + "x-data-type": "array" }, "required": true }, @@ -28442,6 +28645,12 @@ } } }, + "AttributeMap": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, "Bulk_BodyParams": { "type": "object", "x-serialize": "bulk" @@ -28463,9 +28672,6 @@ "pb" ] }, - "CatIndicesOutputPayload": {}, - "CatIndices_WithIndexOutputPayload": {}, - "CatNodesOutputPayload": {}, "ClearScroll_BodyParams": { "type": "object" }, @@ -28551,6 +28757,27 @@ "Count_BodyParams": { "type": "object" }, + "CreateTenantParams": { + "type": "object", + "properties": { + "description": { + "type": "string" + } + } + }, + "CreateTenantResponseContent": { + "type": "object", + "properties": { + "status": { + "type": "string", + "description": "Informing of request's status." + }, + "message": { + "type": "string", + "description": "The message indicating the information of action of the model." + } + } + }, "Create_BodyParams": { "type": "object" }, @@ -28568,6 +28795,19 @@ "DeletePit_BodyParams": { "type": "object" }, + "DeleteTenantResponseContent": { + "type": "object", + "properties": { + "status": { + "type": "string", + "description": "Informing of request's status." + }, + "message": { + "type": "string", + "description": "The message indicating the information of action of the model." + } + } + }, "ExpandWildcards": { "type": "string", "description": "Whether to expand wildcard expression to concrete indices that are open, closed or both.", @@ -28628,6 +28868,25 @@ "found" ] }, + "GetTenantResponseContent": { + "type": "object", + "properties": { + "tenant": { + "$ref": "#/components/schemas/Tenant" + } + } + }, + "GetTenantsResponseContent": { + "type": "object", + "properties": { + "tenantlist": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Tenant" + } + } + } + }, "GroupBy": { "type": "string", "description": "Group tasks by nodes or parent/child relationships.", @@ -28906,6 +29165,65 @@ "create" ] }, + "PatchOperation": { + "type": "object", + "properties": { + "op": { + "type": "string" + }, + "path": { + "type": "string" + }, + "value": { + "$ref": "#/components/schemas/AttributeMap" + } + } + }, + "PatchTenantParams": { + "type": "object", + "properties": { + "tenantPatch": { + "$ref": "#/components/schemas/PatchOperation" + } + } + }, + "PatchTenantResponseContent": { + "type": "object", + "properties": { + "status": { + "type": "string", + "description": "Informing of request's status." + }, + "message": { + "type": "string", + "description": "The message indicating the information of action of the model." + } + } + }, + "PatchTenantsParams": { + "type": "object", + "properties": { + "tenantsPatch": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PatchOperation" + } + } + } + }, + "PatchTenantsResponseContent": { + "type": "object", + "properties": { + "status": { + "type": "string", + "description": "Informing of request's status." + }, + "message": { + "type": "string", + "description": "The message indicating the information of action of the model." + } + } + }, "PutScript_BodyParams": { "type": "object" }, @@ -29219,6 +29537,23 @@ "always" ] }, + "Tenant": { + "type": "object", + "properties": { + "reserved": { + "type": "boolean" + }, + "hidden": { + "type": "boolean" + }, + "description": { + "type": "string" + }, + "static": { + "type": "boolean" + } + } + }, "Termvectors_BodyParams": { "type": "object" }, diff --git a/src/ApiGenerator/Views/HighLevel/Client/Implementation/OpenSearchClient.cshtml b/src/ApiGenerator/Views/HighLevel/Client/Implementation/OpenSearchClient.cshtml index 5b65ac4ba7..9ee1e2cd75 100644 --- a/src/ApiGenerator/Views/HighLevel/Client/Implementation/OpenSearchClient.cshtml +++ b/src/ApiGenerator/Views/HighLevel/Client/Implementation/OpenSearchClient.cshtml @@ -30,7 +30,7 @@ namespace OpenSearch.Client } - partial void SetupNamespaces() + partial void SetupGeneratedNamespaces() { foreach (var ns in namespaces) diff --git a/src/ApiGenerator/Views/HighLevel/Requests/ApiUrlsLookup.cshtml b/src/ApiGenerator/Views/HighLevel/Requests/ApiUrlsLookup.cshtml index 92c71f127f..93d8bdf44c 100644 --- a/src/ApiGenerator/Views/HighLevel/Requests/ApiUrlsLookup.cshtml +++ b/src/ApiGenerator/Views/HighLevel/Requests/ApiUrlsLookup.cshtml @@ -6,7 +6,7 @@ @{ await IncludeGeneratorNotice(); } namespace OpenSearch.Client { - internal static class ApiUrlsLookups + internal static partial class ApiUrlsLookups { @foreach (var endpoint in Model.Endpoints.Values) { diff --git a/src/ApiGenerator/Views/LowLevel/Client/Implementation/OpenSearchLowLevelClient.cshtml b/src/ApiGenerator/Views/LowLevel/Client/Implementation/OpenSearchLowLevelClient.cshtml index 84722f9763..231413f7a1 100644 --- a/src/ApiGenerator/Views/LowLevel/Client/Implementation/OpenSearchLowLevelClient.cshtml +++ b/src/ApiGenerator/Views/LowLevel/Client/Implementation/OpenSearchLowLevelClient.cshtml @@ -35,7 +35,7 @@ namespace OpenSearch.Net } - partial void SetupNamespaces() + partial void SetupGeneratedNamespaces() { foreach (var ns in namespaces) diff --git a/src/ApiGenerator/Views/LowLevel/Enums.Generated.cshtml b/src/ApiGenerator/Views/LowLevel/Enums.cshtml similarity index 67% rename from src/ApiGenerator/Views/LowLevel/Enums.Generated.cshtml rename to src/ApiGenerator/Views/LowLevel/Enums.cshtml index 3d4cb84b83..630392bd6e 100644 --- a/src/ApiGenerator/Views/LowLevel/Enums.Generated.cshtml +++ b/src/ApiGenerator/Views/LowLevel/Enums.cshtml @@ -63,11 +63,9 @@ namespace OpenSearch.Net } } - public static class KnownEnums + public static partial class KnownEnums { - private static readonly @(Raw("ConcurrentDictionary>")) EnumStringResolvers = new @(Raw("ConcurrentDictionary>"))(); - - static KnownEnums() + static partial void RegisterEnumStringResolvers() { @foreach (var e in Model.EnumsInTheSpec) { @@ -76,13 +74,7 @@ namespace OpenSearch.Net } } - private class EnumDictionary : @(Raw("Dictionary")) - { - public EnumDictionary(int capacity) : base(capacity) {} - public @(Raw("Func")) Resolver { get; set; } - } - - @foreach (var e in Model.EnumsInTheSpec) + @foreach (var e in Model.EnumsInTheSpec) { var isFlag = IsFlag(e.Name); @@ -127,46 +119,5 @@ namespace OpenSearch.Net } } } - - public static string GetStringValue(this Enum e) - { - var type = e.GetType(); - var resolver = EnumStringResolvers.GetOrAdd(type, GetEnumStringResolver); - return resolver(e); - } - - private static @Raw("Func") GetEnumStringResolver(Type type) - { - var values = Enum.GetValues(type); - var dictionary = new EnumDictionary(values.Length); - - for (int index = 0; index < values.Length; index++) - { - var value = values.GetValue(index); - var info = type.GetField(value.ToString()); - var da = (EnumMemberAttribute[])info.GetCustomAttributes(typeof(EnumMemberAttribute), false); - var stringValue = da.Length > 0 ? da[0].Value : Enum.GetName(type, value); - dictionary.Add((Enum)value, stringValue); - } - - var isFlag = type.GetCustomAttributes(typeof(FlagsAttribute), false).Length > 0; - - return (e) => - { - if (isFlag) - { - var list = new @(Raw("List()")); - foreach(var kv in dictionary) - { - if (e.HasFlag(kv.Key)) list.Add(kv.Value); - } - return string.Join(",", list); - } - else - { - return dictionary[e]; - } - }; - } - } + } } diff --git a/src/ApiGenerator/Views/LowLevel/RequestParameters/RequestParameters.cshtml b/src/ApiGenerator/Views/LowLevel/RequestParameters/RequestParameters.cshtml index 78c4862f41..0094de703b 100644 --- a/src/ApiGenerator/Views/LowLevel/RequestParameters/RequestParameters.cshtml +++ b/src/ApiGenerator/Views/LowLevel/RequestParameters/RequestParameters.cshtml @@ -26,7 +26,7 @@ namespace OpenSearch.Net@(ns) var names = r.CsharpNames; ///Request options for @names.MethodName@Raw(r.OfficialDocumentationLink.IsNullOrEmpty() ? "" : " " + r.OfficialDocumentationLink + "") - public class @names.ParametersName : RequestParameters<@names.ParametersName> + public partial class @names.ParametersName : RequestParameters<@names.ParametersName> { public override HttpMethod DefaultHttpMethod => HttpMethod.@r.HttpMethod; public override bool SupportsBody => @(supportsBody ? "true" : "false"); diff --git a/src/OpenSearch.Client/_Generated/ApiUrlsLookup.generated.cs b/src/OpenSearch.Client/ApiUrlsLookup.cs similarity index 99% rename from src/OpenSearch.Client/_Generated/ApiUrlsLookup.generated.cs rename to src/OpenSearch.Client/ApiUrlsLookup.cs index bce8678144..28bd5e11ed 100644 --- a/src/OpenSearch.Client/_Generated/ApiUrlsLookup.generated.cs +++ b/src/OpenSearch.Client/ApiUrlsLookup.cs @@ -43,7 +43,7 @@ // ----------------------------------------------- namespace OpenSearch.Client { - internal static class ApiUrlsLookups + internal static partial class ApiUrlsLookups { internal static ApiUrls NoNamespaceBulk = new ApiUrls(new[]{"_bulk", "{index}/_bulk"}); internal static ApiUrls CatAliases = new ApiUrls(new[]{"_cat/aliases", "_cat/aliases/{name}"}); diff --git a/src/OpenSearch.Client/OpenSearchClient.cs b/src/OpenSearch.Client/OpenSearchClient.cs index b0ff953790..8beeb140fc 100644 --- a/src/OpenSearch.Client/OpenSearchClient.cs +++ b/src/OpenSearch.Client/OpenSearchClient.cs @@ -126,9 +126,11 @@ public OpenSearchClient(ITransport transport) Transport = transport; LowLevel = new OpenSearchLowLevelClient(Transport); SetupNamespaces(); + SetupGeneratedNamespaces(); } partial void SetupNamespaces(); + partial void SetupGeneratedNamespaces(); public IConnectionSettingsValues ConnectionSettings => Transport.Settings; public Inferrer Infer => Transport.Settings.Inferrer; diff --git a/src/OpenSearch.Client/_Generated/ApiUrlsLookup.cs b/src/OpenSearch.Client/_Generated/ApiUrlsLookup.cs new file mode 100644 index 0000000000..b191ff5964 --- /dev/null +++ b/src/OpenSearch.Client/_Generated/ApiUrlsLookup.cs @@ -0,0 +1,49 @@ +/* SPDX-License-Identifier: Apache-2.0 +* +* The OpenSearch Contributors require contributions made to +* this file be licensed under the Apache-2.0 license or a +* compatible open source license. +*/ +/* +* Modifications Copyright OpenSearch Contributors. See +* GitHub history for details. +* +* Licensed to Elasticsearch B.V. under one or more contributor +* license agreements. See the NOTICE file distributed with +* this work for additional information regarding copyright +* ownership. Elasticsearch B.V. licenses this file to you under +* the Apache License, Version 2.0 (the "License"); you may +* not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, +* software distributed under the License is distributed on an +* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +* KIND, either express or implied. See the License for the +* specific language governing permissions and limitations +* under the License. +*/ +// ███╗ ██╗ ██████╗ ████████╗██╗ ██████╗███████╗ +// ████╗ ██║██╔═══██╗╚══██╔══╝██║██╔════╝██╔════╝ +// ██╔██╗ ██║██║ ██║ ██║ ██║██║ █████╗ +// ██║╚██╗██║██║ ██║ ██║ ██║██║ ██╔══╝ +// ██║ ╚████║╚██████╔╝ ██║ ██║╚██████╗███████╗ +// ╚═╝ ╚═══╝ ╚═════╝ ╚═╝ ╚═╝ ╚═════╝╚══════╝ +// ----------------------------------------------- +// +// This file is automatically generated +// Please do not edit these files manually +// Run the following in the root of the repos: +// +// *NIX : ./build.sh codegen +// Windows : build.bat codegen +// +// ----------------------------------------------- +namespace OpenSearch.Client +{ + internal static partial class ApiUrlsLookups + { + } +} \ No newline at end of file diff --git a/src/OpenSearch.Client/_Generated/Descriptors.cs b/src/OpenSearch.Client/_Generated/Descriptors.cs new file mode 100644 index 0000000000..5fa9a3d335 --- /dev/null +++ b/src/OpenSearch.Client/_Generated/Descriptors.cs @@ -0,0 +1,9 @@ +using System.Collections.Generic; + +namespace OpenSearch.Client +{ + // ReSharper disable UnusedTypeParameter + public abstract partial class RequestDescriptorBase + { + } +} \ No newline at end of file diff --git a/src/OpenSearch.Client/_Generated/IOpenSearchClient.cs b/src/OpenSearch.Client/_Generated/IOpenSearchClient.cs new file mode 100644 index 0000000000..8b6b710612 --- /dev/null +++ b/src/OpenSearch.Client/_Generated/IOpenSearchClient.cs @@ -0,0 +1,60 @@ +/* SPDX-License-Identifier: Apache-2.0 +* +* The OpenSearch Contributors require contributions made to +* this file be licensed under the Apache-2.0 license or a +* compatible open source license. +*/ +/* +* Modifications Copyright OpenSearch Contributors. See +* GitHub history for details. +* +* Licensed to Elasticsearch B.V. under one or more contributor +* license agreements. See the NOTICE file distributed with +* this work for additional information regarding copyright +* ownership. Elasticsearch B.V. licenses this file to you under +* the Apache License, Version 2.0 (the "License"); you may +* not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, +* software distributed under the License is distributed on an +* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +* KIND, either express or implied. See the License for the +* specific language governing permissions and limitations +* under the License. +*/ +// ███╗ ██╗ ██████╗ ████████╗██╗ ██████╗███████╗ +// ████╗ ██║██╔═══██╗╚══██╔══╝██║██╔════╝██╔════╝ +// ██╔██╗ ██║██║ ██║ ██║ ██║██║ █████╗ +// ██║╚██╗██║██║ ██║ ██║ ██║██║ ██╔══╝ +// ██║ ╚████║╚██████╔╝ ██║ ██║╚██████╗███████╗ +// ╚═╝ ╚═══╝ ╚═════╝ ╚═╝ ╚═╝ ╚═════╝╚══════╝ +// ----------------------------------------------- +// +// This file is automatically generated +// Please do not edit these files manually +// Run the following in the root of the repos: +// +// *NIX : ./build.sh codegen +// Windows : build.bat codegen +// +// ----------------------------------------------- +// ReSharper disable RedundantUsingDirective +using System; +using System.Collections.Generic; +using System.Threading; +using System.Threading.Tasks; +using System.Linq; +using OpenSearch.Client; + +namespace OpenSearch.Client +{ + /// + ///OpenSearch high level client + /// + public partial interface IOpenSearchClient + { + } +} \ No newline at end of file diff --git a/src/OpenSearch.Client/_Generated/OpenSearchClient.NoNamespace.cs b/src/OpenSearch.Client/_Generated/OpenSearchClient.NoNamespace.cs new file mode 100644 index 0000000000..9889cd6380 --- /dev/null +++ b/src/OpenSearch.Client/_Generated/OpenSearchClient.NoNamespace.cs @@ -0,0 +1,62 @@ +/* SPDX-License-Identifier: Apache-2.0 +* +* The OpenSearch Contributors require contributions made to +* this file be licensed under the Apache-2.0 license or a +* compatible open source license. +*/ +/* +* Modifications Copyright OpenSearch Contributors. See +* GitHub history for details. +* +* Licensed to Elasticsearch B.V. under one or more contributor +* license agreements. See the NOTICE file distributed with +* this work for additional information regarding copyright +* ownership. Elasticsearch B.V. licenses this file to you under +* the Apache License, Version 2.0 (the "License"); you may +* not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, +* software distributed under the License is distributed on an +* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +* KIND, either express or implied. See the License for the +* specific language governing permissions and limitations +* under the License. +*/ +// ███╗ ██╗ ██████╗ ████████╗██╗ ██████╗███████╗ +// ████╗ ██║██╔═══██╗╚══██╔══╝██║██╔════╝██╔════╝ +// ██╔██╗ ██║██║ ██║ ██║ ██║██║ █████╗ +// ██║╚██╗██║██║ ██║ ██║ ██║██║ ██╔══╝ +// ██║ ╚████║╚██████╔╝ ██║ ██║╚██████╗███████╗ +// ╚═╝ ╚═══╝ ╚═════╝ ╚═╝ ╚═╝ ╚═════╝╚══════╝ +// ----------------------------------------------- +// +// This file is automatically generated +// Please do not edit these files manually +// Run the following in the root of the repos: +// +// *NIX : ./build.sh codegen +// Windows : build.bat codegen +// +// ----------------------------------------------- +// ReSharper disable RedundantUsingDirective +using System; +using System.Threading; +using System.Threading.Tasks; +using OpenSearch.Client; + +// ReSharper disable RedundantTypeArgumentsOfMethod +namespace OpenSearch.Client +{ + /// + ///OpenSearch high level client + /// + public partial class OpenSearchClient : IOpenSearchClient + { + partial void SetupGeneratedNamespaces() + { + } + } +} \ No newline at end of file diff --git a/src/OpenSearch.Client/_Generated/Requests.cs b/src/OpenSearch.Client/_Generated/Requests.cs new file mode 100644 index 0000000000..b10bb0798a --- /dev/null +++ b/src/OpenSearch.Client/_Generated/Requests.cs @@ -0,0 +1,60 @@ +/* SPDX-License-Identifier: Apache-2.0 +* +* The OpenSearch Contributors require contributions made to +* this file be licensed under the Apache-2.0 license or a +* compatible open source license. +*/ +/* +* Modifications Copyright OpenSearch Contributors. See +* GitHub history for details. +* +* Licensed to Elasticsearch B.V. under one or more contributor +* license agreements. See the NOTICE file distributed with +* this work for additional information regarding copyright +* ownership. Elasticsearch B.V. licenses this file to you under +* the Apache License, Version 2.0 (the "License"); you may +* not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, +* software distributed under the License is distributed on an +* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +* KIND, either express or implied. See the License for the +* specific language governing permissions and limitations +* under the License. +*/ +// ███╗ ██╗ ██████╗ ████████╗██╗ ██████╗███████╗ +// ████╗ ██║██╔═══██╗╚══██╔══╝██║██╔════╝██╔════╝ +// ██╔██╗ ██║██║ ██║ ██║ ██║██║ █████╗ +// ██║╚██╗██║██║ ██║ ██║ ██║██║ ██╔══╝ +// ██║ ╚████║╚██████╔╝ ██║ ██║╚██████╗███████╗ +// ╚═╝ ╚═══╝ ╚═════╝ ╚═╝ ╚═╝ ╚═════╝╚══════╝ +// ----------------------------------------------- +// +// This file is automatically generated +// Please do not edit these files manually +// Run the following in the root of the repos: +// +// *NIX : ./build.sh codegen +// Windows : build.bat codegen +// +// ----------------------------------------------- +// ReSharper disable RedundantUsingDirective +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Linq.Expressions; +using System.Runtime.Serialization; +using OpenSearch.Net; +using OpenSearch.Net.Utf8Json; + +// ReSharper disable UnusedTypeParameter +namespace OpenSearch.Client +{ + public abstract partial class PlainRequestBase + { + } +} \ No newline at end of file diff --git a/src/OpenSearch.Net/Api/Enums.Generated.cs b/src/OpenSearch.Net/Api/Enums.cs similarity index 99% rename from src/OpenSearch.Net/Api/Enums.Generated.cs rename to src/OpenSearch.Net/Api/Enums.cs index c201892ea6..600dabe129 100644 --- a/src/OpenSearch.Net/Api/Enums.Generated.cs +++ b/src/OpenSearch.Net/Api/Enums.cs @@ -27,13 +27,13 @@ */ // ███╗ ██╗ ██████╗ ████████╗██╗ ██████╗███████╗ // ████╗ ██║██╔═══██╗╚══██╔══╝██║██╔════╝██╔════╝ -// ██╔██╗ ██║██║ ██║ ██║ ██║██║ █████╗ -// ██║╚██╗██║██║ ██║ ██║ ██║██║ ██╔══╝ +// ██╔██╗ ██║██║ ██║ ██║ ██║██║ █████╗ +// ██║╚██╗██║██║ ██║ ██║ ██║██║ ██╔══╝ // ██║ ╚████║╚██████╔╝ ██║ ██║╚██████╗███████╗ // ╚═╝ ╚═══╝ ╚═════╝ ╚═╝ ╚═╝ ╚═════╝╚══════╝ // ----------------------------------------------- -// -// This file is automatically generated +// +// This file is automatically generated // Please do not edit these files manually // Run the following in the root of the repos: // @@ -448,7 +448,7 @@ public enum GroupBy None } - public static class KnownEnums + public static partial class KnownEnums { private static readonly ConcurrentDictionary> EnumStringResolvers = new ConcurrentDictionary>(); static KnownEnums() @@ -477,8 +477,11 @@ static KnownEnums() EnumStringResolvers.TryAdd(typeof(IndicesShardStoresStatus), (e) => GetStringValue((IndicesShardStoresStatus)e)); EnumStringResolvers.TryAdd(typeof(ThreadType), (e) => GetStringValue((ThreadType)e)); EnumStringResolvers.TryAdd(typeof(GroupBy), (e) => GetStringValue((GroupBy)e)); + RegisterEnumStringResolvers(); } + static partial void RegisterEnumStringResolvers(); + private class EnumDictionary : Dictionary { public EnumDictionary(int capacity): base(capacity) diff --git a/src/OpenSearch.Net/OpenSearchLowLevelClient.cs b/src/OpenSearch.Net/OpenSearchLowLevelClient.cs index 36a7338571..a8fe1a77dd 100644 --- a/src/OpenSearch.Net/OpenSearchLowLevelClient.cs +++ b/src/OpenSearch.Net/OpenSearchLowLevelClient.cs @@ -77,10 +77,13 @@ public OpenSearchLowLevelClient(ITransport trans Transport = transport; UrlFormatter = Transport.Settings.UrlFormatter; SetupNamespaces(); + SetupGeneratedNamespaces(); } partial void SetupNamespaces(); + partial void SetupGeneratedNamespaces(); + public IOpenSearchSerializer Serializer => Transport.Settings.RequestResponseSerializer; public IConnectionConfigurationValues Settings => Transport.Settings; diff --git a/src/OpenSearch.Net/_Generated/Api/Enums.cs b/src/OpenSearch.Net/_Generated/Api/Enums.cs new file mode 100644 index 0000000000..579cb3b7fb --- /dev/null +++ b/src/OpenSearch.Net/_Generated/Api/Enums.cs @@ -0,0 +1,61 @@ +/* SPDX-License-Identifier: Apache-2.0 +* +* The OpenSearch Contributors require contributions made to +* this file be licensed under the Apache-2.0 license or a +* compatible open source license. +*/ +/* +* Modifications Copyright OpenSearch Contributors. See +* GitHub history for details. +* +* Licensed to Elasticsearch B.V. under one or more contributor +* license agreements. See the NOTICE file distributed with +* this work for additional information regarding copyright +* ownership. Elasticsearch B.V. licenses this file to you under +* the Apache License, Version 2.0 (the "License"); you may +* not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, +* software distributed under the License is distributed on an +* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +* KIND, either express or implied. See the License for the +* specific language governing permissions and limitations +* under the License. +*/ +// ███╗ ██╗ ██████╗ ████████╗██╗ ██████╗███████╗ +// ████╗ ██║██╔═══██╗╚══██╔══╝██║██╔════╝██╔════╝ +// ██╔██╗ ██║██║ ██║ ██║ ██║██║ █████╗ +// ██║╚██╗██║██║ ██║ ██║ ██║██║ ██╔══╝ +// ██║ ╚████║╚██████╔╝ ██║ ██║╚██████╗███████╗ +// ╚═╝ ╚═══╝ ╚═════╝ ╚═╝ ╚═╝ ╚═════╝╚══════╝ +// ----------------------------------------------- +// +// This file is automatically generated +// Please do not edit these files manually +// Run the following in the root of the repos: +// +// *NIX : ./build.sh codegen +// Windows : build.bat codegen +// +// ----------------------------------------------- +// ReSharper disable RedundantUsingDirective +using System; +using System.Collections.Generic; +using System.Collections.Concurrent; +using System.Linq; +using System.Text; +using System.Reflection; +using System.Runtime.Serialization; + +namespace OpenSearch.Net +{ + public static partial class KnownEnums + { + static partial void RegisterEnumStringResolvers() + { + } + } +} \ No newline at end of file diff --git a/src/OpenSearch.Net/_Generated/IOpenSearchLowLevelClient.cs b/src/OpenSearch.Net/_Generated/IOpenSearchLowLevelClient.cs new file mode 100644 index 0000000000..f8d2616a6e --- /dev/null +++ b/src/OpenSearch.Net/_Generated/IOpenSearchLowLevelClient.cs @@ -0,0 +1,62 @@ +/* SPDX-License-Identifier: Apache-2.0 +* +* The OpenSearch Contributors require contributions made to +* this file be licensed under the Apache-2.0 license or a +* compatible open source license. +*/ +/* +* Modifications Copyright OpenSearch Contributors. See +* GitHub history for details. +* +* Licensed to Elasticsearch B.V. under one or more contributor +* license agreements. See the NOTICE file distributed with +* this work for additional information regarding copyright +* ownership. Elasticsearch B.V. licenses this file to you under +* the Apache License, Version 2.0 (the "License"); you may +* not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, +* software distributed under the License is distributed on an +* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +* KIND, either express or implied. See the License for the +* specific language governing permissions and limitations +* under the License. +*/ +// ███╗ ██╗ ██████╗ ████████╗██╗ ██████╗███████╗ +// ████╗ ██║██╔═══██╗╚══██╔══╝██║██╔════╝██╔════╝ +// ██╔██╗ ██║██║ ██║ ██║ ██║██║ █████╗ +// ██║╚██╗██║██║ ██║ ██║ ██║██║ ██╔══╝ +// ██║ ╚████║╚██████╔╝ ██║ ██║╚██████╗███████╗ +// ╚═╝ ╚═══╝ ╚═════╝ ╚═╝ ╚═╝ ╚═════╝╚══════╝ +// ----------------------------------------------- +// +// This file is automatically generated +// Please do not edit these files manually +// Run the following in the root of the repos: +// +// *NIX : ./build.sh codegen +// Windows : build.bat codegen +// +// ----------------------------------------------- +// ReSharper disable RedundantUsingDirective +using System; +using System.Collections.Generic; +using System.Collections.Specialized; +using System.Linq; +using System.Text; +using System.Threading; +using System.Threading.Tasks; +using OpenSearch.Net; + +namespace OpenSearch.Net +{ + /// + ///OpenSearch low level client + /// + public partial interface IOpenSearchLowLevelClient + { + } +} \ No newline at end of file diff --git a/src/OpenSearch.Net/_Generated/OpenSearchLowLevelClient.NoNamespace.cs b/src/OpenSearch.Net/_Generated/OpenSearchLowLevelClient.NoNamespace.cs new file mode 100644 index 0000000000..1a6e049b90 --- /dev/null +++ b/src/OpenSearch.Net/_Generated/OpenSearchLowLevelClient.NoNamespace.cs @@ -0,0 +1,68 @@ +/* SPDX-License-Identifier: Apache-2.0 +* +* The OpenSearch Contributors require contributions made to +* this file be licensed under the Apache-2.0 license or a +* compatible open source license. +*/ +/* +* Modifications Copyright OpenSearch Contributors. See +* GitHub history for details. +* +* Licensed to Elasticsearch B.V. under one or more contributor +* license agreements. See the NOTICE file distributed with +* this work for additional information regarding copyright +* ownership. Elasticsearch B.V. licenses this file to you under +* the Apache License, Version 2.0 (the "License"); you may +* not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, +* software distributed under the License is distributed on an +* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +* KIND, either express or implied. See the License for the +* specific language governing permissions and limitations +* under the License. +*/ +// ███╗ ██╗ ██████╗ ████████╗██╗ ██████╗███████╗ +// ████╗ ██║██╔═══██╗╚══██╔══╝██║██╔════╝██╔════╝ +// ██╔██╗ ██║██║ ██║ ██║ ██║██║ █████╗ +// ██║╚██╗██║██║ ██║ ██║ ██║██║ ██╔══╝ +// ██║ ╚████║╚██████╔╝ ██║ ██║╚██████╗███████╗ +// ╚═╝ ╚═══╝ ╚═════╝ ╚═╝ ╚═╝ ╚═════╝╚══════╝ +// ----------------------------------------------- +// +// This file is automatically generated +// Please do not edit these files manually +// Run the following in the root of the repos: +// +// *NIX : ./build.sh codegen +// Windows : build.bat codegen +// +// ----------------------------------------------- +// ReSharper disable RedundantUsingDirective +using System; +using System.Collections.Generic; +using System.Collections.Specialized; +using System.Linq; +using System.Text; +using System.Threading; +using System.Threading.Tasks; +using OpenSearch.Net; +using static OpenSearch.Net.HttpMethod; + +// ReSharper disable InterpolatedStringExpressionIsNotIFormattable +// ReSharper disable RedundantExtendsListEntry +namespace OpenSearch.Net +{ + /// + ///OpenSearch low level client + /// + public partial class OpenSearchLowLevelClient : IOpenSearchLowLevelClient + { + partial void SetupGeneratedNamespaces() + { + } + } +} \ No newline at end of file