├── .ci ├── certs │ └── openssl.conf ├── generate-certs.sh └── opensearch │ └── opensearch.yml ├── .dockerignore ├── .editorconfig ├── .gitattributes ├── .github ├── CODEOWNERS ├── actions │ ├── build-opensearch │ │ └── action.yml │ ├── cached-git-build │ │ └── action.yml │ ├── run-released-opensearch │ │ └── action.yml │ └── start-opensearch │ │ └── action.yml ├── add-license-headers.sh ├── auto-label.json ├── bump-version.sh ├── check-license-headers.sh ├── dependabot.yml ├── license-header-fs.txt ├── license-header.txt └── workflows │ ├── auto-label.yml │ ├── backport.yml │ ├── build_deploy_docs.yml │ ├── bump-version.yml │ ├── changelog_verifier.yml │ ├── code-gen.yml │ ├── compile.yml │ ├── delete_backport_branch.yml │ ├── dependabot_pr.yml │ ├── integration-yaml-tests.yml │ ├── integration.yml │ ├── license.yml │ ├── links.yml │ ├── release-drafter.yml │ ├── release.yml │ └── test-jobs.yml ├── .gitignore ├── .whitesource ├── ADMINS.md ├── CHANGELOG.md ├── CODE_OF_CONDUCT.md ├── COMPATIBILITY.md ├── CONTRIBUTING.md ├── DEVELOPER_GUIDE.md ├── Directory.Build.props ├── Directory.Build.targets ├── LICENSE.txt ├── MAINTAINERS.md ├── NOTICE.txt ├── OpenSearch.sln ├── OpenSearch.sln.DotSettings ├── OpenSearch.svg ├── README.md ├── RELEASING.md ├── SECURITY.md ├── UPGRADING.md ├── USER_GUIDE.md ├── abstractions ├── README.md ├── src │ ├── OpenSearch.OpenSearch.Ephemeral │ │ ├── ClusterAuthentication.cs │ │ ├── ClusterFeatures.cs │ │ ├── EphemeralCluster.cs │ │ ├── EphemeralClusterComposer.cs │ │ ├── EphemeralClusterConfiguration.cs │ │ ├── EphemeralFileSystem.cs │ │ ├── IEphemeralCluster.cs │ │ ├── OpenSearch.OpenSearch.Ephemeral.csproj │ │ ├── Plugins │ │ │ └── OpenSearchPlugins.cs │ │ ├── README.md │ │ ├── SecurityRealms.cs │ │ └── Tasks │ │ │ ├── AfterNodeStoppedTasks │ │ │ └── CleanUpDirectoriesAfterNodeStopped.cs │ │ │ ├── BeforeStartNodeTasks │ │ │ ├── CacheOpenSearchInstallation.cs │ │ │ ├── CreateEphemeralDirectory.cs │ │ │ └── PrintYamlContents.cs │ │ │ ├── IClusterComposeTask.cs │ │ │ ├── InstallationTasks │ │ │ ├── CopyCachedOpenSearchInstallation.cs │ │ │ ├── CreateLocalApplicationDirectory.cs │ │ │ ├── DownloadOpenSearchVersion.cs │ │ │ ├── EnsureJavaHomeEnvironmentVariableIsSet.cs │ │ │ ├── InitialConfiguration.cs │ │ │ ├── InstallPlugins.cs │ │ │ ├── PrintConfiguration.cs │ │ │ ├── SetOpenSearchBundledJdkJavaHome.cs │ │ │ └── UnzipOpenSearch.cs │ │ │ └── ValidationTasks │ │ │ ├── ValidateClusterStateTask.cs │ │ │ ├── ValidatePluginsTask.cs │ │ │ └── ValidateRunningVersion.cs │ ├── OpenSearch.OpenSearch.Managed │ │ ├── ClusterBase.cs │ │ ├── Configuration │ │ │ ├── ClusterConfiguration.cs │ │ │ ├── NodeConfiguration.cs │ │ │ ├── NodeSetting.cs │ │ │ └── NodeSettings.cs │ │ ├── ConsoleWriters │ │ │ ├── ConsoleLineWriter.cs │ │ │ ├── ExceptionLineParser.cs │ │ │ ├── IConsoleLineWriter.cs │ │ │ ├── LineHighlightWriter.cs │ │ │ ├── LineOutParser.cs │ │ │ └── NoopConsoleLineWriter.cs │ │ ├── FileSystem │ │ │ ├── INodeFileSystem.cs │ │ │ └── NodeFileSystem.cs │ │ ├── OpenSearch.OpenSearch.Managed.csproj │ │ ├── OpenSearchCleanExitException.cs │ │ ├── OpenSearchCluster.cs │ │ ├── OpenSearchNode.cs │ │ └── README.md │ ├── OpenSearch.OpenSearch.Xunit │ │ ├── OpenSearch.OpenSearch.Xunit.csproj │ │ ├── OpenSearchXunitConfigurationAttribute.cs │ │ ├── OpenSearchXunitRunOptions.cs │ │ ├── OpenSearchXunitRunner.cs │ │ ├── PrintXunitAfterStartedTask.cs │ │ ├── README.md │ │ ├── Sdk │ │ │ ├── ForEachAsyncExtensions.cs │ │ │ ├── OpenSearchTestFramework.cs │ │ │ ├── OpenSearchTestFrameworkDiscoverer.cs │ │ │ ├── TestAssemblyRunner.cs │ │ │ ├── TestCollectionRunner.cs │ │ │ └── TestFrameworkExecutor.cs │ │ ├── XunitClusterBase.cs │ │ ├── XunitClusterConfiguration.cs │ │ ├── XunitClusterExtensions.cs │ │ ├── XunitPlumbing │ │ │ ├── IClusterFixture.cs │ │ │ ├── IntegrationTestClusterAttribute.cs │ │ │ ├── IntegrationTestDiscoverer.cs │ │ │ ├── OpenSearchTestCaseDiscoverer.cs │ │ │ ├── SkipPrereleaseVersionsAttribute.cs │ │ │ ├── SkipVersionAttribute.cs │ │ │ ├── SkippingTestCase.cs │ │ │ ├── TheoryUnitTestDiscoverer.cs │ │ │ └── UnitTestDiscoverer.cs │ │ ├── ide-integration.png │ │ └── output.gif │ └── OpenSearch.Stack.ArtifactsApi │ │ ├── Artifact.cs │ │ ├── OpenSearch.Stack.ArtifactsApi.csproj │ │ ├── OpenSearchVersion.cs │ │ ├── Platform │ │ └── OsMonikers.cs │ │ ├── Products │ │ ├── OpenSearchPlugin.cs │ │ ├── Product.cs │ │ └── SubProduct.cs │ │ ├── README.md │ │ └── Resolvers │ │ ├── ApiResolver.cs │ │ └── ReleasedVersionResolver.cs └── tests │ ├── OpenSearch.OpenSearch.EphemeralTests │ ├── EphemeralClusterTests.cs │ ├── OpenSearch.OpenSearch.EphemeralTests.csproj │ └── XunitBootstrap.cs │ └── OpenSearch.Stack.ArtifactsApiTests │ ├── OpenSearch.Stack.ArtifactsApiTests.csproj │ ├── ReleasedVersionResolverTests.cs │ └── XunitBootstrap.cs ├── build.bat ├── build.sh ├── build ├── add-headers.sh ├── keys │ ├── keypair.snk │ └── public.snk ├── nuget-icon-aux.png ├── nuget-icon.png ├── scripts │ ├── Benchmarking.fs │ ├── Building.fs │ ├── Commandline.fs │ ├── Paths.fs │ ├── ReleaseNotes.fs │ ├── ReposTooling.fs │ ├── Targets.fs │ ├── Testing.fs │ ├── Tooling.fs │ ├── Versioning.fs │ ├── XmlDocPatcher.fs │ └── scripts.fsproj └── strip-bom.sh ├── docs ├── custom_template │ ├── favicon.ico │ └── styles │ │ └── main.css ├── docfx.json ├── docfxFilterConfig.yml ├── index.md └── toc.yml ├── dotnet-tools.json ├── global.json ├── guides ├── bulk.md ├── document-lifecycle.md ├── index-template.md ├── json.md └── search.md ├── jenkins └── release.jenkinsFile ├── nuget.config ├── samples └── Samples │ ├── IndexTemplate │ └── IndexTemplateSample.cs │ ├── NeuralSearch │ └── NeuralSearchSample.cs │ ├── Program.cs │ ├── RawJson │ ├── RawJsonHighLevelSample.cs │ └── RawJsonLowLevelSample.cs │ ├── Sample.cs │ ├── Samples.csproj │ └── Utils │ └── OpenSearchClientOptions.cs ├── src ├── ApiGenerator │ ├── ApiGenerator.csproj │ ├── CodeTemplatePage.cs │ ├── Configuration │ │ ├── CodeConfiguration.cs │ │ ├── GeneratorLocations.cs │ │ ├── Overrides │ │ │ ├── EndpointOverridesBase.cs │ │ │ ├── Endpoints │ │ │ │ ├── DeleteByQueryOverrides.cs │ │ │ │ ├── FlushJobOverrides.cs │ │ │ │ ├── ForecastJobOverrides.cs │ │ │ │ ├── GetAnomalyRecordsOverrides.cs │ │ │ │ ├── GetBucketsOverrides.cs │ │ │ │ ├── GetCalendarEventsOverrides.cs │ │ │ │ ├── GetCalendarsOverrides.cs │ │ │ │ ├── GetCategoriesOverrides.cs │ │ │ │ ├── GetInfluencersOverrides.cs │ │ │ │ ├── GetModelSnapshotsOverrides.cs │ │ │ │ ├── GetOverallBucketsOverrides.cs │ │ │ │ ├── MultiTermVectorsOverrides.cs │ │ │ │ ├── PutIndexTemplateOverrides.cs │ │ │ │ ├── ReindexOnServerOverrides.cs │ │ │ │ ├── RevertModelSnapshotOverrides.cs │ │ │ │ ├── ScrollOverrides.cs │ │ │ │ ├── SearchOverrides.cs │ │ │ │ ├── UpdateByQueryOverrides.cs │ │ │ │ └── UpdateOverrides.cs │ │ │ ├── GlobalOverrides.cs │ │ │ └── IEndpointOverrides.cs │ │ └── ViewLocations.cs │ ├── Domain │ │ ├── ApiRequestParametersPatcher.cs │ │ ├── Code │ │ │ ├── CsharpNames.cs │ │ │ ├── HighLevel │ │ │ │ ├── Methods │ │ │ │ │ ├── BoundFluentMethod.cs │ │ │ │ │ ├── FluentMethod.cs │ │ │ │ │ ├── FluentSyntaxBase.cs │ │ │ │ │ ├── FluentSyntaxView.cs │ │ │ │ │ ├── HighLevelModel.cs │ │ │ │ │ ├── InitializerMethod.cs │ │ │ │ │ ├── InitializerSyntaxView.cs │ │ │ │ │ └── MethodSyntaxBase.cs │ │ │ │ └── Requests │ │ │ │ │ ├── Constructor.cs │ │ │ │ │ ├── DescriptorPartialImplementation.cs │ │ │ │ │ ├── FluentRouteSetter.cs │ │ │ │ │ ├── RequestInterface.cs │ │ │ │ │ ├── RequestParameterImplementation.cs │ │ │ │ │ └── RequestPartialImplementation.cs │ │ │ ├── HttpMethod.cs │ │ │ └── LowLevel │ │ │ │ └── LowLevelClientMethod.cs │ │ ├── RestApiSpec.cs │ │ └── Specification │ │ │ ├── ApiEndpoint.cs │ │ │ ├── Body.cs │ │ │ ├── Deprecation.cs │ │ │ ├── Documentation.cs │ │ │ ├── QueryParameters.cs │ │ │ ├── Stability.cs │ │ │ ├── UrlInformation.cs │ │ │ ├── UrlPart.cs │ │ │ └── UrlPath.cs │ ├── Extensions.cs │ ├── Generator │ │ ├── ApiEndpointFactory.cs │ │ ├── ApiGenerator.cs │ │ ├── CodeGenerator.cs │ │ ├── OpenApiUtils.cs │ │ └── Razor │ │ │ ├── ApiUrlsLookupsGenerator.cs │ │ │ ├── DescriptorsGenerator.cs │ │ │ ├── EnumsGenerator.cs │ │ │ ├── HighLevelClientImplementationGenerator.cs │ │ │ ├── HighLevelClientInterfaceGenerator.cs │ │ │ ├── LowLevelClientImplementationGenerator.cs │ │ │ ├── LowLevelClientInterfaceGenerator.cs │ │ │ ├── RazorGeneratorBase.cs │ │ │ ├── RequestParametersGenerator.cs │ │ │ └── RequestsGenerator.cs │ ├── Program.cs │ ├── RestSpecDownloader.cs │ ├── Views │ │ ├── GeneratorNotice.cshtml │ │ ├── HighLevel │ │ │ ├── Client │ │ │ │ ├── FluentSyntax │ │ │ │ │ ├── FluentInterfaceMethod.cshtml │ │ │ │ │ ├── FluentMethod.cshtml │ │ │ │ │ └── FluentMethodHeader.cshtml │ │ │ │ ├── Implementation │ │ │ │ │ ├── MethodImplementation.cshtml │ │ │ │ │ ├── MethodInterface.cshtml │ │ │ │ │ ├── OpenSearchClient.Http.cshtml │ │ │ │ │ ├── OpenSearchClient.Namespace.cshtml │ │ │ │ │ └── OpenSearchClient.cshtml │ │ │ │ ├── InitializerSyntax │ │ │ │ │ ├── InitializerInterfaceMethod.cshtml │ │ │ │ │ ├── InitializerMethod.cshtml │ │ │ │ │ └── InitializerMethodHeader.cshtml │ │ │ │ ├── Interface │ │ │ │ │ ├── IOpenSearchClient.cshtml │ │ │ │ │ └── MethodInterface.cshtml │ │ │ │ ├── MethodXmlDocs.cshtml │ │ │ │ └── Usings.cshtml │ │ │ ├── Descriptors │ │ │ │ ├── Descriptor.cshtml │ │ │ │ ├── Descriptors.Http.cshtml │ │ │ │ ├── Descriptors.cshtml │ │ │ │ ├── RequestDescriptorBase.cshtml │ │ │ │ └── XmlDocs.cshtml │ │ │ └── Requests │ │ │ │ ├── ApiUrlsLookup.cshtml │ │ │ │ ├── PlainRequestBase.cshtml │ │ │ │ ├── RequestImplementations.cshtml │ │ │ │ ├── RequestInterface.cshtml │ │ │ │ ├── Requests.Http.cshtml │ │ │ │ └── Requests.cshtml │ │ └── LowLevel │ │ │ ├── Client │ │ │ ├── Implementation │ │ │ │ ├── OpenSearchLowLevelClient.Http.cshtml │ │ │ │ ├── OpenSearchLowLevelClient.Namespace.cshtml │ │ │ │ └── OpenSearchLowLevelClient.cshtml │ │ │ ├── Interface │ │ │ │ └── IOpenSearchLowLevelClient.cshtml │ │ │ ├── Methods │ │ │ │ ├── MethodDocs.cshtml │ │ │ │ ├── MethodImplementation.cshtml │ │ │ │ └── MethodInterface.cshtml │ │ │ └── Usings.cshtml │ │ │ ├── Enums.cshtml │ │ │ └── RequestParameters │ │ │ ├── RequestParameters.Http.cshtml │ │ │ └── RequestParameters.cshtml │ └── opensearch-openapi.yaml ├── OpenSearch.Client.JsonNetSerializer │ ├── ConnectionSettingsAwareContractResolver.cs │ ├── ConnectionSettingsAwareSerializerBase.Customization.cs │ ├── ConnectionSettingsAwareSerializerBase.PropertyMappingProvider.cs │ ├── ConnectionSettingsAwareSerializerBase.Serializer.cs │ ├── Converters │ │ ├── HandleOscTypesOnSourceJsonConverter.cs │ │ └── TimeSpanToStringConverter.cs │ ├── JTokenExtensions.cs │ ├── JsonNetSerializer.cs │ ├── JsonReaderExtensions.cs │ ├── OpenSearch.Client.JsonNetSerializer.csproj │ └── README.md ├── OpenSearch.Client │ ├── .editorconfig │ ├── Aggregations │ │ ├── Aggregate.cs │ │ ├── AggregateDictionary.cs │ │ ├── AggregateDictionaryFormatter.cs │ │ ├── AggregateFormatter.cs │ │ ├── Aggregation.cs │ │ ├── AggregationContainer.cs │ │ ├── Bucket │ │ │ ├── AdjacencyMatrix │ │ │ │ └── AdjacencyMatrixAggregation.cs │ │ │ ├── AutoDateHistogram │ │ │ │ ├── AutoDateHistogramAggregation.cs │ │ │ │ ├── AutoDateHistogramBucket.cs │ │ │ │ └── MinimumInterval.cs │ │ │ ├── Bucket.cs │ │ │ ├── BucketAggregate.cs │ │ │ ├── BucketAggregation.cs │ │ │ ├── Children │ │ │ │ └── ChildrenAggregation.cs │ │ │ ├── Composite │ │ │ │ ├── CompositeAggregation.cs │ │ │ │ ├── CompositeAggregationSource.cs │ │ │ │ ├── CompositeBucket.cs │ │ │ │ ├── DateHistogramCompositeAggregationSource.cs │ │ │ │ ├── GeoTileGridCompositeAggregationSource.cs │ │ │ │ ├── HistogramCompositeAggregationSource.cs │ │ │ │ └── TermsCompositeAggregationSource.cs │ │ │ ├── DateHistogram │ │ │ │ ├── DateHistogramAggregation.cs │ │ │ │ ├── DateHistogramBucket.cs │ │ │ │ └── DateInterval.cs │ │ │ ├── DateRange │ │ │ │ ├── DateRangeAggregation.cs │ │ │ │ └── DateRangeExpression.cs │ │ │ ├── DiversifiedSampler │ │ │ │ ├── DiversifiedSamplerAggregation.cs │ │ │ │ └── DiversifiedSamplerAggregationExecutionHint.cs │ │ │ ├── Filter │ │ │ │ ├── FilterAggregation.cs │ │ │ │ └── FilterAggregationJsonConverter.cs │ │ │ ├── Filters │ │ │ │ ├── FiltersAggregate.cs │ │ │ │ ├── FiltersAggregation.cs │ │ │ │ └── NamedFiltersContainer.cs │ │ │ ├── GeoDistance │ │ │ │ └── GeoDistanceAggregation.cs │ │ │ ├── GeoHashGrid │ │ │ │ ├── GeoHashGridAggregation.cs │ │ │ │ └── GeoHashPrecision.cs │ │ │ ├── GeoTileGrid │ │ │ │ ├── GeoTileGridAggregation.cs │ │ │ │ └── GeoTilePrecision.cs │ │ │ ├── Global │ │ │ │ └── GlobalAggregation.cs │ │ │ ├── Histogram │ │ │ │ ├── ExtendedBounds.cs │ │ │ │ ├── HardBounds.cs │ │ │ │ ├── HistogramAggregation.cs │ │ │ │ └── HistogramOrder.cs │ │ │ ├── IpRange │ │ │ │ ├── IpRangeAggregation.cs │ │ │ │ ├── IpRangeAggregationRange.cs │ │ │ │ └── IpRangeBucket.cs │ │ │ ├── KeyedBucket.cs │ │ │ ├── Missing │ │ │ │ └── MissingAggregation.cs │ │ │ ├── MultiTerms │ │ │ │ ├── MultiTermsAggregate.cs │ │ │ │ ├── MultiTermsAggregation.cs │ │ │ │ ├── MultiTermsBucket.cs │ │ │ │ └── Term.cs │ │ │ ├── Nested │ │ │ │ └── NestedAggregation.cs │ │ │ ├── Parent │ │ │ │ └── ParentAggregation.cs │ │ │ ├── Range │ │ │ │ ├── RangeAggregation.cs │ │ │ │ └── RangeBucket.cs │ │ │ ├── RareTerms │ │ │ │ ├── RareTermsAggregation.cs │ │ │ │ └── RareTermsBucket.cs │ │ │ ├── ReverseNested │ │ │ │ └── ReverseNestedAggregation.cs │ │ │ ├── Sampler │ │ │ │ ├── SamplerAggregation.cs │ │ │ │ └── SamplerAggregationExecutionHint.cs │ │ │ ├── SignificantTerms │ │ │ │ ├── Heuristics │ │ │ │ │ ├── ChiSquareHeuristic.cs │ │ │ │ │ ├── GoogleNormalizedDistanceHeuristic.cs │ │ │ │ │ ├── MutualInformationHeuristic.cs │ │ │ │ │ ├── PercentageScoreHeuristic.cs │ │ │ │ │ └── ScriptedHeuristic.cs │ │ │ │ ├── IncludeExclude.cs │ │ │ │ ├── SignificantTermsAggregate.cs │ │ │ │ ├── SignificantTermsAggregation.cs │ │ │ │ └── SignificantTermsBucket.cs │ │ │ ├── SignificantText │ │ │ │ └── SignificantTextAggregation.cs │ │ │ ├── Terms │ │ │ │ ├── TermsAggregate.cs │ │ │ │ ├── TermsAggregation.cs │ │ │ │ ├── TermsAggregationCollectMode.cs │ │ │ │ ├── TermsAggregationExecutionHint.cs │ │ │ │ ├── TermsExclude.cs │ │ │ │ ├── TermsExcludeFormatter.cs │ │ │ │ ├── TermsInclude.cs │ │ │ │ ├── TermsIncludeFormatter.cs │ │ │ │ ├── TermsOrder.cs │ │ │ │ └── TermsOrderDescriptor.cs │ │ │ └── VariableWidthHistogram │ │ │ │ ├── VariableWidthHistogramAggregation.cs │ │ │ │ └── VariableWidthHistogramBucket.cs │ │ ├── Matrix │ │ │ ├── MatrixAggregate.cs │ │ │ ├── MatrixAggregation.cs │ │ │ └── MatrixStats │ │ │ │ ├── MatrixStatsAggregate.cs │ │ │ │ ├── MatrixStatsAggregation.cs │ │ │ │ └── MatrixStatsMode.cs │ │ ├── Metric │ │ │ ├── Average │ │ │ │ └── AverageAggregation.cs │ │ │ ├── Cardinality │ │ │ │ └── CardinalityAggregation.cs │ │ │ ├── ExtendedStats │ │ │ │ ├── ExtendedStatsAggregate.cs │ │ │ │ └── ExtendedStatsAggregation.cs │ │ │ ├── GeoBounds │ │ │ │ ├── GeoBoundsAggregate.cs │ │ │ │ └── GeoBoundsAggregation.cs │ │ │ ├── GeoCentroid │ │ │ │ ├── GeoCentroidAggregate.cs │ │ │ │ └── GeoCentroidAggregation.cs │ │ │ ├── GeoLine │ │ │ │ ├── GeoLineAggregate.cs │ │ │ │ └── GeoLineAggregation.cs │ │ │ ├── Max │ │ │ │ └── MaxAggregation.cs │ │ │ ├── MedianAbsoluteDeviation │ │ │ │ └── MedianAbsoluteDeviationAggregation.cs │ │ │ ├── MetricAggregate.cs │ │ │ ├── MetricAggregation.cs │ │ │ ├── Min │ │ │ │ └── MinAggregation.cs │ │ │ ├── PercentileRanks │ │ │ │ ├── PercentileRanksAggregation.cs │ │ │ │ └── PercentileRanksAggregationFormatter.cs │ │ │ ├── Percentiles │ │ │ │ ├── Methods │ │ │ │ │ ├── HdrHistogramMethod.cs │ │ │ │ │ ├── IPercentilesMethod.cs │ │ │ │ │ └── TDigestMethod.cs │ │ │ │ ├── PercentilesAggregation.cs │ │ │ │ ├── PercentilesAggregationFormatter.cs │ │ │ │ └── PercentilesMetricAggregate.cs │ │ │ ├── ScriptedMetric │ │ │ │ ├── ScriptedMetricAggregate.cs │ │ │ │ └── ScriptedMetricAggregation.cs │ │ │ ├── Stats │ │ │ │ ├── StatsAggregate.cs │ │ │ │ └── StatsAggregation.cs │ │ │ ├── Sum │ │ │ │ └── SumAggregation.cs │ │ │ ├── TopHits │ │ │ │ ├── TopHitsAggregate.cs │ │ │ │ └── TopHitsAggregation.cs │ │ │ ├── ValueAggregate.cs │ │ │ ├── ValueCount │ │ │ │ └── ValueCountAggregation.cs │ │ │ └── WeightedAverage │ │ │ │ ├── WeightedAverageAggregation.cs │ │ │ │ └── WeightedAverageValue.cs │ │ ├── Pipeline │ │ │ ├── AverageBucket │ │ │ │ └── AverageBucketAggregation.cs │ │ │ ├── BucketScript │ │ │ │ └── BucketScriptAggregation.cs │ │ │ ├── BucketSelector │ │ │ │ └── BucketSelectorAggregation.cs │ │ │ ├── BucketSort │ │ │ │ └── BucketSortAggregation.cs │ │ │ ├── BucketsPath.cs │ │ │ ├── CumulativeSum │ │ │ │ └── CumulativeSumAggregation.cs │ │ │ ├── Derivative │ │ │ │ └── DerivativeAggregation.cs │ │ │ ├── ExtendedStatsBucket │ │ │ │ └── ExtendedStatsBucketAggregation.cs │ │ │ ├── GapPolicy.cs │ │ │ ├── KeyedValueAggregate.cs │ │ │ ├── MaxBucket │ │ │ │ └── MaxBucketAggregation.cs │ │ │ ├── MinBucket │ │ │ │ └── MinBucketAggregation.cs │ │ │ ├── MovingAverage │ │ │ │ ├── Models │ │ │ │ │ ├── EwmaModel.cs │ │ │ │ │ ├── HoltLinearModel.cs │ │ │ │ │ ├── HoltWintersModel.cs │ │ │ │ │ ├── IMovingAverageModel.cs │ │ │ │ │ ├── LinearModel.cs │ │ │ │ │ └── SimpleModel.cs │ │ │ │ ├── MovingAverageAggregation.cs │ │ │ │ └── MovingAverageAggregationFormatter.cs │ │ │ ├── MovingFunction │ │ │ │ └── MovingFunctionAggregation.cs │ │ │ ├── PercentilesBucket │ │ │ │ └── PercentilesBucketAggregation.cs │ │ │ ├── PipelineAggregationBase.cs │ │ │ ├── SerialDifferencing │ │ │ │ └── SerialDifferencingAggregation.cs │ │ │ ├── StatsBucket │ │ │ │ └── StatsBucketAggregation.cs │ │ │ └── SumBucket │ │ │ │ └── SumBucketAggregation.cs │ │ ├── VerbatimDictionaryKeysFormatter.cs │ │ └── Visitor │ │ │ ├── AggregationVisitor.cs │ │ │ ├── AggregationVisitorScope.cs │ │ │ └── AggregationWalker.cs │ ├── Analysis │ │ ├── Analysis.cs │ │ ├── Analyzers │ │ │ ├── AnalyzerBase.cs │ │ │ ├── AnalyzerFormatter.cs │ │ │ ├── Analyzers.cs │ │ │ ├── CustomAnalyzer.cs │ │ │ ├── FingerprintAnalyzer.cs │ │ │ ├── KeywordAnalyzer.cs │ │ │ ├── LanguageAnalyzer.cs │ │ │ ├── NoriAnalyzer.cs │ │ │ ├── PatternAnalyzer.cs │ │ │ ├── SimpleAnalyzer.cs │ │ │ ├── SnowballAnalyzer.cs │ │ │ ├── StandardAnalyzer.cs │ │ │ ├── StopAnalyzer.cs │ │ │ └── WhitespaceAnalyzer.cs │ │ ├── CharFilters │ │ │ ├── CharFilterBase.cs │ │ │ ├── CharFilterFormatter.cs │ │ │ ├── CharFilters.cs │ │ │ ├── HtmlStripCharFilter.cs │ │ │ ├── MappingCharFilter.cs │ │ │ └── PatternReplaceCharFilter.cs │ │ ├── Languages │ │ │ ├── Language.cs │ │ │ └── SnowballLanguage.cs │ │ ├── Normalizers │ │ │ ├── CustomNormalizer.cs │ │ │ ├── NormalizerBase.cs │ │ │ ├── NormalizerFormatter.cs │ │ │ └── Normalizers.cs │ │ ├── Plugins │ │ │ ├── Icu │ │ │ │ ├── Collation │ │ │ │ │ ├── IcuCollationAlternate.cs │ │ │ │ │ ├── IcuCollationCaseFirst.cs │ │ │ │ │ ├── IcuCollationDecomposition.cs │ │ │ │ │ └── IcuCollationStrength.cs │ │ │ │ ├── IcuAnalyzer.cs │ │ │ │ ├── IcuCollationTokenFilter.cs │ │ │ │ ├── IcuFoldingTokenFilter.cs │ │ │ │ ├── IcuNormalizationCharFilter.cs │ │ │ │ ├── IcuNormalizationTokenFilter.cs │ │ │ │ ├── IcuTokenizer.cs │ │ │ │ ├── IcuTransformTokenFilter.cs │ │ │ │ ├── Normalization │ │ │ │ │ ├── IcuNormalizationMode.cs │ │ │ │ │ └── IcuNormalizationType.cs │ │ │ │ └── Transform │ │ │ │ │ └── IcuNormalizationType.cs │ │ │ ├── Kuromoji │ │ │ │ ├── KuromojiAnalyzer.cs │ │ │ │ ├── KuromojiIterationMarkCharFilter.cs │ │ │ │ ├── KuromojiPartOfSpeechTokenFilter.cs │ │ │ │ ├── KuromojiReadingFormTokenFilter.cs │ │ │ │ ├── KuromojiStemmerTokenFilter.cs │ │ │ │ ├── KuromojiTokenizationMode.cs │ │ │ │ └── KuromojiTokenizer.cs │ │ │ └── Phonetic │ │ │ │ ├── PhoneticEncoder.cs │ │ │ │ ├── PhoneticLanguage.cs │ │ │ │ ├── PhoneticNameType.cs │ │ │ │ ├── PhoneticRuleType.cs │ │ │ │ └── PhoneticTokenFilter.cs │ │ ├── StopWords.cs │ │ ├── TokenFilters │ │ │ ├── AsciiFoldingTokenFilter.cs │ │ │ ├── CommonGramsTokenFilter.cs │ │ │ ├── CompoundWord │ │ │ │ ├── CompoundWordTokenFilterBase.cs │ │ │ │ ├── DictionaryDecompounderTokenFilter.cs │ │ │ │ └── HyphenationDecompounderTokenFilter.cs │ │ │ ├── ConditionTokenFilter.cs │ │ │ ├── DelimitedPayload │ │ │ │ ├── DelimitedPayloadEncoding.cs │ │ │ │ └── DelimitedPayloadTokenFilter.cs │ │ │ ├── EdgeNGram │ │ │ │ ├── EdgeNGramSide.cs │ │ │ │ └── EdgeNGramTokenFilter.cs │ │ │ ├── ElisionTokenFilter.cs │ │ │ ├── FingerprintTokenFilter.cs │ │ │ ├── HunspellTokenFilter.cs │ │ │ ├── KStemTokenFilter.cs │ │ │ ├── KeepTypesTokenFilter.cs │ │ │ ├── KeepWordsTokenFilter.cs │ │ │ ├── KeywordMarkerTokenFilter.cs │ │ │ ├── LengthTokenFilter.cs │ │ │ ├── LimitTokenCountTokenFilter.cs │ │ │ ├── LowercaseTokenFilter.cs │ │ │ ├── MultiplexerTokenFilter.cs │ │ │ ├── NgramTokenFilter.cs │ │ │ ├── NoriPartOfSpeechTokenFilter.cs │ │ │ ├── PatternCaptureTokenFilter.cs │ │ │ ├── PatternReplaceTokenFilter.cs │ │ │ ├── PorterStemTokenFilter.cs │ │ │ ├── PredicateTokenFilter.cs │ │ │ ├── RemoveDuplicatesTokenFilter.cs │ │ │ ├── ReverseTokenFilter.cs │ │ │ ├── Shingle │ │ │ │ └── ShingleTokenFilter.cs │ │ │ ├── SnowballTokenFilter.cs │ │ │ ├── StemmerOverrideTokenFilter.cs │ │ │ ├── StemmerTokenFilter.cs │ │ │ ├── Stop │ │ │ │ └── StopTokenFilter.cs │ │ │ ├── Synonym │ │ │ │ ├── SynonymFormat.cs │ │ │ │ ├── SynonymGraphTokenFilter.cs │ │ │ │ └── SynonymTokenFilter.cs │ │ │ ├── TokenFilterBase.cs │ │ │ ├── TokenFilterFormatter.cs │ │ │ ├── TokenFilters.cs │ │ │ ├── TrimTokenFilter.cs │ │ │ ├── TruncateTokenFilter.cs │ │ │ ├── UniqueTokenFilter.cs │ │ │ ├── UppercaseTokenFilter.cs │ │ │ ├── WordDelimiter │ │ │ │ └── WordDelimiterTokenFilter.cs │ │ │ └── WordDelimiterGraph │ │ │ │ └── WordDelimiterGraphTokenFilter.cs │ │ └── Tokenizers │ │ │ ├── CharGroupTokenizer.cs │ │ │ ├── KeywordTokenizer.cs │ │ │ ├── LetterTokenizer.cs │ │ │ ├── LowercaseTokenizer.cs │ │ │ ├── NGram │ │ │ ├── EdgeNGramTokenizer.cs │ │ │ ├── NGramTokenizer.cs │ │ │ └── TokenChar.cs │ │ │ ├── NoriTokenizer.cs │ │ │ ├── PathHierarchyTokenizer.cs │ │ │ ├── PatternTokenizer.cs │ │ │ ├── StandardTokenizer.cs │ │ │ ├── TokenizerBase.cs │ │ │ ├── TokenizerFormatter.cs │ │ │ ├── Tokenizers.cs │ │ │ ├── UaxEmailUrlTokenizer.cs │ │ │ └── WhitespaceTokenizer.cs │ ├── ApiUrlsLookup.cs │ ├── Cat │ │ ├── CatAliases │ │ │ ├── CatAliasesRecord.cs │ │ │ └── CatAliasesRequest.cs │ │ ├── CatAllocation │ │ │ ├── CatAllocationRecord.cs │ │ │ └── CatAllocationRequest.cs │ │ ├── CatClusterManager │ │ │ ├── CatClusterManagerRecord.cs │ │ │ └── CatClusterManagerRequest.cs │ │ ├── CatCount │ │ │ ├── CatCountRecord.cs │ │ │ └── CatCountRequest.cs │ │ ├── CatFielddata │ │ │ ├── CatFielddataRecord.cs │ │ │ ├── CatFielddataRecordJsonConverter.cs │ │ │ └── CatFielddataRequest.cs │ │ ├── CatHealth │ │ │ ├── CatHealthRecord.cs │ │ │ └── CatHealthRequest.cs │ │ ├── CatHelp │ │ │ ├── CatHelpRecord.cs │ │ │ └── CatHelpRequest.cs │ │ ├── CatHelpResponseBuilder.cs │ │ ├── CatIndices │ │ │ ├── CatIndicesRecord.cs │ │ │ └── CatIndicesRequest.cs │ │ ├── CatMaster │ │ │ ├── CatMasterRecord.cs │ │ │ └── CatMasterRequest.cs │ │ ├── CatNodeAttributes │ │ │ ├── CatNodeAttributesRecord.cs │ │ │ └── CatNodeAttributesRequest.cs │ │ ├── CatNodes │ │ │ ├── CatNodesRecord.cs │ │ │ └── CatNodesRequest.cs │ │ ├── CatPendingTasks │ │ │ ├── CatPendingTasksRecord.cs │ │ │ └── CatPendingTasksRequest.cs │ │ ├── CatPitSegments │ │ │ ├── CatAllPitSegmentsRecord.cs │ │ │ ├── CatAllPitSegmentsRequest.cs │ │ │ ├── CatPitSegmentsRecord.cs │ │ │ └── CatPitSegmentsRequest.cs │ │ ├── CatPlugins │ │ │ ├── CatPluginsRecord.cs │ │ │ └── CatPluginsRequest.cs │ │ ├── CatRecovery │ │ │ ├── CatRecoveryRecord.cs │ │ │ └── CatRecoveryRequest.cs │ │ ├── CatRepositories │ │ │ ├── CatRepositoriesRecord.cs │ │ │ └── CatRepositoriesRequest.cs │ │ ├── CatResponse.cs │ │ ├── CatResponseBuilder.cs │ │ ├── CatSegmentReplication │ │ │ ├── CatSegmentReplicationRecord.cs │ │ │ └── CatSegmentReplicationRequest.cs │ │ ├── CatSegments │ │ │ ├── CatSegmentsRecord.cs │ │ │ └── CatSegmentsRequest.cs │ │ ├── CatShards │ │ │ ├── CatShardsRecord.cs │ │ │ └── CatShardsRequest.cs │ │ ├── CatSnapshots │ │ │ ├── CatSnapshotsRecord.cs │ │ │ └── CatSnapshotsRequest.cs │ │ ├── CatTasks │ │ │ ├── CatTasksRecord.cs │ │ │ └── CatTasksRequest.cs │ │ ├── CatTemplates │ │ │ ├── CatTemplatesRecord.cs │ │ │ └── CatTemplatesRequest.cs │ │ ├── CatThreadPool │ │ │ ├── CatThreadPoolRecord.cs │ │ │ └── CatThreadPoolRequest.cs │ │ └── ICatRecord.cs │ ├── Cluster │ │ ├── ClusterAllocationExplain │ │ │ ├── ClusterAllocationExplainRequest.cs │ │ │ └── ClusterAllocationExplainResponse.cs │ │ ├── ClusterHealth.cs │ │ ├── ClusterHealth │ │ │ ├── ClusterHealthRequest.cs │ │ │ ├── ClusterHealthResponse.cs │ │ │ ├── IndexHealthStats.cs │ │ │ └── ShardHealthStats.cs │ │ ├── ClusterPendingTasks │ │ │ ├── ClusterPendingTasksRequest.cs │ │ │ └── ClusterPendingTasksResponse.cs │ │ ├── ClusterReroute │ │ │ ├── ClusterRerouteDecision.cs │ │ │ ├── ClusterRerouteExplanation.cs │ │ │ ├── ClusterRerouteParameters.cs │ │ │ ├── ClusterRerouteRequest.cs │ │ │ ├── ClusterRerouteResponse.cs │ │ │ └── Commands │ │ │ │ ├── AllocateClusterRerouteCommandBase.cs │ │ │ │ ├── CancelClusterRerouteCommand.cs │ │ │ │ ├── ClusterRerouteCommandFormatter.cs │ │ │ │ ├── IClusterRerouteCommand.cs │ │ │ │ └── MoveClusterRerouteCommand.cs │ │ ├── ClusterSettings │ │ │ ├── ClusterGetSettings │ │ │ │ ├── ClusterGetSettingsRequest.cs │ │ │ │ └── ClusterGetSettingsResponse.cs │ │ │ └── ClusterPutSettings │ │ │ │ ├── ClusterPutSettingsRequest.cs │ │ │ │ ├── ClusterPutSettingsResponse.cs │ │ │ │ └── RemoteClusterConfiguration.cs │ │ ├── ClusterState │ │ │ ├── ClusterStateRequest.cs │ │ │ └── ClusterStateResponse.cs │ │ ├── ClusterStats │ │ │ ├── ClusterIndicesStats.cs │ │ │ ├── ClusterNodesStats.cs │ │ │ ├── ClusterStatsRequest.cs │ │ │ └── ClusterStatsResponse.cs │ │ ├── ComponentTemplate │ │ │ ├── ComponentTemplate.cs │ │ │ ├── ComponentTemplateExistsRequest.cs │ │ │ ├── DeleteComponentTemplateRequest.cs │ │ │ ├── DeleteComponentTemplateResponse.cs │ │ │ ├── GetComponentTemplateRequest.cs │ │ │ ├── GetComponentTemplateResponse.cs │ │ │ ├── PutComponentTemplateRequest.cs │ │ │ └── PutComponentTemplateResponse.cs │ │ ├── Ping │ │ │ ├── PingRequest.cs │ │ │ └── PingResponse.cs │ │ ├── RemoteInfo │ │ │ ├── RemoteInfoRequest.cs │ │ │ └── RemoteInfoResponse.cs │ │ ├── RootNodeInfo │ │ │ ├── RootNodeInfoRequest.cs │ │ │ └── RootVersionInfoResponse.cs │ │ └── VotingConfigExclusions │ │ │ ├── DeleteVotingConfigExclusions │ │ │ ├── DeleteVotingConfigExclusionsRequest.cs │ │ │ └── DeleteVotingConfigExclusionsResponse.cs │ │ │ └── PostVotingConfigExclusions │ │ │ ├── PostVotingConfigExclusionsRequest.cs │ │ │ └── PostVotingConfigExclusionsResponse.cs │ ├── CommonAbstractions │ │ ├── ConnectionSettings │ │ │ ├── ClrPropertyMapping.cs │ │ │ ├── ClrTypeDefaults.cs │ │ │ ├── ConnectionSettingsBase.cs │ │ │ ├── IConnectionSettingsValues.cs │ │ │ └── MemberInfoResolver.cs │ │ ├── DictionaryLike │ │ │ ├── IsADictionary │ │ │ │ ├── IIsADictionary.cs │ │ │ │ ├── IsADictionaryBase.cs │ │ │ │ └── IsADictionaryDescriptorBase.cs │ │ │ ├── IsAReadOnlyDictionary │ │ │ │ ├── IIsAReadOnlyDictionary.cs │ │ │ │ └── IsADictionaryBase.cs │ │ │ └── PerFieldAnalyzer │ │ │ │ └── PerFieldAnalyzer.cs │ │ ├── Extensions │ │ │ ├── ExceptionExtensions.cs │ │ │ ├── ExpressionExtensions.cs │ │ │ ├── Extensions.cs │ │ │ ├── StringExtensions.cs │ │ │ ├── SuffixExtensions.cs │ │ │ └── TypeExtensions.cs │ │ ├── Fields │ │ │ ├── FieldValues.cs │ │ │ └── FieldValuesFormatter.cs │ │ ├── Fluent │ │ │ ├── DescriptorBase.cs │ │ │ ├── Fluent.cs │ │ │ ├── FluentDictionary.cs │ │ │ ├── Promise │ │ │ │ └── DescriptorPromiseBase.cs │ │ │ └── SelectorBase.cs │ │ ├── ForAttribute.cs │ │ ├── Infer │ │ │ ├── DocumentPath │ │ │ │ └── DocumentPath.cs │ │ │ ├── Field │ │ │ │ ├── Field.cs │ │ │ │ ├── FieldExpressionVisitor.cs │ │ │ │ ├── FieldExtensions.cs │ │ │ │ ├── FieldFormatter.cs │ │ │ │ ├── FieldResolver.cs │ │ │ │ └── ToStringExpressionVisitor.cs │ │ │ ├── Fields │ │ │ │ ├── Fields.cs │ │ │ │ ├── FieldsDescriptor.cs │ │ │ │ └── FieldsFormatter.cs │ │ │ ├── Id │ │ │ │ ├── Id.cs │ │ │ │ ├── IdExtensions.cs │ │ │ │ ├── IdFormatter.cs │ │ │ │ ├── IdResolver.cs │ │ │ │ └── Ids.cs │ │ │ ├── IndexName │ │ │ │ ├── IndexName.cs │ │ │ │ ├── IndexNameExtensions.cs │ │ │ │ ├── IndexNameFormatter.cs │ │ │ │ └── IndexNameResolver.cs │ │ │ ├── IndexUuid │ │ │ │ └── IndexUuid.cs │ │ │ ├── Indices │ │ │ │ ├── Indices.cs │ │ │ │ ├── IndicesExtensions.cs │ │ │ │ ├── IndicesFormatter.cs │ │ │ │ └── IndicesMultiSyntaxFormatter.cs │ │ │ ├── Inferrer.cs │ │ │ ├── JoinFieldRouting │ │ │ │ ├── Routing.cs │ │ │ │ ├── RoutingFormatter.cs │ │ │ │ └── RoutingResolver.cs │ │ │ ├── LongId │ │ │ │ └── LongId.cs │ │ │ ├── Metrics │ │ │ │ ├── IndexMetrics.cs │ │ │ │ └── Metrics.cs │ │ │ ├── Name │ │ │ │ ├── Name.cs │ │ │ │ └── Names.cs │ │ │ ├── NodeId │ │ │ │ └── NodeIds.cs │ │ │ ├── PropertyName │ │ │ │ ├── PropertyName.cs │ │ │ │ ├── PropertyNameExtensions.cs │ │ │ │ └── PropertyNameFormatter.cs │ │ │ ├── RelationName │ │ │ │ ├── RelationName.cs │ │ │ │ ├── RelationNameExtensions.cs │ │ │ │ ├── RelationNameFormatter.cs │ │ │ │ └── RelationNameResolver.cs │ │ │ ├── TaskId │ │ │ │ └── TaskId.cs │ │ │ └── Timestamp │ │ │ │ └── Timestamp.cs │ │ ├── LazyDocument │ │ │ ├── LazyDocument.cs │ │ │ └── LazyDocumentFormatter.cs │ │ ├── Reactive │ │ │ ├── BlockingSubscribeExtensions.cs │ │ │ ├── CoordinatedRequestObserverBase.cs │ │ │ ├── GetEnumerator.cs │ │ │ ├── PartitionHelper.cs │ │ │ └── ProducerConsumerBackPressure.cs │ │ ├── Request │ │ │ ├── ApiUrls.cs │ │ │ ├── IProxyRequest.cs │ │ │ ├── RequestBase.cs │ │ │ ├── RouteValues.cs │ │ │ └── UrlLookup.cs │ │ ├── Response │ │ │ ├── AcknowledgedResponseBase.cs │ │ │ ├── DictionaryResponseBase.cs │ │ │ ├── DynamicResponseBase.cs │ │ │ ├── IndicesResponseBase.cs │ │ │ ├── OpenSearchVersionInfo.cs │ │ │ ├── ResolvableDictionaryProxy.cs │ │ │ ├── ResponseBase.cs │ │ │ └── ShardsOperationResponseBase.cs │ │ ├── SerializationBehavior │ │ │ ├── Attributes │ │ │ │ ├── EpochDateTimeAttribute.cs │ │ │ │ ├── IgnoreAttribute.cs │ │ │ │ ├── PropertyNameAttribute.cs │ │ │ │ └── StringTimeSpanAttribute.cs │ │ │ ├── DefaultHighLevelSerializer.cs │ │ │ ├── JsonFormatters │ │ │ │ ├── CompositeFormatter.cs │ │ │ │ ├── DateTimeEpochMillisecondsFormatter.cs │ │ │ │ ├── DateTimeOffsetEpochMillisecondsFormatter.cs │ │ │ │ ├── IndicesBoostFormatter.cs │ │ │ │ ├── IntStringFormatter.cs │ │ │ │ ├── InterfaceGenericDictionaryResolver.cs │ │ │ │ ├── IsADictionaryFormatterResolver.cs │ │ │ │ ├── JsonFormatterResolverExtensions.cs │ │ │ │ ├── JsonNetCompatibleUriFormatter.cs │ │ │ │ ├── NullableDateTimeOffsetEpochSecondsFormatter.cs │ │ │ │ ├── NullableStringBooleanFormatter.cs │ │ │ │ ├── NullableTimeSpanTicksFormatter.cs │ │ │ │ ├── OpenSearchClientFormatterResolver.cs │ │ │ │ ├── ProxyRequestFormatterBase.cs │ │ │ │ ├── ReadAsAttribute.cs │ │ │ │ ├── ReadAsFormatterResolver.cs │ │ │ │ ├── SingleOrEnumerableFormatter.cs │ │ │ │ ├── SortOrderFormatter.cs │ │ │ │ ├── SourceFormatter.cs │ │ │ │ ├── TimeSpanTicksFormatter.cs │ │ │ │ ├── UnionListFormatter.cs │ │ │ │ ├── Utf8JsonReaderExtensions.cs │ │ │ │ └── VerbatimDictionaryKeysFormatter.cs │ │ │ ├── PropertyMapping.cs │ │ │ ├── SourceValueWriteConverter.cs │ │ │ └── StatefulSerializerExtensions.cs │ │ ├── Static │ │ │ └── Infer.cs │ │ └── Union │ │ │ ├── Union.cs │ │ │ └── UnionFormatter.cs │ ├── CommonOptions │ │ ├── Attributes │ │ │ └── AlternativeEnumMemberAttribute.cs │ │ ├── DateFormat │ │ │ └── DateFormat.cs │ │ ├── DateMath │ │ │ ├── DateMath.cs │ │ │ ├── DateMathExpression.cs │ │ │ ├── DateMathOperation.cs │ │ │ ├── DateMathTime.cs │ │ │ └── DateMathTimeUnit.cs │ │ ├── Fuzziness │ │ │ ├── Fuzziness.cs │ │ │ ├── FuzzinessFormatter.cs │ │ │ └── IFuzziness.cs │ │ ├── Geo │ │ │ ├── Distance.cs │ │ │ ├── DistanceFormatter.cs │ │ │ ├── DistanceUnit.cs │ │ │ ├── GeoDistanceType.cs │ │ │ └── GeoShapeRelation.cs │ │ ├── Hit │ │ │ └── ShardStatistics.cs │ │ ├── MinimumShouldMatch │ │ │ ├── MinimumShouldMatch.cs │ │ │ └── MinimumShouldMatchFormatter.cs │ │ ├── Range │ │ │ ├── AggregationRange.cs │ │ │ └── Ranges.cs │ │ ├── Scripting │ │ │ ├── IndexedScript.cs │ │ │ ├── InlineScript.cs │ │ │ ├── ScriptBase.cs │ │ │ ├── ScriptFields.cs │ │ │ └── ScriptFormatter.cs │ │ ├── Shape │ │ │ └── ShapeRelation.cs │ │ ├── Sorting │ │ │ └── SortFormatter.cs │ │ ├── Stats │ │ │ ├── CompletionStats.cs │ │ │ ├── DocStats.cs │ │ │ ├── FieldDataStats.cs │ │ │ ├── FlushStats.cs │ │ │ ├── GetStats.cs │ │ │ ├── IndexingStats.cs │ │ │ ├── MergesStats.cs │ │ │ ├── PluginStats.cs │ │ │ ├── QueryCacheStats.cs │ │ │ ├── RecoveryStats.cs │ │ │ ├── RefreshStats.cs │ │ │ ├── RequestCacheStats.cs │ │ │ ├── SearchStats.cs │ │ │ ├── SegmentsStats.cs │ │ │ ├── StoreStats.cs │ │ │ ├── TranslogStats.cs │ │ │ └── WarmerStats.cs │ │ └── TimeUnit │ │ │ ├── Time.cs │ │ │ ├── TimeFormatter.cs │ │ │ └── TimeUnit.cs │ ├── CrossPlatform │ │ ├── NativeMethods.cs │ │ └── TypeExtensions.cs │ ├── DanglingIndices │ │ ├── Delete │ │ │ ├── DeleteDanglingIndexRequest.cs │ │ │ └── DeleteDanglingIndexResponse.cs │ │ ├── Import │ │ │ ├── ImportDanglingIndexRequest.cs │ │ │ └── ImportDanglingIndexResponse.cs │ │ └── List │ │ │ ├── ListDanglingIndicesRequest.cs │ │ │ └── ListDanglingIndicesResponse.cs │ ├── Descriptors.Indices.cs │ ├── Descriptors.cs │ ├── Document │ │ ├── Multiple │ │ │ ├── Bulk │ │ │ │ ├── BulkOperation │ │ │ │ │ ├── BulkCreate.cs │ │ │ │ │ ├── BulkDelete.cs │ │ │ │ │ ├── BulkIndex.cs │ │ │ │ │ ├── BulkOperationBase.cs │ │ │ │ │ ├── BulkOperationsCollection.cs │ │ │ │ │ ├── BulkUpdate.cs │ │ │ │ │ ├── BulkUpdateBody.cs │ │ │ │ │ └── IBulkOperation.cs │ │ │ │ ├── BulkRequest.cs │ │ │ │ ├── BulkRequestFormatter.cs │ │ │ │ ├── BulkResponse.cs │ │ │ │ ├── BulkResponseItem │ │ │ │ │ ├── BulkCreateResponseItem.cs │ │ │ │ │ ├── BulkDeleteResponseItem.cs │ │ │ │ │ ├── BulkIndexResponseItem.cs │ │ │ │ │ ├── BulkResponseItemBase.cs │ │ │ │ │ ├── BulkResponseItemFormatter.cs │ │ │ │ │ ├── BulkUpdateResponseItem.cs │ │ │ │ │ └── ConcreteBulkIndexResponseItemFormatter.cs │ │ │ │ ├── OpenSearchClient-DeleteMany.cs │ │ │ │ └── OpenSearchClient-IndexMany.cs │ │ │ ├── BulkAll │ │ │ │ ├── BulkAllObservable.cs │ │ │ │ ├── BulkAllObserver.cs │ │ │ │ ├── BulkAllRequest.cs │ │ │ │ ├── BulkAllResponse.cs │ │ │ │ └── OpenSearchClient-BulkAll.cs │ │ │ ├── BulkIndexByScrollFailure.cs │ │ │ ├── DeleteByQuery │ │ │ │ ├── DeleteByQueryRequest.cs │ │ │ │ └── DeleteByQueryResponse.cs │ │ │ ├── DeleteByQueryRethrottle │ │ │ │ └── DeleteByQueryRethrottleRequest.cs │ │ │ ├── MultiGet │ │ │ │ ├── OpenSearchClient-GetMany.cs │ │ │ │ ├── OpenSearchClient-SourceMany.cs │ │ │ │ ├── Request │ │ │ │ │ ├── IMultiGetOperation.cs │ │ │ │ │ ├── MultiGetOperation.cs │ │ │ │ │ ├── MultiGetRequest.cs │ │ │ │ │ ├── MultiGetRequestFormatter.cs │ │ │ │ │ └── MultiGetResponseBuilder.cs │ │ │ │ └── Response │ │ │ │ │ ├── MultiGetHit.cs │ │ │ │ │ ├── MultiGetHitJsonConverter.cs │ │ │ │ │ └── MultiGetResponse.cs │ │ │ ├── MultiTermVectors │ │ │ │ ├── MultiTermVectorOperation.cs │ │ │ │ ├── MultiTermVectorsRequest.cs │ │ │ │ └── MultiTermVectorsResponse.cs │ │ │ ├── Reindex │ │ │ │ ├── OpenSearchClient-Reindex.cs │ │ │ │ ├── ReindexObservable.cs │ │ │ │ ├── ReindexObserver.cs │ │ │ │ └── ReindexRequest.cs │ │ │ ├── ReindexOnServer │ │ │ │ ├── ReindexDestination.cs │ │ │ │ ├── ReindexOnServerRequest.cs │ │ │ │ ├── ReindexOnServerResponse.cs │ │ │ │ ├── ReindexRouting.cs │ │ │ │ ├── ReindexRoutingJsonConverter.cs │ │ │ │ ├── ReindexSource.cs │ │ │ │ └── RemoteSource.cs │ │ │ ├── ReindexRethrottle │ │ │ │ ├── ReindexNode.cs │ │ │ │ ├── ReindexRethrottleRequest.cs │ │ │ │ └── ReindexRethrottleResponse.cs │ │ │ ├── Retries.cs │ │ │ ├── ScrollAll │ │ │ │ ├── OpenSearchClient-ScrollAll.cs │ │ │ │ ├── ScrollAllObservable.cs │ │ │ │ ├── ScrollAllObserver.cs │ │ │ │ ├── ScrollAllRequest.cs │ │ │ │ └── ScrollAllResponse.cs │ │ │ ├── Slices │ │ │ │ ├── Slices.cs │ │ │ │ └── SlicesFormatter.cs │ │ │ ├── UpdateByQuery │ │ │ │ ├── UpdateByQueryRequest.cs │ │ │ │ └── UpdateByQueryResponse.cs │ │ │ └── UpdateByQueryRethrottle │ │ │ │ └── UpdateByQueryRethrottleRequest.cs │ │ ├── Result.cs │ │ └── Single │ │ │ ├── Create │ │ │ ├── CreateJsonConverter.cs │ │ │ ├── CreateRequest.cs │ │ │ ├── CreateResponse.cs │ │ │ └── OpenSearchClient-Create.cs │ │ │ ├── Delete │ │ │ ├── DeleteRequest.cs │ │ │ └── DeleteResponse.cs │ │ │ ├── Exists │ │ │ └── DocumentExistsRequest.cs │ │ │ ├── Get │ │ │ ├── GetRequest.cs │ │ │ └── GetResponse.cs │ │ │ ├── Index │ │ │ ├── IndexJsonConverter.cs │ │ │ ├── IndexRequest.cs │ │ │ ├── IndexResponse.cs │ │ │ └── OpenSearchClient-Index.cs │ │ │ ├── Source │ │ │ ├── SourceRequest.cs │ │ │ ├── SourceRequestResponseBuilder.cs │ │ │ └── SourceResponse.cs │ │ │ ├── SourceExists │ │ │ └── SourceExistsRequest.cs │ │ │ ├── TermVectors │ │ │ ├── FieldStatistics.cs │ │ │ ├── TermVector.cs │ │ │ ├── TermVectorFilter.cs │ │ │ ├── TermVectorTerm.cs │ │ │ ├── TermVectors.cs │ │ │ ├── TermVectorsRequest.cs │ │ │ ├── TermVectorsResponse.cs │ │ │ └── Token.cs │ │ │ ├── Update │ │ │ ├── UpdateRequest.cs │ │ │ └── UpdateResponse.cs │ │ │ └── WriteResponseBase.cs │ ├── Helpers │ │ ├── HelperIdentifiers.cs │ │ ├── IHelperCallable.cs │ │ └── RequestMetaDataExtensions.cs │ ├── Http │ │ └── ArbitraryHttpRequestBase.cs │ ├── IOpenSearchClient.cs │ ├── Indices │ │ ├── AliasManagement │ │ │ ├── Alias.cs │ │ │ ├── Alias │ │ │ │ ├── Actions │ │ │ │ │ ├── AliasAdd.cs │ │ │ │ │ ├── AliasAddOperation.cs │ │ │ │ │ ├── AliasRemove.cs │ │ │ │ │ ├── AliasRemoveIndex.cs │ │ │ │ │ ├── AliasRemoveIndexOperation.cs │ │ │ │ │ ├── AliasRemoveOperation.cs │ │ │ │ │ └── IAliasAction.cs │ │ │ │ ├── BulkAliasRequest.cs │ │ │ │ └── BulkAliasResponse.cs │ │ │ ├── AliasDefinition.cs │ │ │ ├── AliasExists │ │ │ │ └── AliasExistsRequest.cs │ │ │ ├── Aliases.cs │ │ │ ├── DeleteAlias │ │ │ │ ├── DeleteAliasRequest.cs │ │ │ │ └── DeleteAliasResponse.cs │ │ │ ├── GetAlias │ │ │ │ ├── GetAliasRequest.cs │ │ │ │ ├── GetAliasResponse.cs │ │ │ │ ├── OpenSearchClient-GetAliasesPointingToIndex.cs │ │ │ │ └── OpenSearchClient-GetIndicesPointingToAlias.cs │ │ │ └── PutAlias │ │ │ │ ├── PutAliasRequest.cs │ │ │ │ └── PutAliasResponse.cs │ │ ├── Analyze │ │ │ ├── AnalyzeCharFilters.cs │ │ │ ├── AnalyzeRequest.cs │ │ │ ├── AnalyzeResponse.cs │ │ │ ├── AnalyzeToken.cs │ │ │ ├── AnalyzeTokenFilters.cs │ │ │ └── AnalyzeTokenizersDescriptor.cs │ │ ├── IndexManagement │ │ │ ├── AddBlock │ │ │ │ ├── AddIndexBlockRequest.cs │ │ │ │ ├── AddIndexBlockResponse.cs │ │ │ │ └── IndexBlock.cs │ │ │ ├── CloneIndex │ │ │ │ ├── CloneIndexRequest.cs │ │ │ │ └── CloneIndexResponse.cs │ │ │ ├── CreateIndex │ │ │ │ ├── CreateIndexRequest.cs │ │ │ │ └── CreateIndexResponse.cs │ │ │ ├── DeleteIndex │ │ │ │ ├── DeleteIndexRequest.cs │ │ │ │ └── DeleteIndexResponse.cs │ │ │ ├── GetIndex │ │ │ │ ├── GetIndexRequest.cs │ │ │ │ └── GetIndexResponse.cs │ │ │ ├── IndicesExists │ │ │ │ ├── ExistsResponse.cs │ │ │ │ └── IndexExistsRequest.cs │ │ │ ├── OpenCloseIndex │ │ │ │ ├── CloseIndex │ │ │ │ │ ├── CloseIndexRequest.cs │ │ │ │ │ └── CloseIndexResponse.cs │ │ │ │ └── OpenIndex │ │ │ │ │ ├── OpenIndexRequest.cs │ │ │ │ │ └── OpenIndexResponse.cs │ │ │ ├── ResolveIndex │ │ │ │ ├── ResolveIndexRequest.cs │ │ │ │ └── ResolveIndexResponse.cs │ │ │ ├── RolloverIndex │ │ │ │ ├── RolloverConditions.cs │ │ │ │ ├── RolloverIndexRequest.cs │ │ │ │ └── RolloverIndexResponse.cs │ │ │ ├── ShrinkIndex │ │ │ │ ├── ShrinkIndexRequest.cs │ │ │ │ └── ShrinkIndexResponse.cs │ │ │ ├── SplitIndex │ │ │ │ ├── SplitIndexRequest.cs │ │ │ │ └── SplitIndexResponse.cs │ │ │ └── TypesExists │ │ │ │ └── TypeExistsRequest.cs │ │ ├── IndexSettings │ │ │ ├── ComposableIndexTemplates │ │ │ │ ├── ComposableIndexTemplateExists │ │ │ │ │ └── ComposableIndexTemplateExistsRequest.cs │ │ │ │ ├── DeleteComposableIndexTemplate │ │ │ │ │ ├── DeleteComposableIndexTemplateRequest.cs │ │ │ │ │ └── DeleteComposableIndexTemplateResponse.cs │ │ │ │ ├── GetComposableIndexTemplate │ │ │ │ │ ├── ComposableIndexTemplate.cs │ │ │ │ │ ├── DataStreamTemplate.cs │ │ │ │ │ ├── GetComposableIndexTemplateRequest.cs │ │ │ │ │ └── GetComposableIndexTemplateResponse.cs │ │ │ │ └── PutComposableIndexTemplate │ │ │ │ │ ├── PutComposableIndexTemplateRequest.cs │ │ │ │ │ └── PutComposableIndexTemplateResponse.cs │ │ │ ├── GetIndexSettings │ │ │ │ ├── GetIndexSettingsRequest.cs │ │ │ │ └── GetIndexSettingsResponse.cs │ │ │ ├── IndexState.cs │ │ │ ├── IndexTemplates │ │ │ │ ├── DeleteIndexTemplate │ │ │ │ │ ├── DeleteIndexTemplateRequest.cs │ │ │ │ │ └── DeleteIndexTemplateResponse.cs │ │ │ │ ├── GetIndexTemplate │ │ │ │ │ ├── GetIndexTemplateRequest.cs │ │ │ │ │ ├── GetIndexTemplateResponse.cs │ │ │ │ │ └── TemplateMapping.cs │ │ │ │ ├── IndexTemplateExists │ │ │ │ │ └── IndexTemplateExistsRequest.cs │ │ │ │ └── PutIndexTemplate │ │ │ │ │ ├── PutIndexTemplateRequest.cs │ │ │ │ │ └── PutIndexTemplateResponse.cs │ │ │ ├── Merge │ │ │ │ ├── MergePolicySettings.cs │ │ │ │ ├── MergeSchedulerSettings.cs │ │ │ │ └── MergeSettings.cs │ │ │ ├── Queries │ │ │ │ ├── IQueriesCacheSettings.cs │ │ │ │ └── IQueriesSettings.cs │ │ │ ├── Settings │ │ │ │ ├── AutoExpandReplicas.cs │ │ │ │ ├── DynamicIndexSettings.cs │ │ │ │ ├── FixedIndexSettings.cs │ │ │ │ ├── IndexSettings.cs │ │ │ │ ├── IndexSettingsFormatter.cs │ │ │ │ ├── RecoveryInitialShards.cs │ │ │ │ └── UpdatableIndexSettings.cs │ │ │ ├── SlowLog │ │ │ │ ├── ISlowLog.cs │ │ │ │ ├── ISlowLogIndexing.cs │ │ │ │ ├── ISlowLogSearch.cs │ │ │ │ ├── ISlowLogSearchFetch.cs │ │ │ │ ├── ISlowLogSearchQuery.cs │ │ │ │ └── LogLevel.cs │ │ │ ├── SoftDeletes │ │ │ │ ├── ISoftDeleteRetentionSettings.cs │ │ │ │ └── ISoftDeleteSettings.cs │ │ │ ├── Sorting │ │ │ │ └── ISortingSettings.cs │ │ │ ├── Store │ │ │ │ └── FileSystemStorageImplementation.cs │ │ │ ├── Translog │ │ │ │ ├── TranslogDurability.cs │ │ │ │ ├── TranslogFlushSettings.cs │ │ │ │ └── TranslogSettings.cs │ │ │ └── UpdateIndexSettings │ │ │ │ ├── UpdateIndexSettingsRequest.cs │ │ │ │ └── UpdateIndexSettingsResponse.cs │ │ ├── MappingManagement │ │ │ ├── GetFieldMapping │ │ │ │ ├── FieldMappingFormatter.cs │ │ │ │ ├── GetFieldMappingRequest.cs │ │ │ │ └── GetFieldMappingResponse.cs │ │ │ ├── GetMapping │ │ │ │ ├── GetMappingRequest.cs │ │ │ │ └── GetMappingResponse.cs │ │ │ └── PutMapping │ │ │ │ ├── OpenSearchClient-Map.cs │ │ │ │ ├── PutMappingRequest.cs │ │ │ │ └── PutMappingResponse.cs │ │ ├── Similarity │ │ │ ├── BM25Similarity.cs │ │ │ ├── CustomSimilarity.cs │ │ │ ├── DFI │ │ │ │ ├── DFIIndependenceMeasure.cs │ │ │ │ └── DFISimilarity.cs │ │ │ ├── DFR │ │ │ │ ├── DFRAfterEffect.cs │ │ │ │ ├── DFRBasicModel.cs │ │ │ │ └── DFRSimilarity.cs │ │ │ ├── IB │ │ │ │ ├── IBDistribution.cs │ │ │ │ ├── IBLambda.cs │ │ │ │ └── IBSimilarity.cs │ │ │ ├── LMDirichletSimilarity.cs │ │ │ ├── LMJelinekMercerSimilarity.cs │ │ │ ├── Normalization.cs │ │ │ ├── ScriptedSimilarity.cs │ │ │ ├── Similarities.cs │ │ │ ├── Similarity.cs │ │ │ └── SimilarityFormatter.cs │ │ ├── Stats │ │ │ ├── IndicesStatsRequest.cs │ │ │ └── IndicesStatsResponse.cs │ │ ├── StatusManagement │ │ │ ├── ClearCache │ │ │ │ ├── ClearCacheRequest.cs │ │ │ │ └── ClearCacheResponse.cs │ │ │ ├── Flush │ │ │ │ ├── FlushRequest.cs │ │ │ │ └── FlushResponse.cs │ │ │ ├── ForceMerge │ │ │ │ ├── ForceMergeRequest.cs │ │ │ │ └── ForceMergeResponse.cs │ │ │ └── Refresh │ │ │ │ ├── RefreshRequest.cs │ │ │ │ └── RefreshResponse.cs │ │ └── ValidateQuery │ │ │ ├── ValidateQueryRequest.cs │ │ │ ├── ValidateQueryResponse.cs │ │ │ └── ValidationExplanation.cs │ ├── Ingest │ │ ├── DeletePipeline │ │ │ ├── DeletePipelineRequest.cs │ │ │ └── DeletePipelineResponse.cs │ │ ├── GetPipeline │ │ │ ├── GetPipelineRequest.cs │ │ │ └── GetPipelineResponse.cs │ │ ├── Pipeline.cs │ │ ├── Processor.cs │ │ ├── Processor │ │ │ ├── GrokProcessorPatternsRequest.cs │ │ │ └── GrokProcessorPatternsResponse.cs │ │ ├── ProcessorFormatter.cs │ │ ├── Processors │ │ │ ├── AppendProcessor.cs │ │ │ ├── BytesProcessor.cs │ │ │ ├── ConvertProcessor.cs │ │ │ ├── CsvProcessor.cs │ │ │ ├── DateIndexNameProcessor.cs │ │ │ ├── DateProcessor.cs │ │ │ ├── DissectProcessor.cs │ │ │ ├── DotExpanderProcessor.cs │ │ │ ├── DropProcessor.cs │ │ │ ├── FailProcessor.cs │ │ │ ├── FingerprintProcessor.cs │ │ │ ├── ForeachProcessor.cs │ │ │ ├── GrokProcessor.cs │ │ │ ├── GsubProcessor.cs │ │ │ ├── JoinProcessor.cs │ │ │ ├── JsonProcessor.cs │ │ │ ├── KeyValueProcessor.cs │ │ │ ├── LowercaseProcessor.cs │ │ │ ├── NetworkCommunityIdProcessor.cs │ │ │ ├── NetworkDirectionProcessor.cs │ │ │ ├── PipelineProcessor.cs │ │ │ ├── Plugins │ │ │ │ ├── AttachmentProcessor.cs │ │ │ │ ├── GeoIpProcessor.cs │ │ │ │ ├── NeuralSearch │ │ │ │ │ ├── InferenceProcessorBase.cs │ │ │ │ │ └── TextEmbeddingProcessor.cs │ │ │ │ ├── UserAgent │ │ │ │ │ └── UserAgentProperty.cs │ │ │ │ └── UserAgentProcessor.cs │ │ │ ├── RemoveProcessor.cs │ │ │ ├── RenameProcessor.cs │ │ │ ├── ScriptProcessor.cs │ │ │ ├── SetProcessor.cs │ │ │ ├── SortProcessor.cs │ │ │ ├── SplitProcessor.cs │ │ │ ├── TrimProcessor.cs │ │ │ ├── UppercaseProcessor.cs │ │ │ ├── UriPartsProcessor.cs │ │ │ └── UrlDecodeProcessor.cs │ │ ├── ProcessorsDescriptor.cs │ │ ├── PutPipeline │ │ │ ├── PutPipelineRequest.cs │ │ │ └── PutPipelineResponse.cs │ │ └── SimulatePipeline │ │ │ ├── SimulatePipelineDocument.cs │ │ │ ├── SimulatePipelineRequest.cs │ │ │ └── SimulatePipelineResponse.cs │ ├── Mapping │ │ ├── AttributeBased │ │ │ ├── OpenSearchCorePropertyAttributeBase.cs │ │ │ ├── OpenSearchDocValuesPropertyAttributeBase.cs │ │ │ ├── OpenSearchPropertyAttributeBase.cs │ │ │ └── OpenSearchTypeAttribute.cs │ │ ├── DynamicMapping.cs │ │ ├── DynamicTemplate │ │ │ ├── DynamicTemplate.cs │ │ │ ├── DynamicTemplateContainer.cs │ │ │ ├── DynamicTemplatesFormatter.cs │ │ │ └── SingleMapping.cs │ │ ├── Mappings.cs │ │ ├── MetaFields │ │ │ ├── FieldNames │ │ │ │ └── FieldNamesField.cs │ │ │ ├── IFieldMapping.cs │ │ │ ├── Routing │ │ │ │ └── RoutingField.cs │ │ │ ├── Size │ │ │ │ └── SizeField.cs │ │ │ └── Source │ │ │ │ └── SourceField.cs │ │ ├── PropertyMapping.cs │ │ ├── RuntimeFields │ │ │ ├── RuntimeField.cs │ │ │ └── RuntimeFields.cs │ │ ├── TermVectorOption.cs │ │ ├── TypeMapping.cs │ │ ├── Types │ │ │ ├── Complex │ │ │ │ ├── Nested │ │ │ │ │ ├── NestedAttribute.cs │ │ │ │ │ └── NestedProperty.cs │ │ │ │ └── Object │ │ │ │ │ ├── ObjectAttribute.cs │ │ │ │ │ └── ObjectProperty.cs │ │ │ ├── Core │ │ │ │ ├── Binary │ │ │ │ │ ├── BinaryAttribute.cs │ │ │ │ │ └── BinaryProperty.cs │ │ │ │ ├── Boolean │ │ │ │ │ ├── BooleanAttribute.cs │ │ │ │ │ └── BooleanProperty.cs │ │ │ │ ├── Date │ │ │ │ │ ├── DateAttribute.cs │ │ │ │ │ └── DateProperty.cs │ │ │ │ ├── DateNanos │ │ │ │ │ ├── DateNanosAttribute.cs │ │ │ │ │ └── DateNanosProperty.cs │ │ │ │ ├── Join │ │ │ │ │ ├── Children.cs │ │ │ │ │ ├── ChildrenFormatter.cs │ │ │ │ │ ├── JoinAttribute.cs │ │ │ │ │ ├── JoinField.cs │ │ │ │ │ ├── JoinFieldFormatter.cs │ │ │ │ │ ├── JoinProperty.cs │ │ │ │ │ └── Relations.cs │ │ │ │ ├── Keyword │ │ │ │ │ ├── KeywordAttribute.cs │ │ │ │ │ └── KeywordProperty.cs │ │ │ │ ├── Number │ │ │ │ │ ├── NumberAttribute.cs │ │ │ │ │ ├── NumberProperty.cs │ │ │ │ │ └── NumberType.cs │ │ │ │ ├── Percolator │ │ │ │ │ ├── PercolatorAttribute.cs │ │ │ │ │ └── PercolatorProperty.cs │ │ │ │ ├── Range │ │ │ │ │ ├── DateRange │ │ │ │ │ │ ├── DateRangeAttribute.cs │ │ │ │ │ │ └── DateRangeProperty.cs │ │ │ │ │ ├── DoubleRange │ │ │ │ │ │ ├── DoubleRangeAttribute.cs │ │ │ │ │ │ └── DoubleRangeProperty.cs │ │ │ │ │ ├── FloatRange │ │ │ │ │ │ ├── FloatRangeAttribute.cs │ │ │ │ │ │ └── FloatRangeProperty.cs │ │ │ │ │ ├── IntegerRange │ │ │ │ │ │ ├── IntegerRangeAttribute.cs │ │ │ │ │ │ └── IntegerRangeProperty.cs │ │ │ │ │ ├── IpRange │ │ │ │ │ │ ├── IpRangeAttribute.cs │ │ │ │ │ │ └── IpRangeProperty.cs │ │ │ │ │ ├── LongRange │ │ │ │ │ │ ├── LongRangeAttribute.cs │ │ │ │ │ │ └── LongRangeProperty.cs │ │ │ │ │ ├── RangePropertyAttributeBase.cs │ │ │ │ │ ├── RangePropertyBase.cs │ │ │ │ │ └── RangeType.cs │ │ │ │ ├── RankFeature │ │ │ │ │ ├── RankFeatureAttribute.cs │ │ │ │ │ └── RankFeatureProperty.cs │ │ │ │ ├── RankFeatures │ │ │ │ │ ├── RankFeaturesAttribute.cs │ │ │ │ │ └── RankFeaturesProperty.cs │ │ │ │ ├── SearchAsYouType │ │ │ │ │ ├── SearchAsYouTypeAttribute.cs │ │ │ │ │ └── SearchAsYouTypeProperty.cs │ │ │ │ └── Text │ │ │ │ │ ├── IndexOptions.cs │ │ │ │ │ ├── TextAttribute.cs │ │ │ │ │ ├── TextIndexPrefixes.cs │ │ │ │ │ └── TextProperty.cs │ │ │ ├── CorePropertyBase.cs │ │ │ ├── CorePropertyDescriptorBase.cs │ │ │ ├── DocValuesPropertyBase.cs │ │ │ ├── DocValuesPropertyDescriptorBase.cs │ │ │ ├── FieldType.cs │ │ │ ├── Geo │ │ │ │ ├── GeoPoint │ │ │ │ │ ├── GeoPointAttribute.cs │ │ │ │ │ └── GeoPointProperty.cs │ │ │ │ └── GeoShape │ │ │ │ │ ├── GeoOrientation.cs │ │ │ │ │ ├── GeoShapeAttribute.cs │ │ │ │ │ ├── GeoShapeProperty.cs │ │ │ │ │ ├── GeoStrategy.cs │ │ │ │ │ └── GeoTree.cs │ │ │ ├── Properties-Scalar.cs │ │ │ ├── Properties.cs │ │ │ ├── PropertiesFormatter.cs │ │ │ ├── PropertyBase.cs │ │ │ ├── PropertyDescriptorBase.cs │ │ │ ├── PropertyFormatter.cs │ │ │ └── Specialized │ │ │ │ ├── Attachment │ │ │ │ └── Attachment.cs │ │ │ │ ├── Completion │ │ │ │ ├── CategorySuggestContext.cs │ │ │ │ ├── CompletionAttribute.cs │ │ │ │ ├── CompletionProperty.cs │ │ │ │ ├── GeoSuggestContext.cs │ │ │ │ ├── ISuggestContext.cs │ │ │ │ ├── SuggestContextFormatter.cs │ │ │ │ └── SuggestContextsDescriptor.cs │ │ │ │ ├── FieldAlias │ │ │ │ └── FieldAliasProperty.cs │ │ │ │ ├── Generic │ │ │ │ └── GenericProperty.cs │ │ │ │ ├── Ip │ │ │ │ ├── IpAttribute.cs │ │ │ │ └── IpProperty.cs │ │ │ │ ├── Knn │ │ │ │ └── KnnVectorProperty.cs │ │ │ │ ├── Murmur3Hash │ │ │ │ ├── Murmur3HashAttribute.cs │ │ │ │ └── Murmur3HashProperty.cs │ │ │ │ ├── Shape │ │ │ │ └── ShapeOrientation.cs │ │ │ │ └── TokenCount │ │ │ │ ├── TokenCountAttribute.cs │ │ │ │ └── TokenCountProperty.cs │ │ └── Visitor │ │ │ ├── IMappingVisitor.cs │ │ │ ├── IPropertyVisitor.cs │ │ │ ├── MappingWalker.cs │ │ │ ├── NoopPropertyVisitor.cs │ │ │ └── PropertyWalker.cs │ ├── Modules │ │ ├── Cluster │ │ │ ├── AllocationAttribute.cs │ │ │ ├── AllocationAwareness │ │ │ │ └── AllocationAwarenessSettings.cs │ │ │ ├── AllocationFiltering │ │ │ │ └── AllocationFilteringSettings.cs │ │ │ ├── ClusterModuleSettings.cs │ │ │ ├── DiskBasedShardAllocation │ │ │ │ └── DiskbasedShardAllocationSettings.cs │ │ │ └── ShardAllocation │ │ │ │ ├── AllocationEnable.cs │ │ │ │ ├── AllowRebalance.cs │ │ │ │ ├── RebalanceEnable.cs │ │ │ │ ├── ShardAllocationSettings.cs │ │ │ │ ├── ShardBalancingHeuristicsSettings.cs │ │ │ │ └── ShardRebalancingSettings.cs │ │ ├── Gateway │ │ │ └── GatewaySettings.cs │ │ ├── Indices │ │ │ ├── CircuitBreaker │ │ │ │ └── CircuitBreakerSettings.cs │ │ │ ├── Fielddata │ │ │ │ ├── FielddataBase.cs │ │ │ │ ├── FielddataFilter.cs │ │ │ │ ├── FielddataFrequencyFilter.cs │ │ │ │ ├── FielddataLoading.cs │ │ │ │ ├── FielddataRegexFilter.cs │ │ │ │ ├── FielddataSettings.cs │ │ │ │ ├── GeoPoint │ │ │ │ │ ├── GeoPointFielddata.cs │ │ │ │ │ └── GeoPointFielddataFormat.cs │ │ │ │ ├── Numeric │ │ │ │ │ ├── NumericFielddata.cs │ │ │ │ │ └── NumericFielddataFormat.cs │ │ │ │ └── String │ │ │ │ │ ├── StringFielddata.cs │ │ │ │ │ └── StringFielddataFormat.cs │ │ │ ├── IndexingBuffer │ │ │ │ └── IndexingBufferSettings.cs │ │ │ ├── IndicesModuleSettings.cs │ │ │ └── Recovery │ │ │ │ └── IndicesRecoverySettings.cs │ │ └── Scripting │ │ │ ├── DeleteScript │ │ │ ├── DeleteScriptRequest.cs │ │ │ └── DeleteScriptResponse.cs │ │ │ ├── ExecutePainlessScript │ │ │ ├── ExecutePainlessScriptRequest.cs │ │ │ ├── ExecutePainlessScriptResponse.cs │ │ │ └── PainlessContextSetup.cs │ │ │ ├── GetScript │ │ │ ├── GetScriptRequest.cs │ │ │ └── GetScriptResponse.cs │ │ │ ├── IStoredScript.cs │ │ │ ├── PutScript │ │ │ ├── PutScriptRequest.cs │ │ │ └── PutScriptResponse.cs │ │ │ └── ScriptLang.cs │ ├── Nodes │ │ ├── NodesHotThreads │ │ │ ├── NodeHotThreadsResponseBuilder.cs │ │ │ ├── NodesHotThreadsRequest.cs │ │ │ └── NodesHotThreadsResponse.cs │ │ ├── NodesInfo │ │ │ ├── NodeInfo.cs │ │ │ ├── NodeRole.cs │ │ │ ├── NodesInfoRequest.cs │ │ │ └── NodesInfoResponse.cs │ │ ├── NodesResponseBase.cs │ │ ├── NodesStats │ │ │ ├── AdaptiveSelectionStats.cs │ │ │ ├── NodeStats.cs │ │ │ ├── NodeStatsResponse.cs │ │ │ ├── NodesStatsRequest.cs │ │ │ └── Statistics │ │ │ │ ├── IngestStats.cs │ │ │ │ └── NodeIngestStats.cs │ │ ├── NodesUsage │ │ │ ├── NodeUsageInformation.cs │ │ │ ├── NodeUsageResponse.cs │ │ │ └── NodesUsageRequest.cs │ │ └── ReloadSecureSettings │ │ │ ├── ReloadSecureSettingsRequest.cs │ │ │ └── ReloadSecureSettingsResponse.cs │ ├── OpenSearch.Client.csproj │ ├── OpenSearchClient.Indices.cs │ ├── OpenSearchClient.cs │ ├── Properties │ │ └── ClsCompliancy.cs │ ├── QueryDsl │ │ ├── Abstractions │ │ │ ├── Container │ │ │ │ ├── IQueryContainer.cs │ │ │ │ ├── QueryContainer-Assignments.cs │ │ │ │ ├── QueryContainer-Dsl.cs │ │ │ │ ├── QueryContainerDescriptor.cs │ │ │ │ └── QueryContainerFormatter.cs │ │ │ ├── FieldLookup │ │ │ │ ├── FieldLookup.cs │ │ │ │ └── FieldLookupExtensions.cs │ │ │ ├── FieldName │ │ │ │ ├── FieldNameQueryBase.cs │ │ │ │ ├── FieldNameQueryDescriptorBase.cs │ │ │ │ └── FieldNameQueryFormatter.cs │ │ │ └── Query │ │ │ │ ├── BoolQueryAndExtensions.cs │ │ │ │ ├── BoolQueryExtensions.cs │ │ │ │ ├── BoolQueryOrExtensions.cs │ │ │ │ ├── QueryBase.cs │ │ │ │ └── QueryDescriptorBase.cs │ │ ├── Compound │ │ │ ├── Bool │ │ │ │ └── BoolQuery.cs │ │ │ ├── Boosting │ │ │ │ └── BoostingQuery.cs │ │ │ ├── ConstantScore │ │ │ │ └── ConstantScoreQuery.cs │ │ │ ├── Dismax │ │ │ │ └── DismaxQuery.cs │ │ │ └── FunctionScore │ │ │ │ ├── FunctionScoreQuery.cs │ │ │ │ └── Functions │ │ │ │ ├── Decay │ │ │ │ ├── DecayFunctionBase.cs │ │ │ │ ├── ExponentialDecayFunctionBase.cs │ │ │ │ ├── GaussDecayFunctionBase.cs │ │ │ │ ├── LinearDecayFunctionBase.cs │ │ │ │ └── MultiValueMode.cs │ │ │ │ ├── FieldValue │ │ │ │ ├── FieldValueFactorFunction.cs │ │ │ │ └── FieldValueFactorModifier.cs │ │ │ │ ├── FunctionBoostMode.cs │ │ │ │ ├── FunctionScoreMode.cs │ │ │ │ ├── IScoreFunction.cs │ │ │ │ ├── Random │ │ │ │ └── RandomScoreFunction.cs │ │ │ │ ├── ScoreFunctionJsonFormatter.cs │ │ │ │ ├── ScoreFunctions.cs │ │ │ │ ├── ScriptScore │ │ │ │ └── ScriptScoreFunction.cs │ │ │ │ └── Weight │ │ │ │ └── WeightFunction.cs │ │ ├── FullText │ │ │ ├── Intervals │ │ │ │ ├── IntervalsAllOf.cs │ │ │ │ ├── IntervalsAnyOf.cs │ │ │ │ ├── IntervalsFilter.cs │ │ │ │ ├── IntervalsFuzzy.cs │ │ │ │ ├── IntervalsMatch.cs │ │ │ │ ├── IntervalsPrefix.cs │ │ │ │ ├── IntervalsQuery.cs │ │ │ │ └── IntervalsWildcard.cs │ │ │ ├── Match │ │ │ │ └── MatchQuery.cs │ │ │ ├── MatchBoolPrefix │ │ │ │ └── MatchBoolPrefixQuery.cs │ │ │ ├── MatchPhrase │ │ │ │ └── MatchPhraseQuery.cs │ │ │ ├── MatchPhrasePrefix │ │ │ │ └── MatchPhrasePrefixQuery.cs │ │ │ ├── MultiMatch │ │ │ │ ├── MultiMatchQuery.cs │ │ │ │ ├── TextQueryType.cs │ │ │ │ └── ZeroTermsQuery.cs │ │ │ ├── QueryString │ │ │ │ └── QueryStringQuery.cs │ │ │ └── SimpleQueryString │ │ │ │ ├── SimpleQueryStringFlags.cs │ │ │ │ └── SimpleQueryStringQuery.cs │ │ ├── Geo │ │ │ ├── BoundingBox │ │ │ │ ├── BoundingBox.cs │ │ │ │ ├── GeoBoundingBoxQuery.cs │ │ │ │ └── GeoExecution.cs │ │ │ ├── Distance │ │ │ │ └── GeoDistanceQuery.cs │ │ │ ├── GeoCoordinateFormatter.cs │ │ │ ├── GeoLocation.cs │ │ │ ├── GeoLocationFormatter.cs │ │ │ ├── GeoValidationMethod.cs │ │ │ ├── LatLon.cs │ │ │ ├── Polygon │ │ │ │ └── GeoPolygonQuery.cs │ │ │ ├── Shape │ │ │ │ ├── CircleGeoShape.cs │ │ │ │ ├── EnvelopeGeoShape.cs │ │ │ │ ├── GeoShapeBase.cs │ │ │ │ ├── GeoShapeQueryFormatter.cs │ │ │ │ ├── GeometryCollection.cs │ │ │ │ ├── IGeoShapeQuery.cs │ │ │ │ ├── LineStringGeoShape.cs │ │ │ │ ├── MultiLineStringGeoShape.cs │ │ │ │ ├── MultiPointGeoShape.cs │ │ │ │ ├── MultiPolygonGeoShape.cs │ │ │ │ ├── PointGeoShape.cs │ │ │ │ └── PolygonGeoShape.cs │ │ │ └── WKT │ │ │ │ ├── GeoWKTException.cs │ │ │ │ ├── GeoWKTReader.cs │ │ │ │ └── GeoWKTWriter.cs │ │ ├── Joining │ │ │ ├── HasChild │ │ │ │ ├── ChildScoreMode.cs │ │ │ │ └── HasChildQuery.cs │ │ │ ├── HasParent │ │ │ │ └── HasParentQuery.cs │ │ │ ├── Nested │ │ │ │ ├── NestedQuery.cs │ │ │ │ └── NestedScoreMode.cs │ │ │ └── ParentId │ │ │ │ └── ParentIdQuery.cs │ │ ├── MatchAllQuery.cs │ │ ├── MatchNoneQuery.cs │ │ ├── MultiTermQueryRewrite │ │ │ ├── MultiTermQueryRewriteFormatter.cs │ │ │ └── RewriteMultiTerm.cs │ │ ├── Operator.cs │ │ ├── OscSpecific │ │ │ ├── ConditionlessQuery.cs │ │ │ └── RawQuery.cs │ │ ├── Query.cs │ │ ├── Span │ │ │ ├── Containing │ │ │ │ └── SpanContainingQuery.cs │ │ │ ├── FieldMasking │ │ │ │ └── SpanFieldMaskingQuery.cs │ │ │ ├── First │ │ │ │ └── SpanFirstQuery.cs │ │ │ ├── Gap │ │ │ │ └── SpanGapQuery.cs │ │ │ ├── ISpanSubQuery.cs │ │ │ ├── MultiTerm │ │ │ │ └── SpanMultiTermQuery.cs │ │ │ ├── Near │ │ │ │ └── SpanNearQuery.cs │ │ │ ├── Not │ │ │ │ └── SpanNotQuery.cs │ │ │ ├── Or │ │ │ │ └── SpanOrQuery.cs │ │ │ ├── SpanQuery.cs │ │ │ ├── Term │ │ │ │ └── SpanTermQuery.cs │ │ │ └── Within │ │ │ │ └── SpanWithinQuery.cs │ │ ├── Specialized │ │ │ ├── DistanceFeature │ │ │ │ └── DistanceFeatureQuery.cs │ │ │ ├── Knn │ │ │ │ └── KnnQuery.cs │ │ │ ├── MoreLikeThis │ │ │ │ ├── Like │ │ │ │ │ ├── Like.cs │ │ │ │ │ └── LikeDocument.cs │ │ │ │ └── MoreLikeThisQuery.cs │ │ │ ├── Neural │ │ │ │ └── NeuralQuery.cs │ │ │ ├── Percolate │ │ │ │ └── PercolateQuery.cs │ │ │ ├── RankFeature │ │ │ │ └── RankFeatureQuery.cs │ │ │ ├── Script │ │ │ │ └── ScriptQuery.cs │ │ │ ├── ScriptScore │ │ │ │ └── ScriptScoreQuery.cs │ │ │ └── Shape │ │ │ │ ├── CartesianPoint.cs │ │ │ │ ├── IShapeQuery.cs │ │ │ │ └── ShapeQueryFormatter.cs │ │ ├── TermLevel │ │ │ ├── Exists │ │ │ │ └── ExistsQuery.cs │ │ │ ├── Fuzzy │ │ │ │ ├── FuzzyQueries.cs │ │ │ │ ├── FuzzyQueryBase.cs │ │ │ │ └── FuzzyQueryFormatter.cs │ │ │ ├── Ids │ │ │ │ └── IdsQuery.cs │ │ │ ├── Prefix │ │ │ │ └── PrefixQuery.cs │ │ │ ├── Range │ │ │ │ ├── DateRangeQuery.cs │ │ │ │ ├── LongRangeQuery.cs │ │ │ │ ├── NumericRangeQuery.cs │ │ │ │ ├── RangeQuery.cs │ │ │ │ ├── RangeQueryFormatter.cs │ │ │ │ ├── RangeRelation.cs │ │ │ │ └── TermRangeQuery.cs │ │ │ ├── Regexp │ │ │ │ └── RegexpQuery.cs │ │ │ ├── Term │ │ │ │ └── TermQuery.cs │ │ │ ├── Terms │ │ │ │ ├── TermsQuery.cs │ │ │ │ └── TermsQueryFormatter.cs │ │ │ ├── TermsSet │ │ │ │ └── TermsSetQuery.cs │ │ │ └── Wildcard │ │ │ │ └── WildcardQuery.cs │ │ └── Visitor │ │ │ ├── DslPrettyPrintVisitor.cs │ │ │ ├── QueryVisitor.cs │ │ │ ├── QueryWalker.cs │ │ │ ├── StrictnessPropagatingVisitor.cs │ │ │ ├── VerbatimPropagatingVisitor.cs │ │ │ └── VisitorScope.cs │ ├── README.md │ ├── Requests.Indices.cs │ ├── Requests.cs │ ├── Search │ │ ├── Count │ │ │ ├── CountRequest.cs │ │ │ └── CountResponse.cs │ │ ├── Explain │ │ │ ├── ExplainGet.cs │ │ │ ├── ExplainRequest.cs │ │ │ ├── ExplainResponse.cs │ │ │ ├── Explanation.cs │ │ │ └── ExplanationDetail.cs │ │ ├── FieldCapabilities │ │ │ ├── FieldCapabilitiesRequest.cs │ │ │ └── FieldCapabilitiesResponse.cs │ │ ├── ITypedSearchRequest.cs │ │ ├── MultiSearch │ │ │ ├── MultiSearchFormatter.cs │ │ │ ├── MultiSearchRequest.cs │ │ │ ├── MultiSearchResponse.cs │ │ │ ├── MultiSearchResponseBuilder.cs │ │ │ └── MultiSearchResponseFormatter.cs │ │ ├── MultiSearchTemplate │ │ │ ├── MultiSearchTemplateJsonConverter.cs │ │ │ └── MultiSearchTemplateRequest.cs │ │ ├── PointInTime │ │ │ ├── CreatePitRequest.cs │ │ │ ├── CreatePitResponse.cs │ │ │ ├── DeleteAllPitsRequest.cs │ │ │ ├── DeleteAllPitsResponse.cs │ │ │ ├── DeletePitRequest.cs │ │ │ ├── DeletePitResponse.cs │ │ │ ├── GetAllPitsRequest.cs │ │ │ └── GetAllPitsResponse.cs │ │ ├── Scroll │ │ │ ├── ClearScroll │ │ │ │ ├── ClearScrollRequest.cs │ │ │ │ └── ClearScrollResponse.cs │ │ │ └── Scroll │ │ │ │ ├── ScrollRequest.cs │ │ │ │ └── SlicedScroll.cs │ │ ├── Search │ │ │ ├── Collapsing │ │ │ │ └── FieldCollapse.cs │ │ │ ├── Highlighting │ │ │ │ ├── BoundaryScanner.cs │ │ │ │ ├── Highlight.cs │ │ │ │ ├── HighlightField.cs │ │ │ │ ├── HighlighterEncoder.cs │ │ │ │ ├── HighlighterFragmenter.cs │ │ │ │ ├── HighlighterOrder.cs │ │ │ │ ├── HighlighterTagsSchema.cs │ │ │ │ └── HighlighterType.cs │ │ │ ├── Hits │ │ │ │ ├── Hit.cs │ │ │ │ ├── HitsMetaData.cs │ │ │ │ ├── InnerHitsMetaData.cs │ │ │ │ ├── InnerHitsResult.cs │ │ │ │ ├── NestedIdentity.cs │ │ │ │ └── TotalHits.cs │ │ │ ├── InnerHits │ │ │ │ └── InnerHits.cs │ │ │ ├── PointInTime │ │ │ │ └── PointInTime.cs │ │ │ ├── Profile │ │ │ │ ├── AggregationBreakdown.cs │ │ │ │ ├── AggregationProfile.cs │ │ │ │ ├── Collector.cs │ │ │ │ ├── Profile.cs │ │ │ │ ├── QueryBreakdown.cs │ │ │ │ ├── QueryProfile.cs │ │ │ │ ├── SearchProfile.cs │ │ │ │ └── ShardProfile.cs │ │ │ ├── Rescoring │ │ │ │ ├── Rescore.cs │ │ │ │ ├── RescoreQuery.cs │ │ │ │ └── ScoreMode.cs │ │ │ ├── SearchRequest.cs │ │ │ ├── SearchResponse.cs │ │ │ ├── Sort │ │ │ │ ├── FieldSort.cs │ │ │ │ ├── GeoDistanceSort.cs │ │ │ │ ├── NestedSort.cs │ │ │ │ ├── NumericType.cs │ │ │ │ ├── ScriptSort.cs │ │ │ │ ├── SortBase.cs │ │ │ │ ├── SortDescriptor.cs │ │ │ │ ├── SortMode.cs │ │ │ │ ├── SortOrder.cs │ │ │ │ └── SortSpecialField.cs │ │ │ └── SourceFiltering │ │ │ │ ├── SourceFilter.cs │ │ │ │ └── SourceFilterJsonConverter.cs │ │ ├── SearchShards │ │ │ ├── SearchShardsRequest.cs │ │ │ └── SearchShardsResponse.cs │ │ ├── SearchTemplate │ │ │ ├── RenderSearchTemplate │ │ │ │ ├── RenderSearchTemplateRequest.cs │ │ │ │ └── RenderSearchTemplateResponse.cs │ │ │ └── SearchTemplateRequest.cs │ │ ├── Suggesters │ │ │ ├── CompletionSuggester │ │ │ │ ├── CompletionField.cs │ │ │ │ ├── CompletionSuggester.cs │ │ │ │ └── SuggestFuzziness.cs │ │ │ ├── ContextSuggester │ │ │ │ ├── Context.cs │ │ │ │ └── SuggestContextQuery.cs │ │ │ ├── PhraseSuggester │ │ │ │ ├── DirectGenerator.cs │ │ │ │ ├── PhraseSuggestCollate.cs │ │ │ │ ├── PhraseSuggestCollateQuery.cs │ │ │ │ ├── PhraseSuggestHighlight.cs │ │ │ │ ├── PhraseSuggester.cs │ │ │ │ └── SmoothingModel │ │ │ │ │ ├── LaplaceSmoothingModel.cs │ │ │ │ │ ├── LinearInterpolationSmoothingModel.cs │ │ │ │ │ ├── SmoothingModelBase.cs │ │ │ │ │ ├── SmoothingModelContainer.cs │ │ │ │ │ └── StupidBackoffSmoothingModel.cs │ │ │ ├── Suggest.cs │ │ │ ├── SuggestBucket.cs │ │ │ ├── SuggestContainer.cs │ │ │ ├── SuggestDictionary.cs │ │ │ ├── SuggestOption.cs │ │ │ ├── SuggesterBase.cs │ │ │ └── TermSuggester │ │ │ │ ├── StringDistance.cs │ │ │ │ ├── SuggestSort.cs │ │ │ │ └── TermSuggester.cs │ │ └── TrackTotalHits │ │ │ ├── TrackTotalHits.cs │ │ │ └── TrackTotalHitsFormatter.cs │ ├── Snapshot │ │ ├── Repositories │ │ │ ├── AzureRepository.cs │ │ │ ├── CleanupRepository │ │ │ │ ├── CleanupRepositoryRequest.cs │ │ │ │ └── CleanupRepositoryResponse.cs │ │ │ ├── CreateRepository │ │ │ │ ├── CreateRepositoryFormatter.cs │ │ │ │ ├── CreateRepositoryRequest.cs │ │ │ │ └── CreateRepositoryResponse.cs │ │ │ ├── DeleteRepository │ │ │ │ ├── DeleteRepositoryRequest.cs │ │ │ │ └── DeleteRepositoryResponse.cs │ │ │ ├── FileSystemRepository.cs │ │ │ ├── GetRepository │ │ │ │ ├── GetRepositoryRequest.cs │ │ │ │ ├── GetRepositoryResponse.cs │ │ │ │ └── GetRepositoryResponseFormatter.cs │ │ │ ├── HdfsRepository.cs │ │ │ ├── ISnapshotRepository.cs │ │ │ ├── ReadOnlyUrlRepository.cs │ │ │ ├── S3Repository.cs │ │ │ ├── SourceOnlyRepository.cs │ │ │ └── VerifyRepository │ │ │ │ ├── CompactNodeInfo.cs │ │ │ │ ├── VerifyRepositoryRequest.cs │ │ │ │ └── VerifyRepositoryResponse.cs │ │ ├── Restore │ │ │ ├── RestoreObservable │ │ │ │ └── RestoreObservable.cs │ │ │ ├── RestoreRequest.cs │ │ │ ├── RestoreResponse.cs │ │ │ └── SnapshotRestore.cs │ │ └── Snapshot │ │ │ ├── Clone │ │ │ ├── CloneSnapshotRequest.cs │ │ │ └── CloneSnapshotResponse.cs │ │ │ ├── DeleteSnapshot │ │ │ ├── DeleteSnapshotRequest.cs │ │ │ └── DeleteSnapshotResponse.cs │ │ │ ├── GetSnapshot │ │ │ ├── GetSnapshotRequest.cs │ │ │ └── GetSnapshotResponse.cs │ │ │ ├── Snapshot.cs │ │ │ ├── Snapshot │ │ │ ├── SnapshotRequest.cs │ │ │ └── SnapshotResponse.cs │ │ │ ├── SnapshotObservable │ │ │ ├── SnapshotObservable.cs │ │ │ └── SnapshotObserver.cs │ │ │ ├── SnapshotShardFailure.cs │ │ │ └── SnapshotStatus │ │ │ ├── SnapshotStatusRequest.cs │ │ │ └── SnapshotStatusResponse.cs │ ├── Tasks │ │ ├── CancelTasks │ │ │ ├── CancelTasksRequest.cs │ │ │ └── CancelTasksResponse.cs │ │ ├── GetTask │ │ │ ├── GetTaskRequest.cs │ │ │ ├── GetTaskResponse.cs │ │ │ └── TaskInfo.cs │ │ └── ListTasks │ │ │ ├── ListTasksRequest.cs │ │ │ └── ListTasksResponse.cs │ └── _Generated │ │ ├── ApiUrlsLookup.cs │ │ ├── Descriptors.Cat.cs │ │ ├── Descriptors.Cluster.cs │ │ ├── Descriptors.DanglingIndices.cs │ │ ├── Descriptors.Http.cs │ │ ├── Descriptors.Indices.cs │ │ ├── Descriptors.Ingest.cs │ │ ├── Descriptors.NoNamespace.cs │ │ ├── Descriptors.Nodes.cs │ │ ├── Descriptors.Snapshot.cs │ │ ├── Descriptors.Tasks.cs │ │ ├── Descriptors.cs │ │ ├── IOpenSearchClient.cs │ │ ├── OpenSearchClient.Cat.cs │ │ ├── OpenSearchClient.Cluster.cs │ │ ├── OpenSearchClient.DanglingIndices.cs │ │ ├── OpenSearchClient.Http.cs │ │ ├── OpenSearchClient.Indices.cs │ │ ├── OpenSearchClient.Ingest.cs │ │ ├── OpenSearchClient.Nodes.cs │ │ ├── OpenSearchClient.Snapshot.cs │ │ ├── OpenSearchClient.Tasks.cs │ │ ├── OpenSearchClient.cs │ │ ├── Requests.Cat.cs │ │ ├── Requests.Cluster.cs │ │ ├── Requests.DanglingIndices.cs │ │ ├── Requests.Http.cs │ │ ├── Requests.Indices.cs │ │ ├── Requests.Ingest.cs │ │ ├── Requests.NoNamespace.cs │ │ ├── Requests.Nodes.cs │ │ ├── Requests.Snapshot.cs │ │ ├── Requests.Tasks.cs │ │ └── Requests.cs ├── OpenSearch.Net.Auth.AwsSigV4 │ ├── AwsSigV4HttpClientHandler.cs │ ├── AwsSigV4HttpConnection.cs │ ├── AwsSigV4Util.cs │ ├── CanonicalRequest.cs │ ├── HeaderNames.cs │ └── OpenSearch.Net.Auth.AwsSigV4.csproj ├── OpenSearch.Net.VirtualizedCluster │ ├── Audit │ │ ├── Auditor.cs │ │ └── Audits.cs │ ├── Extensions │ │ └── NumericExtensions.cs │ ├── FixedPipelineFactory.cs │ ├── MockResponses │ │ └── SniffResponseBytes.cs │ ├── OpenSearch.Net.VirtualizedCluster.csproj │ ├── Providers │ │ └── TestableDateTimeProvider.cs │ ├── README.md │ ├── Rules │ │ ├── ClientCallRule.cs │ │ ├── PingRule.cs │ │ ├── RuleBase.cs │ │ ├── RuleOption.cs │ │ ├── SniffRule.cs │ │ └── TimesHelper.cs │ ├── SealedVirtualCluster.cs │ ├── VirtualCluster.cs │ ├── VirtualClusterConnection.cs │ ├── VirtualClusterWith.cs │ └── VirtualizedCluster.cs ├── OpenSearch.Net │ ├── .editorconfig │ ├── Api │ │ ├── Enums.cs │ │ ├── NativeMethods.cs │ │ └── RequestParameters │ │ │ ├── IRequestParameters.cs │ │ │ ├── RequestParameters.Indices.cs │ │ │ ├── RequestParameters.cs │ │ │ └── RequestParametersExtensions.cs │ ├── Auditing │ │ ├── Audit.cs │ │ ├── AuditEvent.cs │ │ └── Auditable.cs │ ├── Configuration │ │ ├── ConnectionConfiguration.cs │ │ ├── IConnectionConfigurationValues.cs │ │ ├── RequestConfiguration.cs │ │ ├── RequestConfigurationExtensions.cs │ │ ├── RequestMetaData.cs │ │ └── Security │ │ │ ├── ApiKeyAuthenticationCredentials.cs │ │ │ └── BasicAuthenticationCredentials.cs │ ├── Connection │ │ ├── CertificateValidations.cs │ │ ├── ConnectionInfo.cs │ │ ├── Content │ │ │ └── RequestDataContent.cs │ │ ├── HandlerTracking │ │ │ ├── ActiveHandlerTrackingEntry.cs │ │ │ ├── ExpiredHandlerTrackingEntry.cs │ │ │ ├── LifetimeTrackingHttpMessageHandler.cs │ │ │ ├── RequestDataHttpClientFactory.cs │ │ │ └── ValueStopWatch.cs │ │ ├── HttpConnection.cs │ │ ├── HttpMethod.cs │ │ ├── HttpWebRequestConnection.cs │ │ ├── IConnection.cs │ │ ├── InMemoryConnection.cs │ │ ├── MetaData │ │ │ ├── ClientVersionInfo.cs │ │ │ ├── MetaDataHeader.cs │ │ │ ├── MetaHeaderProvider.cs │ │ │ ├── RuntimeVersionInfo.cs │ │ │ └── VersionInfo.cs │ │ └── SecureStrings.cs │ ├── ConnectionPool │ │ ├── CloudConnectionPool.cs │ │ ├── IConnectionPool.cs │ │ ├── Node.cs │ │ ├── SingleNodeConnectionPool.cs │ │ ├── SniffingConnectionPool.cs │ │ ├── StaticConnectionPool.cs │ │ ├── StickyConnectionPool.cs │ │ └── StickySniffingConnectionPool.cs │ ├── Diagnostics │ │ ├── AuditDiagnosticObserver.cs │ │ ├── Diagnostic.cs │ │ ├── DiagnosticSources.cs │ │ ├── HttpConnectionDiagnosticObserver.cs │ │ ├── RequestPipelineDiagnosticObserver.cs │ │ ├── SerializerDiagnosticObserver.cs │ │ ├── TcpStats.cs │ │ ├── ThreadpoolStats.cs │ │ └── TypedDiagnosticObserverBase.cs │ ├── Exceptions │ │ ├── OpenSearchClientException.cs │ │ └── UnexpectedOpenSearchClientException.cs │ ├── Extensions │ │ ├── ArraySegmentBytesExtensions.cs │ │ ├── CharUtils.cs │ │ ├── DateTimeUtil.cs │ │ ├── EmptyReadonly.cs │ │ ├── EnumExtensions.cs │ │ ├── Fluent.cs │ │ ├── MapsApiAttribute.cs │ │ ├── NameValueCollectionExtensions.cs │ │ ├── StringBuilderCache.cs │ │ ├── TypeExtensions.cs │ │ ├── UtilExtensions.cs │ │ └── X509CertificateExtensions.cs │ ├── GlobalSuppressions.cs │ ├── IOpenSearchLowLevelClient.cs │ ├── NamespacedClientProxy.cs │ ├── OpenSearch.Net.csproj │ ├── OpenSearch.Net.csproj.DotSettings │ ├── OpenSearchLowLevelClient.Indices.cs │ ├── OpenSearchLowLevelClient.cs │ ├── OpenSearchUrlFormatter.cs │ ├── Patch.IOpenSearchLowLevelClient.cs │ ├── Patch.OpenSearchLowLevelClient.Nodes.cs │ ├── Patch.OpenSearchLowLevelClient.cs │ ├── Properties │ │ └── ClsCompliancy.cs │ ├── Providers │ │ ├── DateTimeProvider.cs │ │ ├── IDateTimeProvider.cs │ │ ├── IMemoryStreamFactory.cs │ │ ├── IRequestPipelineFactory.cs │ │ ├── MemoryStreamFactory.cs │ │ ├── RecyclableMemoryStream.cs │ │ ├── RecyclableMemoryStreamFactory.cs │ │ ├── RecyclableMemoryStreamManager-Events.cs │ │ └── RecyclableMemoryStreamManager.cs │ ├── README.md │ ├── Responses │ │ ├── Dynamic │ │ │ ├── DynamicDictionary.cs │ │ │ ├── DynamicResponse.cs │ │ │ └── DynamicValue.cs │ │ ├── HttpDetails │ │ │ ├── ApiCallDetails.cs │ │ │ └── IApiCallDetails.cs │ │ ├── IOpenSearchResponse.cs │ │ ├── OpenSearchResponse.cs │ │ ├── ResponseStatics.cs │ │ ├── ServerException │ │ │ ├── Error.cs │ │ │ ├── ErrorCause.cs │ │ │ ├── ServerError.cs │ │ │ └── ShardFailure.cs │ │ ├── Sniff │ │ │ └── SniffResponse.cs │ │ └── Special │ │ │ ├── BytesResponse.cs │ │ │ ├── StringResponse.cs │ │ │ └── VoidResponse.cs │ ├── Serialization │ │ ├── CustomResponseBuilderBase.cs │ │ ├── DiagnosticsSerializerProxy.cs │ │ ├── Formatters │ │ │ ├── DynamicDictionaryFormatter.cs │ │ │ ├── ExceptionFormatter.cs │ │ │ ├── InterfaceReadOnlyCollectionSingleOrEnumerableFormatter.cs │ │ │ ├── NullableStringIntFormatter.cs │ │ │ └── OpenSearchNetEnumResolver.cs │ │ ├── IInternalSerializerWithFormatter.cs │ │ ├── IOpenSearchSerializer.cs │ │ ├── IUrlParameter.cs │ │ ├── LowLevelRequestResponseSerializer.cs │ │ ├── OpenSearchSerializerExtensions.cs │ │ ├── Resolvers │ │ │ └── OpenSearchNetFormatterResolver.cs │ │ ├── SerializationFormatting.cs │ │ └── StringEnumAttribute.cs │ ├── Transport │ │ ├── ITransport.cs │ │ ├── Pipeline │ │ │ ├── IRequestPipeline.cs │ │ │ ├── PipelineException.cs │ │ │ ├── PipelineFailure.cs │ │ │ ├── RequestData.cs │ │ │ ├── RequestPipeline.cs │ │ │ └── ResponseBuilder.cs │ │ ├── PostData.cs │ │ ├── SerializableData.cs │ │ ├── StreamableData.cs │ │ └── Transport.cs │ ├── Utf8Json │ │ ├── Attributes.cs │ │ ├── Formatters │ │ │ ├── AnonymousFormatter.cs │ │ │ ├── CollectionFormatters.cs │ │ │ ├── DateTimeFormatter.cs │ │ │ ├── DictionaryFormatter.cs │ │ │ ├── DynamicObjectTypeFallbackFormatter.cs │ │ │ ├── EnumFormatter.cs │ │ │ ├── MultiDimensionalArrayFormatter.cs │ │ │ ├── NullableFormatter.cs │ │ │ ├── PrimitiveFormatter.cs │ │ │ ├── PrimitiveFormatter.tt │ │ │ ├── PrimitiveObjectFormatter.cs │ │ │ ├── StandardClassLibraryFormatters.cs │ │ │ ├── TupleFormatter.cs │ │ │ ├── TupleFormatter.tt │ │ │ ├── ValueTupleFormatter.cs │ │ │ └── ValueTupleFormatter.tt │ │ ├── IJsonFormatter.cs │ │ ├── IJsonFormatterResolver.cs │ │ ├── IJsonProperty.cs │ │ ├── Internal │ │ │ ├── ArrayBuffer.cs │ │ │ ├── ArrayPool.cs │ │ │ ├── AutomataDictionary.cs │ │ │ ├── BinaryUtil.cs │ │ │ ├── ByteArrayComparer.cs │ │ │ ├── ByteArrayStringHashTable.cs │ │ │ ├── DoubleConversion │ │ │ │ ├── DiyFp.cs │ │ │ │ ├── DoubleToStringConverter.cs │ │ │ │ ├── IEEE.cs │ │ │ │ ├── PowersOfTenCache.cs │ │ │ │ ├── StringToDouble.cs │ │ │ │ └── StringToDoubleConverter.cs │ │ │ ├── Emit │ │ │ │ ├── DynamicAssembly.cs │ │ │ │ ├── ExpressionUtility.cs │ │ │ │ ├── ILGeneratorExtensions.cs │ │ │ │ ├── ILViewer.cs │ │ │ │ ├── MetaMember.cs │ │ │ │ └── MetaType.cs │ │ │ ├── FarmHash.cs │ │ │ ├── FuncExtensions.cs │ │ │ ├── GuidBits.cs │ │ │ ├── NumberConverter.cs │ │ │ ├── ReflectionExtensions.cs │ │ │ ├── StringEncoding.cs │ │ │ ├── StringMutator.cs │ │ │ ├── ThreadsafeTypeKeyHashTable.cs │ │ │ ├── UnsafeMemory.Low.cs │ │ │ ├── UnsafeMemory.cs │ │ │ └── UnsafeMemory.tt │ │ ├── JsonReader.cs │ │ ├── JsonSerializer.NonGeneric.cs │ │ ├── JsonSerializer.cs │ │ ├── JsonToken.cs │ │ ├── JsonWriter.cs │ │ └── Resolvers │ │ │ ├── AttributeFormatterResolver.cs │ │ │ ├── BuiltinResolver.cs │ │ │ ├── CompositeResolver.cs │ │ │ ├── DynamicGenericResolver.cs │ │ │ ├── DynamicObjectResolver.cs │ │ │ ├── EnumResolver.cs │ │ │ └── StandardResolver.cs │ └── _Generated │ │ ├── Api │ │ ├── Enums.cs │ │ └── RequestParameters │ │ │ ├── RequestParameters.AsynchronousSearch.cs │ │ │ ├── RequestParameters.Cat.cs │ │ │ ├── RequestParameters.Cluster.cs │ │ │ ├── RequestParameters.DanglingIndices.cs │ │ │ ├── RequestParameters.FlowFramework.cs │ │ │ ├── RequestParameters.Http.cs │ │ │ ├── RequestParameters.Indices.cs │ │ │ ├── RequestParameters.Ingest.cs │ │ │ ├── RequestParameters.Insights.cs │ │ │ ├── RequestParameters.Ism.cs │ │ │ ├── RequestParameters.Knn.cs │ │ │ ├── RequestParameters.List.cs │ │ │ ├── RequestParameters.Ltr.cs │ │ │ ├── RequestParameters.Ml.cs │ │ │ ├── RequestParameters.NoNamespace.cs │ │ │ ├── RequestParameters.Nodes.cs │ │ │ ├── RequestParameters.Notifications.cs │ │ │ ├── RequestParameters.Observability.cs │ │ │ ├── RequestParameters.Ppl.cs │ │ │ ├── RequestParameters.Query.cs │ │ │ ├── RequestParameters.RemoteStore.cs │ │ │ ├── RequestParameters.Replication.cs │ │ │ ├── RequestParameters.Rollups.cs │ │ │ ├── RequestParameters.SearchPipeline.cs │ │ │ ├── RequestParameters.Security.cs │ │ │ ├── RequestParameters.Sm.cs │ │ │ ├── RequestParameters.Snapshot.cs │ │ │ ├── RequestParameters.Sql.cs │ │ │ ├── RequestParameters.Tasks.cs │ │ │ ├── RequestParameters.Transforms.cs │ │ │ └── RequestParameters.Wlm.cs │ │ ├── IOpenSearchLowLevelClient.cs │ │ ├── OpenSearchLowLevelClient.AsynchronousSearch.cs │ │ ├── OpenSearchLowLevelClient.Cat.cs │ │ ├── OpenSearchLowLevelClient.Cluster.cs │ │ ├── OpenSearchLowLevelClient.DanglingIndices.cs │ │ ├── OpenSearchLowLevelClient.FlowFramework.cs │ │ ├── OpenSearchLowLevelClient.Http.cs │ │ ├── OpenSearchLowLevelClient.Indices.cs │ │ ├── OpenSearchLowLevelClient.Ingest.cs │ │ ├── OpenSearchLowLevelClient.Insights.cs │ │ ├── OpenSearchLowLevelClient.Ism.cs │ │ ├── OpenSearchLowLevelClient.Knn.cs │ │ ├── OpenSearchLowLevelClient.List.cs │ │ ├── OpenSearchLowLevelClient.Ltr.cs │ │ ├── OpenSearchLowLevelClient.Ml.cs │ │ ├── OpenSearchLowLevelClient.Nodes.cs │ │ ├── OpenSearchLowLevelClient.Notifications.cs │ │ ├── OpenSearchLowLevelClient.Observability.cs │ │ ├── OpenSearchLowLevelClient.Ppl.cs │ │ ├── OpenSearchLowLevelClient.Query.cs │ │ ├── OpenSearchLowLevelClient.RemoteStore.cs │ │ ├── OpenSearchLowLevelClient.Replication.cs │ │ ├── OpenSearchLowLevelClient.Rollups.cs │ │ ├── OpenSearchLowLevelClient.SearchPipeline.cs │ │ ├── OpenSearchLowLevelClient.Security.cs │ │ ├── OpenSearchLowLevelClient.Sm.cs │ │ ├── OpenSearchLowLevelClient.Snapshot.cs │ │ ├── OpenSearchLowLevelClient.Sql.cs │ │ ├── OpenSearchLowLevelClient.Tasks.cs │ │ ├── OpenSearchLowLevelClient.Transforms.cs │ │ ├── OpenSearchLowLevelClient.Wlm.cs │ │ └── OpenSearchLowLevelClient.cs └── _PublishArtifacts.Build.props └── tests ├── .ci.runsettings ├── .runsettings ├── Directory.Build.props ├── Tests.Auth.AwsSigV4 ├── AwsSigV4HttpConnectionTests.cs ├── CanonicalRequestTests.cs ├── Tests.Auth.AwsSigV4.csproj ├── Utils │ ├── FixedDateTimeProvider.cs │ └── TestableAwsSigV4HttpConnection.cs └── XunitBootstrap.cs ├── Tests.ClusterLauncher ├── ClusterLaunchProgram.cs └── Tests.ClusterLauncher.csproj ├── Tests.Configuration ├── ConfigurationLoader.cs ├── EnvironmentConfiguration.cs ├── TestConfigurationBase.cs ├── TestConfigurationExtensions.cs ├── TestMode.cs ├── Tests.Configuration.csproj ├── YamlConfiguration.cs └── tests.default.yaml ├── Tests.Core ├── Client │ ├── FixedResponseClient.cs │ ├── Serializers │ │ └── TestSourceSerializerBase.cs │ ├── Settings │ │ ├── AlwaysInMemoryConnectionSettings.cs │ │ └── TestConnectionSettings.cs │ └── TestClient.cs ├── Connection │ └── Http │ │ ├── HttpRequestMessageAssertions.cs │ │ └── MockHttpMessageHandler.cs ├── Extensions │ ├── ClientExtensions.cs │ ├── DiffExtensions.cs │ ├── EnumerableExtensions.cs │ ├── EphemeralClusterExtensions.cs │ ├── NumericExtensions.cs │ ├── SerializationTesterAssertionExtensions.cs │ ├── ShouldExtensions.cs │ └── TestConfigurationExtensions.cs ├── ManagedOpenSearch │ ├── ClusterTestClassBase.cs │ ├── Clusters │ │ ├── ClientTestClusterBase.cs │ │ ├── ConnectionReuseCluster.cs │ │ ├── CrossCluster.cs │ │ ├── IOpenSearchClientTestCluster.cs │ │ ├── IntrusiveOperationCluster.cs │ │ ├── ReadOnlyCluster.cs │ │ ├── UnbalancedCluster.cs │ │ └── WritableCluster.cs │ ├── NodeSeeders │ │ └── DefaultSeeder.cs │ └── Tasks │ │ └── WriteAnalysisFiles.cs ├── Serialization │ ├── ExpectJsonTestBase.cs │ ├── GeoCoordinateJsonConverter.cs │ ├── IntermediateChangedSettings.cs │ ├── RoundtripperDsl.cs │ ├── SerializationTestHelper.cs │ └── SerializationTester.cs ├── Tests.Core.csproj └── Xunit │ ├── Generators.cs │ ├── IntegrationOnlyAttribute.cs │ ├── JsonNetSerializerOnlyAttribute.cs │ ├── NeedsTypedKeysAttribute.cs │ ├── OpenSearchClientXunitRunOptions.cs │ ├── ProjectReferenceOnlyAttribute.cs │ ├── SkipOnCiAttribute.cs │ └── XunitRunState.cs ├── Tests.Domain ├── CommitActivity.cs ├── Developer.cs ├── Extensions │ ├── AnonymizerExtensions.cs │ ├── ConnectionSettingsExtensions.cs │ └── DateTimeExtensions.cs ├── Gender.cs ├── GeoIp.cs ├── GeoShape.cs ├── Helpers │ ├── Gimme.cs │ └── TestValueHelper.cs ├── JsonConverters │ ├── DateTimeConverter.cs │ └── StringTimeSpanConverter.cs ├── Log.cs ├── Metric.cs ├── Person.cs ├── Project.cs ├── ProjectPercolation.cs ├── Ranges.cs ├── Shape.cs ├── SimpleGeoPoint.cs ├── SourceOnlyObject.cs ├── Tag.cs └── Tests.Domain.csproj ├── Tests.Reproduce ├── DateSerialization.cs ├── Discuss179634.cs ├── GitHubIssue130.cs ├── GitHubIssue281.cs ├── GitHubIssue3719.cs ├── GitHubIssue3819.cs ├── GitHubIssue3926.cs ├── GitHubIssue3981.cs ├── GitHubIssue4103.cs ├── GitHubIssue4285.cs ├── GitHubIssue4294.cs ├── GitHubIssue4333.cs ├── GitHubIssue4382.cs ├── GitHubIssue4462.cs ├── GitHubIssue4487.cs ├── GitHubIssue4537.cs ├── GitHubIssue4573.cs ├── GitHubIssue4797.cs ├── GitHubIssue4817.cs ├── GitHubIssue4818.cs ├── GitHubIssue4876.cs ├── GitHubIssue4958.cs ├── GitHubIssue5363.cs ├── GitHubIssue5432.cs ├── GitHubIssue573.cs ├── GithubIssue1901.cs ├── GithubIssue1906.cs ├── GithubIssue2052.cs ├── GithubIssue2101.cs ├── GithubIssue2152.cs ├── GithubIssue2173.cs ├── GithubIssue2306.cs ├── GithubIssue2309.cs ├── GithubIssue2323.cs ├── GithubIssue2409.cs ├── GithubIssue2503.cs ├── GithubIssue2690.cs ├── GithubIssue2788.cs ├── GithubIssue2871.cs ├── GithubIssue2875.cs ├── GithubIssue2886.cs ├── GithubIssue2985.cs ├── GithubIssue3084.cs ├── GithubIssue3107.cs ├── GithubIssue3164.cs ├── GithubIssue3210.cs ├── GithubIssue3220.cs ├── GithubIssue3231.cs ├── GithubIssue3262.cs ├── GithubIssue3311.cs ├── GithubIssue3356.cs ├── GithubIssue3411.cs ├── GithubIssue3673.cs ├── GithubIssue3715.cs ├── GithubIssue3717.cs ├── GithubIssue3743.cs ├── GithubIssue3745.cs ├── GithubIssue3907.cs ├── GithubIssue4041.cs ├── GithubIssue4044.cs ├── GithubIssue4057.cs ├── GithubIssue4078.cs ├── GithubIssue4197.cs ├── GithubIssue4228.cs ├── GithubIssue4243.cs ├── GithubIssue4467.cs ├── GithubIssue4582.cs ├── GithubIssue4703.cs ├── GithubIssue4787.cs ├── GithubPR5039.cs ├── JsonNetSerializerConverters.cs ├── Tests.Reproduce.csproj ├── TimeSpanSerialization.cs ├── UseCultureAttribute.cs ├── Utf8JsonTest.cs └── XunitBootstrap.cs ├── Tests.ScratchPad ├── .editorconfig ├── DoNothingRunner.cs ├── Program.cs ├── RunBase.cs ├── Runners │ ├── ApiCalls │ │ └── IndexDocumentRunner.cs │ └── Inferrence │ │ ├── ExpressionCreationRunner.cs │ │ ├── FieldInferenceRunner.cs │ │ ├── IdInferenceRunner.cs │ │ └── PropertyNameInferenceRunner.cs └── Tests.ScratchPad.csproj ├── Tests.YamlRunner ├── AsyncExtensions.fs ├── Commands.fs ├── DoMapper.fs ├── Models.fs ├── OperationExecutor.fs ├── Program.fs ├── SkipList.fs ├── Stashes.fs ├── TestSuiteBootstrap.fs ├── Tests.YamlRunner.fsproj ├── TestsExporter.fs ├── TestsLocator.fs ├── TestsReader.fs └── TestsRunner.fs ├── Tests ├── .editorconfig ├── Aggregations │ ├── AggregationMetaUsageTests.cs │ ├── AggregationUsageTestBase.cs │ ├── AggregationVisitorTests.cs │ ├── Bucket │ │ ├── AdjacencyMatrix │ │ │ └── AdjacencyMatrixUsageTests.cs │ │ ├── AutoDateHistogram │ │ │ └── AutoDateHistogramAggregationUsageTests.cs │ │ ├── Children │ │ │ └── ChildrenAggregationUsageTests.cs │ │ ├── Composite │ │ │ └── CompositeAggregationUsageTests.cs │ │ ├── DateHistogram │ │ │ └── DateHistogramAggregationUsageTests.cs │ │ ├── DateRange │ │ │ └── DateRangeAggregationUsageTests.cs │ │ ├── DiversifiedSampler │ │ │ └── DiversifiedSamplerAggregationUsageTests.cs │ │ ├── Filter │ │ │ └── FilterAggregationUsageTests.cs │ │ ├── Filters │ │ │ └── FiltersAggregationUsageTests.cs │ │ ├── GeoDistance │ │ │ └── GeoDistanceAggregationUsageTests.cs │ │ ├── GeoHashGrid │ │ │ └── GeoHashGridAggregationUsageTests.cs │ │ ├── GeoTileGrid │ │ │ └── GeoTileGridAggregationUsageTests.cs │ │ ├── Global │ │ │ └── GlobalAggregationUsageTests.cs │ │ ├── Histogram │ │ │ └── HistogramAggregationUsageTests.cs │ │ ├── IpRange │ │ │ └── IpRangeAggregationUsageTests.cs │ │ ├── Missing │ │ │ └── MissingAggregationUsageTests.cs │ │ ├── Nested │ │ │ └── NestedAggregationUsageTests.cs │ │ ├── Parent │ │ │ └── ParentAggregationUsageTests.cs │ │ ├── Range │ │ │ └── RangeAggregationUsageTests.cs │ │ ├── RareTerms │ │ │ └── RareTermsAggregationUsageTests.cs │ │ ├── ReverseNested │ │ │ └── ReverseNestedAggregationUsageTests.cs │ │ ├── Sampler │ │ │ └── SamplerAggregationUsageTests.cs │ │ ├── SignificantTerms │ │ │ └── SignificantTermsAggregationUsageTests.cs │ │ ├── SignificantText │ │ │ └── SignificantTextAggregationUsageTests.cs │ │ └── Terms │ │ │ └── TermsAggregationUsageTests.cs │ ├── Matrix │ │ └── MatrixStats │ │ │ └── MatrixStatsAggregationUsageTests.cs │ ├── Metric │ │ ├── Average │ │ │ └── AverageAggregationUsageTests.cs │ │ ├── Cardinality │ │ │ └── CardinalityAggregationUsageTests.cs │ │ ├── ExtendedStats │ │ │ └── ExtendedStatsAggregationUsageTests.cs │ │ ├── GeoBounds │ │ │ └── GeoBoundsAggregationUsageTests.cs │ │ ├── GeoCentroid │ │ │ └── GeoCentroidAggregationUsageTests.cs │ │ ├── Max │ │ │ └── MaxAggregationUsageTests.cs │ │ ├── MedianAbsoluteDeviation │ │ │ └── MedianAbsoluteDeviationAggregationUsageTests.cs │ │ ├── Min │ │ │ └── MinAggregationUsageTests.cs │ │ ├── PercentileRanks │ │ │ └── PercentileRanksAggregationUsageTests.cs │ │ ├── Percentiles │ │ │ └── PercentilesAggregationUsageTests.cs │ │ ├── ScriptedMetric │ │ │ └── ScriptedMetricAggregationUsageTests.cs │ │ ├── Stats │ │ │ └── StatsAggregationUsageTests.cs │ │ ├── Sum │ │ │ └── SumAggregationUsageTests.cs │ │ ├── TopHits │ │ │ └── TopHitsAggregationUsageTests.cs │ │ ├── ValueCount │ │ │ └── ValueCountAggregationUsageTests.cs │ │ └── WeightedAverage │ │ │ └── WeightedAverageAggregationUsageTests.cs │ ├── Pipeline │ │ ├── AverageBucket │ │ │ └── AverageBucketAggregationUsageTests.cs │ │ ├── BucketScript │ │ │ └── BucketScriptAggregationUsageTests.cs │ │ ├── BucketSelector │ │ │ └── BucketSelectorAggregationUsageTests.cs │ │ ├── BucketSort │ │ │ └── BucketSortAggregationUsageTests.cs │ │ ├── CumulativeSum │ │ │ └── CumulativeSumAggregationUsageTests.cs │ │ ├── Derivative │ │ │ └── DerivativeAggregationUsageTests.cs │ │ ├── ExtendedStatsBucket │ │ │ └── ExtendedStatsBucketAggregationUsageTests.cs │ │ ├── MaxBucket │ │ │ └── MaxBucketAggregationUsageTests.cs │ │ ├── MinBucket │ │ │ └── MinBucketAggregationUsageTests.cs │ │ ├── MovingAverage │ │ │ ├── MovingAverageEwmaAggregationUsageTests.cs │ │ │ ├── MovingAverageHoltLinearAggregationUsageTests.cs │ │ │ ├── MovingAverageHoltWintersAggregationUsageTests.cs │ │ │ ├── MovingAverageLinearAggregationUsageTests.cs │ │ │ └── MovingAverageSimpleAggregationUsageTests.cs │ │ ├── MovingFunction │ │ │ └── MovingFunctionAggregationUsageTests.cs │ │ ├── PercentilesBucket │ │ │ └── PercentilesBucketAggregationUsageTests.cs │ │ ├── SerialDifferencing │ │ │ └── SerialDifferencingAggregationUsageTests.cs │ │ ├── StatsBucket │ │ │ └── StatsBucketAggregationUsageTests.cs │ │ └── SumBucket │ │ │ └── SumBucketAggregationUsageTests.cs │ ├── ReservedAggregationNames.doc.cs │ └── WritingAggregations.doc.cs ├── Analysis │ ├── AnalysisComponentTestBase.cs │ ├── AnalysisCrudTests.cs │ ├── AnalysisUsageTests.cs │ ├── AnalysisWithNormalizerCrudTests.cs │ ├── Analyzers │ │ ├── AnalyzerAssertionBase.cs │ │ └── AnalyzerTests.cs │ ├── CharFilters │ │ ├── CharFilterAssertionBase.cs │ │ └── CharFilterTests.cs │ ├── Normalizers │ │ ├── NormalizerAssertionBase.cs │ │ └── NormalizerTests.cs │ ├── TokenFilters │ │ ├── TokenFilterAssertionBase.cs │ │ ├── TokenFilterTests.cs │ │ └── TokenFilterUsageTests.cs │ └── Tokenizers │ │ ├── TokenizerAssertionBase.cs │ │ └── TokenizerTests.cs ├── App.config ├── Cat │ ├── CatAliases │ │ ├── CatAliasesApiTests.cs │ │ └── CatAliasesUrlTests.cs │ ├── CatAllocation │ │ ├── CatAllocationApiTests.cs │ │ └── CatAllocationUrlTests.cs │ ├── CatClusterManager │ │ ├── CatClusterManagerApiTests.cs │ │ └── CatClusterManagerUrlTests.cs │ ├── CatCount │ │ ├── CatCountApiTests.cs │ │ └── CatCountUrlTests.cs │ ├── CatFielddata │ │ ├── CatFielddataApiTests.cs │ │ └── CatFielddataUrlTests.cs │ ├── CatHealth │ │ ├── CatHealthApiTests.cs │ │ └── CatHealthUrlTests.cs │ ├── CatHelp │ │ ├── CatHelpApiTests.cs │ │ └── CatHelpUrlTests.cs │ ├── CatIndices │ │ ├── CatIndicesApiTests.cs │ │ └── CatIndicesUrlTests.cs │ ├── CatMaster │ │ ├── CatMasterApiTests.cs │ │ └── CatMasterUrlTests.cs │ ├── CatNodeAttributes │ │ ├── CatAliasesUrlTests.cs │ │ └── CatNodeAttributesApiTests.cs │ ├── CatNodes │ │ ├── CatNodesApiTests.cs │ │ └── CatNodesUrlTests.cs │ ├── CatPendingTasks │ │ ├── CatPendingTasksApiTests.cs │ │ └── CatPendingTasksUrlTests.cs │ ├── CatPitSegments │ │ ├── CatPitSegmentsApiTests.cs │ │ └── CatPitSegmentsUrlTests.cs │ ├── CatPlugins │ │ ├── CatPluginsApiTests.cs │ │ └── CatPluginsUrlTests.cs │ ├── CatRecovery │ │ ├── CatRecoveryApiTests.cs │ │ └── CatRecoveryUrlTests.cs │ ├── CatRepositories │ │ ├── CatRepositoriesApiTests.cs │ │ └── CatRepositoriesUrlTests.cs │ ├── CatSegmentReplication │ │ ├── CatSegmentReplicationApiTests.cs │ │ └── CatSegmentReplicationUrlTests.cs │ ├── CatSegments │ │ ├── CatSegmentsApiTests.cs │ │ └── CatSegmentsUrlTests.cs │ ├── CatShards │ │ ├── CatShardsApiTests.cs │ │ └── CatShardsUrlTests.cs │ ├── CatSnapshots │ │ ├── CatSnapshotsApiTests.cs │ │ └── CatSnapshotsUrlTests.cs │ ├── CatTasks │ │ ├── CatTasksApiTests.cs │ │ └── CatTasksUrlTests.cs │ ├── CatTemplates │ │ ├── CatTemplatesApiTests.cs │ │ └── CatTemplatesUrlTests.cs │ └── CatThreadPool │ │ ├── CatThreadPoolUrlTests.cs │ │ └── CatThreadpoolApiTests.cs ├── ClientConcepts │ ├── Connection │ │ ├── ConfigurationOptions.doc.cs │ │ ├── ConnectionReuseAndBalancing.cs │ │ ├── HttpConnectionTests.cs │ │ ├── ModifyingDefaultConnection.doc.cs │ │ └── SecureStringsTests.cs │ ├── ConnectionPooling │ │ ├── BuildingBlocks │ │ │ ├── ConnectionPooling.doc.cs │ │ │ ├── DateTimeProviders.Doc.cs │ │ │ ├── KeepingTrackOfNodes.Doc.cs │ │ │ ├── RequestPipelines.doc.cs │ │ │ ├── Transports.Doc.cs │ │ │ ├── WaitingInMemoryConnection.cs │ │ │ └── timeoutplot.png │ │ ├── Dispose │ │ │ └── ResponseBuilderDisposeTests.cs │ │ ├── Exceptions │ │ │ ├── UnexpectedExceptions.doc.cs │ │ │ └── UnrecoverableExceptions.doc.cs │ │ ├── Failover │ │ │ └── FallingOver.doc.cs │ │ ├── MaxRetries │ │ │ └── RespectsMaxRetry.doc.cs │ │ ├── Pinging │ │ │ ├── FirstUsage.doc.cs │ │ │ ├── PingTests.cs │ │ │ └── Revival.doc.cs │ │ ├── RequestOverrides │ │ │ ├── DisableSniffPingPerRequest.doc.cs │ │ │ ├── RequestTimeoutsOverrides.doc.cs │ │ │ ├── RespectsAllowedStatusCode.doc.cs │ │ │ ├── RespectsForceNode.doc.cs │ │ │ └── RespectsMaxRetryOverrides.doc.cs │ │ ├── RoundRobin │ │ │ ├── RoundRobin.doc.cs │ │ │ ├── SkipDeadNodes.doc.cs │ │ │ └── VolatileUpdates.cs │ │ ├── Sniffing │ │ │ ├── AddressParsing.doc.cs │ │ │ ├── OnConnectionFailure.doc.cs │ │ │ ├── OnStaleClusterState.doc.cs │ │ │ ├── OnStartup.doc.cs │ │ │ └── RoleDetection.doc.cs │ │ └── Sticky │ │ │ ├── SkipDeadNodes.doc.cs │ │ │ ├── Sticky.doc.cs │ │ │ └── StickySniffingConnectionPool.doc.cs │ ├── Exceptions │ │ └── ExceptionTests.cs │ ├── HighLevel │ │ ├── Analysis │ │ │ ├── TestingAnalyzers.doc.cs │ │ │ ├── WritingAnalyzers.doc.cs │ │ │ └── analysis-chain.png │ │ ├── Caching │ │ │ └── FieldResolverCacheTests.cs │ │ ├── CovariantHits │ │ │ └── CovariantSearchResults.doc.cs │ │ ├── GettingStarted.doc.cs │ │ ├── Indexing │ │ │ ├── IndexingDocuments.doc.cs │ │ │ ├── IngestNodes.doc.cs │ │ │ ├── Pipelines.doc.cs │ │ │ └── ReindexingDocuments.doc.cs │ │ ├── Inference │ │ │ ├── DocumentPaths.doc.cs │ │ │ ├── Equality │ │ │ │ ├── DocumentPathEqualityTests.cs │ │ │ │ ├── FieldEqualityTests.cs │ │ │ │ ├── FieldsEqualityTests.cs │ │ │ │ ├── IdEqualityTests.cs │ │ │ │ ├── IdsEqualityTests.cs │ │ │ │ ├── IndexMetricsEqualityTests.cs │ │ │ │ ├── IndexNameEqualityTests.cs │ │ │ │ ├── IndicesEqualityTests.cs │ │ │ │ ├── LongIdEqualityTests.cs │ │ │ │ ├── MetricsEqualityTests.cs │ │ │ │ ├── NameEqualityTests.cs │ │ │ │ ├── NamesEqualityTests.cs │ │ │ │ ├── NodeIdsEqualityTests.cs │ │ │ │ ├── PropertyNameEqualityTests.cs │ │ │ │ ├── RelationNameEqualityTests.cs │ │ │ │ ├── RoutingEqualityTests.cs │ │ │ │ └── TaskIdEqualityTests.cs │ │ │ ├── FieldInference.doc.cs │ │ │ ├── IdsInference.doc.cs │ │ │ ├── ImplicitConversionTests.cs │ │ │ ├── IndexNameInference.doc.cs │ │ │ ├── IndicesPaths.doc.cs │ │ │ ├── PropertyInference.doc.cs │ │ │ ├── RoutingInference.doc.cs │ │ │ └── TypesAndRelationsInference.doc.cs │ │ ├── Mapping │ │ │ ├── AttributeMapping.doc.cs │ │ │ ├── AutoMap.doc.cs │ │ │ ├── FluentMapping.doc.cs │ │ │ ├── IgnoringProperties.doc.cs │ │ │ ├── MultiFields.doc.cs │ │ │ ├── ParentChildRelationships.doc.cs │ │ │ └── VisitorPatternMapping.doc.cs │ │ └── Serialization │ │ │ ├── CustomSerialization.doc.cs │ │ │ ├── ExtendingOscTypes.doc.cs │ │ │ ├── ModellingDocumentsWithTypes.doc.cs │ │ │ └── SendsUsingSourceSerializer.cs │ ├── LowLevel │ │ ├── DirectStreaming.cs │ │ ├── GettingStarted.doc.cs │ │ ├── Lifetimes.doc.cs │ │ ├── LowLevelResponseTypes.doc.cs │ │ ├── PostData.doc.cs │ │ ├── class.png │ │ ├── pipeline.png │ │ └── pipeline.xml │ ├── ServerError │ │ ├── ComplexErrorTests.cs │ │ ├── ErrorWithMultipleRootCausesTests.cs │ │ ├── ErrorWithNullRootCausesTests.cs │ │ ├── ErrorWithRootCauseTests.cs │ │ ├── ServerErrorTestsBase.cs │ │ └── StringErrrorTests.cs │ ├── Troubleshooting │ │ ├── AuditTrail.doc.cs │ │ ├── DebugInformation.doc.cs │ │ ├── DebugMode.doc.cs │ │ ├── DebuggerDisplayTests.cs │ │ ├── DeprecationLogging.doc.cs │ │ ├── DiagnosticSource.doc.cs │ │ ├── LoggingWithFiddler.doc.cs │ │ ├── LoggingWithOnRequestCompleted.doc.cs │ │ ├── capture-requests-localhost.png │ │ ├── capture-requests-remotehost.png │ │ └── inspect-requests.png │ └── VirtualClusterTests.cs ├── Cluster │ ├── ClusterAllocationExplain │ │ ├── ClusterAllocationExplainApiTests.cs │ │ └── ClusterAllocationExplainUrlTests.cs │ ├── ClusterHealth │ │ ├── ClusterHealthApiTests.cs │ │ └── ClusterHealthUrlTests.cs │ ├── ClusterPendingTasks │ │ ├── ClusterPendingTasksApiTests.cs │ │ └── ClusterPendingTasksUrlTests.cs │ ├── ClusterReroute │ │ ├── ClusterRerouteApiTests.cs │ │ └── ClusterRerouteUrlTests.cs │ ├── ClusterSettings │ │ ├── ClusterGetSettings │ │ │ ├── ClusterGetSettingsApiTests.cs │ │ │ └── ClusterGetSettingsUrlTests.cs │ │ └── ClusterPutSettings │ │ │ ├── ClusterPutSettingsApiTests.cs │ │ │ └── ClusterPutUrlTests.cs │ ├── ClusterState │ │ ├── ClusterStateApiTests.cs │ │ └── ClusterStateUrlTests.cs │ ├── ClusterStats │ │ ├── ClusterStatsApiTests.cs │ │ └── ClusterStatsUrlTests.cs │ ├── ComponentTemplate │ │ ├── ComponentTemplateCrudTests.cs │ │ ├── ComponentTemplateExistsApiTests.cs │ │ ├── ComponentTemplateExistsUrlTests.cs │ │ ├── DeleteComponentTemplateApiTests.cs │ │ ├── DeleteComponentTemplateUrlTests.cs │ │ ├── GetComponentTemplateApiTests.cs │ │ ├── GetComponentTemplateUrlTests.cs │ │ ├── PutComponentTemplateApiTests.cs │ │ └── PutComponentTemplateUrlTests.cs │ ├── NodesHotThreads │ │ ├── NodesHotThreadsApiTests.cs │ │ └── NodesHotThreadsUrlTests.cs │ ├── NodesInfo │ │ ├── NodesInfoApiTests.cs │ │ └── NodesInfoUrlTests.cs │ ├── NodesStats │ │ ├── NodesStatsApiTests.cs │ │ └── NodesStatsUrlTests.cs │ ├── NodesUsage │ │ ├── NodesUsageApiTests.cs │ │ ├── NodesUsageUnitTests.cs │ │ └── NodesUsageUrlTests.cs │ ├── Ping │ │ ├── PingApiTests.cs │ │ └── PingUrlTests.cs │ ├── ReloadSecureSettings │ │ ├── ReloadSecureSettingsApiTests.cs │ │ └── ReloadSecureSettingsUrlTests.cs │ ├── RemoteInfo │ │ ├── RemoteInfoApiTests.cs │ │ └── RemoteInfoUrlTests.cs │ ├── RootNodeInfo │ │ ├── RootNodeInfoApiTests.cs │ │ └── RootNodeInfoUrlTests.cs │ ├── TaskManagement │ │ ├── GetTask │ │ │ ├── GetTaskApiTests.cs │ │ │ └── GetTaskUrlTests.cs │ │ ├── TasksCancel │ │ │ ├── TasksCancelApiTests.cs │ │ │ └── TasksCancelUrlTests.cs │ │ └── TasksList │ │ │ ├── TasksListApiTests.cs │ │ │ └── TasksListUrlTests.cs │ └── VotingConfigExclusions │ │ ├── DeleteVotingConfigExclusions │ │ ├── DeleteVotingConfigExclusionsApiTests.cs │ │ └── DeleteingVotingConfigExclusionsTests.cs │ │ └── PostVotingConfigExclusions │ │ ├── PostVotingConfigExclusionsApiTests.cs │ │ └── PostingVotingConfigExclusionsTests.cs ├── CodeStandards │ ├── Analysis.cs │ ├── Descriptors.doc.cs │ ├── NamingConventions.doc.cs │ ├── OpenSearchClient.doc.cs │ ├── Parity │ │ └── ParityTests.cs │ ├── Queries.doc.cs │ ├── Requests.doc.cs │ ├── Responses.doc.cs │ └── Serialization │ │ ├── Enums.cs │ │ ├── Formatters.doc.cs │ │ ├── FractionalNumbers.cs │ │ ├── GeoLocationTests.cs │ │ ├── PrimitiveObjectFormatterTests.cs │ │ └── Properties.doc.cs ├── CommonOptions │ ├── AutoExpandReplicas │ │ └── AutoExpandReplicasTests.cs │ ├── DateMath │ │ ├── DateMathExpressions.doc.cs │ │ └── DateMathTests.cs │ ├── DistanceUnit │ │ └── DistanceUnits.doc.cs │ ├── TimeUnit │ │ └── TimeUnits.doc.cs │ └── Union │ │ └── Union.doc.cs ├── Connection │ ├── Http │ │ ├── HttpConnectionTests.cs │ │ └── MockableHttpConnection.cs │ └── MetaData │ │ ├── MetaHeaderProviderTests.cs │ │ └── VersionInfoTests.cs ├── DanglingIndices │ ├── Delete │ │ ├── DeleteDanglingIndexApiTests.cs │ │ └── DeleteDanglingIndexUrlTests.cs │ ├── Import │ │ ├── ImportDanglingIndexApiTests.cs │ │ └── ImportDanglingIndexUrlTests.cs │ └── List │ │ ├── ListDanglingIndicesApiTests.cs │ │ └── ListDanglingIndicesUrlTests.cs ├── Document │ ├── Multiple │ │ ├── Bulk │ │ │ ├── BulkApiTests.cs │ │ │ ├── BulkInvalidApiTests.cs │ │ │ ├── BulkInvalidVersionApiTests.cs │ │ │ ├── BulkResponseParsingTests.cs │ │ │ ├── BulkSourceDeserialize.cs │ │ │ ├── BulkUpdateManyTests.cs │ │ │ └── BulkUrlTests.cs │ │ ├── BulkAll │ │ │ ├── BulkAllApiTestsBase.cs │ │ │ ├── BulkAllCancellationTokenApiTests.cs │ │ │ ├── BulkAllDeallocationApiTests.cs │ │ │ ├── BulkAllDisposeApiTests.cs │ │ │ ├── BulkAllExceptionApiTests.cs │ │ │ ├── BulkAllForEachAsyncApiTests.cs │ │ │ ├── BulkAndScrollApiTests.cs │ │ │ └── BulkOnErrorApiTests.cs │ │ ├── DeleteByQuery │ │ │ ├── DeleteByQueryApiTests.cs │ │ │ └── DeleteByQueryUrlTests.cs │ │ ├── DeleteByQueryRethrottle │ │ │ ├── DeleteByQueryRethrottleApiTests.cs │ │ │ └── DeleteByQueryRethrottleUrlTests.cs │ │ ├── MultiGet │ │ │ ├── GetManyApiTests.cs │ │ │ ├── MultiGetApiTests.cs │ │ │ └── MultiGetUrlTests.cs │ │ ├── MultiTermVectors │ │ │ ├── MultiTermVectorsApiTests.cs │ │ │ ├── MultiTermVectorsIdsApiTests.cs │ │ │ ├── MultiTermVectorsIdsNotFoundApiTests.cs │ │ │ └── MultiTermVectorsUrlTests.cs │ │ ├── Reindex │ │ │ └── ReindexApiTests.cs │ │ ├── ReindexOnServer │ │ │ ├── ReindexOnServerApiTests.cs │ │ │ ├── ReindexOnServerInvalidApiTests.cs │ │ │ ├── ReindexOnServerPipelineApiTests.cs │ │ │ ├── ReindexOnServerRemoteApiTests.cs │ │ │ ├── ReindexOnServerSliceApiTests.cs │ │ │ ├── ReindexOnServerSourceApiTests.cs │ │ │ └── ReindexOnServerUrlTests.cs │ │ ├── ReindexRethrottle │ │ │ ├── ReindexRethrottleApiTests.cs │ │ │ └── ReindexRethrottleUrlTests.cs │ │ ├── UpdateByQuery │ │ │ ├── UpdateByQueryApiTests.cs │ │ │ └── UpdateByQueryUrlTests.cs │ │ └── UpdateByQueryRethrottle │ │ │ ├── UpdateByQueryRethrottleApiTests.cs │ │ │ └── UpdateByQueryRethrottleUrlTests.cs │ └── Single │ │ ├── Create │ │ ├── CreateApiTests.cs │ │ └── CreateUrlTests.cs │ │ ├── Delete │ │ ├── DeleteApiTests.cs │ │ └── DeleteUrlTests.cs │ │ ├── DocumentCrudTests.cs │ │ ├── Exists │ │ ├── DocumentExistsApiTests.cs │ │ ├── DocumentExistsNotFoundApiTests.cs │ │ └── DocumentExistsUrlTests.cs │ │ ├── Get │ │ ├── GetApiTests.cs │ │ └── GetUrlTests.cs │ │ ├── Index │ │ ├── Attachment_Test_Document.pdf │ │ ├── IndexApiTests.cs │ │ ├── IndexIngestApiTests.cs │ │ ├── IndexIngestAttachmentApiTests.cs │ │ └── IndexUrlTests.cs │ │ ├── Source │ │ └── SourceApiTests.cs │ │ ├── SourceExists │ │ └── SourceExistsApiTests.cs │ │ ├── TermVectors │ │ ├── TermVectorsApiTests.cs │ │ ├── TermVectorsNotFoundApiTests.cs │ │ └── TermVectorsUrlTests.cs │ │ └── Update │ │ ├── UpdateApiTests.cs │ │ ├── UpdateUrlTests.cs │ │ ├── UpdateWithScriptApiTests.cs │ │ └── UpdateWithSourceApiTests.cs ├── Framework │ ├── DocumentationTests │ │ └── IntegrationDocumentationTestBase.cs │ ├── EndpointTests │ │ ├── ApiIntegrationAgainstNewIndexTestBase.cs │ │ ├── ApiIntegrationTestBase.cs │ │ ├── ApiTestBase.cs │ │ ├── CanConnectTestBase.cs │ │ ├── ConnectionErrorTestBase.cs │ │ ├── CoordinatedIntegrationTestBase.cs │ │ ├── CrudTestBase.cs │ │ ├── RequestResponseApiTestBase.cs │ │ ├── TestState │ │ │ ├── AsyncLazy.cs │ │ │ ├── CallUniqueValues.cs │ │ │ ├── ClientMethod.cs │ │ │ ├── CoordinatedUsage.cs │ │ │ ├── EndpointUsage.cs │ │ │ └── LazyResponses.cs │ │ └── UrlTests.cs │ ├── Extensions │ │ ├── FullFrameworkExtensions.cs │ │ ├── Numeric.cs │ │ ├── Promisify.cs │ │ └── UriExtensions.cs │ └── SerializationTests │ │ ├── BytesResponseTests.cs │ │ ├── CompositeKeySerializationTests.cs │ │ ├── DictionarySerializationTests.cs │ │ ├── ExceptionSerializationTests.cs │ │ ├── StringResponseTests.cs │ │ └── StubResponse.cs ├── GlobalSuppressions.cs ├── IndexModules │ ├── IndexSettings │ │ ├── Merge │ │ │ └── MergeSettings.cs │ │ ├── Settings │ │ │ ├── RoutingPartitionSizeIndexSettings.cs │ │ │ └── TypedIndexSettings.cs │ │ ├── SlowLog │ │ │ └── SlowLogSettings.cs │ │ ├── Sorting │ │ │ └── SortingSettingsSingleItem.cs │ │ └── Translog │ │ │ └── TranslogSettings.cs │ ├── Similarity │ │ └── SimilaritySettings.cs │ └── UsageTestBase.cs ├── Indices │ ├── AliasManagement │ │ ├── Alias │ │ │ ├── AliasApiRemoveIndexTests.cs │ │ │ ├── AliasApiTests.cs │ │ │ └── AliasUrlTests.cs │ │ ├── AliasExists │ │ │ ├── AliasExistsApiTests.cs │ │ │ └── AliasExistsUrlTests.cs │ │ ├── DeleteAlias │ │ │ ├── AliasDeleteApiTests.cs │ │ │ └── DeleteAliasUrlTests.cs │ │ ├── GetAlias │ │ │ ├── GetAliasApiTests.cs │ │ │ └── GetAliasUrlTests.cs │ │ ├── GetAliasesPointingToIndex │ │ │ └── GetAliasesPointingToIndexTests.cs │ │ ├── GetIndicesPointingToAlias │ │ │ └── GetIndicesPointingToAliasTests.cs │ │ └── PutAlias │ │ │ ├── PutAliasApiTests.cs │ │ │ └── PutAliasUrlTests.cs │ ├── Analyze │ │ ├── AnalyzeApiTests.cs │ │ └── AnalyzeUrlTests.cs │ ├── IndexManagement │ │ ├── AddBlock │ │ │ ├── AddIndexBlockApiTests.cs │ │ │ └── AddIndexBlockUrlTests.cs │ │ ├── CloneIndex │ │ │ ├── CloneIndexApiTests.cs │ │ │ └── CloneIndexUrlTests.cs │ │ ├── CreateIndex │ │ │ ├── CreateIndexApiTests.cs │ │ │ └── CreateIndexUrlTests.cs │ │ ├── DeleteIndex │ │ │ ├── DeleteIndexApiTests.cs │ │ │ └── DeleteIndexUrlTests.cs │ │ ├── GetIndex │ │ │ ├── GetIndexApiTests.cs │ │ │ └── GetIndexUrlTests.cs │ │ ├── IndicesExists │ │ │ ├── IndexExistsApiTests.cs │ │ │ └── IndexExistsUrlTests.cs │ │ ├── OpenCloseIndex │ │ │ ├── CloseIndex │ │ │ │ ├── CloseIndexApiTests.cs │ │ │ │ └── CloseIndexUrlTests.cs │ │ │ └── OpenIndex │ │ │ │ ├── OpenIndexApiTests.cs │ │ │ │ └── OpenIndexUrlTests.cs │ │ ├── ResolveIndex │ │ │ ├── ResolveIndexApiTests.cs │ │ │ └── ResolveIndexUrlTests.cs │ │ ├── RolloverIndex │ │ │ ├── RolloverIndexApiTests.cs │ │ │ └── RolloverIndexUrlTests.cs │ │ ├── ShrinkIndex │ │ │ ├── ShrinkIndexApiTests.cs │ │ │ └── ShrinkIndexUrlTests.cs │ │ ├── SplitIndex │ │ │ ├── SplitIndexApiTests.cs │ │ │ └── SplitIndexUrlTests.cs │ │ └── TypesExists │ │ │ ├── TypeExistsApiTests.cs │ │ │ └── TypeExistsUrlTests.cs │ ├── IndexSettings │ │ ├── ComposableIndexTemplates │ │ │ ├── ComposableIndexTemplateCrudTests.cs │ │ │ ├── ComposableIndexTemplateExists │ │ │ │ ├── ComposableIndexTemplateExistsApiTests.cs │ │ │ │ └── ComposableIndexTemplateExistsUrlTests.cs │ │ │ ├── DeleteComposableIndexTemplate │ │ │ │ ├── DeleteComposableIndexTemplateApiTests.cs │ │ │ │ └── DeleteComposableIndexTemplateUrlTests.cs │ │ │ ├── GetComposableIndexTemplate │ │ │ │ ├── GetComposableIndexTemplateApiTests.cs │ │ │ │ └── GetComposableIndexTemplateUrlTests.cs │ │ │ └── PutComposableIndexTemplate │ │ │ │ ├── PutComposableIndexTemplateApiTests.cs │ │ │ │ └── PutComposableIndexTemplateUrlTests.cs │ │ ├── GetIndexSettings │ │ │ ├── GetIndexSettingsApiTests.cs │ │ │ └── GetIndexSettingsUrlTests.cs │ │ ├── IndexTemplates │ │ │ ├── DeleteIndexTemplate │ │ │ │ ├── DeleteIndexTemplateApiTests.cs │ │ │ │ └── DeleteIndexTemplateUrlTests.cs │ │ │ ├── GetIndexTemplate │ │ │ │ ├── GetIndexTemplateApiTests.cs │ │ │ │ └── GetIndexTemplateUrlTests.cs │ │ │ ├── IndexTemplateCrudTests.cs │ │ │ ├── IndexTemplateExists │ │ │ │ ├── IndexTemplateExistsApiTests.cs │ │ │ │ └── IndexTemplateExistsUrlTests.cs │ │ │ └── PutIndexTemplate │ │ │ │ ├── PutIndexTemplateApiTests.cs │ │ │ │ └── PutIndexTemplateUrlTests.cs │ │ └── UpdateIndicesSettings │ │ │ ├── UpdateIndexSettingsApiTests.cs │ │ │ └── UpdateIndexSettingsUrlTests.cs │ ├── MappingManagement │ │ ├── GetFieldMapping │ │ │ ├── GetFieldMappingApiTests.cs │ │ │ └── GetFieldMappingUrlTests.cs │ │ ├── GetMapping │ │ │ ├── GetMappingApiTest.cs │ │ │ └── GetMappingUrlTests.cs │ │ └── PutMapping │ │ │ ├── PutMappingApiTest.cs │ │ │ └── PutMappingUrlTests.cs │ ├── Stats │ │ ├── IndicesStatsApiTests.cs │ │ └── IndicesStatsUrlsTests.cs │ └── StatusManagement │ │ ├── ClearCache │ │ ├── ClearCacheApiTests.cs │ │ └── ClearCacheUrlTests.cs │ │ ├── Flush │ │ ├── FlushApiTests.cs │ │ └── FlushUrlTests.cs │ │ ├── ForceMerge │ │ ├── ForceMergeApiTests.cs │ │ └── ForceMergeUrlTests.cs │ │ └── Refresh │ │ ├── RefreshApiTests.cs │ │ └── RefreshUrlTests.cs ├── Ingest │ ├── DeletePipeline │ │ ├── DeletePipelineApiTests.cs │ │ └── DeletePipelineUrlTests.cs │ ├── GetPipeline │ │ ├── GetPipelineApiTests.cs │ │ └── GetPipelineUrlTests.cs │ ├── GrokProcessorPatterns │ │ ├── GrokProcessorPatternsApiTests.cs │ │ ├── GrokProcessorPatternsTests.cs │ │ └── GrokProcessorPatternsUnitTests.cs │ ├── PipelineCrudTests.cs │ ├── ProcessorAssertions.cs │ ├── ProcessorSerializationTests.cs │ ├── PutPipeline │ │ ├── PutPipelineApiTests.cs │ │ └── PutPipelineUrlTests.cs │ └── SimulatePipeline │ │ ├── SimulatePipelineApiTests.cs │ │ └── SimulatePipelineUrlTests.cs ├── Mapping │ ├── LocalMetadata │ │ ├── LocalMetadataUsageTests.cs │ │ └── LocalMetadataVisitorTests.cs │ ├── Meta │ │ └── MetaMappingApiTests.cs │ ├── PropertyDescriptorTests.cs │ ├── PropertyWalkerTests.cs │ ├── Scalar │ │ └── ScalarUsageTests.cs │ └── Types │ │ ├── AttributeTestsBase.cs │ │ ├── Complex │ │ ├── Nested │ │ │ ├── NestedAttributeTests.cs │ │ │ └── NestedPropertyTests.cs │ │ └── Object │ │ │ ├── ObjectAttributeTests.cs │ │ │ └── ObjectPropertyTests.cs │ │ ├── Core │ │ ├── Binary │ │ │ ├── BinaryAttributeTests.cs │ │ │ └── BinaryPropertyTests.cs │ │ ├── Boolean │ │ │ ├── BooleanAttributeTests.cs │ │ │ └── BooleanPropertyTests.cs │ │ ├── Date │ │ │ ├── DateAttributeTests.cs │ │ │ └── DatePropertyTests.cs │ │ ├── DateNanos │ │ │ ├── DateNanosAttributeTests.cs │ │ │ └── DateNanosPropertyTests.cs │ │ ├── Join │ │ │ ├── JoinAttributeTests.cs │ │ │ └── JoinPropertyTests.cs │ │ ├── Keyword │ │ │ ├── KeywordAttributeTests.cs │ │ │ └── KeywordPropertyTests.cs │ │ ├── Number │ │ │ ├── NumberAttributeTests.cs │ │ │ └── NumberPropertyTests.cs │ │ ├── Percolator │ │ │ ├── PercolatorAttributeTests.cs │ │ │ └── PercolatorPropertyTests.cs │ │ ├── Range │ │ │ ├── DateRange │ │ │ │ ├── DateRangeAttributeTests.cs │ │ │ │ └── DateRangePropertyTests.cs │ │ │ ├── DoubleRange │ │ │ │ ├── DoubleRangeAttributeTests.cs │ │ │ │ └── DoubleRangePropertyTests.cs │ │ │ ├── FloatRange │ │ │ │ ├── FloatRangeAttributeTests.cs │ │ │ │ └── FloatRangePropertyTests.cs │ │ │ ├── IntegerRange │ │ │ │ ├── IntegerRangeAttributeTests.cs │ │ │ │ └── IntegerRangePropertyTests.cs │ │ │ ├── IpRange │ │ │ │ ├── IpRangeAttributeTests.cs │ │ │ │ └── IpRangePropertyTests.cs │ │ │ └── LongRange │ │ │ │ ├── LongRangeAttributeTests.cs │ │ │ │ └── LongRangePropertyTests.cs │ │ ├── RankFeature │ │ │ ├── RankFeatureAttributeTests.cs │ │ │ └── RankFeaturePropertyTests.cs │ │ ├── RankFeatures │ │ │ ├── RankFeaturesAttributeTests.cs │ │ │ └── RankFeaturesPropertyTests.cs │ │ ├── SearchAsYouType │ │ │ ├── SearchAsYouTypeAttributeTests.cs │ │ │ ├── SearchAsYouTypePropertyTests.cs │ │ │ └── SearchAsYouTypeSingleMappingPropertyTests.cs │ │ └── Text │ │ │ ├── TextAttributeTests.cs │ │ │ └── TextPropertyTests.cs │ │ ├── Geo │ │ ├── GeoPoint │ │ │ ├── GeoPointAttributeTests.cs │ │ │ └── GeoPointPropertyTests.cs │ │ └── GeoShape │ │ │ ├── GeoShapeAttributeTests.cs │ │ │ ├── GeoShapeClusterMetadataApiTests.cs │ │ │ └── GeoShapePropertyTests.cs │ │ ├── PropertyTestsBase.cs │ │ ├── SingleMappingPropertyTestsBase.cs │ │ └── Specialized │ │ ├── Completion │ │ ├── CompletionAttributeTests.cs │ │ └── CompletionPropertyTests.cs │ │ ├── FieldAlias │ │ └── FieldAliasPropertyTests.cs │ │ ├── Generic │ │ └── GenericPropertyTests.cs │ │ ├── Ip │ │ ├── IpAttributeTests.cs │ │ └── IpPropertyTests.cs │ │ ├── Knn │ │ └── KnnVectorPropertyTests.cs │ │ ├── Murmur3Hash │ │ ├── Murmur3HashAttributeTests.cs │ │ └── Murmur3HashPropertyTests.cs │ │ └── TokenCount │ │ ├── TokenCountAttributeTests.cs │ │ └── TokenCountPropertyTests.cs ├── MetaHeader │ └── MetaHeaderHelperTests.cs ├── Modules │ ├── Scripting │ │ ├── DeleteScript │ │ │ ├── DeleteScriptApiTests.cs │ │ │ └── DeleteScriptUrlTests.cs │ │ ├── ExecutePainlessScript │ │ │ ├── ExecutePainlessScriptApiTests.cs │ │ │ └── ExecutePainlessScriptUrlTests.cs │ │ ├── GetScript │ │ │ ├── GetScriptApiTests.cs │ │ │ └── GetScriptUrlTests.cs │ │ ├── PutScript │ │ │ ├── PutScriptApiTests.cs │ │ │ └── PutScriptUrlTests.cs │ │ └── ScriptingCrudTests.cs │ └── SnapshotAndRestore │ │ ├── Repositories │ │ ├── CleanupRepository │ │ │ ├── CleanupRepositoryApiTests.cs │ │ │ └── CleanupRepositoryUrlTests.cs │ │ ├── CreateRepository │ │ │ ├── CreateRepositoryApiTests.cs │ │ │ └── CreateRepositoryUrlTests.cs │ │ ├── DeleteRepository │ │ │ ├── DeleteRepositoryApiTests.cs │ │ │ └── DeleteRepositoryUrlTests.cs │ │ ├── GetRepository │ │ │ ├── GetRepositoryApiTests.cs │ │ │ └── GetRepositoryUrlTests.cs │ │ ├── RepositoryCrudTests.cs │ │ └── VerifyRepository │ │ │ ├── VerifyRepositoryApiTests.cs │ │ │ └── VerifyRepositoryUrlTests.cs │ │ ├── Restore │ │ ├── RestoreApiTests.cs │ │ └── RestoreUrlTests.cs │ │ └── Snapshot │ │ ├── CloneSnapshot │ │ ├── CloneSnapshotApiTests.cs │ │ └── CloneSnapshotUrlTests.cs │ │ ├── CoordinatedSnapshotTests.cs │ │ ├── DeleteSnapshot │ │ ├── DeleteSnapshotApiTests.cs │ │ └── DeleteSnapshotUrlTests.cs │ │ ├── GetSnapshot │ │ ├── GetSnapshotApiTests.cs │ │ └── GetSnapshotUrlTests.cs │ │ ├── Snapshot │ │ ├── SnapshotApiTests.cs │ │ └── SnapshotUrlTests.cs │ │ └── SnapshotStatus │ │ ├── SnapshotStatusApiTests.cs │ │ └── SnapshotStatusUrlTests.cs ├── QueryDsl │ ├── BoolDsl │ │ ├── BoolApiTests.cs │ │ ├── BoolDsl.doc.cs │ │ ├── Operators │ │ │ ├── AndAssignManyManualBoolsTests.cs │ │ │ ├── AndOperatorOnManualBoolsTests.cs │ │ │ ├── AndOperatorUsageTests.cs │ │ │ ├── CombinatorialUsageTests.cs │ │ │ ├── NotOperatorUsageTests.cs │ │ │ ├── OperatorUsageBase.cs │ │ │ ├── OrAssignManyManualBoolsTests.cs │ │ │ ├── OrOperatorOnManualBoolsTests.cs │ │ │ ├── OrOperatorUsageTests.cs │ │ │ └── UnaryAddOperatorUsageTests.cs │ │ ├── QueryContainerDescriptorExtensions.cs │ │ └── hadouken-indentation.jpg │ ├── Compound │ │ ├── Bool │ │ │ ├── BoolDslComplexQueryUsageTests.cs │ │ │ └── BoolQueryUsageTests.cs │ │ ├── Boosting │ │ │ └── BoostingQueryUsageTests.cs │ │ ├── ConstantScore │ │ │ └── ConstantScoreQueryUsageTests.cs │ │ ├── Dismax │ │ │ └── DismaxQueryUsageTests.cs │ │ └── FunctionScore │ │ │ └── FunctionScoreQueryUsageTests.cs │ ├── ConditionlessWhen.cs │ ├── Container │ │ └── QueryContainerTests.cs │ ├── FullText │ │ ├── Intervals │ │ │ └── IntervalsUsageTests.cs │ │ ├── Match │ │ │ └── MatchUsageTests.cs │ │ ├── MatchBoolPrefix │ │ │ └── MatchBoolPrefixUsageTests.cs │ │ ├── MatchPhrase │ │ │ └── MatchPhraseUsageTests.cs │ │ ├── MatchPhrasePrefix │ │ │ └── MatchPhrasePrefixUsageTests.cs │ │ ├── MultiMatch │ │ │ └── MultiMatchUsageTests.cs │ │ ├── QueryString │ │ │ └── QueryStringUsageTests.cs │ │ └── SimpleQueryString │ │ │ └── SimpleQueryStringUsageTests.cs │ ├── Geo │ │ ├── BoundingBox │ │ │ └── GeoBoundingBoxQueryUsageTests.cs │ │ ├── Distance │ │ │ └── GeoDistanceQueryUsageTests.cs │ │ ├── GeoShape │ │ │ ├── GeoShapeQueryUsageTests.cs │ │ │ ├── GeoShapeSerializationTests.cs │ │ │ └── GeoWKTTests.cs │ │ └── Polygon │ │ │ └── GeoPolygonQueryUsageTests.cs │ ├── Joining │ │ ├── HasChild │ │ │ └── HasChildQueryUsageTests.cs │ │ ├── HasParent │ │ │ └── HasParentQueryUsageTests.cs │ │ ├── Nested │ │ │ └── NestedQueryUsageTests.cs │ │ └── ParentId │ │ │ └── ParentIdQueryUsageTests.cs │ ├── MatchNoneQueryUsageTests.cs │ ├── NotConditionlessWhen.cs │ ├── OscSpecific │ │ └── Raw │ │ │ ├── RawCombineUsageTests.cs │ │ │ └── RawQueryUsageTests.cs │ ├── QueryDslIntegrationTestsBase.cs │ ├── QueryDslUsageTestsBase.cs │ ├── Span │ │ ├── Containing │ │ │ └── SpanContainingQueryUsageTests.cs │ │ ├── FieldMasking │ │ │ └── SpanFieldMaskingUsageTests.cs │ │ ├── First │ │ │ └── SpanFirstQueryUsageTests.cs │ │ ├── MultiTerm │ │ │ └── SpanMultiTermQueryUsageTests.cs │ │ ├── Near │ │ │ └── SpanNearQueryUsageTests.cs │ │ ├── Not │ │ │ └── SpanNotQueryUsageTests.cs │ │ ├── Or │ │ │ └── SpanOrQueryUsageTests.cs │ │ ├── Term │ │ │ └── SpanTermQueryUsageTests.cs │ │ └── Within │ │ │ └── SpanWithinQueryUsageTests.cs │ ├── Specialized │ │ ├── DistanceFeature │ │ │ └── DistanceFeatureQueryUsageTests.cs │ │ ├── Knn │ │ │ └── KnnQueryUsageTests.cs │ │ ├── MoreLikeThis │ │ │ ├── MoreLikeThisFullDocumentQueryUsageTests.cs │ │ │ └── MoreLikeThisQueryUsageTests.cs │ │ ├── Neural │ │ │ └── NeuralQueryUsageTests.cs │ │ ├── Percolate │ │ │ └── PercolateQueryUsageTests.cs │ │ ├── RankFeature │ │ │ └── RankFeatureQueryUsageTests.cs │ │ ├── Script │ │ │ └── ScriptQueryUsageTests.cs │ │ └── ScriptScore │ │ │ └── ScriptScoreQueryUsageTests.cs │ ├── TermLevel │ │ ├── Exists │ │ │ └── ExistsQueryUsageTests.cs │ │ ├── Fuzzy │ │ │ ├── FuzzyDateQueryUsageTests.cs │ │ │ ├── FuzzyNumericQueryUsageTests.cs │ │ │ └── FuzzyQueryUsageTests.cs │ │ ├── Ids │ │ │ └── IdsQueryUsageTests.cs │ │ ├── Prefix │ │ │ └── PrefixQueryUsageTests.cs │ │ ├── Range │ │ │ ├── DateRangeQueryUsageTests.cs │ │ │ ├── LongRangeQueryUsageTests.cs │ │ │ ├── NumericRangeQueryUsageTests.cs │ │ │ └── TermRangeQueryUsageTests.cs │ │ ├── Regexp │ │ │ └── RegexpQueryUsageTests.cs │ │ ├── Term │ │ │ └── TermQueryUsageTests.cs │ │ ├── Terms │ │ │ ├── TermsListQueryUsageTests.cs │ │ │ ├── TermsLookupQueryUsageTests.cs │ │ │ └── TermsQueryUsageTests.cs │ │ ├── TermsSet │ │ │ └── TermsSetQueryUsageTests.cs │ │ └── Wildcard │ │ │ └── WildcardQueryUsageTests.cs │ └── Verbatim │ │ └── VerbatimAndStrictQueryUsageTests.cs ├── Search │ ├── Count │ │ ├── CountApiTests.cs │ │ └── CountUrlTests.cs │ ├── Explain │ │ ├── ExplainApiTests.cs │ │ └── ExplainUrlTests.cs │ ├── FieldCapabilities │ │ ├── FieldCapabilitiesApiTests.cs │ │ └── FieldCapabilitiesUrlTests.cs │ ├── Hits │ │ └── HitsSerializationTests.cs │ ├── MultiSearch │ │ ├── MultiSearchApiTests.cs │ │ ├── MultiSearchInvalidApiTests.cs │ │ ├── MultiSearchLowLevelPostDataTests.cs │ │ ├── MultiSearchTemplate │ │ │ ├── MultiSearchTemplateApiTests.cs │ │ │ └── MultiSearchTemplateUrlTests.cs │ │ └── MultiSearchUrlTests.cs │ ├── PointInTime │ │ ├── CreatePitApiTests.cs │ │ ├── CreatePitUrlTests.cs │ │ ├── DeleteAllPitsApiTests.cs │ │ ├── DeleteAllPitsUrlTests.cs │ │ ├── DeletePitApiTests.cs │ │ ├── DeletePitUrlTests.cs │ │ ├── GetAllPitsApiTests.cs │ │ ├── GetAllPitsUrlTests.cs │ │ └── PitSearchApiTests.cs │ ├── Request │ │ ├── ExplainUsageTests.cs │ │ ├── FieldsUsageTests.cs │ │ ├── FromAndSizeUsageTests.cs │ │ ├── HighlightingUsageTests.cs │ │ ├── HighlightingUsageTestsWithMaxAnalyzerOffset.cs │ │ ├── IndicesBoostSerializationTests.cs │ │ ├── IndicesBoostUsageTests.cs │ │ ├── InnerHitsUsageTests.cs │ │ ├── MinScoreUsageTests.cs │ │ ├── PostFilterUsageTests.cs │ │ ├── ProfileUsageTests.cs │ │ ├── QueryUsageTests.cs │ │ ├── ScriptFieldsUsageTests.cs │ │ ├── SearchAfterUsageTests.cs │ │ ├── SlicedScrollSearchUsageTests.cs │ │ ├── SortUsageTests.cs │ │ ├── SourceFilteringUsageTests.cs │ │ └── SuggestUsageTests.cs │ ├── ReturnedFields.doc.cs │ ├── Scroll │ │ ├── ClearScroll │ │ │ ├── ClearScrollApiTests.cs │ │ │ └── ClearScrollUrlTests.cs │ │ └── Scroll │ │ │ ├── ScrollApiTests.cs │ │ │ ├── ScrollUrlTests.cs │ │ │ └── SlicedScrollSearchApiTests.cs │ ├── ScrollingDocuments.doc.cs │ ├── Search │ │ ├── Collapsing │ │ │ └── FieldCollapseUsageTests.cs │ │ ├── InvalidSearchApiTests.cs │ │ ├── Rescoring │ │ │ └── RescoreUsageTests.cs │ │ ├── SearchApiTests.cs │ │ ├── SearchProfileApiTests.cs │ │ ├── SearchProfileTests.cs │ │ └── SearchUrlTests.cs │ ├── SearchShards │ │ ├── SearchShardsApiTests.cs │ │ └── SearchShardsUrlTests.cs │ ├── SearchTemplate │ │ ├── RenderSearchTemplate │ │ │ ├── RenderSearchTemplateApiTests.cs │ │ │ └── RenderSearchTemplateUrlTests.cs │ │ ├── SearchTemplateApiTests.cs │ │ └── SearchTemplateUrlTests.cs │ ├── SearchUsageTestBase.cs │ ├── SearchingRuntimeFields.doc.cs │ ├── Validate │ │ ├── ValidateQueryApiTests.cs │ │ └── ValidateQueryUrlTests.cs │ └── WritingQueries.doc.cs ├── Tests.csproj └── XunitBootstrap.cs └── tests.proj /.ci/certs/openssl.conf: -------------------------------------------------------------------------------- 1 | [req] 2 | distinguished_name = req_distinguished_name 3 | 4 | [req_distinguished_name] 5 | 6 | [root-ca] 7 | subjectKeyIdentifier = hash 8 | authorityKeyIdentifier = keyid:always 9 | basicConstraints = critical, CA:TRUE 10 | keyUsage = critical, digitalSignature, keyCertSign, cRLSign 11 | 12 | [esnode] 13 | subjectKeyIdentifier = hash 14 | authorityKeyIdentifier = keyid:always, issuer:always 15 | basicConstraints = critical, CA:FALSE 16 | keyUsage = critical, digitalSignature, nonRepudiation, keyEncipherment 17 | extendedKeyUsage = critical, serverAuth, clientAuth 18 | subjectAltName = @esnode-san 19 | 20 | [esnode-san] 21 | DNS.1 = localhost 22 | DNS.2 = instance 23 | DNS.3 = instance1 24 | DNS.4 = instance2 25 | IP.1 = 127.0.0.1 26 | IP.2 = 0:0:0:0:0:0:0:1 27 | 28 | [kirk] 29 | subjectKeyIdentifier = hash 30 | authorityKeyIdentifier = keyid:always, issuer:always 31 | basicConstraints = critical, CA:FALSE 32 | keyUsage = critical, digitalSignature, nonRepudiation, keyEncipherment 33 | extendedKeyUsage = critical, clientAuth 34 | -------------------------------------------------------------------------------- /.ci/opensearch/opensearch.yml: -------------------------------------------------------------------------------- 1 | network.host: 0.0.0.0 2 | node.name: instance 3 | cluster.name: search-rest-test 4 | cluster.initial_master_nodes: instance 5 | discovery.seed_hosts: instance 6 | cluster.routing.allocation.disk.threshold_enabled: false 7 | bootstrap.memory_lock: true 8 | node.attr.testattr: test 9 | path.repo: /tmp 10 | repositories.url.allowed_urls: http://snapshot.test* 11 | action.destructive_requires_name: false 12 | -------------------------------------------------------------------------------- /.dockerignore: -------------------------------------------------------------------------------- 1 | scripts/output 2 | 3 | **/Obj/ 4 | **/obj/ 5 | **/bin/ 6 | **/Bin/ 7 | .vs/ 8 | *.xap 9 | *.user 10 | /TestResults 11 | *.vspscc 12 | *.vssscc 13 | *.suo 14 | *.cache 15 | *.docstates 16 | _ReSharper.* 17 | *.csproj.user 18 | *[Rr]e[Ss]harper.user 19 | _ReSharper.*/ 20 | packages/* 21 | artifacts/* 22 | msbuild.log 23 | PublishProfiles/ 24 | *.psess 25 | *.vsp 26 | *.pidb 27 | *.userprefs 28 | *DS_Store 29 | *.ncrunchsolution 30 | *.log 31 | *.vspx 32 | /.symbols 33 | nuget.exe 34 | App_Data/ 35 | bower_components 36 | node_modules 37 | *.sln.ide 38 | *.ng.ts 39 | *.sln.ide 40 | .build/ 41 | .testpublish/ 42 | launchSettings.json 43 | bin 44 | obj 45 | 46 | .git/objects/* 47 | 48 | _site 49 | _exported_templates 50 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | * text=auto 2 | 3 | *.sh text eol=lf 4 | .ci/run-tests text eol=lf -------------------------------------------------------------------------------- /.github/CODEOWNERS: -------------------------------------------------------------------------------- 1 | * @anirudha @dblock @joshuali925 @Xtansia @VachaShah @MaxKsyunz @Yury-Fridlyand -------------------------------------------------------------------------------- /.github/auto-label.json: -------------------------------------------------------------------------------- 1 | { 2 | "rules": { 3 | "Infra": [ 4 | ".ci/**/*", 5 | ".github/**/*", 6 | "build/**/*" 7 | ], 8 | "v2.0.0": "**/*" 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /.github/bump-version.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -ex 4 | 5 | IFS='.' read -r -a VERSION_COMPONENTS <<< "$1" 6 | MAJOR="${VERSION_COMPONENTS[0]}" 7 | MINOR="${VERSION_COMPONENTS[1]}" 8 | PATCH="${VERSION_COMPONENTS[2]}" 9 | 10 | if [[ -z "$MAJOR" || -z "$MINOR" || -z "$PATCH" ]]; then 11 | echo "Usage: $0 .." 12 | exit 1 13 | fi 14 | 15 | VERSION="$MAJOR.$MINOR.$PATCH" 16 | 17 | AUTO_LABEL_JSON=$(jq \ 18 | --arg v "$VERSION" \ 19 | '.rules |= with_entries(if .key | test("^v\\d+\\.\\d+\\.\\d+$") then .key |= "v\($v)" else . end)' \ 20 | .github/auto-label.json) 21 | echo "$AUTO_LABEL_JSON" > .github/auto-label.json 22 | 23 | GLOBAL_JSON=$(jq \ 24 | --arg v "$VERSION" \ 25 | --arg maj "$MAJOR" \ 26 | --arg min "$MINOR" \ 27 | '.version = "\($v)" | .doc_current = "\($maj).\($min)" | .doc_branch = "\($maj).x"' \ 28 | global.json) 29 | echo "$GLOBAL_JSON" > global.json 30 | 31 | s=$(command -v gsed || command -v sed) 32 | 33 | "$s" -i'' -E "s/<(Current(Assembly(File)?)?Version)>[0-9]+\.[0-9]+\.[0-9]+<\/\1>/<\1>$VERSION<\/\1>/" Directory.Build.props 34 | 35 | "$s" -i'' -E "s/(next release of opensearch\-net, which should be \*\*)[0-9]+\.[0-9]+\.[0-9]+(\*\*\.)/\1$VERSION\2/" README.md 36 | -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | updates: 2 | - directory: / 3 | open-pull-requests-limit: 3 4 | package-ecosystem: nuget 5 | schedule: 6 | interval: weekly 7 | labels: 8 | - "dependabot" 9 | - "dependencies" 10 | version: 2 11 | -------------------------------------------------------------------------------- /.github/license-header-fs.txt: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: Apache-2.0 2 | // 3 | // The OpenSearch Contributors require contributions made to 4 | // this file be licensed under the Apache-2.0 license or a 5 | // compatible open source license. 6 | -------------------------------------------------------------------------------- /.github/license-header.txt: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: Apache-2.0 2 | * 3 | * The OpenSearch Contributors require contributions made to 4 | * this file be licensed under the Apache-2.0 license or a 5 | * compatible open source license. 6 | */ 7 | -------------------------------------------------------------------------------- /.github/workflows/auto-label.yml: -------------------------------------------------------------------------------- 1 | name: Auto Label 2 | on: 3 | pull_request: 4 | types: [opened, synchronize] 5 | 6 | jobs: 7 | auto-label: 8 | name: Auto Label 9 | runs-on: ubuntu-latest 10 | steps: 11 | - uses: actions/checkout@v4 12 | - uses: banyan/auto-label@1.2 13 | env: 14 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 15 | -------------------------------------------------------------------------------- /.github/workflows/backport.yml: -------------------------------------------------------------------------------- 1 | name: Backport 2 | on: 3 | pull_request_target: 4 | types: 5 | - closed 6 | - labeled 7 | 8 | jobs: 9 | backport: 10 | runs-on: ubuntu-latest 11 | permissions: 12 | contents: write 13 | pull-requests: write 14 | name: Backport 15 | steps: 16 | - name: GitHub App token 17 | id: github_app_token 18 | if: github.repository == 'opensearch-project/opensearch-net' 19 | uses: tibdex/github-app-token@v1.5.0 20 | with: 21 | app_id: ${{ secrets.APP_ID }} 22 | private_key: ${{ secrets.APP_PRIVATE_KEY }} 23 | installation_id: 22958780 24 | 25 | - name: Backport 26 | uses: VachaShah/backport@v1.1.4 27 | with: 28 | github_token: ${{ steps.github_app_token.outputs.token || secrets.GITHUB_TOKEN }} 29 | branch_name: backport/backport-${{ github.event.number }} 30 | -------------------------------------------------------------------------------- /.github/workflows/build_deploy_docs.yml: -------------------------------------------------------------------------------- 1 | name: Build & Deploy Docs 2 | on: 3 | push: 4 | branches: 5 | - main 6 | 7 | # Allows you to run this workflow manually from the Actions tab 8 | workflow_dispatch: 9 | 10 | jobs: 11 | build-and-deploy: 12 | runs-on: ubuntu-latest 13 | steps: 14 | - uses: actions/checkout@v4 15 | - uses: actions/setup-dotnet@v4 16 | with: 17 | dotnet-version: | 18 | 5.0.x 19 | 6.0.x 20 | 8.0.x 21 | 22 | - uses: actions/cache@v4 23 | with: 24 | path: ~/.nuget/packages 25 | key: ${{ runner.os }}-nuget-${{ hashFiles('**/*.?sproj') }} 26 | restore-keys: | 27 | ${{ runner.os }}-nuget- 28 | 29 | - name: Install docfx 30 | run: dotnet tool install --global docfx 31 | 32 | - name: Compile 33 | run: dotnet build -c Release 34 | 35 | - name: Generate docs 36 | run: docfx ./docs/docfx.json 37 | 38 | - name: Deploy 39 | uses: peaceiris/actions-gh-pages@v3 40 | with: 41 | github_token: ${{ secrets.GITHUB_TOKEN }} 42 | publish_dir: ./docs/_site/ 43 | -------------------------------------------------------------------------------- /.github/workflows/changelog_verifier.yml: -------------------------------------------------------------------------------- 1 | name: "Changelog Verifier" 2 | on: 3 | pull_request: 4 | types: [opened, edited, review_requested, synchronize, reopened, ready_for_review, labeled, unlabeled] 5 | 6 | jobs: 7 | # Enforces the update of a changelog file on every pull request 8 | verify-changelog: 9 | runs-on: ubuntu-latest 10 | steps: 11 | - uses: actions/checkout@v4 12 | with: 13 | token: ${{ secrets.GITHUB_TOKEN }} 14 | ref: ${{ github.event.pull_request.head.sha }} 15 | 16 | - uses: dangoslen/changelog-enforcer@v3 17 | with: 18 | skipLabels: "skip-changelog, autocut" 19 | -------------------------------------------------------------------------------- /.github/workflows/compile.yml: -------------------------------------------------------------------------------- 1 | name: Compile 2 | 3 | on: [pull_request, push] 4 | 5 | jobs: 6 | compile: 7 | runs-on: ubuntu-latest 8 | 9 | steps: 10 | - uses: actions/checkout@v4 11 | - uses: actions/setup-dotnet@v4 12 | with: 13 | dotnet-version: | 14 | 5.0.x 15 | 6.0.x 16 | 8.0.x 17 | - uses: actions/cache@v4 18 | with: 19 | path: ~/.nuget/packages 20 | key: ${{ runner.os }}-nuget-${{ hashFiles('**/*.?sproj') }} 21 | restore-keys: | 22 | ${{ runner.os }}-nuget- 23 | - name: Compile 24 | run: | 25 | dotnet build 26 | -------------------------------------------------------------------------------- /.github/workflows/delete_backport_branch.yml: -------------------------------------------------------------------------------- 1 | name: Delete merged branch of the backport PRs 2 | on: 3 | pull_request: 4 | types: 5 | - closed 6 | 7 | jobs: 8 | delete-branch: 9 | runs-on: ubuntu-latest 10 | if: github.event.pull_request.base.repo.id == github.event.pull_request.head.repo.id && startsWith(github.event.pull_request.head.ref, 'backport/') 11 | permissions: 12 | contents: write 13 | steps: 14 | - name: Delete merged branch 15 | uses: actions/github-script@v7 16 | with: 17 | script: | 18 | github.rest.git.deleteRef({ 19 | owner: context.repo.owner, 20 | repo: context.repo.repo, 21 | ref: `heads/${context.payload.pull_request.head.ref}`, 22 | }) 23 | -------------------------------------------------------------------------------- /.github/workflows/dependabot_pr.yml: -------------------------------------------------------------------------------- 1 | name: Dependabot PR actions 2 | on: 3 | pull_request: 4 | types: 5 | - opened 6 | - reopened 7 | - synchronize 8 | - labeled 9 | - unlabeled 10 | 11 | jobs: 12 | dependabot: 13 | runs-on: ubuntu-latest 14 | permissions: 15 | pull-requests: write 16 | contents: write 17 | if: ${{ github.actor == 'dependabot[bot]' }} 18 | steps: 19 | - name: GitHub App token 20 | id: github_app_token 21 | uses: tibdex/github-app-token@v1.5.0 22 | with: 23 | app_id: ${{ secrets.APP_ID }} 24 | private_key: ${{ secrets.APP_PRIVATE_KEY }} 25 | installation_id: 22958780 26 | 27 | - name: Check out code 28 | uses: actions/checkout@v4 29 | with: 30 | token: ${{ steps.github_app_token.outputs.token }} 31 | 32 | - name: Update the changelog 33 | uses: dangoslen/dependabot-changelog-helper@v2 34 | with: 35 | version: 'Unreleased' 36 | 37 | - name: Commit the changes 38 | uses: stefanzweifel/git-auto-commit-action@v4 39 | with: 40 | commit_message: "Update changelog" 41 | branch: ${{ github.head_ref }} 42 | commit_user_name: dependabot[bot] 43 | commit_user_email: support@github.com 44 | commit_options: '--signoff' 45 | -------------------------------------------------------------------------------- /.github/workflows/license.yml: -------------------------------------------------------------------------------- 1 | name: License headers 2 | 3 | on: [pull_request] 4 | 5 | jobs: 6 | build: 7 | 8 | runs-on: ubuntu-latest 9 | 10 | steps: 11 | - uses: actions/checkout@v4 12 | 13 | - name: Check license headers 14 | run: | 15 | ./.github/check-license-headers.sh 16 | -------------------------------------------------------------------------------- /.github/workflows/links.yml: -------------------------------------------------------------------------------- 1 | name: Link Checker 2 | on: [pull_request, push] 3 | 4 | jobs: 5 | linkchecker: 6 | 7 | runs-on: ubuntu-latest 8 | 9 | steps: 10 | - uses: actions/checkout@v4 11 | - name: lychee Link Checker 12 | id: lychee 13 | uses: lycheeverse/lychee-action@v1.5.0 14 | with: 15 | args: --accept=200,403,429 "**/*.html" "**/*.md" "**/*.txt" "**/*.json" --exclude "file:///github/workspace/*" --exclude-mail 16 | fail: true 17 | env: 18 | GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}} 19 | -------------------------------------------------------------------------------- /.github/workflows/release-drafter.yml: -------------------------------------------------------------------------------- 1 | name: Draft a release 2 | 3 | on: 4 | push: 5 | tags: 6 | - "*" 7 | 8 | jobs: 9 | build: 10 | runs-on: ubuntu-latest 11 | permissions: 12 | issues: write 13 | id-token: write 14 | contents: write 15 | steps: 16 | - name: Checkout 17 | uses: actions/checkout@v4 18 | - id: get_approvers 19 | run: | 20 | echo "approvers=$(cat .github/CODEOWNERS | grep @ | tr -d '* ' | sed 's/@/,/g' | sed 's/,//1')" >> $GITHUB_OUTPUT 21 | - uses: trstringer/manual-approval@v1 22 | with: 23 | secret: ${{ github.TOKEN }} 24 | approvers: ${{ steps.get_approvers.outputs.approvers }} 25 | minimum-approvals: 1 26 | issue-title: 'Release opensearch-net' 27 | issue-body: "Please approve or deny the release of opensearch-net \n **TAG**: ${{ github.ref_name }} \n **COMMIT**: ${{ github.sha }}" 28 | exclude-workflow-initiator-as-approver: true 29 | - name: Release 30 | uses: softprops/action-gh-release@v1 31 | with: 32 | draft: true 33 | generate_release_notes: true 34 | -------------------------------------------------------------------------------- /.github/workflows/release.yml: -------------------------------------------------------------------------------- 1 | name: Create Release Candidate 2 | 3 | on: [pull_request, push] 4 | jobs: 5 | create-release-artifacts: 6 | name: Create Release Artifacts 7 | runs-on: ubuntu-latest 8 | 9 | steps: 10 | - uses: actions/checkout@v4 11 | - uses: actions/setup-dotnet@v4 12 | with: 13 | dotnet-version: | 14 | 5.0.x 15 | 6.0.x 16 | 8.0.x 17 | - uses: actions/cache@v4 18 | with: 19 | path: ~/.nuget/packages 20 | key: ${{ runner.os }}-nuget-${{ hashFiles('**/*.?sproj') }} 21 | restore-keys: | 22 | ${{ runner.os }}-nuget- 23 | - name: Determine Version 24 | run: echo "VERSION=$(jq -r '.version' global.json)" | tee -a "$GITHUB_ENV" 25 | - name: Generate Release 26 | run: | 27 | ./build.sh release $VERSION 28 | env: 29 | GITHUB_TOKEN: ${{ github.token }} 30 | - uses: actions/upload-artifact@v4 31 | with: 32 | name: opensearch-net-${{env.VERSION}}-release-candidate 33 | path: build/output/*.nupkg 34 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.userprefs 2 | *.local.xml 3 | *.sln.docstates 4 | *.obj 5 | *.swp 6 | *.exe 7 | *.pdb 8 | *.user 9 | *.aps 10 | *.pch 11 | *.tss 12 | *.vspscc 13 | *_i.c 14 | *_p.c 15 | *.ncb 16 | *.suo 17 | *.tlb 18 | *.tlh 19 | *.bak 20 | *.cache 21 | *.ilk 22 | *.log 23 | *.nupkg 24 | *.ncrunchsolution 25 | [Bb]in 26 | [Dd]ebug/ 27 | test-results 28 | test-results/* 29 | *.lib 30 | *.sbr 31 | *.DotSettings 32 | obj/ 33 | [Rr]elease*/ 34 | _ReSharper*/ 35 | _NCrunch*/ 36 | [Tt]est[Rr]esult* 37 | 38 | .fake/* 39 | .fake 40 | packages/* 41 | !.paket/paket.bootstrapper.exe 42 | paket.exe 43 | paket-files/*.cached 44 | 45 | build/* 46 | !build/tools 47 | !build/keys 48 | build/tools/* 49 | !build/tools/sn 50 | !build/tools/sn/* 51 | !build/tools/ilmerge 52 | !build/*.fsx 53 | !build/*.fsx 54 | !build/*.ps1 55 | !build/*.nuspec 56 | !build/*.png 57 | !build/*.targets 58 | !build/scripts 59 | 60 | 61 | /dep/Newtonsoft.Json.4.0.2 62 | !docs/build 63 | docs/node_modules 64 | doc/Help 65 | 66 | /src/Osc.Tests.Unit/*.ncrunchproject 67 | *.ncrunchproject 68 | Cache 69 | YamlCache 70 | tests.yaml 71 | 72 | *.DS_Store 73 | *.sln.ide 74 | 75 | launchSettings.json 76 | # https://github.com/elastic/elasticsearch-net/pull/1822#issuecomment-183722698 77 | *.project.lock.json 78 | project.lock.json 79 | .vs 80 | .vs/* 81 | .vscode/* 82 | .sonarqube/* 83 | .ionide 84 | .ionide/* 85 | 86 | 87 | .idea/ 88 | *.sln.iml 89 | /src/.vs/restore.dg 90 | 91 | _site 92 | _exported_templates 93 | -------------------------------------------------------------------------------- /.whitesource: -------------------------------------------------------------------------------- 1 | { 2 | "scanSettings": { 3 | "configMode": "AUTO", 4 | "configExternalURL": "", 5 | "projectToken": "", 6 | "baseBranches": [] 7 | }, 8 | "checkRunSettings": { 9 | "vulnerableCheckRunConclusionLevel": "failure", 10 | "displayMode": "diff", 11 | "useMendCheckNames": true 12 | }, 13 | "issueSettings": { 14 | "minSeverityLevel": "LOW", 15 | "issueType": "DEPENDENCY" 16 | }, 17 | "remediateSettings": { 18 | "workflowRules": { 19 | "enabled": true 20 | } 21 | } 22 | } -------------------------------------------------------------------------------- /ADMINS.md: -------------------------------------------------------------------------------- 1 | - [Current Admins](#current-admins) 2 | - [Admin Responsibilities](#admin-responsibilities) 3 | 4 | ## Current Admins 5 | 6 | | Admin | GitHub ID | Affiliation | 7 | | ---------------- | --------------------------------------- | ----------- | 8 | | Charlotte Henkle | [CEHENKLE](https://github.com/CEHENKLE) | Amazon | 9 | | Henri Yandell | [hyandell](https://github.com/hyandell) | Amazon | 10 | 11 | ## Admin Responsibilities 12 | 13 | [This document](https://github.com/opensearch-project/.github/blob/main/ADMINS.md#admin-responsibilities) explains what admins do in this repo, and how they should be doing it. 14 | -------------------------------------------------------------------------------- /COMPATIBILITY.md: -------------------------------------------------------------------------------- 1 | - [Compatibility with OpenSearch](#compatibility-with-opensearch) 2 | - [Upgrading](#upgrading) 3 | 4 | ## Compatibility with OpenSearch 5 | 6 | The below matrix shows the compatibility of the [`opensearch-net`](https://www.nuget.org/profiles/opensearchproject) with versions of [`OpenSearch`](https://opensearch.org/downloads.html#opensearch). 7 | 8 | | OpenSearch Version | Client Version | 9 | |--------------------|----------------| 10 | | 1.x | 1.0.0, 1.1.0 | 11 | | 2.x | 1.1.0 | 12 | 13 | ## Upgrading 14 | 15 | Major versions of OpenSearch introduce breaking changes that require careful upgrades of the client. While `opensearch-net` client 1.1.0 works against the latest OpenSearch 1.x, certain deprecated features removed in OpenSearch 2.0 have also been removed from the client. Please refer to the [OpenSearch documentation](https://opensearch.org/docs/latest/clients/index/) for more information. 16 | -------------------------------------------------------------------------------- /DEVELOPER_GUIDE.md: -------------------------------------------------------------------------------- 1 | - [Developer Guide](#developer-guide) 2 | - [Prerequisites](#prerequisites) 3 | - [Install Docker Image](#install-docker-image) 4 | - [Running Tests](#running-tests) 5 | - [Client Code Generator](#client-code-generator) 6 | 7 | # Developer Guide 8 | 9 | ## Prerequisites 10 | 11 | The .NET 6.0 SDK is required: 12 | 13 | ``` 14 | $ dotnet --list-sdks 15 | 6.0.xxx 16 | ``` 17 | 18 | ## Running Tests 19 | 20 | The integration tests will download opensearch and run a local cluster for you. To run the full suite of tests, all you need to do is call the below script. 21 | 22 | ``` 23 | .\build.bat 24 | ``` 25 | 26 | ``` 27 | build.sh 28 | ``` 29 | 30 | ## Client Code Generator 31 | 32 | OpenSearch publishes an [OpenAPI specification](https://github.com/opensearch-project/opensearch-api-specification/releases/download/main-latest/opensearch-openapi.yaml) in the [opensearch-api-specification](https://github.com/opensearch-project/opensearch-api-specification) repository, which is used to auto-generate the less interesting parts of the client. 33 | 34 | ``` 35 | ./build.sh codegen --branch main 36 | ``` 37 | or 38 | ``` 39 | ./build.bat codegen --branch main 40 | ``` 41 | -------------------------------------------------------------------------------- /Directory.Build.targets: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | true 5 | $(MSBuildThisFileDirectory)\build\keys\keypair.snk 6 | 7 | 8 | bin/$(Configuration)/$(TargetFramework)/ 9 | 1591,1572,1571,1573,1587,1570,NU5048, 10 | false 11 | true 12 | portable 13 | 14 | 15 | true 16 | $(AllowedOutputExtensionsInPackageBuildOutputFolder);.pdb 17 | 18 | 19 | -------------------------------------------------------------------------------- /MAINTAINERS.md: -------------------------------------------------------------------------------- 1 | ## Overview 2 | 3 | This document contains a list of maintainers in this repo. See [opensearch-project/.github/RESPONSIBILITIES.md](https://github.com/opensearch-project/.github/blob/main/RESPONSIBILITIES.md#maintainer-responsibilities) that explains what the role of maintainer means, what maintainers do in this and other repos, and how they should be doing it. If you're interested in contributing, and becoming a maintainer, see [CONTRIBUTING](CONTRIBUTING.md). 4 | 5 | ## Current Maintainers 6 | 7 | | Maintainer | GitHub ID | Affiliation | 8 | | ------------------ | --------------------------------------------------- | ----------- | 9 | | Anirudha Jadhav | [anirudha](https://github.com/anirudha) | Amazon | 10 | | Daniel Doubrovkine | [dblock](https://github.com/dblock) | Independent | 11 | | Joshua Li | [joshuali925](https://github.com/joshuali925) | Amazon | 12 | | Thomas Farr | [Xtansia](https://github.com/Xtansia) | Amazon | 13 | | Vacha Shah | [VachaShah](https://github.com/VachaShah) | Amazon | 14 | | Max Ksyunz | [MaxKsyunz](https://github.com/MaxKsyunz) | Bit Quill | 15 | | Yury Fridlyand | [Yury-Fridlyand](https://github.com/Yury-Fridlyand) | Bit Quill | 16 | -------------------------------------------------------------------------------- /NOTICE.txt: -------------------------------------------------------------------------------- 1 | OpenSearch (https://opensearch.org/) 2 | Copyright OpenSearch Contributors 3 | 4 | This product includes software developed by 5 | Elasticsearch (http://www.elastic.co). 6 | 7 | This product includes software developed by The Apache Software 8 | Foundation (http://www.apache.org/). 9 | -------------------------------------------------------------------------------- /SECURITY.md: -------------------------------------------------------------------------------- 1 | ## Reporting a Vulnerability 2 | 3 | If you discover a potential security issue in this project we ask that you notify OpenSearch Security directly via email to security@opensearch.org. Please do **not** create a public GitHub issue. 4 | -------------------------------------------------------------------------------- /abstractions/src/OpenSearch.OpenSearch.Ephemeral/OpenSearch.OpenSearch.Ephemeral.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netstandard2.0 5 | Provides an EphemeralCluster implementation that can download/bootstrap/run a throwaway customizable OpenSearch cluster 6 | opensearch,opensearch,cluster,ephemeral 7 | false 8 | 9 | true 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /abstractions/src/OpenSearch.OpenSearch.Ephemeral/SecurityRealms.cs: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: Apache-2.0 2 | * 3 | * The OpenSearch Contributors require contributions made to 4 | * this file be licensed under the Apache-2.0 license or a 5 | * compatible open source license. 6 | */ 7 | /* 8 | * Modifications Copyright OpenSearch Contributors. See 9 | * GitHub history for details. 10 | * 11 | * Licensed to Elasticsearch B.V. under one or more contributor 12 | * license agreements. See the NOTICE file distributed with 13 | * this work for additional information regarding copyright 14 | * ownership. Elasticsearch B.V. licenses this file to you under 15 | * the Apache License, Version 2.0 (the "License"); you may 16 | * not use this file except in compliance with the License. 17 | * You may obtain a copy of the License at 18 | * 19 | * http://www.apache.org/licenses/LICENSE-2.0 20 | * 21 | * Unless required by applicable law or agreed to in writing, 22 | * software distributed under the License is distributed on an 23 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 24 | * KIND, either express or implied. See the License for the 25 | * specific language governing permissions and limitations 26 | * under the License. 27 | */ 28 | 29 | namespace OpenSearch.OpenSearch.Ephemeral 30 | { 31 | public static class SecurityRealms 32 | { 33 | public const string FileRealm = "file1"; 34 | 35 | public const string PkiRealm = "pki1"; 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /abstractions/src/OpenSearch.OpenSearch.Managed/OpenSearch.OpenSearch.Managed.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netstandard2.0 5 | 6 | Provides an observable OpenSearchNode abstraction that can be used to wrap an opensearch process. 7 | Also ships with an cluster abstraction that can start one or more OpenSearchNode's 8 | 9 | opensearch,opensearch,cluster,observable,rx 10 | false 11 | 12 | true 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /abstractions/src/OpenSearch.OpenSearch.Xunit/OpenSearch.OpenSearch.Xunit.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netstandard2.0 5 | Provides an Xunit test framework allowing you to run integration tests against local ephemeral OpenSearch clusters 6 | false 7 | 8 | true 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /abstractions/src/OpenSearch.OpenSearch.Xunit/XunitPlumbing/SkipPrereleaseVersionsAttribute.cs: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: Apache-2.0 2 | * 3 | * The OpenSearch Contributors require contributions made to 4 | * this file be licensed under the Apache-2.0 license or a 5 | * compatible open source license. 6 | */ 7 | 8 | using System; 9 | 10 | namespace OpenSearch.OpenSearch.Xunit.XunitPlumbing; 11 | 12 | /// 13 | /// A Xunit test that should be skipped for prerelease OpenSearch versions, and a reason why. 14 | /// 15 | public class SkipPrereleaseVersionsAttribute : Attribute 16 | { 17 | public SkipPrereleaseVersionsAttribute(string reason) => Reason = reason; 18 | 19 | /// 20 | /// The reason why the test should be skipped 21 | /// 22 | public string Reason { get; } 23 | } 24 | -------------------------------------------------------------------------------- /abstractions/src/OpenSearch.OpenSearch.Xunit/XunitPlumbing/TheoryUnitTestDiscoverer.cs: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: Apache-2.0 2 | * 3 | * The OpenSearch Contributors require contributions made to 4 | * this file be licensed under the Apache-2.0 license or a 5 | * compatible open source license. 6 | */ 7 | 8 | using System.Collections.Generic; 9 | using Xunit; 10 | using Xunit.Abstractions; 11 | using Xunit.Sdk; 12 | 13 | namespace OpenSearch.OpenSearch.Xunit.XunitPlumbing 14 | { 15 | /// 16 | /// An Xunit theory unit test 17 | /// 18 | [XunitTestCaseDiscoverer("OpenSearch.OpenSearch.Xunit.XunitPlumbing.TheoryUnitTestDiscoverer", 19 | "OpenSearch.OpenSearch.Xunit")] 20 | public class TU : TheoryAttribute 21 | { 22 | } 23 | 24 | public class TheoryUnitTestDiscoverer : UnitTestDiscoverer 25 | { 26 | private readonly TheoryDiscoverer _discoverer; 27 | 28 | public TheoryUnitTestDiscoverer(IMessageSink diagnosticMessageSink) : base(diagnosticMessageSink) => 29 | _discoverer = new TheoryDiscoverer(diagnosticMessageSink); 30 | 31 | protected override IEnumerable DiscoverImpl(ITestFrameworkDiscoveryOptions discoveryOptions, ITestMethod testMethod, 32 | IAttributeInfo factAttribute 33 | ) => _discoverer.Discover(discoveryOptions, testMethod, factAttribute); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /abstractions/src/OpenSearch.OpenSearch.Xunit/ide-integration.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opensearch-project/opensearch-net/44174b55966b5e2661a14bb7d4fc55d59b962b10/abstractions/src/OpenSearch.OpenSearch.Xunit/ide-integration.png -------------------------------------------------------------------------------- /abstractions/src/OpenSearch.OpenSearch.Xunit/output.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opensearch-project/opensearch-net/44174b55966b5e2661a14bb7d4fc55d59b962b10/abstractions/src/OpenSearch.OpenSearch.Xunit/output.gif -------------------------------------------------------------------------------- /abstractions/src/OpenSearch.Stack.ArtifactsApi/OpenSearch.Stack.ArtifactsApi.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | netstandard2.0 4 | Provides a set of classes to resolve the location of OpenSearch stack products in various stages: released, snapshot and build candidates 5 | opensearch,opensearch,stack,versioning,artifacts 6 | false 7 | 8 | true 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /abstractions/tests/OpenSearch.OpenSearch.EphemeralTests/OpenSearch.OpenSearch.EphemeralTests.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | net6.0 6 | false 7 | false 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /abstractions/tests/OpenSearch.OpenSearch.EphemeralTests/XunitBootstrap.cs: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: Apache-2.0 2 | * 3 | * The OpenSearch Contributors require contributions made to 4 | * this file be licensed under the Apache-2.0 license or a 5 | * compatible open source license. 6 | */ 7 | 8 | using OpenSearch.OpenSearch.Xunit; 9 | using Tests.Core.Xunit; 10 | using Xunit; 11 | 12 | [assembly: TestFramework("OpenSearch.OpenSearch.Xunit.Sdk.OpenSearchTestFramework", "OpenSearch.OpenSearch.Xunit")] 13 | [assembly: OpenSearchXunitConfiguration(typeof(OpenSearchClientXunitRunOptions))] 14 | -------------------------------------------------------------------------------- /abstractions/tests/OpenSearch.Stack.ArtifactsApiTests/OpenSearch.Stack.ArtifactsApiTests.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | net6.0 6 | enable 7 | 8 | false 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /abstractions/tests/OpenSearch.Stack.ArtifactsApiTests/XunitBootstrap.cs: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: Apache-2.0 2 | * 3 | * The OpenSearch Contributors require contributions made to 4 | * this file be licensed under the Apache-2.0 license or a 5 | * compatible open source license. 6 | */ 7 | 8 | using OpenSearch.OpenSearch.Xunit; 9 | using Tests.Core.Xunit; 10 | using Xunit; 11 | 12 | [assembly: TestFramework("OpenSearch.OpenSearch.Xunit.Sdk.OpenSearchTestFramework", "OpenSearch.OpenSearch.Xunit")] 13 | [assembly: OpenSearchXunitConfiguration(typeof(OpenSearchClientXunitRunOptions))] 14 | -------------------------------------------------------------------------------- /build.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | dotnet run --project build/scripts -- %* -------------------------------------------------------------------------------- /build.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # SPDX-License-Identifier: Apache-2.0 3 | # 4 | # The OpenSearch Contributors require contributions made to 5 | # this file be licensed under the Apache-2.0 license or a 6 | # compatible open source license. 7 | # 8 | # Modifications Copyright OpenSearch Contributors. See 9 | # GitHub history for details. 10 | # 11 | # Licensed to Elasticsearch B.V. under one or more contributor 12 | # license agreements. See the NOTICE file distributed with 13 | # this work for additional information regarding copyright 14 | # ownership. Elasticsearch B.V. licenses this file to you under 15 | # the Apache License, Version 2.0 (the "License"); you may 16 | # not use this file except in compliance with the License. 17 | # You may obtain a copy of the License at 18 | # 19 | # http://www.apache.org/licenses/LICENSE-2.0 20 | # 21 | # Unless required by applicable law or agreed to in writing, 22 | # software distributed under the License is distributed on an 23 | # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 24 | # KIND, either express or implied. See the License for the 25 | # specific language governing permissions and limitations 26 | # under the License. 27 | 28 | set -euo pipefail 29 | dotnet run --project build/scripts -- "$@" 30 | -------------------------------------------------------------------------------- /build/keys/keypair.snk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opensearch-project/opensearch-net/44174b55966b5e2661a14bb7d4fc55d59b962b10/build/keys/keypair.snk -------------------------------------------------------------------------------- /build/keys/public.snk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opensearch-project/opensearch-net/44174b55966b5e2661a14bb7d4fc55d59b962b10/build/keys/public.snk -------------------------------------------------------------------------------- /build/nuget-icon-aux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opensearch-project/opensearch-net/44174b55966b5e2661a14bb7d4fc55d59b962b10/build/nuget-icon-aux.png -------------------------------------------------------------------------------- /build/nuget-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opensearch-project/opensearch-net/44174b55966b5e2661a14bb7d4fc55d59b962b10/build/nuget-icon.png -------------------------------------------------------------------------------- /docs/custom_template/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opensearch-project/opensearch-net/44174b55966b5e2661a14bb7d4fc55d59b962b10/docs/custom_template/favicon.ico -------------------------------------------------------------------------------- /docs/custom_template/styles/main.css: -------------------------------------------------------------------------------- 1 | #logo { 2 | height: 100%; 3 | padding: 10px; 4 | } 5 | 6 | #logo:hover path { 7 | fill: inherit !important; 8 | } 9 | -------------------------------------------------------------------------------- /docs/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: OpenSearch.Net 3 | --- 4 | # OpenSearch .NET Client 5 | 6 | ## Welcome! 7 | 8 | **opensearch-net** is [a community-driven, open source fork](https://aws.amazon.com/blogs/opensource/introducing-opensearch/) of elasticsearch-net licensed under the [Apache v2.0 License](../LICENSE.txt). For more information, see [opensearch.org](https://opensearch.org/). 9 | -------------------------------------------------------------------------------- /docs/toc.yml: -------------------------------------------------------------------------------- 1 | - name: API Documentation 2 | href: obj/temp/docfxapi/ 3 | -------------------------------------------------------------------------------- /dotnet-tools.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": 1, 3 | "isRoot": true, 4 | "tools": { 5 | "assembly-rewriter": { 6 | "version": "0.13.0", 7 | "commands": [ 8 | "assembly-rewriter" 9 | ], 10 | "rollForward": false 11 | }, 12 | "assembly-differ": { 13 | "version": "0.15.0", 14 | "commands": [ 15 | "assembly-differ" 16 | ], 17 | "rollForward": false 18 | }, 19 | "nupkg-validator": { 20 | "version": "0.6.0", 21 | "commands": [ 22 | "nupkg-validator" 23 | ], 24 | "rollForward": false 25 | }, 26 | "release-notes": { 27 | "version": "0.6.0", 28 | "commands": [ 29 | "release-notes" 30 | ], 31 | "rollForward": false 32 | }, 33 | "csharpier": { 34 | "version": "0.29.2", 35 | "commands": [ 36 | "dotnet-csharpier" 37 | ], 38 | "rollForward": false 39 | } 40 | } 41 | } -------------------------------------------------------------------------------- /global.json: -------------------------------------------------------------------------------- 1 | { 2 | "sdk": { 3 | "version": "8.0.107", 4 | "rollForward": "latestFeature", 5 | "allowPrerelease": false 6 | }, 7 | "version": "2.0.0", 8 | "doc_current": "2.0", 9 | "doc_branch": "2.x" 10 | } -------------------------------------------------------------------------------- /jenkins/release.jenkinsFile: -------------------------------------------------------------------------------- 1 | lib = library(identifier: 'jenkins@2.1.2', retriever: modernSCM([ 2 | $class: 'GitSCMSource', 3 | remote: 'https://github.com/opensearch-project/opensearch-build-libraries.git', 4 | ])) 5 | 6 | standardReleasePipelineWithGenericTrigger( 7 | overrideDockerImage: 'opensearchstaging/ci-runner:release-almalinux8-clients-v1.1', 8 | tokenIdCredential: 'jenkins-opensearch-net-generic-webhook-token', 9 | causeString: 'A tag was cut on opensearch-project/opensearch-net repository causing this workflow to run', 10 | publishRelease: true) { 11 | publishToNuget( 12 | repository: 'https://github.com/opensearch-project/opensearch-net', 13 | tag: "$tag", 14 | solutionFilePath: 'OpenSearch.sln', 15 | apiKeyCredentialId: 'jenkins-opensearch-net-api-key' 16 | ) 17 | } 18 | -------------------------------------------------------------------------------- /nuget.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /samples/Samples/Program.cs: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: Apache-2.0 2 | * 3 | * The OpenSearch Contributors require contributions made to 4 | * this file be licensed under the Apache-2.0 license or a 5 | * compatible open source license. 6 | */ 7 | 8 | using System.CommandLine; 9 | using Samples.Utils; 10 | 11 | namespace Samples; 12 | 13 | public static class Program 14 | { 15 | public static async Task Main(string[] args) 16 | { 17 | var rootCommand = new RootCommand("A collection of samples demonstrating how to use the OpenSearch .NET client"); 18 | var clientDescriptor = rootCommand.AddOpenSearchClientOptions(); 19 | 20 | foreach (var sample in Sample.GetAllSamples()) rootCommand.AddCommand(sample.AsCommand(clientDescriptor)); 21 | 22 | await rootCommand.InvokeAsync(args); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /samples/Samples/Samples.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Exe 5 | net6.0 6 | enable 7 | enable 8 | False 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/ApiGenerator/Domain/Specification/Body.cs: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: Apache-2.0 2 | * 3 | * The OpenSearch Contributors require contributions made to 4 | * this file be licensed under the Apache-2.0 license or a 5 | * compatible open source license. 6 | */ 7 | /* 8 | * Modifications Copyright OpenSearch Contributors. See 9 | * GitHub history for details. 10 | * 11 | * Licensed to Elasticsearch B.V. under one or more contributor 12 | * license agreements. See the NOTICE file distributed with 13 | * this work for additional information regarding copyright 14 | * ownership. Elasticsearch B.V. licenses this file to you under 15 | * the Apache License, Version 2.0 (the "License"); you may 16 | * not use this file except in compliance with the License. 17 | * You may obtain a copy of the License at 18 | * 19 | * http://www.apache.org/licenses/LICENSE-2.0 20 | * 21 | * Unless required by applicable law or agreed to in writing, 22 | * software distributed under the License is distributed on an 23 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 24 | * KIND, either express or implied. See the License for the 25 | * specific language governing permissions and limitations 26 | * under the License. 27 | */ 28 | 29 | namespace ApiGenerator.Domain.Specification 30 | { 31 | public class Body 32 | { 33 | public string Description { get; set; } 34 | public bool Required { get; set; } 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /src/ApiGenerator/Views/HighLevel/Client/FluentSyntax/FluentInterfaceMethod.cshtml: -------------------------------------------------------------------------------- 1 | @using System 2 | @using ApiGenerator.Domain.Code.HighLevel.Methods 3 | @inherits ApiGenerator.CodeTemplatePage 4 | @{ await IncludeAsync("HighLevel/Client/MethodXmlDocs.cshtml", Model.Syntax); } 5 | @{ await IncludeAsync("HighLevel/Client/FluentSyntax/FluentMethodHeader.cshtml", Model);}@Raw(";") 6 | -------------------------------------------------------------------------------- /src/ApiGenerator/Views/HighLevel/Client/FluentSyntax/FluentMethod.cshtml: -------------------------------------------------------------------------------- 1 | @using System 2 | @using ApiGenerator.Domain.Code.HighLevel.Methods 3 | @inherits ApiGenerator.CodeTemplatePage 4 | @{ 5 | var method = !Model.Async ? Model.Syntax.MethodName : string.Format("{0}Async", Model.Syntax.MethodName); 6 | var asyncKeyword = Model.Syntax.InterfaceResponse && Model.Async ? "async " : string.Empty; 7 | var awaitKeyWord = Model.Syntax.InterfaceResponse && Model.Async ? "await ": string.Empty; 8 | var configureAwait = Model.Syntax.InterfaceResponse && Model.Async ? ".ConfigureAwait(false)" : string.Empty; 9 | 10 | var requestMethodGenerics = Model.Syntax.RequestMethodGenerics; 11 | var descriptor = Model.Syntax.DescriptorName; 12 | var selectorArgs = Model.Syntax.SelectorArguments(); 13 | var selectorChained = Model.Syntax.SelectorChainedDefaults(); 14 | var cancellationToken = !Model.Async ? string.Empty : ", ct"; 15 | } 16 | @{ await IncludeAsync("HighLevel/Client/MethodXmlDocs.cshtml", Model.Syntax); } 17 | public @(asyncKeyword)@{ await IncludeAsync("HighLevel/Client/FluentSyntax/FluentMethodHeader.cshtml", Model);} @Raw("=>") 18 | @(awaitKeyWord)@(method)@(Raw(requestMethodGenerics))(selector.InvokeOrDefault(new @(Raw(descriptor))(@Raw(selectorArgs))@(@selectorChained))@cancellationToken)@Raw(configureAwait); 19 | -------------------------------------------------------------------------------- /src/ApiGenerator/Views/HighLevel/Client/FluentSyntax/FluentMethodHeader.cshtml: -------------------------------------------------------------------------------- 1 | @using ApiGenerator.Domain.Code.HighLevel.Methods 2 | @inherits ApiGenerator.CodeTemplatePage 3 | @{ 4 | var response = !Model.Async ? Model.Syntax.ResponseName : string.Format("Task<{0}>", Model.Syntax.ResponseName); 5 | var method = !Model.Async ? Model.Syntax.MethodName : string.Format("{0}Async", Model.Syntax.MethodName); 6 | 7 | var methodGenerics = Model.Syntax.MethodGenerics; 8 | var descriptorArgs = Model.Syntax.DescriptorArguments(); 9 | var selector = Model.Syntax.Selector; 10 | var optionalSelector = Model.Syntax.OptionalSelectorSuffix; 11 | var whereClause = Model.Syntax.GenericWhereClause; 12 | var cancellationToken = !Model.Async ? string.Empty : ", CancellationToken ct = default"; 13 | } 14 | @Raw(response) @(method)@(Raw(methodGenerics))(@(Raw(descriptorArgs))@(Raw(selector)) selector@(optionalSelector)@(cancellationToken))@whereClause 15 | -------------------------------------------------------------------------------- /src/ApiGenerator/Views/HighLevel/Client/Implementation/MethodImplementation.cshtml: -------------------------------------------------------------------------------- 1 | @using ApiGenerator 2 | @using ApiGenerator.Domain.Code.HighLevel.Methods 3 | @using HighLevelModel = ApiGenerator.Domain.Code.HighLevel.Methods.HighLevelModel 4 | @inherits CodeTemplatePage 5 | @{ 6 | const string fluentPath = "HighLevel/Client/FluentSyntax/FluentMethod.cshtml"; 7 | const string initializerPath = "HighLevel/Client/InitializerSyntax/InitializerMethod.cshtml"; 8 | } 9 | @{ await IncludeAsync(fluentPath, new FluentSyntaxView(Model.Fluent, async: false)); } 10 | @{ await IncludeAsync(fluentPath, new FluentSyntaxView(Model.Fluent, async: true)); } 11 | @if (Model.FluentBound != null) 12 | { 13 | 14 | @{ await IncludeAsync(fluentPath, new FluentSyntaxView(Model.FluentBound, async: false)); } 15 | @{ await IncludeAsync(fluentPath, new FluentSyntaxView(Model.FluentBound, async: true)); } 16 | 17 | } 18 | @{ await IncludeAsync(initializerPath, new InitializerSyntaxView(Model.Initializer, async: false)); } 19 | @{ await IncludeAsync(initializerPath, new InitializerSyntaxView(Model.Initializer, async: true)); } 20 | -------------------------------------------------------------------------------- /src/ApiGenerator/Views/HighLevel/Client/Implementation/MethodInterface.cshtml: -------------------------------------------------------------------------------- 1 | @using ApiGenerator 2 | @using ApiGenerator.Domain.Code.HighLevel.Methods 3 | @using HighLevelModel = ApiGenerator.Domain.Code.HighLevel.Methods.HighLevelModel 4 | @inherits CodeTemplatePage 5 | @{ 6 | const string fluentPath = "HighLevel/Client/FluentSyntax/FluentInterfaceMethod.cshtml"; 7 | const string initializerPath = "HighLevel/Client/InitializerSyntax/InitializerInterfaceMethod.cshtml"; 8 | } 9 | @{ await IncludeAsync(fluentPath, new FluentSyntaxView(Model.Fluent, async: false)); } 10 | @{ await IncludeAsync(fluentPath, new FluentSyntaxView(Model.Fluent, async: true)); } 11 | @if (Model.FluentBound != null) 12 | { 13 | 14 | @{ await IncludeAsync(fluentPath, new FluentSyntaxView(Model.FluentBound, async: false)); } 15 | @{ await IncludeAsync(fluentPath, new FluentSyntaxView(Model.FluentBound, async: true)); } 16 | 17 | } 18 | @{ await IncludeAsync(initializerPath, new InitializerSyntaxView(Model.Initializer, async: false)); } 19 | @{ await IncludeAsync(initializerPath, new InitializerSyntaxView(Model.Initializer, async: true)); } 20 | -------------------------------------------------------------------------------- /src/ApiGenerator/Views/HighLevel/Client/InitializerSyntax/InitializerInterfaceMethod.cshtml: -------------------------------------------------------------------------------- 1 | @using System 2 | @using ApiGenerator.Domain.Code.HighLevel.Methods 3 | @inherits ApiGenerator.CodeTemplatePage 4 | @{ await IncludeAsync("HighLevel/Client/MethodXmlDocs.cshtml", Model.Syntax); } 5 | @{ await IncludeAsync("HighLevel/Client/InitializerSyntax/InitializerMethodHeader.cshtml", Model); }@Raw(";") 6 | 7 | -------------------------------------------------------------------------------- /src/ApiGenerator/Views/HighLevel/Client/InitializerSyntax/InitializerMethod.cshtml: -------------------------------------------------------------------------------- 1 | @using System 2 | @using ApiGenerator.Domain.Code.HighLevel.Methods 3 | @inherits ApiGenerator.CodeTemplatePage 4 | @{ 5 | var dispatchMethod = !Model.Async ? Model.Syntax.DispatchMethod : string.Format("{0}Async", Model.Syntax.DispatchMethod); 6 | var dispatchGenerics = Model.Syntax.DispatchGenerics; 7 | var dispatchParameters = Model.Syntax.DispatchParameters; 8 | var asyncKeyword = Model.Syntax.InterfaceResponse && Model.Async ? "async " : String.Empty; 9 | var awaitKeyWord = Model.Syntax.InterfaceResponse && Model.Async ? "await ": string.Empty; 10 | var configureAwait = Model.Syntax.InterfaceResponse && Model.Async ? ".ConfigureAwait(false)" : String.Empty; 11 | if (Model.Async) 12 | { 13 | dispatchParameters += ", ct"; 14 | } 15 | } 16 | @{ await IncludeAsync("HighLevel/Client/MethodXmlDocs.cshtml", Model.Syntax); } 17 | public @Raw(asyncKeyword)@{ await IncludeAsync("HighLevel/Client/InitializerSyntax/InitializerMethodHeader.cshtml", Model); } @Raw("=>") 18 | @(awaitKeyWord)@(dispatchMethod)@(Raw(dispatchGenerics))(@Raw(dispatchParameters))@Raw(configureAwait); 19 | 20 | 21 | -------------------------------------------------------------------------------- /src/ApiGenerator/Views/HighLevel/Client/InitializerSyntax/InitializerMethodHeader.cshtml: -------------------------------------------------------------------------------- 1 | @using ApiGenerator.Domain.Code.HighLevel.Methods 2 | @inherits ApiGenerator.CodeTemplatePage 3 | @{ 4 | var response = !Model.Async ? Model.Syntax.ResponseName : string.Format("Task<{0}>", Model.Syntax.ResponseName); 5 | var method = !Model.Async ? Model.Syntax.MethodName : string.Format("{0}Async", Model.Syntax.MethodName); 6 | var requestMethodGenerics = Model.Syntax.MethodGenerics; 7 | 8 | var methodsArgs = string.Format("{0} request", Model.Syntax.ArgumentType); 9 | if (Model.Async) 10 | { 11 | methodsArgs += ", CancellationToken ct = default"; 12 | } 13 | var whereClause = Model.Syntax.GenericWhereClause; 14 | } 15 | @Raw(response) @(method)@(Raw(requestMethodGenerics))(@Raw(methodsArgs))@whereClause 16 | -------------------------------------------------------------------------------- /src/ApiGenerator/Views/HighLevel/Client/MethodXmlDocs.cshtml: -------------------------------------------------------------------------------- 1 | @using ApiGenerator 2 | @using ApiGenerator.Domain.Code.HighLevel.Methods; 3 | @using Version = SemanticVersioning.Version; 4 | @inherits CodeTemplatePage 5 | /// 6 | /// @Raw(Model.XmlDocSummary) 7 | /// @Raw("") 8 | /// @Model.DocumentationLink 9 | /// 10 | @if (Model.VersionAdded is {} versionAdded && versionAdded > new Version("1.0.0")) 11 | { 12 | /// Supported by OpenSearch servers of version @(versionAdded) or greater. 13 | 14 | } 15 | @if (Model.Deprecated is {} deprecation) 16 | { 17 | @Raw($"[Obsolete(\"{deprecation}\")]") 18 | } 19 | -------------------------------------------------------------------------------- /src/ApiGenerator/Views/HighLevel/Client/Usings.cshtml: -------------------------------------------------------------------------------- 1 | @using ApiGenerator.Domain 2 | @using ApiGenerator.Domain.Code 3 | @inherits ApiGenerator.CodeTemplatePage 4 | @{ 5 | var namespaces = Model.EndpointsPerNamespaceHighLevel.Keys.ToHashSet(); 6 | namespaces.Remove(CsharpNames.RootNamespace); 7 | namespaces.Add("Http"); 8 | 9 | foreach (var ns in namespaces) 10 | { 11 | using OpenSearch.Client.@(CsharpNames.ApiNamespace).@(ns)@(CsharpNames.ApiNamespaceSuffix); 12 | 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/ApiGenerator/Views/HighLevel/Descriptors/Descriptors.Http.cshtml: -------------------------------------------------------------------------------- 1 | @using ApiGenerator.Domain.Code 2 | @inherits ApiGenerator.CodeTemplatePage> 3 | @{ 4 | const string ns = "Http"; 5 | } 6 | @{ await IncludeGeneratorNotice(); } 7 | 8 | using OpenSearch.Net.@(CsharpNames.ApiNamespace).@ns@(CsharpNames.ApiNamespaceSuffix); 9 | 10 | namespace OpenSearch.Client; 11 | 12 | @foreach (var m in Model) 13 | { 14 | 15 | 16 | public class @m.Descriptor : @Raw($"Arbitrary{(m.TakesBody ? "Body" : string.Empty)}HttpRequestDescriptorBase<{m.Descriptor}, {m.RequestParameters}, {m.IRequest}>"), @m.IRequest 17 | { 18 | public @(m.Descriptor)(string path) : base(path) { } 19 | } 20 | 21 | 22 | } 23 | -------------------------------------------------------------------------------- /src/ApiGenerator/Views/HighLevel/Descriptors/Descriptors.cshtml: -------------------------------------------------------------------------------- 1 | @using System.Collections.ObjectModel 2 | @using ApiGenerator 3 | @using ApiGenerator.Domain.Specification 4 | @using ApiGenerator.Domain.Code 5 | @inherits CodeTemplatePage>> 6 | @{ 7 | var (ns, endpoints) = Model; 8 | ns = ns != CsharpNames.RootNamespace ? $".{CsharpNames.ApiNamespace}.{ns}{CsharpNames.ApiNamespaceSuffix}" : null; 9 | } 10 | @{ await IncludeLegacyGeneratorNotice(); } 11 | // ReSharper disable RedundantUsingDirective 12 | using System; 13 | using System.Collections.Generic; 14 | using System.Linq; 15 | using System.Text; 16 | using System.Linq.Expressions; 17 | 18 | using OpenSearch.Net; 19 | using OpenSearch.Net.Utf8Json; 20 | @if (ns != null) 21 | { 22 | using OpenSearch.Net@(ns); 23 | 24 | } 25 | 26 | // ReSharper disable RedundantBaseConstructorCall 27 | // ReSharper disable UnusedTypeParameter 28 | // ReSharper disable PartialMethodWithSinglePart 29 | // ReSharper disable RedundantNameQualifier 30 | namespace OpenSearch.Client 31 | { 32 | @foreach (var endpoint in endpoints) 33 | { 34 | await IncludeAsync("HighLevel/Descriptors/Descriptor.cshtml", endpoint.DescriptorPartialImplementation); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /src/ApiGenerator/Views/HighLevel/Descriptors/RequestDescriptorBase.cshtml: -------------------------------------------------------------------------------- 1 | @using ApiGenerator.Domain 2 | @inherits ApiGenerator.CodeTemplatePage 3 | @{ await IncludeLegacyGeneratorNotice(); } 4 | using System.Collections.Generic; 5 | 6 | namespace OpenSearch.Client 7 | { 8 | // ReSharper disable UnusedTypeParameter 9 | public abstract partial class @Raw("RequestDescriptorBase") 10 | { 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/ApiGenerator/Views/HighLevel/Descriptors/XmlDocs.cshtml: -------------------------------------------------------------------------------- 1 | @using System.Linq 2 | @using Version = SemanticVersioning.Version 3 | @inherits ApiGenerator.CodeTemplatePage 4 | @{ 5 | var docs = Model.DescriptionHighLevel.ToList(); 6 | var description = docs.Count == 1 ? docs.First() : string.Join($"{Environment.NewLine}\t\t", docs.Select(d => "/// " + d)); 7 | if (docs.Count == 1) 8 | { 9 | /// @Raw(description) 10 | 11 | } 12 | else 13 | { 14 | /// 15 | @Raw(description) 16 | /// 17 | 18 | } 19 | if (Model.VersionAdded is {} versionAdded && versionAdded > new Version("1.0.0")) 20 | { 21 | /// Supported by OpenSearch servers of version @(versionAdded) or greater. 22 | 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /src/ApiGenerator/Views/HighLevel/Requests/ApiUrlsLookup.cshtml: -------------------------------------------------------------------------------- 1 | @using System.Linq 2 | @using ApiGenerator.Domain 3 | @using ApiGenerator 4 | @using ApiGenerator.Configuration 5 | @inherits CodeTemplatePage 6 | @{ await IncludeLegacyGeneratorNotice(); } 7 | namespace OpenSearch.Client 8 | { 9 | internal static partial class ApiUrlsLookups 10 | { 11 | @foreach (var endpoint in Model.Endpoints.Values) 12 | { 13 | if (CodeConfiguration.IgnoreHighLevelApi(endpoint.Name)) 14 | { 15 | continue; 16 | } 17 | var propertyName = $"{endpoint.CsharpNames.Namespace}{endpoint.CsharpNames.MethodName}"; 18 | var paths = !endpoint.Url.Paths.Any() ? endpoint.Url.AllPaths : endpoint.Url.Paths; 19 | 20 | internal static readonly ApiUrls @(Raw(propertyName)) = new([@Raw(string.Join(", ", paths.Select(p=>$"\"{p.Path.TrimStart('/')}\"")))]); 21 | 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /src/ApiGenerator/Views/HighLevel/Requests/PlainRequestBase.cshtml: -------------------------------------------------------------------------------- 1 | @using ApiGenerator.Domain 2 | @inherits ApiGenerator.CodeTemplatePage 3 | @{ await IncludeLegacyGeneratorNotice(); } 4 | 5 | namespace OpenSearch.Client; 6 | 7 | public abstract partial class @Raw("PlainRequestBase") 8 | { 9 | } 10 | -------------------------------------------------------------------------------- /src/ApiGenerator/Views/HighLevel/Requests/RequestInterface.cshtml: -------------------------------------------------------------------------------- 1 | @using ApiGenerator.Domain.Code.HighLevel.Requests 2 | @inherits ApiGenerator.CodeTemplatePage 3 | @{ 4 | var name = Model.CsharpNames.RequestInterfaceName; 5 | } 6 | [InterfaceDataContract] 7 | public partial interface @Raw(Model.Name) : IRequest@(Raw($"<{Model.CsharpNames.ParametersName}>")) 8 | { 9 | @foreach (var part in Model.UrlParts.OrderBy(p => p.Name)) 10 | { 11 | [IgnoreDataMember] 12 | @(Raw(part.HighLevelTypeName)) @(part.InterfaceName) { get; } 13 | 14 | } 15 | @foreach (var partialParam in Model.PartialParameters) 16 | { 17 | [DataMember(Name = "@(partialParam.QueryStringKey)")] @(Raw(partialParam.TypeHighLevel)) @(partialParam.ClsName) { get; set; } 18 | } 19 | } 20 | @if (Model.NeedsGenericInterface) 21 | { 22 | 23 | public partial interface @(name)@Raw(Model.CsharpNames.GenericsDeclaredOnRequest) : @(Raw(name)) { } 24 | 25 | } 26 | -------------------------------------------------------------------------------- /src/ApiGenerator/Views/HighLevel/Requests/Requests.Http.cshtml: -------------------------------------------------------------------------------- 1 | @using ApiGenerator.Domain.Code 2 | @inherits ApiGenerator.CodeTemplatePage> 3 | @{ 4 | const string ns = "Http"; 5 | } 6 | @{ await IncludeGeneratorNotice(); } 7 | 8 | using OpenSearch.Net.@(CsharpNames.ApiNamespace).@ns@(CsharpNames.ApiNamespaceSuffix); 9 | using OpenSearch.Net.Utf8Json; 10 | 11 | namespace OpenSearch.Client; 12 | 13 | @foreach (var m in Model) 14 | { 15 | 16 | 17 | public interface @m.IRequest : @Raw($"IArbitrary{(m.TakesBody ? "Body" : string.Empty)}HttpRequest<{m.RequestParameters}>") { } 18 | 19 | public class @m.Request : @Raw($"Arbitrary{(m.TakesBody ? "Body" : string.Empty)}HttpRequestBase<{m.RequestParameters}>"), @m.IRequest 20 | { 21 | [SerializationConstructor] 22 | protected @(m.Request)() { } 23 | 24 | public @(m.Request)(string path) : base(path) { } 25 | } 26 | 27 | 28 | } 29 | -------------------------------------------------------------------------------- /src/ApiGenerator/Views/HighLevel/Requests/Requests.cshtml: -------------------------------------------------------------------------------- 1 | @using System.Collections.ObjectModel 2 | @using ApiGenerator 3 | @using ApiGenerator.Domain.Specification 4 | @using ApiGenerator.Domain.Code 5 | @inherits CodeTemplatePage>> 6 | @{ 7 | var (ns, endpoints) = Model; 8 | ns = ns != CsharpNames.RootNamespace ? $".{CsharpNames.ApiNamespace}.{ns}{CsharpNames.ApiNamespaceSuffix}" : null; 9 | } 10 | @{ await IncludeLegacyGeneratorNotice(); } 11 | // ReSharper disable RedundantUsingDirective 12 | using System; 13 | using System.Collections.Generic; 14 | using System.Linq; 15 | using System.Text; 16 | using System.Linq.Expressions; 17 | using System.Runtime.Serialization; 18 | using OpenSearch.Net; 19 | using OpenSearch.Net.Utf8Json; 20 | @if (ns != null) 21 | { 22 | using OpenSearch.Net@(ns); 23 | 24 | } 25 | 26 | // ReSharper disable RedundantBaseConstructorCall 27 | // ReSharper disable UnusedTypeParameter 28 | // ReSharper disable PartialMethodWithSinglePart 29 | // ReSharper disable RedundantNameQualifier 30 | namespace OpenSearch.Client 31 | { 32 | @foreach (var endpoint in endpoints) 33 | { 34 | await IncludeAsync("HighLevel/Requests/RequestInterface.cshtml", endpoint.RequestInterface); 35 | await IncludeAsync("HighLevel/Requests/RequestImplementations.cshtml", endpoint.RequestPartialImplementation); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /src/ApiGenerator/Views/LowLevel/Client/Methods/MethodImplementation.cshtml: -------------------------------------------------------------------------------- 1 | @using ApiGenerator.Domain.Code.LowLevel 2 | @inherits ApiGenerator.CodeTemplatePage 3 | @{ 4 | var contentType = Model.CsharpNames.RestSpecName.Contains(".cat_") ? ", contentType: \"text/plain\"" : string.Empty; 5 | } 6 | @{await IncludeAsync("LowLevel/Client/Methods/MethodDocs.cshtml", Model); } 7 | public TResponse @Model.PerPathMethodName@(Raw(""))(@Raw(Model.Arguments)) 8 | where TResponse : class, IOpenSearchResponse, new() => DoRequest@(Raw(""))(@Model.HttpMethod, @Raw(Model.UrlInCode), @(Model.HasBody ? "body" : "null"), RequestParams(requestParameters@(Raw(contentType)))); 9 | 10 | @{await IncludeAsync("LowLevel/Client/Methods/MethodDocs.cshtml", Model); } 11 | [MapsApi("@Model.CsharpNames.RestSpecName", "@Model.MapsApiArguments")] 12 | public Task@(Raw("")) @(Model.PerPathMethodName)Async@(Raw(""))(@Raw(Model.Arguments), CancellationToken ctx = default) 13 | where TResponse : class, IOpenSearchResponse, new() => DoRequestAsync@(Raw(""))(@Model.HttpMethod, @Raw(Model.UrlInCode), ctx, @(Model.HasBody ? "body" : "null"), RequestParams(requestParameters@(Raw(contentType)))); 14 | -------------------------------------------------------------------------------- /src/ApiGenerator/Views/LowLevel/Client/Methods/MethodInterface.cshtml: -------------------------------------------------------------------------------- 1 | @using ApiGenerator.Domain.Code.LowLevel 2 | @inherits ApiGenerator.CodeTemplatePage 3 | @{await IncludeAsync("LowLevel/Client/Methods/MethodDocs.cshtml", Model); } 4 | TResponse @Model.PerPathMethodName@(Raw(""))(@Raw(Model.Arguments)) where TResponse : class, IOpenSearchResponse, new(); 5 | 6 | @{await IncludeAsync("LowLevel/Client/Methods/MethodDocs.cshtml", Model); } 7 | Task@(Raw("")) @(Model.PerPathMethodName)Async@(Raw(""))(@Raw(Model.Arguments), CancellationToken ctx = default) where TResponse : class, IOpenSearchResponse, new(); 8 | -------------------------------------------------------------------------------- /src/ApiGenerator/Views/LowLevel/Client/Usings.cshtml: -------------------------------------------------------------------------------- 1 | @using ApiGenerator.Domain 2 | @using ApiGenerator.Domain.Code 3 | @inherits ApiGenerator.CodeTemplatePage 4 | @{ 5 | var namespaces = Model.EndpointsPerNamespaceLowLevel.Keys.ToHashSet(); 6 | namespaces.Remove(CsharpNames.RootNamespace); 7 | namespaces.Add("Http"); 8 | 9 | foreach (var ns in namespaces) 10 | { 11 | using OpenSearch.Net.@(CsharpNames.ApiNamespace).@(ns)@(CsharpNames.ApiNamespaceSuffix); 12 | 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/ApiGenerator/Views/LowLevel/RequestParameters/RequestParameters.Http.cshtml: -------------------------------------------------------------------------------- 1 | @using ApiGenerator.Domain.Code 2 | @inherits ApiGenerator.CodeTemplatePage> 3 | @{ 4 | const string ns = "Http"; 5 | } 6 | @{ await IncludeGeneratorNotice(); } 7 | 8 | using OpenSearch.Net; 9 | 10 | namespace OpenSearch.Net.@(CsharpNames.ApiNamespace).@ns@(CsharpNames.ApiNamespaceSuffix); 11 | 12 | public abstract class ArbitraryHttpRequestParameters@(Raw("")) : RequestParameters@(Raw("")) 13 | where TSelf : ArbitraryHttpRequestParameters@(Raw("")) 14 | { 15 | protected ArbitraryHttpRequestParameters(HttpMethod method, bool supportsBody) 16 | { 17 | DefaultHttpMethod = method; 18 | SupportsBody = supportsBody; 19 | } 20 | 21 | public override HttpMethod DefaultHttpMethod { get; } 22 | public override bool SupportsBody { get; } 23 | } 24 | 25 | @foreach (var m in Model) 26 | { 27 | 28 | 29 | public class @m.RequestParameters : ArbitraryHttpRequestParameters@(Raw($"<{m.RequestParameters}>")) 30 | { 31 | public @(m.RequestParameters)() : base(@(m.MethodEnum), @(m.TakesBody.ToString().ToLowerInvariant())) { } 32 | } 33 | 34 | 35 | } 36 | -------------------------------------------------------------------------------- /src/OpenSearch.Client.JsonNetSerializer/OpenSearch.Client.JsonNetSerializer.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | OpenSearch.Client.JsonNetSerializer 5 | OpenSearch.Client.JsonNetSerializer - OpenSearch .NET custom Json.NET serializer 6 | opensearch,opensearch,search,lucene,opensearch.client,client,serializer,json 7 | OpenSearch.Client uses an internal serializer. This package enables serialization for your documents using your own custom Json.NET serializer 8 | 9 | 10 | 11 | true 12 | true 13 | netstandard2.0 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /src/OpenSearch.Client.JsonNetSerializer/README.md: -------------------------------------------------------------------------------- 1 | An auxiliary library used by `OpenSearch.Client` to serialize and deserialize data. 2 | -------------------------------------------------------------------------------- /src/OpenSearch.Client/.editorconfig: -------------------------------------------------------------------------------- 1 | [*.cs] 2 | resharper_check_namespace_highlighting=do_not_show 3 | resharper_inheritdoc_invalid_usage_highlighting=do_not_show 4 | -------------------------------------------------------------------------------- /src/OpenSearch.Client/Aggregations/Metric/ValueAggregate.cs: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: Apache-2.0 2 | * 3 | * The OpenSearch Contributors require contributions made to 4 | * this file be licensed under the Apache-2.0 license or a 5 | * compatible open source license. 6 | */ 7 | /* 8 | * Modifications Copyright OpenSearch Contributors. See 9 | * GitHub history for details. 10 | * 11 | * Licensed to Elasticsearch B.V. under one or more contributor 12 | * license agreements. See the NOTICE file distributed with 13 | * this work for additional information regarding copyright 14 | * ownership. Elasticsearch B.V. licenses this file to you under 15 | * the Apache License, Version 2.0 (the "License"); you may 16 | * not use this file except in compliance with the License. 17 | * You may obtain a copy of the License at 18 | * 19 | * http://www.apache.org/licenses/LICENSE-2.0 20 | * 21 | * Unless required by applicable law or agreed to in writing, 22 | * software distributed under the License is distributed on an 23 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 24 | * KIND, either express or implied. See the License for the 25 | * specific language governing permissions and limitations 26 | * under the License. 27 | */ 28 | 29 | namespace OpenSearch.Client 30 | { 31 | public class ValueAggregate : MetricAggregateBase 32 | { 33 | public double? Value { get; set; } 34 | 35 | public string ValueAsString { get; set; } 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /src/OpenSearch.Client/Aggregations/Pipeline/KeyedValueAggregate.cs: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: Apache-2.0 2 | * 3 | * The OpenSearch Contributors require contributions made to 4 | * this file be licensed under the Apache-2.0 license or a 5 | * compatible open source license. 6 | */ 7 | /* 8 | * Modifications Copyright OpenSearch Contributors. See 9 | * GitHub history for details. 10 | * 11 | * Licensed to Elasticsearch B.V. under one or more contributor 12 | * license agreements. See the NOTICE file distributed with 13 | * this work for additional information regarding copyright 14 | * ownership. Elasticsearch B.V. licenses this file to you under 15 | * the Apache License, Version 2.0 (the "License"); you may 16 | * not use this file except in compliance with the License. 17 | * You may obtain a copy of the License at 18 | * 19 | * http://www.apache.org/licenses/LICENSE-2.0 20 | * 21 | * Unless required by applicable law or agreed to in writing, 22 | * software distributed under the License is distributed on an 23 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 24 | * KIND, either express or implied. See the License for the 25 | * specific language governing permissions and limitations 26 | * under the License. 27 | */ 28 | 29 | using System.Collections.Generic; 30 | 31 | namespace OpenSearch.Client 32 | { 33 | public class KeyedValueAggregate : ValueAggregate 34 | { 35 | public IList Keys { get; set; } 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /src/OpenSearch.Client/Aggregations/Visitor/AggregationVisitorScope.cs: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: Apache-2.0 2 | * 3 | * The OpenSearch Contributors require contributions made to 4 | * this file be licensed under the Apache-2.0 license or a 5 | * compatible open source license. 6 | */ 7 | /* 8 | * Modifications Copyright OpenSearch Contributors. See 9 | * GitHub history for details. 10 | * 11 | * Licensed to Elasticsearch B.V. under one or more contributor 12 | * license agreements. See the NOTICE file distributed with 13 | * this work for additional information regarding copyright 14 | * ownership. Elasticsearch B.V. licenses this file to you under 15 | * the Apache License, Version 2.0 (the "License"); you may 16 | * not use this file except in compliance with the License. 17 | * You may obtain a copy of the License at 18 | * 19 | * http://www.apache.org/licenses/LICENSE-2.0 20 | * 21 | * Unless required by applicable law or agreed to in writing, 22 | * software distributed under the License is distributed on an 23 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 24 | * KIND, either express or implied. See the License for the 25 | * specific language governing permissions and limitations 26 | * under the License. 27 | */ 28 | 29 | namespace OpenSearch.Client 30 | { 31 | public enum AggregationVisitorScope 32 | { 33 | Unknown, 34 | Aggregation, 35 | Bucket 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /src/OpenSearch.Client/Cat/CatCount/CatCountRequest.cs: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: Apache-2.0 2 | * 3 | * The OpenSearch Contributors require contributions made to 4 | * this file be licensed under the Apache-2.0 license or a 5 | * compatible open source license. 6 | */ 7 | /* 8 | * Modifications Copyright OpenSearch Contributors. See 9 | * GitHub history for details. 10 | * 11 | * Licensed to Elasticsearch B.V. under one or more contributor 12 | * license agreements. See the NOTICE file distributed with 13 | * this work for additional information regarding copyright 14 | * ownership. Elasticsearch B.V. licenses this file to you under 15 | * the Apache License, Version 2.0 (the "License"); you may 16 | * not use this file except in compliance with the License. 17 | * You may obtain a copy of the License at 18 | * 19 | * http://www.apache.org/licenses/LICENSE-2.0 20 | * 21 | * Unless required by applicable law or agreed to in writing, 22 | * software distributed under the License is distributed on an 23 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 24 | * KIND, either express or implied. See the License for the 25 | * specific language governing permissions and limitations 26 | * under the License. 27 | */ 28 | 29 | namespace OpenSearch.Client 30 | { 31 | [MapsApi("cat.count.json")] 32 | public partial interface ICatCountRequest { } 33 | 34 | public partial class CatCountRequest { } 35 | 36 | public partial class CatCountDescriptor { } 37 | } 38 | -------------------------------------------------------------------------------- /src/OpenSearch.Client/Cat/CatHelp/CatHelpRequest.cs: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: Apache-2.0 2 | * 3 | * The OpenSearch Contributors require contributions made to 4 | * this file be licensed under the Apache-2.0 license or a 5 | * compatible open source license. 6 | */ 7 | /* 8 | * Modifications Copyright OpenSearch Contributors. See 9 | * GitHub history for details. 10 | * 11 | * Licensed to Elasticsearch B.V. under one or more contributor 12 | * license agreements. See the NOTICE file distributed with 13 | * this work for additional information regarding copyright 14 | * ownership. Elasticsearch B.V. licenses this file to you under 15 | * the Apache License, Version 2.0 (the "License"); you may 16 | * not use this file except in compliance with the License. 17 | * You may obtain a copy of the License at 18 | * 19 | * http://www.apache.org/licenses/LICENSE-2.0 20 | * 21 | * Unless required by applicable law or agreed to in writing, 22 | * software distributed under the License is distributed on an 23 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 24 | * KIND, either express or implied. See the License for the 25 | * specific language governing permissions and limitations 26 | * under the License. 27 | */ 28 | 29 | namespace OpenSearch.Client 30 | { 31 | [MapsApi("cat.help.json")] 32 | public partial interface ICatHelpRequest { } 33 | 34 | public partial class CatHelpRequest { } 35 | 36 | public partial class CatHelpDescriptor { } 37 | } 38 | -------------------------------------------------------------------------------- /src/OpenSearch.Client/Cat/CatNodes/CatNodesRequest.cs: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: Apache-2.0 2 | * 3 | * The OpenSearch Contributors require contributions made to 4 | * this file be licensed under the Apache-2.0 license or a 5 | * compatible open source license. 6 | */ 7 | /* 8 | * Modifications Copyright OpenSearch Contributors. See 9 | * GitHub history for details. 10 | * 11 | * Licensed to Elasticsearch B.V. under one or more contributor 12 | * license agreements. See the NOTICE file distributed with 13 | * this work for additional information regarding copyright 14 | * ownership. Elasticsearch B.V. licenses this file to you under 15 | * the Apache License, Version 2.0 (the "License"); you may 16 | * not use this file except in compliance with the License. 17 | * You may obtain a copy of the License at 18 | * 19 | * http://www.apache.org/licenses/LICENSE-2.0 20 | * 21 | * Unless required by applicable law or agreed to in writing, 22 | * software distributed under the License is distributed on an 23 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 24 | * KIND, either express or implied. See the License for the 25 | * specific language governing permissions and limitations 26 | * under the License. 27 | */ 28 | 29 | namespace OpenSearch.Client 30 | { 31 | [MapsApi("cat.nodes.json")] 32 | public partial interface ICatNodesRequest { } 33 | 34 | public partial class CatNodesRequest { } 35 | 36 | public partial class CatNodesDescriptor { } 37 | } 38 | -------------------------------------------------------------------------------- /src/OpenSearch.Client/Cat/CatPitSegments/CatAllPitSegmentsRecord.cs: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: Apache-2.0 2 | * 3 | * The OpenSearch Contributors require contributions made to 4 | * this file be licensed under the Apache-2.0 license or a 5 | * compatible open source license. 6 | */ 7 | 8 | using System.Runtime.Serialization; 9 | 10 | namespace OpenSearch.Client; 11 | 12 | [DataContract] 13 | public class CatAllPitSegmentsRecord : CatPitSegmentsRecord { } 14 | -------------------------------------------------------------------------------- /src/OpenSearch.Client/Cat/CatPitSegments/CatAllPitSegmentsRequest.cs: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: Apache-2.0 2 | * 3 | * The OpenSearch Contributors require contributions made to 4 | * this file be licensed under the Apache-2.0 license or a 5 | * compatible open source license. 6 | */ 7 | 8 | namespace OpenSearch.Client; 9 | 10 | [MapsApi("cat.all_pit_segments")] 11 | public partial interface ICatAllPitSegmentsRequest { } 12 | 13 | public partial class CatAllPitSegmentsRequest { } 14 | 15 | public partial class CatAllPitSegmentsDescriptor { } 16 | -------------------------------------------------------------------------------- /src/OpenSearch.Client/Cat/CatPitSegments/CatPitSegmentsRequest.cs: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: Apache-2.0 2 | * 3 | * The OpenSearch Contributors require contributions made to 4 | * this file be licensed under the Apache-2.0 license or a 5 | * compatible open source license. 6 | */ 7 | 8 | using System.Collections.Generic; 9 | using System.Linq; 10 | using System.Runtime.Serialization; 11 | using OpenSearch.Net.Utf8Json; 12 | 13 | namespace OpenSearch.Client; 14 | 15 | [MapsApi("cat.pit_segments")] 16 | [ReadAs(typeof(CatPitSegmentsRequest))] 17 | public partial interface ICatPitSegmentsRequest 18 | { 19 | [DataMember(Name = "pit_id")] 20 | IEnumerable PitId { get; set; } 21 | } 22 | 23 | public partial class CatPitSegmentsRequest 24 | { 25 | [SerializationConstructor] 26 | public CatPitSegmentsRequest() { } 27 | 28 | public CatPitSegmentsRequest(IEnumerable pitId) : this(pitId?.ToArray()) { } 29 | 30 | public CatPitSegmentsRequest(params string[] pitId) => PitId = pitId; 31 | 32 | public IEnumerable PitId { get; set; } 33 | } 34 | 35 | public partial class CatPitSegmentsDescriptor 36 | { 37 | IEnumerable ICatPitSegmentsRequest.PitId { get; set; } 38 | 39 | public CatPitSegmentsDescriptor PitId(IEnumerable pitId) => 40 | Assign(pitId?.ToArray(), (r, v) => r.PitId = v); 41 | 42 | public CatPitSegmentsDescriptor PitId(params string[] pitId) => 43 | Assign(pitId, (r, v) => r.PitId = v); 44 | } 45 | -------------------------------------------------------------------------------- /src/OpenSearch.Client/Cat/CatSegmentReplication/CatSegmentReplicationRequest.cs: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: Apache-2.0 2 | * 3 | * The OpenSearch Contributors require contributions made to 4 | * this file be licensed under the Apache-2.0 license or a 5 | * compatible open source license. 6 | */ 7 | 8 | namespace OpenSearch.Client; 9 | 10 | [MapsApi("cat.segment_replication")] 11 | public partial interface ICatSegmentReplicationRequest { } 12 | 13 | public partial class CatSegmentReplicationRequest { } 14 | 15 | public partial class CatSegmentReplicationDescriptor { } 16 | -------------------------------------------------------------------------------- /src/OpenSearch.Client/Cat/CatTasks/CatTasksRequest.cs: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: Apache-2.0 2 | * 3 | * The OpenSearch Contributors require contributions made to 4 | * this file be licensed under the Apache-2.0 license or a 5 | * compatible open source license. 6 | */ 7 | /* 8 | * Modifications Copyright OpenSearch Contributors. See 9 | * GitHub history for details. 10 | * 11 | * Licensed to Elasticsearch B.V. under one or more contributor 12 | * license agreements. See the NOTICE file distributed with 13 | * this work for additional information regarding copyright 14 | * ownership. Elasticsearch B.V. licenses this file to you under 15 | * the Apache License, Version 2.0 (the "License"); you may 16 | * not use this file except in compliance with the License. 17 | * You may obtain a copy of the License at 18 | * 19 | * http://www.apache.org/licenses/LICENSE-2.0 20 | * 21 | * Unless required by applicable law or agreed to in writing, 22 | * software distributed under the License is distributed on an 23 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 24 | * KIND, either express or implied. See the License for the 25 | * specific language governing permissions and limitations 26 | * under the License. 27 | */ 28 | 29 | namespace OpenSearch.Client 30 | { 31 | [MapsApi("cat.tasks.json")] 32 | public partial interface ICatTasksRequest { } 33 | 34 | public partial class CatTasksRequest { } 35 | 36 | public partial class CatTasksDescriptor { } 37 | } 38 | -------------------------------------------------------------------------------- /src/OpenSearch.Client/Cat/ICatRecord.cs: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: Apache-2.0 2 | * 3 | * The OpenSearch Contributors require contributions made to 4 | * this file be licensed under the Apache-2.0 license or a 5 | * compatible open source license. 6 | */ 7 | /* 8 | * Modifications Copyright OpenSearch Contributors. See 9 | * GitHub history for details. 10 | * 11 | * Licensed to Elasticsearch B.V. under one or more contributor 12 | * license agreements. See the NOTICE file distributed with 13 | * this work for additional information regarding copyright 14 | * ownership. Elasticsearch B.V. licenses this file to you under 15 | * the Apache License, Version 2.0 (the "License"); you may 16 | * not use this file except in compliance with the License. 17 | * You may obtain a copy of the License at 18 | * 19 | * http://www.apache.org/licenses/LICENSE-2.0 20 | * 21 | * Unless required by applicable law or agreed to in writing, 22 | * software distributed under the License is distributed on an 23 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 24 | * KIND, either express or implied. See the License for the 25 | * specific language governing permissions and limitations 26 | * under the License. 27 | */ 28 | 29 | namespace OpenSearch.Client 30 | { 31 | public interface ICatRecord { } 32 | } 33 | -------------------------------------------------------------------------------- /src/OpenSearch.Client/Cluster/ComponentTemplate/ComponentTemplate.cs: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: Apache-2.0 2 | * 3 | * The OpenSearch Contributors require contributions made to 4 | * this file be licensed under the Apache-2.0 license or a 5 | * compatible open source license. 6 | */ 7 | 8 | using System.Collections.Generic; 9 | using System.Runtime.Serialization; 10 | using OpenSearch.Net.Utf8Json; 11 | 12 | namespace OpenSearch.Client; 13 | 14 | [ReadAs(typeof(ComponentTemplate))] 15 | public interface IComponentTemplate 16 | { 17 | [DataMember(Name = "template")] 18 | ITemplate Template { get; set; } 19 | 20 | [DataMember(Name = "version")] 21 | long? Version { get; set; } 22 | 23 | [DataMember(Name = "_meta")] 24 | [JsonFormatter(typeof(VerbatimDictionaryInterfaceKeysFormatter))] 25 | IDictionary Meta { get; set; } 26 | } 27 | 28 | public class ComponentTemplate : IComponentTemplate 29 | { 30 | public ITemplate Template { get; set; } 31 | public long? Version { get; set; } 32 | public IDictionary Meta { get; set; } 33 | } 34 | -------------------------------------------------------------------------------- /src/OpenSearch.Client/Cluster/ComponentTemplate/ComponentTemplateExistsRequest.cs: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: Apache-2.0 2 | * 3 | * The OpenSearch Contributors require contributions made to 4 | * this file be licensed under the Apache-2.0 license or a 5 | * compatible open source license. 6 | */ 7 | 8 | namespace OpenSearch.Client; 9 | 10 | [MapsApi("cluster.exists_component_template")] 11 | public partial interface IComponentTemplateExistsRequest { } 12 | 13 | public partial class ComponentTemplateExistsRequest { } 14 | 15 | public partial class ComponentTemplateExistsDescriptor { } 16 | -------------------------------------------------------------------------------- /src/OpenSearch.Client/Cluster/ComponentTemplate/DeleteComponentTemplateRequest.cs: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: Apache-2.0 2 | * 3 | * The OpenSearch Contributors require contributions made to 4 | * this file be licensed under the Apache-2.0 license or a 5 | * compatible open source license. 6 | */ 7 | 8 | namespace OpenSearch.Client; 9 | 10 | [MapsApi("cluster.delete_component_template")] 11 | public partial interface IDeleteComponentTemplateRequest { } 12 | 13 | public partial class DeleteComponentTemplateRequest { } 14 | 15 | public partial class DeleteComponentTemplateDescriptor { } 16 | -------------------------------------------------------------------------------- /src/OpenSearch.Client/Cluster/ComponentTemplate/DeleteComponentTemplateResponse.cs: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: Apache-2.0 2 | * 3 | * The OpenSearch Contributors require contributions made to 4 | * this file be licensed under the Apache-2.0 license or a 5 | * compatible open source license. 6 | */ 7 | 8 | using System.Runtime.Serialization; 9 | 10 | namespace OpenSearch.Client; 11 | 12 | [DataContract] 13 | public class DeleteComponentTemplateResponse : AcknowledgedResponseBase { } 14 | -------------------------------------------------------------------------------- /src/OpenSearch.Client/Cluster/ComponentTemplate/GetComponentTemplateRequest.cs: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: Apache-2.0 2 | * 3 | * The OpenSearch Contributors require contributions made to 4 | * this file be licensed under the Apache-2.0 license or a 5 | * compatible open source license. 6 | */ 7 | 8 | namespace OpenSearch.Client; 9 | 10 | [MapsApi("cluster.get_component_template")] 11 | public partial interface IGetComponentTemplateRequest { } 12 | 13 | public partial class GetComponentTemplateRequest { } 14 | 15 | public partial class GetComponentTemplateDescriptor { } 16 | -------------------------------------------------------------------------------- /src/OpenSearch.Client/Cluster/ComponentTemplate/GetComponentTemplateResponse.cs: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: Apache-2.0 2 | * 3 | * The OpenSearch Contributors require contributions made to 4 | * this file be licensed under the Apache-2.0 license or a 5 | * compatible open source license. 6 | */ 7 | 8 | using System.Collections.Generic; 9 | using System.Runtime.Serialization; 10 | 11 | namespace OpenSearch.Client; 12 | 13 | [DataContract] 14 | public class GetComponentTemplateResponse : ResponseBase 15 | { 16 | [DataMember(Name = "component_templates")] 17 | public IReadOnlyCollection ComponentTemplates { get; internal set; } 18 | } 19 | 20 | [DataContract] 21 | public class NamedComponentTemplate 22 | { 23 | [DataMember(Name = "name")] 24 | public string Name { get; internal set; } 25 | 26 | [DataMember(Name = "component_template")] 27 | public ComponentTemplate ComponentTemplate { get; internal set; } 28 | } 29 | -------------------------------------------------------------------------------- /src/OpenSearch.Client/Cluster/ComponentTemplate/PutComponentTemplateResponse.cs: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: Apache-2.0 2 | * 3 | * The OpenSearch Contributors require contributions made to 4 | * this file be licensed under the Apache-2.0 license or a 5 | * compatible open source license. 6 | */ 7 | 8 | using System.Runtime.Serialization; 9 | 10 | namespace OpenSearch.Client; 11 | 12 | [DataContract] 13 | public class PutComponentTemplateResponse : AcknowledgedResponseBase { } 14 | -------------------------------------------------------------------------------- /src/OpenSearch.Client/Cluster/Ping/PingRequest.cs: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: Apache-2.0 2 | * 3 | * The OpenSearch Contributors require contributions made to 4 | * this file be licensed under the Apache-2.0 license or a 5 | * compatible open source license. 6 | */ 7 | /* 8 | * Modifications Copyright OpenSearch Contributors. See 9 | * GitHub history for details. 10 | * 11 | * Licensed to Elasticsearch B.V. under one or more contributor 12 | * license agreements. See the NOTICE file distributed with 13 | * this work for additional information regarding copyright 14 | * ownership. Elasticsearch B.V. licenses this file to you under 15 | * the Apache License, Version 2.0 (the "License"); you may 16 | * not use this file except in compliance with the License. 17 | * You may obtain a copy of the License at 18 | * 19 | * http://www.apache.org/licenses/LICENSE-2.0 20 | * 21 | * Unless required by applicable law or agreed to in writing, 22 | * software distributed under the License is distributed on an 23 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 24 | * KIND, either express or implied. See the License for the 25 | * specific language governing permissions and limitations 26 | * under the License. 27 | */ 28 | 29 | namespace OpenSearch.Client 30 | { 31 | [MapsApi("ping.json")] 32 | public partial interface IPingRequest { } 33 | 34 | public partial class PingRequest { } 35 | 36 | public partial class PingDescriptor { } 37 | } 38 | -------------------------------------------------------------------------------- /src/OpenSearch.Client/Cluster/Ping/PingResponse.cs: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: Apache-2.0 2 | * 3 | * The OpenSearch Contributors require contributions made to 4 | * this file be licensed under the Apache-2.0 license or a 5 | * compatible open source license. 6 | */ 7 | /* 8 | * Modifications Copyright OpenSearch Contributors. See 9 | * GitHub history for details. 10 | * 11 | * Licensed to Elasticsearch B.V. under one or more contributor 12 | * license agreements. See the NOTICE file distributed with 13 | * this work for additional information regarding copyright 14 | * ownership. Elasticsearch B.V. licenses this file to you under 15 | * the Apache License, Version 2.0 (the "License"); you may 16 | * not use this file except in compliance with the License. 17 | * You may obtain a copy of the License at 18 | * 19 | * http://www.apache.org/licenses/LICENSE-2.0 20 | * 21 | * Unless required by applicable law or agreed to in writing, 22 | * software distributed under the License is distributed on an 23 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 24 | * KIND, either express or implied. See the License for the 25 | * specific language governing permissions and limitations 26 | * under the License. 27 | */ 28 | 29 | using System.Runtime.Serialization; 30 | 31 | namespace OpenSearch.Client 32 | { 33 | [DataContract] 34 | public class PingResponse : ResponseBase { } 35 | } 36 | -------------------------------------------------------------------------------- /src/OpenSearch.Client/Cluster/VotingConfigExclusions/DeleteVotingConfigExclusions/DeleteVotingConfigExclusionsResponse.cs: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: Apache-2.0 2 | * 3 | * The OpenSearch Contributors require contributions made to 4 | * this file be licensed under the Apache-2.0 license or a 5 | * compatible open source license. 6 | */ 7 | /* 8 | * Modifications Copyright OpenSearch Contributors. See 9 | * GitHub history for details. 10 | * 11 | * Licensed to Elasticsearch B.V. under one or more contributor 12 | * license agreements. See the NOTICE file distributed with 13 | * this work for additional information regarding copyright 14 | * ownership. Elasticsearch B.V. licenses this file to you under 15 | * the Apache License, Version 2.0 (the "License"); you may 16 | * not use this file except in compliance with the License. 17 | * You may obtain a copy of the License at 18 | * 19 | * http://www.apache.org/licenses/LICENSE-2.0 20 | * 21 | * Unless required by applicable law or agreed to in writing, 22 | * software distributed under the License is distributed on an 23 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 24 | * KIND, either express or implied. See the License for the 25 | * specific language governing permissions and limitations 26 | * under the License. 27 | */ 28 | 29 | namespace OpenSearch.Client 30 | { 31 | public class DeleteVotingConfigExclusionsResponse : ResponseBase 32 | { 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /src/OpenSearch.Client/Cluster/VotingConfigExclusions/PostVotingConfigExclusions/PostVotingConfigExclusionsResponse.cs: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: Apache-2.0 2 | * 3 | * The OpenSearch Contributors require contributions made to 4 | * this file be licensed under the Apache-2.0 license or a 5 | * compatible open source license. 6 | */ 7 | /* 8 | * Modifications Copyright OpenSearch Contributors. See 9 | * GitHub history for details. 10 | * 11 | * Licensed to Elasticsearch B.V. under one or more contributor 12 | * license agreements. See the NOTICE file distributed with 13 | * this work for additional information regarding copyright 14 | * ownership. Elasticsearch B.V. licenses this file to you under 15 | * the Apache License, Version 2.0 (the "License"); you may 16 | * not use this file except in compliance with the License. 17 | * You may obtain a copy of the License at 18 | * 19 | * http://www.apache.org/licenses/LICENSE-2.0 20 | * 21 | * Unless required by applicable law or agreed to in writing, 22 | * software distributed under the License is distributed on an 23 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 24 | * KIND, either express or implied. See the License for the 25 | * specific language governing permissions and limitations 26 | * under the License. 27 | */ 28 | 29 | namespace OpenSearch.Client 30 | { 31 | public class PostVotingConfigExclusionsResponse : ResponseBase 32 | { 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /src/OpenSearch.Client/CommonAbstractions/Infer/Id/IdExtensions.cs: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: Apache-2.0 2 | * 3 | * The OpenSearch Contributors require contributions made to 4 | * this file be licensed under the Apache-2.0 license or a 5 | * compatible open source license. 6 | */ 7 | /* 8 | * Modifications Copyright OpenSearch Contributors. See 9 | * GitHub history for details. 10 | * 11 | * Licensed to Elasticsearch B.V. under one or more contributor 12 | * license agreements. See the NOTICE file distributed with 13 | * this work for additional information regarding copyright 14 | * ownership. Elasticsearch B.V. licenses this file to you under 15 | * the Apache License, Version 2.0 (the "License"); you may 16 | * not use this file except in compliance with the License. 17 | * You may obtain a copy of the License at 18 | * 19 | * http://www.apache.org/licenses/LICENSE-2.0 20 | * 21 | * Unless required by applicable law or agreed to in writing, 22 | * software distributed under the License is distributed on an 23 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 24 | * KIND, either express or implied. See the License for the 25 | * specific language governing permissions and limitations 26 | * under the License. 27 | */ 28 | 29 | namespace OpenSearch.Client 30 | { 31 | internal static class IdExtensions 32 | { 33 | internal static bool IsConditionless(this Id id) => id == null || id.StringOrLongValue == null && id.Document == null; 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /src/OpenSearch.Client/CommonAbstractions/SerializationBehavior/Attributes/IgnoreAttribute.cs: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: Apache-2.0 2 | * 3 | * The OpenSearch Contributors require contributions made to 4 | * this file be licensed under the Apache-2.0 license or a 5 | * compatible open source license. 6 | */ 7 | /* 8 | * Modifications Copyright OpenSearch Contributors. See 9 | * GitHub history for details. 10 | * 11 | * Licensed to Elasticsearch B.V. under one or more contributor 12 | * license agreements. See the NOTICE file distributed with 13 | * this work for additional information regarding copyright 14 | * ownership. Elasticsearch B.V. licenses this file to you under 15 | * the Apache License, Version 2.0 (the "License"); you may 16 | * not use this file except in compliance with the License. 17 | * You may obtain a copy of the License at 18 | * 19 | * http://www.apache.org/licenses/LICENSE-2.0 20 | * 21 | * Unless required by applicable law or agreed to in writing, 22 | * software distributed under the License is distributed on an 23 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 24 | * KIND, either express or implied. See the License for the 25 | * specific language governing permissions and limitations 26 | * under the License. 27 | */ 28 | 29 | using System; 30 | 31 | namespace OpenSearch.Client 32 | { 33 | [AttributeUsage(AttributeTargets.Property)] 34 | public class IgnoreAttribute : Attribute { } 35 | } 36 | -------------------------------------------------------------------------------- /src/OpenSearch.Client/CommonAbstractions/SerializationBehavior/Attributes/StringTimeSpanAttribute.cs: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: Apache-2.0 2 | * 3 | * The OpenSearch Contributors require contributions made to 4 | * this file be licensed under the Apache-2.0 license or a 5 | * compatible open source license. 6 | */ 7 | /* 8 | * Modifications Copyright OpenSearch Contributors. See 9 | * GitHub history for details. 10 | * 11 | * Licensed to Elasticsearch B.V. under one or more contributor 12 | * license agreements. See the NOTICE file distributed with 13 | * this work for additional information regarding copyright 14 | * ownership. Elasticsearch B.V. licenses this file to you under 15 | * the Apache License, Version 2.0 (the "License"); you may 16 | * not use this file except in compliance with the License. 17 | * You may obtain a copy of the License at 18 | * 19 | * http://www.apache.org/licenses/LICENSE-2.0 20 | * 21 | * Unless required by applicable law or agreed to in writing, 22 | * software distributed under the License is distributed on an 23 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 24 | * KIND, either express or implied. See the License for the 25 | * specific language governing permissions and limitations 26 | * under the License. 27 | */ 28 | 29 | using System; 30 | 31 | namespace OpenSearch.Client 32 | { 33 | [AttributeUsage(AttributeTargets.Property)] 34 | public class StringTimeSpanAttribute : Attribute { } 35 | } 36 | -------------------------------------------------------------------------------- /src/OpenSearch.Client/DanglingIndices/Delete/DeleteDanglingIndexResponse.cs: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: Apache-2.0 2 | * 3 | * The OpenSearch Contributors require contributions made to 4 | * this file be licensed under the Apache-2.0 license or a 5 | * compatible open source license. 6 | */ 7 | /* 8 | * Modifications Copyright OpenSearch Contributors. See 9 | * GitHub history for details. 10 | * 11 | * Licensed to Elasticsearch B.V. under one or more contributor 12 | * license agreements. See the NOTICE file distributed with 13 | * this work for additional information regarding copyright 14 | * ownership. Elasticsearch B.V. licenses this file to you under 15 | * the Apache License, Version 2.0 (the "License"); you may 16 | * not use this file except in compliance with the License. 17 | * You may obtain a copy of the License at 18 | * 19 | * http://www.apache.org/licenses/LICENSE-2.0 20 | * 21 | * Unless required by applicable law or agreed to in writing, 22 | * software distributed under the License is distributed on an 23 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 24 | * KIND, either express or implied. See the License for the 25 | * specific language governing permissions and limitations 26 | * under the License. 27 | */ 28 | 29 | using System.Runtime.Serialization; 30 | 31 | namespace OpenSearch.Client 32 | { 33 | [DataContract] 34 | public class DeleteDanglingIndexResponse : AcknowledgedResponseBase 35 | { 36 | 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /src/OpenSearch.Client/DanglingIndices/Import/ImportDanglingIndexResponse.cs: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: Apache-2.0 2 | * 3 | * The OpenSearch Contributors require contributions made to 4 | * this file be licensed under the Apache-2.0 license or a 5 | * compatible open source license. 6 | */ 7 | /* 8 | * Modifications Copyright OpenSearch Contributors. See 9 | * GitHub history for details. 10 | * 11 | * Licensed to Elasticsearch B.V. under one or more contributor 12 | * license agreements. See the NOTICE file distributed with 13 | * this work for additional information regarding copyright 14 | * ownership. Elasticsearch B.V. licenses this file to you under 15 | * the Apache License, Version 2.0 (the "License"); you may 16 | * not use this file except in compliance with the License. 17 | * You may obtain a copy of the License at 18 | * 19 | * http://www.apache.org/licenses/LICENSE-2.0 20 | * 21 | * Unless required by applicable law or agreed to in writing, 22 | * software distributed under the License is distributed on an 23 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 24 | * KIND, either express or implied. See the License for the 25 | * specific language governing permissions and limitations 26 | * under the License. 27 | */ 28 | 29 | using System.Runtime.Serialization; 30 | 31 | namespace OpenSearch.Client 32 | { 33 | [DataContract] 34 | public class ImportDanglingIndexResponse : AcknowledgedResponseBase 35 | { 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /src/OpenSearch.Client/Document/Multiple/Slices/Slices.cs: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: Apache-2.0 2 | * 3 | * The OpenSearch Contributors require contributions made to 4 | * this file be licensed under the Apache-2.0 license or a 5 | * compatible open source license. 6 | */ 7 | 8 | using OpenSearch.Net.Utf8Json; 9 | 10 | namespace OpenSearch.Client; 11 | 12 | [JsonFormatter(typeof(SlicesFormatter))] 13 | public class Slices : Union 14 | { 15 | public Slices(long value) : base(value) { } 16 | 17 | public Slices(string value) : base(value) { } 18 | 19 | public static implicit operator Slices(long value) => new(value); 20 | public static implicit operator Slices(long? value) => value is { } v ? new Slices(v) : null; 21 | public static implicit operator Slices(string value) => value is { } v ? new Slices(value) : null; 22 | 23 | public override string ToString() => Tag switch 24 | { 25 | 0 => Item1.ToString(), 26 | 1 => Item2, 27 | _ => null 28 | }; 29 | } 30 | -------------------------------------------------------------------------------- /src/OpenSearch.Client/Document/Multiple/Slices/SlicesFormatter.cs: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: Apache-2.0 2 | * 3 | * The OpenSearch Contributors require contributions made to 4 | * this file be licensed under the Apache-2.0 license or a 5 | * compatible open source license. 6 | */ 7 | 8 | using OpenSearch.Net.Utf8Json; 9 | 10 | namespace OpenSearch.Client; 11 | 12 | internal class SlicesFormatter : IJsonFormatter 13 | { 14 | private static readonly UnionFormatter UnionFormatter = new(); 15 | 16 | public void Serialize(ref JsonWriter writer, Slices value, IJsonFormatterResolver formatterResolver) => 17 | UnionFormatter.Serialize(ref writer, value, formatterResolver); 18 | 19 | public Slices Deserialize(ref JsonReader reader, IJsonFormatterResolver formatterResolver) 20 | { 21 | var union = UnionFormatter.Deserialize(ref reader, formatterResolver); 22 | if (union == null) return null; 23 | 24 | return union.Tag switch 25 | { 26 | 0 => new Slices(union.Item1), 27 | 1 => new Slices(union.Item2), 28 | _ => null 29 | }; 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /src/OpenSearch.Client/Document/Single/Index/IndexJsonConverter.cs: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: Apache-2.0 2 | * 3 | * The OpenSearch Contributors require contributions made to 4 | * this file be licensed under the Apache-2.0 license or a 5 | * compatible open source license. 6 | */ 7 | /* 8 | * Modifications Copyright OpenSearch Contributors. See 9 | * GitHub history for details. 10 | * 11 | * Licensed to Elasticsearch B.V. under one or more contributor 12 | * license agreements. See the NOTICE file distributed with 13 | * this work for additional information regarding copyright 14 | * ownership. Elasticsearch B.V. licenses this file to you under 15 | * the Apache License, Version 2.0 (the "License"); you may 16 | * not use this file except in compliance with the License. 17 | * You may obtain a copy of the License at 18 | * 19 | * http://www.apache.org/licenses/LICENSE-2.0 20 | * 21 | * Unless required by applicable law or agreed to in writing, 22 | * software distributed under the License is distributed on an 23 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 24 | * KIND, either express or implied. See the License for the 25 | * specific language governing permissions and limitations 26 | * under the License. 27 | */ 28 | 29 | namespace OpenSearch.Client 30 | { 31 | internal class IndexRequestFormatter : ProxyRequestFormatterBase, IndexRequest> 32 | where TDocument : class 33 | { 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /src/OpenSearch.Client/Indices/AliasManagement/Alias/BulkAliasResponse.cs: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: Apache-2.0 2 | * 3 | * The OpenSearch Contributors require contributions made to 4 | * this file be licensed under the Apache-2.0 license or a 5 | * compatible open source license. 6 | */ 7 | /* 8 | * Modifications Copyright OpenSearch Contributors. See 9 | * GitHub history for details. 10 | * 11 | * Licensed to Elasticsearch B.V. under one or more contributor 12 | * license agreements. See the NOTICE file distributed with 13 | * this work for additional information regarding copyright 14 | * ownership. Elasticsearch B.V. licenses this file to you under 15 | * the Apache License, Version 2.0 (the "License"); you may 16 | * not use this file except in compliance with the License. 17 | * You may obtain a copy of the License at 18 | * 19 | * http://www.apache.org/licenses/LICENSE-2.0 20 | * 21 | * Unless required by applicable law or agreed to in writing, 22 | * software distributed under the License is distributed on an 23 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 24 | * KIND, either express or implied. See the License for the 25 | * specific language governing permissions and limitations 26 | * under the License. 27 | */ 28 | 29 | namespace OpenSearch.Client 30 | { 31 | public class BulkAliasResponse : AcknowledgedResponseBase { } 32 | } 33 | -------------------------------------------------------------------------------- /src/OpenSearch.Client/Indices/AliasManagement/DeleteAlias/DeleteAliasResponse.cs: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: Apache-2.0 2 | * 3 | * The OpenSearch Contributors require contributions made to 4 | * this file be licensed under the Apache-2.0 license or a 5 | * compatible open source license. 6 | */ 7 | /* 8 | * Modifications Copyright OpenSearch Contributors. See 9 | * GitHub history for details. 10 | * 11 | * Licensed to Elasticsearch B.V. under one or more contributor 12 | * license agreements. See the NOTICE file distributed with 13 | * this work for additional information regarding copyright 14 | * ownership. Elasticsearch B.V. licenses this file to you under 15 | * the Apache License, Version 2.0 (the "License"); you may 16 | * not use this file except in compliance with the License. 17 | * You may obtain a copy of the License at 18 | * 19 | * http://www.apache.org/licenses/LICENSE-2.0 20 | * 21 | * Unless required by applicable law or agreed to in writing, 22 | * software distributed under the License is distributed on an 23 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 24 | * KIND, either express or implied. See the License for the 25 | * specific language governing permissions and limitations 26 | * under the License. 27 | */ 28 | 29 | namespace OpenSearch.Client 30 | { 31 | public class DeleteAliasResponse : ResponseBase { } 32 | } 33 | -------------------------------------------------------------------------------- /src/OpenSearch.Client/Indices/AliasManagement/PutAlias/PutAliasResponse.cs: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: Apache-2.0 2 | * 3 | * The OpenSearch Contributors require contributions made to 4 | * this file be licensed under the Apache-2.0 license or a 5 | * compatible open source license. 6 | */ 7 | /* 8 | * Modifications Copyright OpenSearch Contributors. See 9 | * GitHub history for details. 10 | * 11 | * Licensed to Elasticsearch B.V. under one or more contributor 12 | * license agreements. See the NOTICE file distributed with 13 | * this work for additional information regarding copyright 14 | * ownership. Elasticsearch B.V. licenses this file to you under 15 | * the Apache License, Version 2.0 (the "License"); you may 16 | * not use this file except in compliance with the License. 17 | * You may obtain a copy of the License at 18 | * 19 | * http://www.apache.org/licenses/LICENSE-2.0 20 | * 21 | * Unless required by applicable law or agreed to in writing, 22 | * software distributed under the License is distributed on an 23 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 24 | * KIND, either express or implied. See the License for the 25 | * specific language governing permissions and limitations 26 | * under the License. 27 | */ 28 | 29 | namespace OpenSearch.Client 30 | { 31 | public class PutAliasResponse : ResponseBase { } 32 | } 33 | -------------------------------------------------------------------------------- /src/OpenSearch.Client/Indices/IndexManagement/DeleteIndex/DeleteIndexResponse.cs: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: Apache-2.0 2 | * 3 | * The OpenSearch Contributors require contributions made to 4 | * this file be licensed under the Apache-2.0 license or a 5 | * compatible open source license. 6 | */ 7 | /* 8 | * Modifications Copyright OpenSearch Contributors. See 9 | * GitHub history for details. 10 | * 11 | * Licensed to Elasticsearch B.V. under one or more contributor 12 | * license agreements. See the NOTICE file distributed with 13 | * this work for additional information regarding copyright 14 | * ownership. Elasticsearch B.V. licenses this file to you under 15 | * the Apache License, Version 2.0 (the "License"); you may 16 | * not use this file except in compliance with the License. 17 | * You may obtain a copy of the License at 18 | * 19 | * http://www.apache.org/licenses/LICENSE-2.0 20 | * 21 | * Unless required by applicable law or agreed to in writing, 22 | * software distributed under the License is distributed on an 23 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 24 | * KIND, either express or implied. See the License for the 25 | * specific language governing permissions and limitations 26 | * under the License. 27 | */ 28 | 29 | namespace OpenSearch.Client 30 | { 31 | public class DeleteIndexResponse : IndicesResponseBase { } 32 | } 33 | -------------------------------------------------------------------------------- /src/OpenSearch.Client/Indices/IndexManagement/OpenCloseIndex/OpenIndex/OpenIndexResponse.cs: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: Apache-2.0 2 | * 3 | * The OpenSearch Contributors require contributions made to 4 | * this file be licensed under the Apache-2.0 license or a 5 | * compatible open source license. 6 | */ 7 | /* 8 | * Modifications Copyright OpenSearch Contributors. See 9 | * GitHub history for details. 10 | * 11 | * Licensed to Elasticsearch B.V. under one or more contributor 12 | * license agreements. See the NOTICE file distributed with 13 | * this work for additional information regarding copyright 14 | * ownership. Elasticsearch B.V. licenses this file to you under 15 | * the Apache License, Version 2.0 (the "License"); you may 16 | * not use this file except in compliance with the License. 17 | * You may obtain a copy of the License at 18 | * 19 | * http://www.apache.org/licenses/LICENSE-2.0 20 | * 21 | * Unless required by applicable law or agreed to in writing, 22 | * software distributed under the License is distributed on an 23 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 24 | * KIND, either express or implied. See the License for the 25 | * specific language governing permissions and limitations 26 | * under the License. 27 | */ 28 | 29 | namespace OpenSearch.Client 30 | { 31 | public class OpenIndexResponse : AcknowledgedResponseBase { } 32 | } 33 | -------------------------------------------------------------------------------- /src/OpenSearch.Client/Indices/IndexSettings/ComposableIndexTemplates/ComposableIndexTemplateExists/ComposableIndexTemplateExistsRequest.cs: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: Apache-2.0 2 | * 3 | * The OpenSearch Contributors require contributions made to 4 | * this file be licensed under the Apache-2.0 license or a 5 | * compatible open source license. 6 | */ 7 | 8 | namespace OpenSearch.Client; 9 | 10 | [MapsApi("indices.exists_index_template")] 11 | public partial interface IComposableIndexTemplateExistsRequest { } 12 | 13 | public partial class ComposableIndexTemplateExistsRequest { } 14 | 15 | public partial class ComposableIndexTemplateExistsDescriptor { } 16 | -------------------------------------------------------------------------------- /src/OpenSearch.Client/Indices/IndexSettings/ComposableIndexTemplates/DeleteComposableIndexTemplate/DeleteComposableIndexTemplateRequest.cs: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: Apache-2.0 2 | * 3 | * The OpenSearch Contributors require contributions made to 4 | * this file be licensed under the Apache-2.0 license or a 5 | * compatible open source license. 6 | */ 7 | 8 | namespace OpenSearch.Client; 9 | 10 | [MapsApi("indices.delete_index_template")] 11 | public partial interface IDeleteComposableIndexTemplateRequest { } 12 | 13 | public partial class DeleteComposableIndexTemplateRequest { } 14 | 15 | public partial class DeleteComposableIndexTemplateDescriptor { } 16 | -------------------------------------------------------------------------------- /src/OpenSearch.Client/Indices/IndexSettings/ComposableIndexTemplates/DeleteComposableIndexTemplate/DeleteComposableIndexTemplateResponse.cs: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: Apache-2.0 2 | * 3 | * The OpenSearch Contributors require contributions made to 4 | * this file be licensed under the Apache-2.0 license or a 5 | * compatible open source license. 6 | */ 7 | 8 | namespace OpenSearch.Client; 9 | 10 | public class DeleteComposableIndexTemplateResponse : AcknowledgedResponseBase { } 11 | -------------------------------------------------------------------------------- /src/OpenSearch.Client/Indices/IndexSettings/ComposableIndexTemplates/GetComposableIndexTemplate/GetComposableIndexTemplateRequest.cs: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: Apache-2.0 2 | * 3 | * The OpenSearch Contributors require contributions made to 4 | * this file be licensed under the Apache-2.0 license or a 5 | * compatible open source license. 6 | */ 7 | 8 | namespace OpenSearch.Client; 9 | 10 | [MapsApi("indices.get_index_template")] 11 | public partial interface IGetComposableIndexTemplateRequest { } 12 | 13 | public partial class GetComposableIndexTemplateRequest { } 14 | 15 | public partial class GetComposableIndexTemplateDescriptor { } 16 | -------------------------------------------------------------------------------- /src/OpenSearch.Client/Indices/IndexSettings/ComposableIndexTemplates/GetComposableIndexTemplate/GetComposableIndexTemplateResponse.cs: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: Apache-2.0 2 | * 3 | * The OpenSearch Contributors require contributions made to 4 | * this file be licensed under the Apache-2.0 license or a 5 | * compatible open source license. 6 | */ 7 | 8 | using System.Collections.Generic; 9 | using System.Runtime.Serialization; 10 | 11 | namespace OpenSearch.Client; 12 | 13 | [DataContract] 14 | public class GetComposableIndexTemplateResponse : ResponseBase 15 | { 16 | [DataMember(Name = "index_templates")] 17 | public IReadOnlyCollection IndexTemplates { get; internal set; } 18 | } 19 | 20 | [DataContract] 21 | public class NamedComposableIndexTemplate 22 | { 23 | [DataMember(Name = "name")] 24 | public string Name { get; internal set; } 25 | 26 | [DataMember(Name = "index_template")] 27 | public ComposableIndexTemplate IndexTemplate { get; internal set; } 28 | } 29 | -------------------------------------------------------------------------------- /src/OpenSearch.Client/Indices/IndexSettings/ComposableIndexTemplates/PutComposableIndexTemplate/PutComposableIndexTemplateResponse.cs: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: Apache-2.0 2 | * 3 | * The OpenSearch Contributors require contributions made to 4 | * this file be licensed under the Apache-2.0 license or a 5 | * compatible open source license. 6 | */ 7 | 8 | namespace OpenSearch.Client; 9 | 10 | public class PutComposableIndexTemplateResponse : AcknowledgedResponseBase { } 11 | -------------------------------------------------------------------------------- /src/OpenSearch.Client/Indices/IndexSettings/IndexTemplates/DeleteIndexTemplate/DeleteIndexTemplateResponse.cs: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: Apache-2.0 2 | * 3 | * The OpenSearch Contributors require contributions made to 4 | * this file be licensed under the Apache-2.0 license or a 5 | * compatible open source license. 6 | */ 7 | /* 8 | * Modifications Copyright OpenSearch Contributors. See 9 | * GitHub history for details. 10 | * 11 | * Licensed to Elasticsearch B.V. under one or more contributor 12 | * license agreements. See the NOTICE file distributed with 13 | * this work for additional information regarding copyright 14 | * ownership. Elasticsearch B.V. licenses this file to you under 15 | * the Apache License, Version 2.0 (the "License"); you may 16 | * not use this file except in compliance with the License. 17 | * You may obtain a copy of the License at 18 | * 19 | * http://www.apache.org/licenses/LICENSE-2.0 20 | * 21 | * Unless required by applicable law or agreed to in writing, 22 | * software distributed under the License is distributed on an 23 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 24 | * KIND, either express or implied. See the License for the 25 | * specific language governing permissions and limitations 26 | * under the License. 27 | */ 28 | 29 | namespace OpenSearch.Client 30 | { 31 | public class DeleteIndexTemplateResponse : AcknowledgedResponseBase { } 32 | } 33 | -------------------------------------------------------------------------------- /src/OpenSearch.Client/Indices/IndexSettings/IndexTemplates/PutIndexTemplate/PutIndexTemplateResponse.cs: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: Apache-2.0 2 | * 3 | * The OpenSearch Contributors require contributions made to 4 | * this file be licensed under the Apache-2.0 license or a 5 | * compatible open source license. 6 | */ 7 | /* 8 | * Modifications Copyright OpenSearch Contributors. See 9 | * GitHub history for details. 10 | * 11 | * Licensed to Elasticsearch B.V. under one or more contributor 12 | * license agreements. See the NOTICE file distributed with 13 | * this work for additional information regarding copyright 14 | * ownership. Elasticsearch B.V. licenses this file to you under 15 | * the Apache License, Version 2.0 (the "License"); you may 16 | * not use this file except in compliance with the License. 17 | * You may obtain a copy of the License at 18 | * 19 | * http://www.apache.org/licenses/LICENSE-2.0 20 | * 21 | * Unless required by applicable law or agreed to in writing, 22 | * software distributed under the License is distributed on an 23 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 24 | * KIND, either express or implied. See the License for the 25 | * specific language governing permissions and limitations 26 | * under the License. 27 | */ 28 | 29 | namespace OpenSearch.Client 30 | { 31 | public class PutIndexTemplateResponse : AcknowledgedResponseBase { } 32 | } 33 | -------------------------------------------------------------------------------- /src/OpenSearch.Client/Indices/IndexSettings/UpdateIndexSettings/UpdateIndexSettingsResponse.cs: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: Apache-2.0 2 | * 3 | * The OpenSearch Contributors require contributions made to 4 | * this file be licensed under the Apache-2.0 license or a 5 | * compatible open source license. 6 | */ 7 | /* 8 | * Modifications Copyright OpenSearch Contributors. See 9 | * GitHub history for details. 10 | * 11 | * Licensed to Elasticsearch B.V. under one or more contributor 12 | * license agreements. See the NOTICE file distributed with 13 | * this work for additional information regarding copyright 14 | * ownership. Elasticsearch B.V. licenses this file to you under 15 | * the Apache License, Version 2.0 (the "License"); you may 16 | * not use this file except in compliance with the License. 17 | * You may obtain a copy of the License at 18 | * 19 | * http://www.apache.org/licenses/LICENSE-2.0 20 | * 21 | * Unless required by applicable law or agreed to in writing, 22 | * software distributed under the License is distributed on an 23 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 24 | * KIND, either express or implied. See the License for the 25 | * specific language governing permissions and limitations 26 | * under the License. 27 | */ 28 | 29 | namespace OpenSearch.Client 30 | { 31 | public class UpdateIndexSettingsResponse : AcknowledgedResponseBase { } 32 | } 33 | -------------------------------------------------------------------------------- /src/OpenSearch.Client/Indices/MappingManagement/PutMapping/PutMappingResponse.cs: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: Apache-2.0 2 | * 3 | * The OpenSearch Contributors require contributions made to 4 | * this file be licensed under the Apache-2.0 license or a 5 | * compatible open source license. 6 | */ 7 | /* 8 | * Modifications Copyright OpenSearch Contributors. See 9 | * GitHub history for details. 10 | * 11 | * Licensed to Elasticsearch B.V. under one or more contributor 12 | * license agreements. See the NOTICE file distributed with 13 | * this work for additional information regarding copyright 14 | * ownership. Elasticsearch B.V. licenses this file to you under 15 | * the Apache License, Version 2.0 (the "License"); you may 16 | * not use this file except in compliance with the License. 17 | * You may obtain a copy of the License at 18 | * 19 | * http://www.apache.org/licenses/LICENSE-2.0 20 | * 21 | * Unless required by applicable law or agreed to in writing, 22 | * software distributed under the License is distributed on an 23 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 24 | * KIND, either express or implied. See the License for the 25 | * specific language governing permissions and limitations 26 | * under the License. 27 | */ 28 | 29 | namespace OpenSearch.Client 30 | { 31 | public class PutMappingResponse : IndicesResponseBase { } 32 | } 33 | -------------------------------------------------------------------------------- /src/OpenSearch.Client/Indices/Stats/IndicesStatsRequest.cs: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: Apache-2.0 2 | * 3 | * The OpenSearch Contributors require contributions made to 4 | * this file be licensed under the Apache-2.0 license or a 5 | * compatible open source license. 6 | */ 7 | 8 | namespace OpenSearch.Client; 9 | 10 | [MapsApi("indices.stats")] 11 | [ReadAs(typeof(IndicesStatsRequest))] 12 | public partial interface IIndicesStatsRequest 13 | { 14 | } 15 | 16 | public partial class IndicesStatsRequest 17 | { 18 | } 19 | 20 | public partial class IndicesStatsDescriptor 21 | { 22 | } 23 | -------------------------------------------------------------------------------- /src/OpenSearch.Client/Indices/StatusManagement/ClearCache/ClearCacheResponse.cs: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: Apache-2.0 2 | * 3 | * The OpenSearch Contributors require contributions made to 4 | * this file be licensed under the Apache-2.0 license or a 5 | * compatible open source license. 6 | */ 7 | /* 8 | * Modifications Copyright OpenSearch Contributors. See 9 | * GitHub history for details. 10 | * 11 | * Licensed to Elasticsearch B.V. under one or more contributor 12 | * license agreements. See the NOTICE file distributed with 13 | * this work for additional information regarding copyright 14 | * ownership. Elasticsearch B.V. licenses this file to you under 15 | * the Apache License, Version 2.0 (the "License"); you may 16 | * not use this file except in compliance with the License. 17 | * You may obtain a copy of the License at 18 | * 19 | * http://www.apache.org/licenses/LICENSE-2.0 20 | * 21 | * Unless required by applicable law or agreed to in writing, 22 | * software distributed under the License is distributed on an 23 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 24 | * KIND, either express or implied. See the License for the 25 | * specific language governing permissions and limitations 26 | * under the License. 27 | */ 28 | 29 | namespace OpenSearch.Client 30 | { 31 | public class ClearCacheResponse : ShardsOperationResponseBase { } 32 | } 33 | -------------------------------------------------------------------------------- /src/OpenSearch.Client/Indices/StatusManagement/Flush/FlushResponse.cs: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: Apache-2.0 2 | * 3 | * The OpenSearch Contributors require contributions made to 4 | * this file be licensed under the Apache-2.0 license or a 5 | * compatible open source license. 6 | */ 7 | /* 8 | * Modifications Copyright OpenSearch Contributors. See 9 | * GitHub history for details. 10 | * 11 | * Licensed to Elasticsearch B.V. under one or more contributor 12 | * license agreements. See the NOTICE file distributed with 13 | * this work for additional information regarding copyright 14 | * ownership. Elasticsearch B.V. licenses this file to you under 15 | * the Apache License, Version 2.0 (the "License"); you may 16 | * not use this file except in compliance with the License. 17 | * You may obtain a copy of the License at 18 | * 19 | * http://www.apache.org/licenses/LICENSE-2.0 20 | * 21 | * Unless required by applicable law or agreed to in writing, 22 | * software distributed under the License is distributed on an 23 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 24 | * KIND, either express or implied. See the License for the 25 | * specific language governing permissions and limitations 26 | * under the License. 27 | */ 28 | 29 | namespace OpenSearch.Client 30 | { 31 | public class FlushResponse : ShardsOperationResponseBase { } 32 | } 33 | -------------------------------------------------------------------------------- /src/OpenSearch.Client/Indices/StatusManagement/ForceMerge/ForceMergeResponse.cs: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: Apache-2.0 2 | * 3 | * The OpenSearch Contributors require contributions made to 4 | * this file be licensed under the Apache-2.0 license or a 5 | * compatible open source license. 6 | */ 7 | /* 8 | * Modifications Copyright OpenSearch Contributors. See 9 | * GitHub history for details. 10 | * 11 | * Licensed to Elasticsearch B.V. under one or more contributor 12 | * license agreements. See the NOTICE file distributed with 13 | * this work for additional information regarding copyright 14 | * ownership. Elasticsearch B.V. licenses this file to you under 15 | * the Apache License, Version 2.0 (the "License"); you may 16 | * not use this file except in compliance with the License. 17 | * You may obtain a copy of the License at 18 | * 19 | * http://www.apache.org/licenses/LICENSE-2.0 20 | * 21 | * Unless required by applicable law or agreed to in writing, 22 | * software distributed under the License is distributed on an 23 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 24 | * KIND, either express or implied. See the License for the 25 | * specific language governing permissions and limitations 26 | * under the License. 27 | */ 28 | 29 | namespace OpenSearch.Client 30 | { 31 | public class ForceMergeResponse : ShardsOperationResponseBase { } 32 | } 33 | -------------------------------------------------------------------------------- /src/OpenSearch.Client/Indices/StatusManagement/Refresh/RefreshResponse.cs: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: Apache-2.0 2 | * 3 | * The OpenSearch Contributors require contributions made to 4 | * this file be licensed under the Apache-2.0 license or a 5 | * compatible open source license. 6 | */ 7 | /* 8 | * Modifications Copyright OpenSearch Contributors. See 9 | * GitHub history for details. 10 | * 11 | * Licensed to Elasticsearch B.V. under one or more contributor 12 | * license agreements. See the NOTICE file distributed with 13 | * this work for additional information regarding copyright 14 | * ownership. Elasticsearch B.V. licenses this file to you under 15 | * the Apache License, Version 2.0 (the "License"); you may 16 | * not use this file except in compliance with the License. 17 | * You may obtain a copy of the License at 18 | * 19 | * http://www.apache.org/licenses/LICENSE-2.0 20 | * 21 | * Unless required by applicable law or agreed to in writing, 22 | * software distributed under the License is distributed on an 23 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 24 | * KIND, either express or implied. See the License for the 25 | * specific language governing permissions and limitations 26 | * under the License. 27 | */ 28 | 29 | namespace OpenSearch.Client 30 | { 31 | public class RefreshResponse : ShardsOperationResponseBase { } 32 | } 33 | -------------------------------------------------------------------------------- /src/OpenSearch.Client/Ingest/DeletePipeline/DeletePipelineResponse.cs: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: Apache-2.0 2 | * 3 | * The OpenSearch Contributors require contributions made to 4 | * this file be licensed under the Apache-2.0 license or a 5 | * compatible open source license. 6 | */ 7 | /* 8 | * Modifications Copyright OpenSearch Contributors. See 9 | * GitHub history for details. 10 | * 11 | * Licensed to Elasticsearch B.V. under one or more contributor 12 | * license agreements. See the NOTICE file distributed with 13 | * this work for additional information regarding copyright 14 | * ownership. Elasticsearch B.V. licenses this file to you under 15 | * the Apache License, Version 2.0 (the "License"); you may 16 | * not use this file except in compliance with the License. 17 | * You may obtain a copy of the License at 18 | * 19 | * http://www.apache.org/licenses/LICENSE-2.0 20 | * 21 | * Unless required by applicable law or agreed to in writing, 22 | * software distributed under the License is distributed on an 23 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 24 | * KIND, either express or implied. See the License for the 25 | * specific language governing permissions and limitations 26 | * under the License. 27 | */ 28 | 29 | namespace OpenSearch.Client 30 | { 31 | public class DeletePipelineResponse : AcknowledgedResponseBase { } 32 | } 33 | -------------------------------------------------------------------------------- /src/OpenSearch.Client/Ingest/Processors/Plugins/NeuralSearch/TextEmbeddingProcessor.cs: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: Apache-2.0 2 | * 3 | * The OpenSearch Contributors require contributions made to 4 | * this file be licensed under the Apache-2.0 license or a 5 | * compatible open source license. 6 | */ 7 | 8 | using OpenSearch.Net.Utf8Json; 9 | 10 | namespace OpenSearch.Client; 11 | 12 | /// 13 | /// The text_embedding processor is used to generate vector embeddings from text fields for semantic search. 14 | /// 15 | [InterfaceDataContract] 16 | public interface ITextEmbeddingProcessor : IInferenceProcessor 17 | { 18 | } 19 | 20 | /// 21 | public class TextEmbeddingProcessor : InferenceProcessorBase, ITextEmbeddingProcessor 22 | { 23 | protected override string Name => "text_embedding"; 24 | } 25 | 26 | /// 27 | public class TextEmbeddingProcessorDescriptor 28 | : InferenceProcessorDescriptorBase, ITextEmbeddingProcessor>, ITextEmbeddingProcessor 29 | where TDocument : class 30 | { 31 | protected override string Name => "text_embedding"; 32 | } 33 | -------------------------------------------------------------------------------- /src/OpenSearch.Client/Ingest/PutPipeline/PutPipelineResponse.cs: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: Apache-2.0 2 | * 3 | * The OpenSearch Contributors require contributions made to 4 | * this file be licensed under the Apache-2.0 license or a 5 | * compatible open source license. 6 | */ 7 | /* 8 | * Modifications Copyright OpenSearch Contributors. See 9 | * GitHub history for details. 10 | * 11 | * Licensed to Elasticsearch B.V. under one or more contributor 12 | * license agreements. See the NOTICE file distributed with 13 | * this work for additional information regarding copyright 14 | * ownership. Elasticsearch B.V. licenses this file to you under 15 | * the Apache License, Version 2.0 (the "License"); you may 16 | * not use this file except in compliance with the License. 17 | * You may obtain a copy of the License at 18 | * 19 | * http://www.apache.org/licenses/LICENSE-2.0 20 | * 21 | * Unless required by applicable law or agreed to in writing, 22 | * software distributed under the License is distributed on an 23 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 24 | * KIND, either express or implied. See the License for the 25 | * specific language governing permissions and limitations 26 | * under the License. 27 | */ 28 | 29 | namespace OpenSearch.Client 30 | { 31 | public class PutPipelineResponse : AcknowledgedResponseBase { } 32 | } 33 | -------------------------------------------------------------------------------- /src/OpenSearch.Client/Mapping/MetaFields/IFieldMapping.cs: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: Apache-2.0 2 | * 3 | * The OpenSearch Contributors require contributions made to 4 | * this file be licensed under the Apache-2.0 license or a 5 | * compatible open source license. 6 | */ 7 | /* 8 | * Modifications Copyright OpenSearch Contributors. See 9 | * GitHub history for details. 10 | * 11 | * Licensed to Elasticsearch B.V. under one or more contributor 12 | * license agreements. See the NOTICE file distributed with 13 | * this work for additional information regarding copyright 14 | * ownership. Elasticsearch B.V. licenses this file to you under 15 | * the Apache License, Version 2.0 (the "License"); you may 16 | * not use this file except in compliance with the License. 17 | * You may obtain a copy of the License at 18 | * 19 | * http://www.apache.org/licenses/LICENSE-2.0 20 | * 21 | * Unless required by applicable law or agreed to in writing, 22 | * software distributed under the License is distributed on an 23 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 24 | * KIND, either express or implied. See the License for the 25 | * specific language governing permissions and limitations 26 | * under the License. 27 | */ 28 | 29 | namespace OpenSearch.Client 30 | { 31 | /// 32 | /// A document field mapping in OpenSearch 33 | /// 34 | public interface IFieldMapping { } 35 | } 36 | -------------------------------------------------------------------------------- /src/OpenSearch.Client/Mapping/Types/Core/Range/IpRange/IpRangeAttribute.cs: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: Apache-2.0 2 | * 3 | * The OpenSearch Contributors require contributions made to 4 | * this file be licensed under the Apache-2.0 license or a 5 | * compatible open source license. 6 | */ 7 | /* 8 | * Modifications Copyright OpenSearch Contributors. See 9 | * GitHub history for details. 10 | * 11 | * Licensed to Elasticsearch B.V. under one or more contributor 12 | * license agreements. See the NOTICE file distributed with 13 | * this work for additional information regarding copyright 14 | * ownership. Elasticsearch B.V. licenses this file to you under 15 | * the Apache License, Version 2.0 (the "License"); you may 16 | * not use this file except in compliance with the License. 17 | * You may obtain a copy of the License at 18 | * 19 | * http://www.apache.org/licenses/LICENSE-2.0 20 | * 21 | * Unless required by applicable law or agreed to in writing, 22 | * software distributed under the License is distributed on an 23 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 24 | * KIND, either express or implied. See the License for the 25 | * specific language governing permissions and limitations 26 | * under the License. 27 | */ 28 | 29 | namespace OpenSearch.Client 30 | { 31 | public class IpRangeAttribute : RangePropertyAttributeBase, IIpRangeProperty 32 | { 33 | public IpRangeAttribute() : base(RangeType.IpRange) { } 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /src/OpenSearch.Client/Modules/Scripting/DeleteScript/DeleteScriptResponse.cs: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: Apache-2.0 2 | * 3 | * The OpenSearch Contributors require contributions made to 4 | * this file be licensed under the Apache-2.0 license or a 5 | * compatible open source license. 6 | */ 7 | /* 8 | * Modifications Copyright OpenSearch Contributors. See 9 | * GitHub history for details. 10 | * 11 | * Licensed to Elasticsearch B.V. under one or more contributor 12 | * license agreements. See the NOTICE file distributed with 13 | * this work for additional information regarding copyright 14 | * ownership. Elasticsearch B.V. licenses this file to you under 15 | * the Apache License, Version 2.0 (the "License"); you may 16 | * not use this file except in compliance with the License. 17 | * You may obtain a copy of the License at 18 | * 19 | * http://www.apache.org/licenses/LICENSE-2.0 20 | * 21 | * Unless required by applicable law or agreed to in writing, 22 | * software distributed under the License is distributed on an 23 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 24 | * KIND, either express or implied. See the License for the 25 | * specific language governing permissions and limitations 26 | * under the License. 27 | */ 28 | 29 | namespace OpenSearch.Client 30 | { 31 | public class DeleteScriptResponse : AcknowledgedResponseBase { } 32 | } 33 | -------------------------------------------------------------------------------- /src/OpenSearch.Client/Modules/Scripting/PutScript/PutScriptResponse.cs: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: Apache-2.0 2 | * 3 | * The OpenSearch Contributors require contributions made to 4 | * this file be licensed under the Apache-2.0 license or a 5 | * compatible open source license. 6 | */ 7 | /* 8 | * Modifications Copyright OpenSearch Contributors. See 9 | * GitHub history for details. 10 | * 11 | * Licensed to Elasticsearch B.V. under one or more contributor 12 | * license agreements. See the NOTICE file distributed with 13 | * this work for additional information regarding copyright 14 | * ownership. Elasticsearch B.V. licenses this file to you under 15 | * the Apache License, Version 2.0 (the "License"); you may 16 | * not use this file except in compliance with the License. 17 | * You may obtain a copy of the License at 18 | * 19 | * http://www.apache.org/licenses/LICENSE-2.0 20 | * 21 | * Unless required by applicable law or agreed to in writing, 22 | * software distributed under the License is distributed on an 23 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 24 | * KIND, either express or implied. See the License for the 25 | * specific language governing permissions and limitations 26 | * under the License. 27 | */ 28 | 29 | namespace OpenSearch.Client 30 | { 31 | public class PutScriptResponse : AcknowledgedResponseBase { } 32 | } 33 | -------------------------------------------------------------------------------- /src/OpenSearch.Client/Properties/ClsCompliancy.cs: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: Apache-2.0 2 | * 3 | * The OpenSearch Contributors require contributions made to 4 | * this file be licensed under the Apache-2.0 license or a 5 | * compatible open source license. 6 | */ 7 | /* 8 | * Modifications Copyright OpenSearch Contributors. See 9 | * GitHub history for details. 10 | * 11 | * Licensed to Elasticsearch B.V. under one or more contributor 12 | * license agreements. See the NOTICE file distributed with 13 | * this work for additional information regarding copyright 14 | * ownership. Elasticsearch B.V. licenses this file to you under 15 | * the Apache License, Version 2.0 (the "License"); you may 16 | * not use this file except in compliance with the License. 17 | * You may obtain a copy of the License at 18 | * 19 | * http://www.apache.org/licenses/LICENSE-2.0 20 | * 21 | * Unless required by applicable law or agreed to in writing, 22 | * software distributed under the License is distributed on an 23 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 24 | * KIND, either express or implied. See the License for the 25 | * specific language governing permissions and limitations 26 | * under the License. 27 | */ 28 | 29 | using System; 30 | 31 | [assembly: CLSCompliant(true)] 32 | 33 | -------------------------------------------------------------------------------- /src/OpenSearch.Client/QueryDsl/Span/ISpanSubQuery.cs: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: Apache-2.0 2 | * 3 | * The OpenSearch Contributors require contributions made to 4 | * this file be licensed under the Apache-2.0 license or a 5 | * compatible open source license. 6 | */ 7 | /* 8 | * Modifications Copyright OpenSearch Contributors. See 9 | * GitHub history for details. 10 | * 11 | * Licensed to Elasticsearch B.V. under one or more contributor 12 | * license agreements. See the NOTICE file distributed with 13 | * this work for additional information regarding copyright 14 | * ownership. Elasticsearch B.V. licenses this file to you under 15 | * the Apache License, Version 2.0 (the "License"); you may 16 | * not use this file except in compliance with the License. 17 | * You may obtain a copy of the License at 18 | * 19 | * http://www.apache.org/licenses/LICENSE-2.0 20 | * 21 | * Unless required by applicable law or agreed to in writing, 22 | * software distributed under the License is distributed on an 23 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 24 | * KIND, either express or implied. See the License for the 25 | * specific language governing permissions and limitations 26 | * under the License. 27 | */ 28 | 29 | namespace OpenSearch.Client 30 | { 31 | public interface ISpanSubQuery : IQuery { } 32 | } 33 | -------------------------------------------------------------------------------- /src/OpenSearch.Client/QueryDsl/TermLevel/Range/RangeQuery.cs: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: Apache-2.0 2 | * 3 | * The OpenSearch Contributors require contributions made to 4 | * this file be licensed under the Apache-2.0 license or a 5 | * compatible open source license. 6 | */ 7 | /* 8 | * Modifications Copyright OpenSearch Contributors. See 9 | * GitHub history for details. 10 | * 11 | * Licensed to Elasticsearch B.V. under one or more contributor 12 | * license agreements. See the NOTICE file distributed with 13 | * this work for additional information regarding copyright 14 | * ownership. Elasticsearch B.V. licenses this file to you under 15 | * the Apache License, Version 2.0 (the "License"); you may 16 | * not use this file except in compliance with the License. 17 | * You may obtain a copy of the License at 18 | * 19 | * http://www.apache.org/licenses/LICENSE-2.0 20 | * 21 | * Unless required by applicable law or agreed to in writing, 22 | * software distributed under the License is distributed on an 23 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 24 | * KIND, either express or implied. See the License for the 25 | * specific language governing permissions and limitations 26 | * under the License. 27 | */ 28 | 29 | using OpenSearch.Net.Utf8Json; 30 | 31 | namespace OpenSearch.Client 32 | { 33 | [InterfaceDataContract] 34 | [JsonFormatter(typeof(RangeQueryFormatter))] 35 | public interface IRangeQuery : IFieldNameQuery { } 36 | } 37 | -------------------------------------------------------------------------------- /src/OpenSearch.Client/QueryDsl/Visitor/StrictnessPropagatingVisitor.cs: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: Apache-2.0 2 | * 3 | * The OpenSearch Contributors require contributions made to 4 | * this file be licensed under the Apache-2.0 license or a 5 | * compatible open source license. 6 | */ 7 | 8 | using System; 9 | 10 | namespace OpenSearch.Client 11 | { 12 | public class StrictnessPropagatingVisitor : QueryVisitor 13 | { 14 | private readonly bool _strict; 15 | 16 | public StrictnessPropagatingVisitor(bool strict) => _strict = strict; 17 | 18 | public override void Visit(IQuery query) 19 | { 20 | query.IsStrict = _strict; 21 | base.Visit(query); 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /src/OpenSearch.Client/QueryDsl/Visitor/VerbatimPropagatingVisitor.cs: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: Apache-2.0 2 | * 3 | * The OpenSearch Contributors require contributions made to 4 | * this file be licensed under the Apache-2.0 license or a 5 | * compatible open source license. 6 | */ 7 | 8 | namespace OpenSearch.Client 9 | { 10 | public class VerbatimPropagatingVisitor : QueryVisitor 11 | { 12 | private readonly bool _verbatim; 13 | 14 | public VerbatimPropagatingVisitor(bool verbatim) => _verbatim = verbatim; 15 | 16 | public override void Visit(IQuery query) 17 | { 18 | query.IsVerbatim = _verbatim; 19 | base.Visit(query); 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /src/OpenSearch.Client/README.md: -------------------------------------------------------------------------------- 1 | `OpenSearch.Client` is a high level OpenSearch .NET client that maps closely to the original OpenSearch API. All requests and responses are exposed through types, making it easy for users to get up and running quickly. 2 | 3 | Under the covers, `OpenSearch.Client` uses the `OpenSearch.Net` low level client to dispatch requests and responses, using and extending many of the types within `OpenSearch.Net`. The low level client is exposed on the high level client through the `.LowLevel` property. 4 | -------------------------------------------------------------------------------- /src/OpenSearch.Client/Search/PointInTime/CreatePitRequest.cs: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: Apache-2.0 2 | * 3 | * The OpenSearch Contributors require contributions made to 4 | * this file be licensed under the Apache-2.0 license or a 5 | * compatible open source license. 6 | */ 7 | 8 | namespace OpenSearch.Client; 9 | 10 | [MapsApi("create_pit")] 11 | [ReadAs(typeof(CreatePitRequest))] 12 | public partial interface ICreatePitRequest { } 13 | 14 | public partial class CreatePitRequest { } 15 | 16 | public partial class CreatePitDescriptor { } 17 | -------------------------------------------------------------------------------- /src/OpenSearch.Client/Search/PointInTime/CreatePitResponse.cs: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: Apache-2.0 2 | * 3 | * The OpenSearch Contributors require contributions made to 4 | * this file be licensed under the Apache-2.0 license or a 5 | * compatible open source license. 6 | */ 7 | 8 | using System.Runtime.Serialization; 9 | 10 | namespace OpenSearch.Client; 11 | 12 | [DataContract] 13 | public class CreatePitResponse : ResponseBase 14 | { 15 | [DataMember(Name = "pit_id")] 16 | public string PitId { get; internal set; } 17 | 18 | [DataMember(Name = "_shards")] 19 | public ShardStatistics Shards { get; internal set; } 20 | 21 | [DataMember(Name = "creation_time")] 22 | public long CreationTime { get; internal set; } 23 | } 24 | -------------------------------------------------------------------------------- /src/OpenSearch.Client/Search/PointInTime/DeleteAllPitsRequest.cs: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: Apache-2.0 2 | * 3 | * The OpenSearch Contributors require contributions made to 4 | * this file be licensed under the Apache-2.0 license or a 5 | * compatible open source license. 6 | */ 7 | 8 | namespace OpenSearch.Client; 9 | 10 | [MapsApi("delete_all_pits")] 11 | [ReadAs(typeof(DeleteAllPitsRequest))] 12 | public partial interface IDeleteAllPitsRequest { } 13 | 14 | public partial class DeleteAllPitsRequest { } 15 | 16 | public partial class DeleteAllPitsDescriptor { } 17 | -------------------------------------------------------------------------------- /src/OpenSearch.Client/Search/PointInTime/DeleteAllPitsResponse.cs: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: Apache-2.0 2 | * 3 | * The OpenSearch Contributors require contributions made to 4 | * this file be licensed under the Apache-2.0 license or a 5 | * compatible open source license. 6 | */ 7 | 8 | using System.Collections.Generic; 9 | using System.Runtime.Serialization; 10 | 11 | namespace OpenSearch.Client; 12 | 13 | [DataContract] 14 | public class DeleteAllPitsResponse : ResponseBase 15 | { 16 | [DataMember(Name = "pits")] 17 | public IReadOnlyCollection Pits { get; internal set; } 18 | } 19 | -------------------------------------------------------------------------------- /src/OpenSearch.Client/Search/PointInTime/DeletePitRequest.cs: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: Apache-2.0 2 | * 3 | * The OpenSearch Contributors require contributions made to 4 | * this file be licensed under the Apache-2.0 license or a 5 | * compatible open source license. 6 | */ 7 | 8 | using System.Collections.Generic; 9 | using System.Linq; 10 | using System.Runtime.Serialization; 11 | 12 | namespace OpenSearch.Client; 13 | 14 | [MapsApi("delete_pit")] 15 | [ReadAs(typeof(DeletePitRequest))] 16 | public partial interface IDeletePitRequest 17 | { 18 | [DataMember(Name = "pit_id")] 19 | IEnumerable PitId { get; set; } 20 | } 21 | 22 | public partial class DeletePitRequest 23 | { 24 | public DeletePitRequest(IEnumerable pitId) : this(pitId?.ToArray()) { } 25 | 26 | public DeletePitRequest(params string[] pitId) => PitId = pitId; 27 | 28 | public IEnumerable PitId { get; set; } 29 | } 30 | 31 | public partial class DeletePitDescriptor 32 | { 33 | IEnumerable IDeletePitRequest.PitId { get; set; } 34 | 35 | public DeletePitDescriptor PitId(IEnumerable pitId) => 36 | Assign(pitId?.ToArray(), (r, v) => r.PitId = v); 37 | 38 | public DeletePitDescriptor PitId(params string[] pitId) => 39 | Assign(pitId, (r, v) => r.PitId = v); 40 | } 41 | -------------------------------------------------------------------------------- /src/OpenSearch.Client/Search/PointInTime/DeletePitResponse.cs: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: Apache-2.0 2 | * 3 | * The OpenSearch Contributors require contributions made to 4 | * this file be licensed under the Apache-2.0 license or a 5 | * compatible open source license. 6 | */ 7 | 8 | using System.Collections.Generic; 9 | using System.Runtime.Serialization; 10 | using OpenSearch.Net; 11 | 12 | namespace OpenSearch.Client; 13 | 14 | [DataContract] 15 | public class DeletePitResponse : ResponseBase 16 | { 17 | [DataMember(Name = "pits")] 18 | public IReadOnlyCollection Pits { get; internal set; } = EmptyReadOnly.Collection; 19 | } 20 | 21 | [DataContract] 22 | public class DeletedPit 23 | { 24 | [DataMember(Name = "pit_id")] 25 | public string PitId { get; set; } 26 | 27 | [DataMember(Name = "successful")] 28 | public bool Successful { get; set; } 29 | } 30 | -------------------------------------------------------------------------------- /src/OpenSearch.Client/Search/PointInTime/GetAllPitsRequest.cs: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: Apache-2.0 2 | * 3 | * The OpenSearch Contributors require contributions made to 4 | * this file be licensed under the Apache-2.0 license or a 5 | * compatible open source license. 6 | */ 7 | 8 | namespace OpenSearch.Client; 9 | 10 | [MapsApi("get_all_pits")] 11 | [ReadAs(typeof(GetAllPitsRequest))] 12 | public partial interface IGetAllPitsRequest { } 13 | 14 | public partial class GetAllPitsRequest { } 15 | 16 | public partial class GetAllPitsDescriptor { } 17 | -------------------------------------------------------------------------------- /src/OpenSearch.Client/Search/PointInTime/GetAllPitsResponse.cs: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: Apache-2.0 2 | * 3 | * The OpenSearch Contributors require contributions made to 4 | * this file be licensed under the Apache-2.0 license or a 5 | * compatible open source license. 6 | */ 7 | 8 | using System.Collections.Generic; 9 | using System.Runtime.Serialization; 10 | 11 | namespace OpenSearch.Client; 12 | 13 | [DataContract] 14 | public class GetAllPitsResponse : ResponseBase 15 | { 16 | [DataMember(Name = "pits")] 17 | public IReadOnlyCollection Pits { get; internal set; } 18 | } 19 | 20 | [DataContract] 21 | public class PitDetail 22 | { 23 | [DataMember(Name = "pit_id")] 24 | public string PitId { get; internal set; } 25 | 26 | [DataMember(Name = "creation_time")] 27 | public long CreationTime { get; internal set; } 28 | 29 | [DataMember(Name = "keep_alive")] 30 | public long KeepAlive { get; internal set; } 31 | } 32 | -------------------------------------------------------------------------------- /src/OpenSearch.Client/Search/Scroll/ClearScroll/ClearScrollResponse.cs: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: Apache-2.0 2 | * 3 | * The OpenSearch Contributors require contributions made to 4 | * this file be licensed under the Apache-2.0 license or a 5 | * compatible open source license. 6 | */ 7 | /* 8 | * Modifications Copyright OpenSearch Contributors. See 9 | * GitHub history for details. 10 | * 11 | * Licensed to Elasticsearch B.V. under one or more contributor 12 | * license agreements. See the NOTICE file distributed with 13 | * this work for additional information regarding copyright 14 | * ownership. Elasticsearch B.V. licenses this file to you under 15 | * the Apache License, Version 2.0 (the "License"); you may 16 | * not use this file except in compliance with the License. 17 | * You may obtain a copy of the License at 18 | * 19 | * http://www.apache.org/licenses/LICENSE-2.0 20 | * 21 | * Unless required by applicable law or agreed to in writing, 22 | * software distributed under the License is distributed on an 23 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 24 | * KIND, either express or implied. See the License for the 25 | * specific language governing permissions and limitations 26 | * under the License. 27 | */ 28 | 29 | using System.Runtime.Serialization; 30 | 31 | namespace OpenSearch.Client 32 | { 33 | [DataContract] 34 | public class ClearScrollResponse : ResponseBase { } 35 | } 36 | -------------------------------------------------------------------------------- /src/OpenSearch.Client/Search/Search/PointInTime/PointInTime.cs: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: Apache-2.0 2 | * 3 | * The OpenSearch Contributors require contributions made to 4 | * this file be licensed under the Apache-2.0 license or a 5 | * compatible open source license. 6 | */ 7 | 8 | using System.Runtime.Serialization; 9 | 10 | namespace OpenSearch.Client; 11 | 12 | [ReadAs(typeof(PointInTime))] 13 | public interface IPointInTime 14 | { 15 | [DataMember(Name = "id")] 16 | string Id { get; set; } 17 | 18 | [DataMember(Name = "keep_alive")] 19 | Time KeepAlive { get; set; } 20 | } 21 | 22 | public class PointInTime : IPointInTime 23 | { 24 | public string Id { get; set; } 25 | public Time KeepAlive { get; set; } 26 | } 27 | 28 | public class PointInTimeDescriptor : DescriptorBase, IPointInTime 29 | { 30 | string IPointInTime.Id { get; set; } 31 | Time IPointInTime.KeepAlive { get; set; } 32 | 33 | public PointInTimeDescriptor Id(string id) => Assign(id, (a, v) => a.Id = v); 34 | 35 | public PointInTimeDescriptor KeepAlive(Time keepAlive) => Assign(keepAlive, (a, v) => a.KeepAlive = v); 36 | } 37 | -------------------------------------------------------------------------------- /src/OpenSearch.Client/Search/TrackTotalHits/TrackTotalHits.cs: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: Apache-2.0 2 | * 3 | * The OpenSearch Contributors require contributions made to 4 | * this file be licensed under the Apache-2.0 license or a 5 | * compatible open source license. 6 | */ 7 | 8 | using OpenSearch.Net.Utf8Json; 9 | 10 | namespace OpenSearch.Client; 11 | 12 | [JsonFormatter(typeof(TrackTotalHitsFormatter))] 13 | public class TrackTotalHits : Union 14 | { 15 | public TrackTotalHits(bool item) : base(item) { } 16 | 17 | public TrackTotalHits(long item) : base(item) { } 18 | 19 | public static implicit operator TrackTotalHits(bool trackTotalHits) => new(trackTotalHits); 20 | public static implicit operator TrackTotalHits(bool? trackTotalHits) => trackTotalHits is {} b ? new TrackTotalHits(b) : null; 21 | 22 | public static implicit operator TrackTotalHits(long trackTotalHitsUpTo) => new(trackTotalHitsUpTo); 23 | public static implicit operator TrackTotalHits(long? trackTotalHitsUpTo) => trackTotalHitsUpTo is {} l ? new TrackTotalHits(l) : null; 24 | 25 | public override string ToString() => Tag switch 26 | { 27 | 0 => Item1.ToString(), 28 | 1 => Item2.ToString(), 29 | _ => null 30 | }; 31 | } 32 | -------------------------------------------------------------------------------- /src/OpenSearch.Client/Search/TrackTotalHits/TrackTotalHitsFormatter.cs: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: Apache-2.0 2 | * 3 | * The OpenSearch Contributors require contributions made to 4 | * this file be licensed under the Apache-2.0 license or a 5 | * compatible open source license. 6 | */ 7 | 8 | using OpenSearch.Net.Utf8Json; 9 | 10 | namespace OpenSearch.Client; 11 | 12 | internal class TrackTotalHitsFormatter : IJsonFormatter 13 | { 14 | private static readonly UnionFormatter UnionFormatter = new(); 15 | 16 | public void Serialize(ref JsonWriter writer, TrackTotalHits value, IJsonFormatterResolver formatterResolver) => 17 | UnionFormatter.Serialize(ref writer, value, formatterResolver); 18 | 19 | public TrackTotalHits Deserialize(ref JsonReader reader, IJsonFormatterResolver formatterResolver) 20 | { 21 | var union = UnionFormatter.Deserialize(ref reader, formatterResolver); 22 | if (union == null) return null; 23 | return union.Tag switch 24 | { 25 | 0 => new TrackTotalHits(union.Item1), 26 | 1 => new TrackTotalHits(union.Item2), 27 | _ => null 28 | }; 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /src/OpenSearch.Client/Snapshot/Repositories/CreateRepository/CreateRepositoryResponse.cs: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: Apache-2.0 2 | * 3 | * The OpenSearch Contributors require contributions made to 4 | * this file be licensed under the Apache-2.0 license or a 5 | * compatible open source license. 6 | */ 7 | /* 8 | * Modifications Copyright OpenSearch Contributors. See 9 | * GitHub history for details. 10 | * 11 | * Licensed to Elasticsearch B.V. under one or more contributor 12 | * license agreements. See the NOTICE file distributed with 13 | * this work for additional information regarding copyright 14 | * ownership. Elasticsearch B.V. licenses this file to you under 15 | * the Apache License, Version 2.0 (the "License"); you may 16 | * not use this file except in compliance with the License. 17 | * You may obtain a copy of the License at 18 | * 19 | * http://www.apache.org/licenses/LICENSE-2.0 20 | * 21 | * Unless required by applicable law or agreed to in writing, 22 | * software distributed under the License is distributed on an 23 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 24 | * KIND, either express or implied. See the License for the 25 | * specific language governing permissions and limitations 26 | * under the License. 27 | */ 28 | 29 | namespace OpenSearch.Client 30 | { 31 | public class CreateRepositoryResponse : AcknowledgedResponseBase { } 32 | } 33 | -------------------------------------------------------------------------------- /src/OpenSearch.Client/Snapshot/Repositories/DeleteRepository/DeleteRepositoryResponse.cs: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: Apache-2.0 2 | * 3 | * The OpenSearch Contributors require contributions made to 4 | * this file be licensed under the Apache-2.0 license or a 5 | * compatible open source license. 6 | */ 7 | /* 8 | * Modifications Copyright OpenSearch Contributors. See 9 | * GitHub history for details. 10 | * 11 | * Licensed to Elasticsearch B.V. under one or more contributor 12 | * license agreements. See the NOTICE file distributed with 13 | * this work for additional information regarding copyright 14 | * ownership. Elasticsearch B.V. licenses this file to you under 15 | * the Apache License, Version 2.0 (the "License"); you may 16 | * not use this file except in compliance with the License. 17 | * You may obtain a copy of the License at 18 | * 19 | * http://www.apache.org/licenses/LICENSE-2.0 20 | * 21 | * Unless required by applicable law or agreed to in writing, 22 | * software distributed under the License is distributed on an 23 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 24 | * KIND, either express or implied. See the License for the 25 | * specific language governing permissions and limitations 26 | * under the License. 27 | */ 28 | 29 | namespace OpenSearch.Client 30 | { 31 | public class DeleteRepositoryResponse : AcknowledgedResponseBase { } 32 | } 33 | -------------------------------------------------------------------------------- /src/OpenSearch.Client/Snapshot/Snapshot/Clone/CloneSnapshotResponse.cs: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: Apache-2.0 2 | * 3 | * The OpenSearch Contributors require contributions made to 4 | * this file be licensed under the Apache-2.0 license or a 5 | * compatible open source license. 6 | */ 7 | /* 8 | * Modifications Copyright OpenSearch Contributors. See 9 | * GitHub history for details. 10 | * 11 | * Licensed to Elasticsearch B.V. under one or more contributor 12 | * license agreements. See the NOTICE file distributed with 13 | * this work for additional information regarding copyright 14 | * ownership. Elasticsearch B.V. licenses this file to you under 15 | * the Apache License, Version 2.0 (the "License"); you may 16 | * not use this file except in compliance with the License. 17 | * You may obtain a copy of the License at 18 | * 19 | * http://www.apache.org/licenses/LICENSE-2.0 20 | * 21 | * Unless required by applicable law or agreed to in writing, 22 | * software distributed under the License is distributed on an 23 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 24 | * KIND, either express or implied. See the License for the 25 | * specific language governing permissions and limitations 26 | * under the License. 27 | */ 28 | 29 | namespace OpenSearch.Client 30 | { 31 | public class CloneSnapshotResponse : AcknowledgedResponseBase { } 32 | } 33 | -------------------------------------------------------------------------------- /src/OpenSearch.Client/Snapshot/Snapshot/DeleteSnapshot/DeleteSnapshotResponse.cs: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: Apache-2.0 2 | * 3 | * The OpenSearch Contributors require contributions made to 4 | * this file be licensed under the Apache-2.0 license or a 5 | * compatible open source license. 6 | */ 7 | /* 8 | * Modifications Copyright OpenSearch Contributors. See 9 | * GitHub history for details. 10 | * 11 | * Licensed to Elasticsearch B.V. under one or more contributor 12 | * license agreements. See the NOTICE file distributed with 13 | * this work for additional information regarding copyright 14 | * ownership. Elasticsearch B.V. licenses this file to you under 15 | * the Apache License, Version 2.0 (the "License"); you may 16 | * not use this file except in compliance with the License. 17 | * You may obtain a copy of the License at 18 | * 19 | * http://www.apache.org/licenses/LICENSE-2.0 20 | * 21 | * Unless required by applicable law or agreed to in writing, 22 | * software distributed under the License is distributed on an 23 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 24 | * KIND, either express or implied. See the License for the 25 | * specific language governing permissions and limitations 26 | * under the License. 27 | */ 28 | 29 | namespace OpenSearch.Client 30 | { 31 | public class DeleteSnapshotResponse : AcknowledgedResponseBase { } 32 | } 33 | -------------------------------------------------------------------------------- /src/OpenSearch.Net.Auth.AwsSigV4/HeaderNames.cs: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: Apache-2.0 2 | * 3 | * The OpenSearch Contributors require contributions made to 4 | * this file be licensed under the Apache-2.0 license or a 5 | * compatible open source license. 6 | */ 7 | 8 | namespace OpenSearch.Net.Auth.AwsSigV4 9 | { 10 | internal static class HeaderNames 11 | { 12 | public const string Authorization = "authorization"; 13 | public const string ContentLength = "content-length"; 14 | public const string Host = "host"; 15 | public const string UserAgent = "user-agent"; 16 | public const string XAmzContentSha256 = "x-amz-content-sha256"; 17 | public const string XAmzDate = "x-amz-date"; 18 | public const string XAmzSecurityToken = "x-amz-security-token"; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/OpenSearch.Net.Auth.AwsSigV4/OpenSearch.Net.Auth.AwsSigV4.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | OpenSearch.Net.Auth.AwsSigV4 4 | OpenSearch.Net.Auth.AwsSigV4 5 | opensearch;opensearch;search;lucene;client;opensearch.client 6 | 7 | Adds support for AWS SigV4 authentication to the OpenSearch.Net client. 8 | 9 | 10 | 11 | 12 | true 13 | true 14 | netstandard2.0 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /src/OpenSearch.Net.VirtualizedCluster/OpenSearch.Net.VirtualizedCluster.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | OpenSearch.Net.VirtualizedCluster 4 | OpenSearch.Net.VirtualizedCluster - A highly configurable in memory IConnection 5 | opensearch;opensearch;search;lucene;client;opensearch.client 6 | Provides a way to assert client behaviour through a rule engine backed VirtualClusterConnection 7 | 8 | 9 | 10 | true 11 | true 12 | netstandard2.0 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /src/OpenSearch.Net.VirtualizedCluster/README.md: -------------------------------------------------------------------------------- 1 | A library used by unit tests of `OpenSearch.Net` and `OpenSearch.Client`. It allows to create a fake virtual OpenSearch cluster to test and debug REST API calls. 2 | -------------------------------------------------------------------------------- /src/OpenSearch.Net/.editorconfig: -------------------------------------------------------------------------------- 1 | [*.cs] 2 | resharper_check_namespace_highlighting=do_not_show 3 | -------------------------------------------------------------------------------- /src/OpenSearch.Net/OpenSearch.Net.csproj.DotSettings: -------------------------------------------------------------------------------- 1 |  2 | -------------------------------------------------------------------------------- /src/OpenSearch.Net/Properties/ClsCompliancy.cs: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: Apache-2.0 2 | * 3 | * The OpenSearch Contributors require contributions made to 4 | * this file be licensed under the Apache-2.0 license or a 5 | * compatible open source license. 6 | */ 7 | /* 8 | * Modifications Copyright OpenSearch Contributors. See 9 | * GitHub history for details. 10 | * 11 | * Licensed to Elasticsearch B.V. under one or more contributor 12 | * license agreements. See the NOTICE file distributed with 13 | * this work for additional information regarding copyright 14 | * ownership. Elasticsearch B.V. licenses this file to you under 15 | * the Apache License, Version 2.0 (the "License"); you may 16 | * not use this file except in compliance with the License. 17 | * You may obtain a copy of the License at 18 | * 19 | * http://www.apache.org/licenses/LICENSE-2.0 20 | * 21 | * Unless required by applicable law or agreed to in writing, 22 | * software distributed under the License is distributed on an 23 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 24 | * KIND, either express or implied. See the License for the 25 | * specific language governing permissions and limitations 26 | * under the License. 27 | */ 28 | 29 | using System; 30 | 31 | [assembly: CLSCompliant(true)] 32 | -------------------------------------------------------------------------------- /src/OpenSearch.Net/README.md: -------------------------------------------------------------------------------- 1 | A low-level, dependency free OpenSearch .Net client. 2 | 3 | It provides a one-to-one mapping with the OpenSearch REST API. The client matches the official REST API specification and supports all OpenSearch features. Supported features include load balancing, cluster failover, and client method calls with synchronous and asynchronous variants. 4 | -------------------------------------------------------------------------------- /src/OpenSearch.Net/Responses/Special/VoidResponse.cs: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: Apache-2.0 2 | * 3 | * The OpenSearch Contributors require contributions made to 4 | * this file be licensed under the Apache-2.0 license or a 5 | * compatible open source license. 6 | */ 7 | /* 8 | * Modifications Copyright OpenSearch Contributors. See 9 | * GitHub history for details. 10 | * 11 | * Licensed to Elasticsearch B.V. under one or more contributor 12 | * license agreements. See the NOTICE file distributed with 13 | * this work for additional information regarding copyright 14 | * ownership. Elasticsearch B.V. licenses this file to you under 15 | * the Apache License, Version 2.0 (the "License"); you may 16 | * not use this file except in compliance with the License. 17 | * You may obtain a copy of the License at 18 | * 19 | * http://www.apache.org/licenses/LICENSE-2.0 20 | * 21 | * Unless required by applicable law or agreed to in writing, 22 | * software distributed under the License is distributed on an 23 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 24 | * KIND, either express or implied. See the License for the 25 | * specific language governing permissions and limitations 26 | * under the License. 27 | */ 28 | 29 | namespace OpenSearch.Net 30 | { 31 | public class VoidResponse : OpenSearchResponse 32 | { 33 | public class VoidBody { } 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /src/OpenSearch.Net/Serialization/IUrlParameter.cs: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: Apache-2.0 2 | * 3 | * The OpenSearch Contributors require contributions made to 4 | * this file be licensed under the Apache-2.0 license or a 5 | * compatible open source license. 6 | */ 7 | /* 8 | * Modifications Copyright OpenSearch Contributors. See 9 | * GitHub history for details. 10 | * 11 | * Licensed to Elasticsearch B.V. under one or more contributor 12 | * license agreements. See the NOTICE file distributed with 13 | * this work for additional information regarding copyright 14 | * ownership. Elasticsearch B.V. licenses this file to you under 15 | * the Apache License, Version 2.0 (the "License"); you may 16 | * not use this file except in compliance with the License. 17 | * You may obtain a copy of the License at 18 | * 19 | * http://www.apache.org/licenses/LICENSE-2.0 20 | * 21 | * Unless required by applicable law or agreed to in writing, 22 | * software distributed under the License is distributed on an 23 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 24 | * KIND, either express or implied. See the License for the 25 | * specific language governing permissions and limitations 26 | * under the License. 27 | */ 28 | 29 | namespace OpenSearch.Net 30 | { 31 | public interface IUrlParameter 32 | { 33 | string GetString(IConnectionConfigurationValues settings); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /src/OpenSearch.Net/Serialization/StringEnumAttribute.cs: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: Apache-2.0 2 | * 3 | * The OpenSearch Contributors require contributions made to 4 | * this file be licensed under the Apache-2.0 license or a 5 | * compatible open source license. 6 | */ 7 | /* 8 | * Modifications Copyright OpenSearch Contributors. See 9 | * GitHub history for details. 10 | * 11 | * Licensed to Elasticsearch B.V. under one or more contributor 12 | * license agreements. See the NOTICE file distributed with 13 | * this work for additional information regarding copyright 14 | * ownership. Elasticsearch B.V. licenses this file to you under 15 | * the Apache License, Version 2.0 (the "License"); you may 16 | * not use this file except in compliance with the License. 17 | * You may obtain a copy of the License at 18 | * 19 | * http://www.apache.org/licenses/LICENSE-2.0 20 | * 21 | * Unless required by applicable law or agreed to in writing, 22 | * software distributed under the License is distributed on an 23 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 24 | * KIND, either express or implied. See the License for the 25 | * specific language governing permissions and limitations 26 | * under the License. 27 | */ 28 | 29 | using System; 30 | 31 | namespace OpenSearch.Net 32 | { 33 | [AttributeUsage(AttributeTargets.Property | AttributeTargets.Enum)] 34 | public class StringEnumAttribute : Attribute { } 35 | } 36 | -------------------------------------------------------------------------------- /src/_PublishArtifacts.Build.props: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | $(AllowedOutputExtensionsInPackageBuildOutputFolder);.pdb 6 | true 7 | nuget-icon.png 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | True 16 | nuget-icon.png 17 | 18 | 19 | True 20 | license.txt 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /tests/.ci.runsettings: -------------------------------------------------------------------------------- 1 | 2 | 3 | true 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /tests/.runsettings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 0 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /tests/Directory.Build.props: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CAC001 6 | 7 | 8 | $(SolutionRoot)/build/output;https://api.nuget.org/v3/index.json 9 | 10 | 11 | -------------------------------------------------------------------------------- /tests/Tests.Auth.AwsSigV4/Tests.Auth.AwsSigV4.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | net6.0 5 | True 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /tests/Tests.Auth.AwsSigV4/Utils/FixedDateTimeProvider.cs: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: Apache-2.0 2 | * 3 | * The OpenSearch Contributors require contributions made to 4 | * this file be licensed under the Apache-2.0 license or a 5 | * compatible open source license. 6 | */ 7 | 8 | using System; 9 | using OpenSearch.Net; 10 | 11 | namespace Tests.Auth.AwsSigV4.Utils; 12 | 13 | internal class FixedDateTimeProvider : DateTimeProvider 14 | { 15 | private readonly DateTime _now; 16 | 17 | public FixedDateTimeProvider(DateTime now) => _now = now; 18 | 19 | public override DateTime Now() => _now; 20 | } 21 | -------------------------------------------------------------------------------- /tests/Tests.Auth.AwsSigV4/Utils/TestableAwsSigV4HttpConnection.cs: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: Apache-2.0 2 | * 3 | * The OpenSearch Contributors require contributions made to 4 | * this file be licensed under the Apache-2.0 license or a 5 | * compatible open source license. 6 | */ 7 | 8 | using System.Net.Http; 9 | using Amazon; 10 | using Amazon.Runtime; 11 | using OpenSearch.Net; 12 | using OpenSearch.Net.Auth.AwsSigV4; 13 | using Tests.Core.Connection.Http; 14 | 15 | namespace Tests.Auth.AwsSigV4.Utils; 16 | 17 | internal class TestableAwsSigV4HttpConnection : AwsSigV4HttpConnection 18 | { 19 | private readonly MockHttpMessageHandler _handler; 20 | 21 | public TestableAwsSigV4HttpConnection(AWSCredentials credentials, RegionEndpoint region, string service, IDateTimeProvider dateTimeProvider, MockHttpMessageHandler.Handler handler) 22 | : base(credentials, region, service, dateTimeProvider) => 23 | _handler = new MockHttpMessageHandler(handler); 24 | 25 | protected override HttpMessageHandler InnerCreateHttpClientHandler(RequestData requestData) => _handler; 26 | } 27 | -------------------------------------------------------------------------------- /tests/Tests.Auth.AwsSigV4/XunitBootstrap.cs: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: Apache-2.0 2 | * 3 | * The OpenSearch Contributors require contributions made to 4 | * this file be licensed under the Apache-2.0 license or a 5 | * compatible open source license. 6 | */ 7 | 8 | using OpenSearch.OpenSearch.Xunit; 9 | using Tests.Core.Xunit; 10 | using Xunit; 11 | 12 | [assembly: TestFramework("OpenSearch.OpenSearch.Xunit.Sdk.OpenSearchTestFramework", "OpenSearch.OpenSearch.Xunit")] 13 | [assembly: OpenSearchXunitConfiguration(typeof(OpenSearchClientXunitRunOptions))] 14 | -------------------------------------------------------------------------------- /tests/Tests.ClusterLauncher/Tests.ClusterLauncher.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | Exe 4 | net6.0 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /tests/Tests.Configuration/Tests.Configuration.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | netstandard2.0 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /tests/Tests.Core/Connection/Http/HttpRequestMessageAssertions.cs: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: Apache-2.0 2 | * 3 | * The OpenSearch Contributors require contributions made to 4 | * this file be licensed under the Apache-2.0 license or a 5 | * compatible open source license. 6 | */ 7 | 8 | using System.Net.Http; 9 | using FluentAssertions; 10 | 11 | namespace Tests.Core.Connection.Http; 12 | 13 | public static class HttpRequestMessageAssertions 14 | { 15 | public static void ShouldHaveMethod(this HttpRequestMessage request, string method) => 16 | request.Method.Should().Be(new HttpMethod(method)); 17 | 18 | public static void ShouldHaveHeader(this HttpRequestMessage request, string name, string value) => 19 | request.Headers.GetValues(name).Should().BeEquivalentTo(value); 20 | } 21 | -------------------------------------------------------------------------------- /tests/Tests.Core/Connection/Http/MockHttpMessageHandler.cs: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: Apache-2.0 2 | * 3 | * The OpenSearch Contributors require contributions made to 4 | * this file be licensed under the Apache-2.0 license or a 5 | * compatible open source license. 6 | */ 7 | 8 | using System.Net.Http; 9 | using System.Threading; 10 | using System.Threading.Tasks; 11 | 12 | namespace Tests.Core.Connection.Http; 13 | 14 | public class MockHttpMessageHandler : HttpMessageHandler 15 | { 16 | public delegate HttpResponseMessage Handler(HttpRequestMessage request); 17 | 18 | private readonly Handler _handler; 19 | 20 | public MockHttpMessageHandler(Handler handler) => _handler = handler; 21 | 22 | protected override Task SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) => 23 | Task.FromResult(_handler(request)); 24 | } 25 | -------------------------------------------------------------------------------- /tests/Tests.Core/ManagedOpenSearch/Clusters/ConnectionReuseCluster.cs: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: Apache-2.0 2 | * 3 | * The OpenSearch Contributors require contributions made to 4 | * this file be licensed under the Apache-2.0 license or a 5 | * compatible open source license. 6 | */ 7 | /* 8 | * Modifications Copyright OpenSearch Contributors. See 9 | * GitHub history for details. 10 | * 11 | * Licensed to Elasticsearch B.V. under one or more contributor 12 | * license agreements. See the NOTICE file distributed with 13 | * this work for additional information regarding copyright 14 | * ownership. Elasticsearch B.V. licenses this file to you under 15 | * the Apache License, Version 2.0 (the "License"); you may 16 | * not use this file except in compliance with the License. 17 | * You may obtain a copy of the License at 18 | * 19 | * http://www.apache.org/licenses/LICENSE-2.0 20 | * 21 | * Unless required by applicable law or agreed to in writing, 22 | * software distributed under the License is distributed on an 23 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 24 | * KIND, either express or implied. See the License for the 25 | * specific language governing permissions and limitations 26 | * under the License. 27 | */ 28 | 29 | namespace Tests.Core.ManagedOpenSearch.Clusters 30 | { 31 | public class ConnectionReuseCluster : ClientTestClusterBase { } 32 | } 33 | -------------------------------------------------------------------------------- /tests/Tests.Core/ManagedOpenSearch/Clusters/IOpenSearchClientTestCluster.cs: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: Apache-2.0 2 | * 3 | * The OpenSearch Contributors require contributions made to 4 | * this file be licensed under the Apache-2.0 license or a 5 | * compatible open source license. 6 | */ 7 | /* 8 | * Modifications Copyright OpenSearch Contributors. See 9 | * GitHub history for details. 10 | * 11 | * Licensed to Elasticsearch B.V. under one or more contributor 12 | * license agreements. See the NOTICE file distributed with 13 | * this work for additional information regarding copyright 14 | * ownership. Elasticsearch B.V. licenses this file to you under 15 | * the Apache License, Version 2.0 (the "License"); you may 16 | * not use this file except in compliance with the License. 17 | * You may obtain a copy of the License at 18 | * 19 | * http://www.apache.org/licenses/LICENSE-2.0 20 | * 21 | * Unless required by applicable law or agreed to in writing, 22 | * software distributed under the License is distributed on an 23 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 24 | * KIND, either express or implied. See the License for the 25 | * specific language governing permissions and limitations 26 | * under the License. 27 | */ 28 | 29 | using OpenSearch.Client; 30 | 31 | namespace Tests.Core.ManagedOpenSearch.Clusters 32 | { 33 | public interface IOpenSearchClientTestCluster 34 | { 35 | IOpenSearchClient Client { get; } 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /tests/Tests.Domain/Gender.cs: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: Apache-2.0 2 | * 3 | * The OpenSearch Contributors require contributions made to 4 | * this file be licensed under the Apache-2.0 license or a 5 | * compatible open source license. 6 | */ 7 | /* 8 | * Modifications Copyright OpenSearch Contributors. See 9 | * GitHub history for details. 10 | * 11 | * Licensed to Elasticsearch B.V. under one or more contributor 12 | * license agreements. See the NOTICE file distributed with 13 | * this work for additional information regarding copyright 14 | * ownership. Elasticsearch B.V. licenses this file to you under 15 | * the Apache License, Version 2.0 (the "License"); you may 16 | * not use this file except in compliance with the License. 17 | * You may obtain a copy of the License at 18 | * 19 | * http://www.apache.org/licenses/LICENSE-2.0 20 | * 21 | * Unless required by applicable law or agreed to in writing, 22 | * software distributed under the License is distributed on an 23 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 24 | * KIND, either express or implied. See the License for the 25 | * specific language governing permissions and limitations 26 | * under the License. 27 | */ 28 | 29 | using OpenSearch.Net; 30 | 31 | namespace Tests.Domain 32 | { 33 | [StringEnum] 34 | public enum Gender 35 | { 36 | Male, 37 | Female, 38 | NoneOfYourBeeswax 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /tests/Tests.Domain/Helpers/Gimme.cs: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: Apache-2.0 2 | * 3 | * The OpenSearch Contributors require contributions made to 4 | * this file be licensed under the Apache-2.0 license or a 5 | * compatible open source license. 6 | */ 7 | /* 8 | * Modifications Copyright OpenSearch Contributors. See 9 | * GitHub history for details. 10 | * 11 | * Licensed to Elasticsearch B.V. under one or more contributor 12 | * license agreements. See the NOTICE file distributed with 13 | * this work for additional information regarding copyright 14 | * ownership. Elasticsearch B.V. licenses this file to you under 15 | * the Apache License, Version 2.0 (the "License"); you may 16 | * not use this file except in compliance with the License. 17 | * You may obtain a copy of the License at 18 | * 19 | * http://www.apache.org/licenses/LICENSE-2.0 20 | * 21 | * Unless required by applicable law or agreed to in writing, 22 | * software distributed under the License is distributed on an 23 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 24 | * KIND, either express or implied. See the License for the 25 | * specific language governing permissions and limitations 26 | * under the License. 27 | */ 28 | 29 | using Bogus; 30 | using Tests.Configuration; 31 | 32 | namespace Tests.Domain.Helpers 33 | { 34 | public static class Gimme 35 | { 36 | public static Randomizer Random { get; } = new Randomizer(TestConfiguration.Instance.Seed); 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /tests/Tests.Domain/ProjectPercolation.cs: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: Apache-2.0 2 | * 3 | * The OpenSearch Contributors require contributions made to 4 | * this file be licensed under the Apache-2.0 license or a 5 | * compatible open source license. 6 | */ 7 | /* 8 | * Modifications Copyright OpenSearch Contributors. See 9 | * GitHub history for details. 10 | * 11 | * Licensed to Elasticsearch B.V. under one or more contributor 12 | * license agreements. See the NOTICE file distributed with 13 | * this work for additional information regarding copyright 14 | * ownership. Elasticsearch B.V. licenses this file to you under 15 | * the Apache License, Version 2.0 (the "License"); you may 16 | * not use this file except in compliance with the License. 17 | * You may obtain a copy of the License at 18 | * 19 | * http://www.apache.org/licenses/LICENSE-2.0 20 | * 21 | * Unless required by applicable law or agreed to in writing, 22 | * software distributed under the License is distributed on an 23 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 24 | * KIND, either express or implied. See the License for the 25 | * specific language governing permissions and limitations 26 | * under the License. 27 | */ 28 | 29 | using OpenSearch.Client; 30 | 31 | namespace Tests.Domain 32 | { 33 | public class ProjectPercolation : Project 34 | { 35 | public string Id { get; set; } 36 | public QueryContainer Query { get; set; } 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /tests/Tests.Domain/Tests.Domain.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | netstandard2.0 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /tests/Tests.Reproduce/GitHubIssue130.cs: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: Apache-2.0 2 | * 3 | * The OpenSearch Contributors require contributions made to 4 | * this file be licensed under the Apache-2.0 license or a 5 | * compatible open source license. 6 | */ 7 | 8 | using System; 9 | using System.Linq; 10 | using System.Threading; 11 | using OpenSearch.Client; 12 | using OpenSearch.OpenSearch.Xunit.XunitPlumbing; 13 | using Tests.Core.Extensions; 14 | using Tests.Core.ManagedOpenSearch.Clusters; 15 | using Tests.Domain; 16 | 17 | namespace Tests.Reproduce 18 | { 19 | /// 20 | /// Parsing histogram interval failed: Issue #130 21 | /// 22 | /// 23 | public class GitHubIssue130 : IClusterFixture 24 | { 25 | private readonly WritableCluster _cluster; 26 | 27 | public GitHubIssue130(WritableCluster cluster) => _cluster = cluster; 28 | 29 | [I] public void CanDeserializeDateHistogramBucket() 30 | { 31 | var response = _cluster.Client.Search(c => c 32 | .Size(0) 33 | .Query(q => q.MatchAll()) 34 | .Aggregations(a => a.Histogram("aggregation_ranges", r => r 35 | .Field(f => f.LastActivity) 36 | .Interval(5000) 37 | ) 38 | ) 39 | ); 40 | 41 | response.ShouldBeValid(); 42 | } 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /tests/Tests.Reproduce/Tests.Reproduce.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | net6.0 4 | True 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /tests/Tests.ScratchPad/.editorconfig: -------------------------------------------------------------------------------- 1 | # scratchpad is suppose to have unused variables/methods/classes 2 | [*.cs] 3 | resharper_unused_variable_highlighting=do_not_show 4 | resharper_unused_member_local_highlighting=do_not_show 5 | resharper_unused_parameter_local_highlighting=do_not_show 6 | resharper_redundant_anonymous_type_property_name_highlighting=do_not_show 7 | -------------------------------------------------------------------------------- /tests/Tests.ScratchPad/Tests.ScratchPad.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | Exe 4 | net6.0 5 | true 6 | true 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /tests/Tests/.editorconfig: -------------------------------------------------------------------------------- 1 | [*.cs] 2 | resharper_xUnit_1013_highlighting=do_not_show 3 | resharper_unused_variable_highlighting=do_not_show 4 | resharper_redundant_anonymous_type_property_name_highlighting=do_not_show 5 | -------------------------------------------------------------------------------- /tests/Tests/App.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /tests/Tests/Cat/CatPitSegments/CatPitSegmentsUrlTests.cs: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: Apache-2.0 2 | * 3 | * The OpenSearch Contributors require contributions made to 4 | * this file be licensed under the Apache-2.0 license or a 5 | * compatible open source license. 6 | */ 7 | 8 | using System.Threading.Tasks; 9 | using OpenSearch.OpenSearch.Xunit.XunitPlumbing; 10 | using OpenSearch.Client; 11 | using Tests.Framework.EndpointTests; 12 | using static Tests.Framework.EndpointTests.UrlTester; 13 | 14 | namespace Tests.Cat.CatPitSegments; 15 | 16 | public class CatPitSegmentsUrlTests : UrlTestsBase 17 | { 18 | [U] public override async Task Urls() 19 | { 20 | await GET("/_cat/pit_segments") 21 | .Fluent(c => c.Cat.PitSegments()) 22 | .Request(c => c.Cat.PitSegments(new CatPitSegmentsRequest())) 23 | .FluentAsync(c => c.Cat.PitSegmentsAsync()) 24 | .RequestAsync(c => c.Cat.PitSegmentsAsync(new CatPitSegmentsRequest())) 25 | ; 26 | 27 | await GET("/_cat/pit_segments/_all") 28 | .Fluent(c => c.Cat.AllPitSegments()) 29 | .Request(c => c.Cat.AllPitSegments(new CatAllPitSegmentsRequest())) 30 | .FluentAsync(c => c.Cat.AllPitSegmentsAsync()) 31 | .RequestAsync(c => c.Cat.AllPitSegmentsAsync(new CatAllPitSegmentsRequest())); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /tests/Tests/Cat/CatSegmentReplication/CatSegmentReplicationUrlTests.cs: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: Apache-2.0 2 | * 3 | * The OpenSearch Contributors require contributions made to 4 | * this file be licensed under the Apache-2.0 license or a 5 | * compatible open source license. 6 | */ 7 | 8 | using System.Threading.Tasks; 9 | using OpenSearch.OpenSearch.Xunit.XunitPlumbing; 10 | using OpenSearch.Client; 11 | using Tests.Framework.EndpointTests; 12 | using static Tests.Framework.EndpointTests.UrlTester; 13 | 14 | namespace Tests.Cat.CatSegmentReplication; 15 | 16 | public class CatSegmentReplicationUrlTests : UrlTestsBase 17 | { 18 | [U] public override async Task Urls() 19 | { 20 | await GET("/_cat/segment_replication") 21 | .Fluent(c => c.Cat.SegmentReplication()) 22 | .Request(c => c.Cat.SegmentReplication(new CatSegmentReplicationRequest())) 23 | .FluentAsync(c => c.Cat.SegmentReplicationAsync()) 24 | .RequestAsync(c => c.Cat.SegmentReplicationAsync(new CatSegmentReplicationRequest())) 25 | ; 26 | 27 | await GET("/_cat/segment_replication/my-index") 28 | .Fluent(c => c.Cat.SegmentReplication(d => d.Index("my-index"))) 29 | .Request(c => c.Cat.SegmentReplication(new CatSegmentReplicationRequest("my-index"))) 30 | .FluentAsync(c => c.Cat.SegmentReplicationAsync(d => d.Index("my-index"))) 31 | .RequestAsync(c => c.Cat.SegmentReplicationAsync(new CatSegmentReplicationRequest("my-index"))); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /tests/Tests/ClientConcepts/ConnectionPooling/BuildingBlocks/timeoutplot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opensearch-project/opensearch-net/44174b55966b5e2661a14bb7d4fc55d59b962b10/tests/Tests/ClientConcepts/ConnectionPooling/BuildingBlocks/timeoutplot.png -------------------------------------------------------------------------------- /tests/Tests/ClientConcepts/HighLevel/Analysis/analysis-chain.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opensearch-project/opensearch-net/44174b55966b5e2661a14bb7d4fc55d59b962b10/tests/Tests/ClientConcepts/HighLevel/Analysis/analysis-chain.png -------------------------------------------------------------------------------- /tests/Tests/ClientConcepts/LowLevel/class.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opensearch-project/opensearch-net/44174b55966b5e2661a14bb7d4fc55d59b962b10/tests/Tests/ClientConcepts/LowLevel/class.png -------------------------------------------------------------------------------- /tests/Tests/ClientConcepts/LowLevel/pipeline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opensearch-project/opensearch-net/44174b55966b5e2661a14bb7d4fc55d59b962b10/tests/Tests/ClientConcepts/LowLevel/pipeline.png -------------------------------------------------------------------------------- /tests/Tests/ClientConcepts/Troubleshooting/capture-requests-localhost.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opensearch-project/opensearch-net/44174b55966b5e2661a14bb7d4fc55d59b962b10/tests/Tests/ClientConcepts/Troubleshooting/capture-requests-localhost.png -------------------------------------------------------------------------------- /tests/Tests/ClientConcepts/Troubleshooting/capture-requests-remotehost.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opensearch-project/opensearch-net/44174b55966b5e2661a14bb7d4fc55d59b962b10/tests/Tests/ClientConcepts/Troubleshooting/capture-requests-remotehost.png -------------------------------------------------------------------------------- /tests/Tests/ClientConcepts/Troubleshooting/inspect-requests.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opensearch-project/opensearch-net/44174b55966b5e2661a14bb7d4fc55d59b962b10/tests/Tests/ClientConcepts/Troubleshooting/inspect-requests.png -------------------------------------------------------------------------------- /tests/Tests/Cluster/ComponentTemplate/ComponentTemplateExistsUrlTests.cs: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: Apache-2.0 2 | * 3 | * The OpenSearch Contributors require contributions made to 4 | * this file be licensed under the Apache-2.0 license or a 5 | * compatible open source license. 6 | */ 7 | 8 | using System.Threading.Tasks; 9 | using OpenSearch.Client; 10 | using OpenSearch.OpenSearch.Xunit.XunitPlumbing; 11 | using Tests.Framework.EndpointTests; 12 | using static Tests.Framework.EndpointTests.UrlTester; 13 | 14 | namespace Tests.Cluster.ComponentTemplate; 15 | 16 | public class ComponentTemplateExistsUrlTests 17 | { 18 | [U] public async Task Urls() 19 | { 20 | var name = "temp"; 21 | await HEAD($"/_component_template/{name}") 22 | .Fluent(c => c.Cluster.ComponentTemplateExists(name)) 23 | .Request(c => c.Cluster.ComponentTemplateExists(new ComponentTemplateExistsRequest(name))) 24 | .FluentAsync(c => c.Cluster.ComponentTemplateExistsAsync(name)) 25 | .RequestAsync(c => c.Cluster.ComponentTemplateExistsAsync(new ComponentTemplateExistsRequest(name))) 26 | ; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /tests/Tests/Cluster/ComponentTemplate/DeleteComponentTemplateUrlTests.cs: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: Apache-2.0 2 | * 3 | * The OpenSearch Contributors require contributions made to 4 | * this file be licensed under the Apache-2.0 license or a 5 | * compatible open source license. 6 | */ 7 | 8 | using System.Threading.Tasks; 9 | using OpenSearch.Client; 10 | using OpenSearch.OpenSearch.Xunit.XunitPlumbing; 11 | using Tests.Framework.EndpointTests; 12 | using static Tests.Framework.EndpointTests.UrlTester; 13 | 14 | namespace Tests.Cluster.ComponentTemplate; 15 | 16 | public class DeleteComponentTemplateUrlTests 17 | { 18 | [U] public async Task Urls() 19 | { 20 | var name = "temp"; 21 | await DELETE($"/_component_template/{name}") 22 | .Fluent(c => c.Cluster.DeleteComponentTemplate(name)) 23 | .Request(c => c.Cluster.DeleteComponentTemplate(new DeleteComponentTemplateRequest(name))) 24 | .FluentAsync(c => c.Cluster.DeleteComponentTemplateAsync(name)) 25 | .RequestAsync(c => c.Cluster.DeleteComponentTemplateAsync(new DeleteComponentTemplateRequest(name))) 26 | ; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /tests/Tests/Cluster/ComponentTemplate/GetComponentTemplateUrlTests.cs: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: Apache-2.0 2 | * 3 | * The OpenSearch Contributors require contributions made to 4 | * this file be licensed under the Apache-2.0 license or a 5 | * compatible open source license. 6 | */ 7 | 8 | using System.Threading.Tasks; 9 | using OpenSearch.Client; 10 | using OpenSearch.OpenSearch.Xunit.XunitPlumbing; 11 | using Tests.Framework.EndpointTests; 12 | using static Tests.Framework.EndpointTests.UrlTester; 13 | 14 | namespace Tests.Cluster.ComponentTemplate; 15 | 16 | public class GetComponentTemplateUrlTests 17 | { 18 | [U] public async Task Urls() 19 | { 20 | var name = "temp"; 21 | await GET($"/_component_template/{name}") 22 | .Fluent(c => c.Cluster.GetComponentTemplate(name)) 23 | .Request(c => c.Cluster.GetComponentTemplate(new GetComponentTemplateRequest(name))) 24 | .FluentAsync(c => c.Cluster.GetComponentTemplateAsync(name)) 25 | .RequestAsync(c => c.Cluster.GetComponentTemplateAsync(new GetComponentTemplateRequest(name))) 26 | ; 27 | 28 | await GET($"/_component_template") 29 | .Fluent(c => c.Cluster.GetComponentTemplate()) 30 | .Request(c => c.Cluster.GetComponentTemplate(new GetComponentTemplateRequest())) 31 | .FluentAsync(c => c.Cluster.GetComponentTemplateAsync()) 32 | .RequestAsync(c => c.Cluster.GetComponentTemplateAsync(new GetComponentTemplateRequest())) 33 | ; 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /tests/Tests/Cluster/ComponentTemplate/PutComponentTemplateUrlTests.cs: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: Apache-2.0 2 | * 3 | * The OpenSearch Contributors require contributions made to 4 | * this file be licensed under the Apache-2.0 license or a 5 | * compatible open source license. 6 | */ 7 | 8 | using System.Threading.Tasks; 9 | using OpenSearch.Client; 10 | using OpenSearch.OpenSearch.Xunit.XunitPlumbing; 11 | using Tests.Framework.EndpointTests; 12 | using static Tests.Framework.EndpointTests.UrlTester; 13 | 14 | namespace Tests.Cluster.ComponentTemplate; 15 | 16 | public class PutComponentTemplateUrlTests 17 | { 18 | [U] public async Task Urls() 19 | { 20 | var name = "temp"; 21 | await PUT($"/_component_template/{name}") 22 | .Fluent(c => c.Cluster.PutComponentTemplate(name, p => p)) 23 | .Request(c => c.Cluster.PutComponentTemplate(new PutComponentTemplateRequest(name))) 24 | .FluentAsync(c => c.Cluster.PutComponentTemplateAsync(name, p => p)) 25 | .RequestAsync(c => c.Cluster.PutComponentTemplateAsync(new PutComponentTemplateRequest(name))) 26 | ; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /tests/Tests/Connection/Http/HttpConnectionTests.cs: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: Apache-2.0 2 | * 3 | * The OpenSearch Contributors require contributions made to 4 | * this file be licensed under the Apache-2.0 license or a 5 | * compatible open source license. 6 | */ 7 | 8 | using System; 9 | using System.Net.Http; 10 | using FluentAssertions; 11 | using OpenSearch.Net; 12 | using OpenSearch.OpenSearch.Xunit.XunitPlumbing; 13 | using Tests.Core.Connection.Http; 14 | using Xunit; 15 | using HttpMethod = OpenSearch.Net.HttpMethod; 16 | 17 | namespace Tests.Connection.Http; 18 | 19 | public class HttpConnectionTests 20 | { 21 | public static TheoryData HttpMethods() 22 | { 23 | var data = new TheoryData(); 24 | foreach (var httpMethod in Enum.GetValues()) data.Add(httpMethod); 25 | return data; 26 | } 27 | 28 | [TU] 29 | [MemberData(nameof(HttpMethods))] 30 | public void UsesCorrectHttpMethod(HttpMethod method) 31 | { 32 | HttpRequestMessage sentRequest = null; 33 | var connection = new MockableHttpConnection(r => 34 | { 35 | sentRequest = r; 36 | return new HttpResponseMessage(); 37 | }); 38 | var client = new OpenSearchLowLevelClient(new ConnectionConfiguration(connection: connection)); 39 | 40 | client.DoRequest(method, "/"); 41 | 42 | sentRequest.ShouldHaveMethod(method.ToString()); 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /tests/Tests/Connection/Http/MockableHttpConnection.cs: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: Apache-2.0 2 | * 3 | * The OpenSearch Contributors require contributions made to 4 | * this file be licensed under the Apache-2.0 license or a 5 | * compatible open source license. 6 | */ 7 | 8 | using System.Net.Http; 9 | using OpenSearch.Net; 10 | using Tests.Core.Connection.Http; 11 | 12 | namespace Tests.Connection.Http; 13 | 14 | public class MockableHttpConnection : HttpConnection 15 | { 16 | private readonly MockHttpMessageHandler _handler; 17 | 18 | public MockableHttpConnection(MockHttpMessageHandler.Handler handler) => 19 | _handler = new MockHttpMessageHandler(handler); 20 | 21 | protected override HttpMessageHandler CreateHttpClientHandler(RequestData requestData) => _handler; 22 | } 23 | -------------------------------------------------------------------------------- /tests/Tests/Document/Single/Index/Attachment_Test_Document.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opensearch-project/opensearch-net/44174b55966b5e2661a14bb7d4fc55d59b962b10/tests/Tests/Document/Single/Index/Attachment_Test_Document.pdf -------------------------------------------------------------------------------- /tests/Tests/Framework/EndpointTests/TestState/ClientMethod.cs: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: Apache-2.0 2 | * 3 | * The OpenSearch Contributors require contributions made to 4 | * this file be licensed under the Apache-2.0 license or a 5 | * compatible open source license. 6 | */ 7 | /* 8 | * Modifications Copyright OpenSearch Contributors. See 9 | * GitHub history for details. 10 | * 11 | * Licensed to Elasticsearch B.V. under one or more contributor 12 | * license agreements. See the NOTICE file distributed with 13 | * this work for additional information regarding copyright 14 | * ownership. Elasticsearch B.V. licenses this file to you under 15 | * the Apache License, Version 2.0 (the "License"); you may 16 | * not use this file except in compliance with the License. 17 | * You may obtain a copy of the License at 18 | * 19 | * http://www.apache.org/licenses/LICENSE-2.0 20 | * 21 | * Unless required by applicable law or agreed to in writing, 22 | * software distributed under the License is distributed on an 23 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 24 | * KIND, either express or implied. See the License for the 25 | * specific language governing permissions and limitations 26 | * under the License. 27 | */ 28 | 29 | namespace Tests.Framework.EndpointTests.TestState 30 | { 31 | public enum ClientMethod 32 | { 33 | Fluent, 34 | FluentAsync, 35 | Initializer, 36 | InitializerAsync, 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /tests/Tests/Indices/IndexSettings/ComposableIndexTemplates/ComposableIndexTemplateExists/ComposableIndexTemplateExistsUrlTests.cs: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: Apache-2.0 2 | * 3 | * The OpenSearch Contributors require contributions made to 4 | * this file be licensed under the Apache-2.0 license or a 5 | * compatible open source license. 6 | */ 7 | 8 | using System.Threading.Tasks; 9 | using OpenSearch.Client; 10 | using OpenSearch.OpenSearch.Xunit.XunitPlumbing; 11 | using Tests.Framework.EndpointTests; 12 | using static Tests.Framework.EndpointTests.UrlTester; 13 | 14 | namespace Tests.Indices.IndexSettings.ComposableIndexTemplates.ComposableIndexTemplateExists; 15 | 16 | public class ComposableIndexTemplateExistsUrlTests 17 | { 18 | [U] public async Task Urls() 19 | { 20 | const string name = "temp"; 21 | await HEAD($"/_index_template/{name}") 22 | .Fluent(c => c.Indices.ComposableTemplateExists(name)) 23 | .Request(c => c.Indices.ComposableTemplateExists(new ComposableIndexTemplateExistsRequest(name))) 24 | .FluentAsync(c => c.Indices.ComposableTemplateExistsAsync(name)) 25 | .RequestAsync(c => c.Indices.ComposableTemplateExistsAsync(new ComposableIndexTemplateExistsRequest(name))) 26 | ; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /tests/Tests/Indices/IndexSettings/ComposableIndexTemplates/DeleteComposableIndexTemplate/DeleteComposableIndexTemplateUrlTests.cs: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: Apache-2.0 2 | * 3 | * The OpenSearch Contributors require contributions made to 4 | * this file be licensed under the Apache-2.0 license or a 5 | * compatible open source license. 6 | */ 7 | 8 | using System.Threading.Tasks; 9 | using OpenSearch.Client; 10 | using OpenSearch.OpenSearch.Xunit.XunitPlumbing; 11 | using Tests.Framework.EndpointTests; 12 | using static Tests.Framework.EndpointTests.UrlTester; 13 | 14 | namespace Tests.Indices.IndexSettings.ComposableIndexTemplates.DeleteComposableIndexTemplate; 15 | 16 | public class DeleteComposableIndexTemplateUrlTests 17 | { 18 | [U] public async Task Urls() 19 | { 20 | const string name = "temp"; 21 | await DELETE($"/_index_template/{name}") 22 | .Fluent(c => c.Indices.DeleteComposableTemplate(name)) 23 | .Request(c => c.Indices.DeleteComposableTemplate(new DeleteComposableIndexTemplateRequest(name))) 24 | .FluentAsync(c => c.Indices.DeleteComposableTemplateAsync(name)) 25 | .RequestAsync(c => c.Indices.DeleteComposableTemplateAsync(new DeleteComposableIndexTemplateRequest(name))) 26 | ; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /tests/Tests/Indices/IndexSettings/ComposableIndexTemplates/PutComposableIndexTemplate/PutComposableIndexTemplateUrlTests.cs: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: Apache-2.0 2 | * 3 | * The OpenSearch Contributors require contributions made to 4 | * this file be licensed under the Apache-2.0 license or a 5 | * compatible open source license. 6 | */ 7 | 8 | using System.Threading.Tasks; 9 | using OpenSearch.Client; 10 | using OpenSearch.OpenSearch.Xunit.XunitPlumbing; 11 | using Tests.Framework.EndpointTests; 12 | using static Tests.Framework.EndpointTests.UrlTester; 13 | 14 | namespace Tests.Indices.IndexSettings.ComposableIndexTemplates.PutComposableIndexTemplate; 15 | 16 | public class PutComposableIndexTemplateUrlTests 17 | { 18 | [U] public async Task Urls() 19 | { 20 | const string name = "temp"; 21 | await PUT($"/_index_template/{name}") 22 | .Fluent(c => c.Indices.PutComposableTemplate(name, p => p)) 23 | .Request(c => c.Indices.PutComposableTemplate(new PutComposableIndexTemplateRequest(name))) 24 | .FluentAsync(c => c.Indices.PutComposableTemplateAsync(name, p => p)) 25 | .RequestAsync(c => c.Indices.PutComposableTemplateAsync(new PutComposableIndexTemplateRequest(name))) 26 | ; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /tests/Tests/QueryDsl/BoolDsl/hadouken-indentation.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opensearch-project/opensearch-net/44174b55966b5e2661a14bb7d4fc55d59b962b10/tests/Tests/QueryDsl/BoolDsl/hadouken-indentation.jpg -------------------------------------------------------------------------------- /tests/Tests/Search/PointInTime/CreatePitUrlTests.cs: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: Apache-2.0 2 | * 3 | * The OpenSearch Contributors require contributions made to 4 | * this file be licensed under the Apache-2.0 license or a 5 | * compatible open source license. 6 | */ 7 | 8 | using System.Threading.Tasks; 9 | using OpenSearch.Client; 10 | using OpenSearch.OpenSearch.Xunit.XunitPlumbing; 11 | using Tests.Framework.EndpointTests; 12 | using static Tests.Framework.EndpointTests.UrlTester; 13 | 14 | namespace Tests.Search.PointInTime; 15 | 16 | public class CreatePitUrlTests 17 | { 18 | [U] public async Task Urls() 19 | { 20 | const string index = "temp"; 21 | const string keepAlive = "1h"; 22 | 23 | await POST($"/{index}/_search/point_in_time?keep_alive={keepAlive}") 24 | .Fluent(c => c.CreatePit(index, c => c.KeepAlive(keepAlive))) 25 | .Request(c => c.CreatePit(new CreatePitRequest(index) { KeepAlive = keepAlive })) 26 | .FluentAsync(c => c.CreatePitAsync(index, c => c.KeepAlive(keepAlive))) 27 | .RequestAsync(c => c.CreatePitAsync(new CreatePitRequest(index) { KeepAlive = keepAlive })) 28 | ; 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /tests/Tests/Search/PointInTime/DeleteAllPitsUrlTests.cs: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: Apache-2.0 2 | * 3 | * The OpenSearch Contributors require contributions made to 4 | * this file be licensed under the Apache-2.0 license or a 5 | * compatible open source license. 6 | */ 7 | 8 | using System.Threading.Tasks; 9 | using OpenSearch.Client; 10 | using OpenSearch.OpenSearch.Xunit.XunitPlumbing; 11 | using Tests.Framework.EndpointTests; 12 | using static Tests.Framework.EndpointTests.UrlTester; 13 | 14 | namespace Tests.Search.PointInTime; 15 | 16 | public class DeleteAllPitsUrlTests 17 | { 18 | [U] public async Task Urls() => 19 | await DELETE("/_search/point_in_time/_all") 20 | .Fluent(c => c.DeleteAllPits()) 21 | .Request(c => c.DeleteAllPits(new DeleteAllPitsRequest())) 22 | .FluentAsync(c => c.DeleteAllPitsAsync()) 23 | .RequestAsync(c => c.DeleteAllPitsAsync(new DeleteAllPitsRequest())); 24 | } 25 | -------------------------------------------------------------------------------- /tests/Tests/Search/PointInTime/DeletePitUrlTests.cs: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: Apache-2.0 2 | * 3 | * The OpenSearch Contributors require contributions made to 4 | * this file be licensed under the Apache-2.0 license or a 5 | * compatible open source license. 6 | */ 7 | 8 | using System.Threading.Tasks; 9 | using OpenSearch.Client; 10 | using OpenSearch.OpenSearch.Xunit.XunitPlumbing; 11 | using Tests.Framework.EndpointTests; 12 | using static Tests.Framework.EndpointTests.UrlTester; 13 | 14 | namespace Tests.Search.PointInTime; 15 | 16 | public class DeletePitUrlTests 17 | { 18 | [U] public async Task Urls() 19 | { 20 | var pitIds = new[] { "pitid1", "pitid2" }; 21 | 22 | await DELETE("/_search/point_in_time") 23 | .Fluent(c => c.DeletePit(d => d.PitId(pitIds))) 24 | .Request(c => c.DeletePit(new DeletePitRequest(pitIds))) 25 | .FluentAsync(c => c.DeletePitAsync(d => d.PitId(pitIds))) 26 | .RequestAsync(c => c.DeletePitAsync(new DeletePitRequest(pitIds))); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /tests/Tests/Search/PointInTime/GetAllPitsUrlTests.cs: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: Apache-2.0 2 | * 3 | * The OpenSearch Contributors require contributions made to 4 | * this file be licensed under the Apache-2.0 license or a 5 | * compatible open source license. 6 | */ 7 | 8 | using System.Threading.Tasks; 9 | using OpenSearch.Client; 10 | using OpenSearch.OpenSearch.Xunit.XunitPlumbing; 11 | using Tests.Framework.EndpointTests; 12 | using static Tests.Framework.EndpointTests.UrlTester; 13 | 14 | namespace Tests.Search.PointInTime; 15 | 16 | public class GetAllPitsUrlTests 17 | { 18 | [U] public async Task Urls() => 19 | await GET("/_search/point_in_time/_all") 20 | .Fluent(c => c.GetAllPits()) 21 | .Request(c => c.GetAllPits(new GetAllPitsRequest())) 22 | .FluentAsync(c => c.GetAllPitsAsync()) 23 | .RequestAsync(c => c.GetAllPitsAsync(new GetAllPitsRequest())); 24 | } 25 | -------------------------------------------------------------------------------- /tests/tests.proj: -------------------------------------------------------------------------------- 1 | 2 | 3 | False 4 | .runsettings 5 | 6 | 7 | 8 | 9 | 10 | 11 | --------------------------------------------------------------------------------