From 392b4f041afeb855096cbe1f6fc6b130bf6885e5 Mon Sep 17 00:00:00 2001 From: HavenDV Date: Tue, 17 Sep 2024 11:40:44 +0400 Subject: [PATCH] feat: Added Artifact API support. --- src/helpers/FixOpenApiSpec/Program.cs | 28 +- .../Instill.CatalogClient.CreateCatalog.g.cs | 138 ++ .../Instill.CatalogClient.DeleteCatalog.g.cs | 95 + ...still.CatalogClient.DeleteCatalogFile.g.cs | 89 + .../Instill.CatalogClient.GetFileCatalog.g.cs | 107 + .../Instill.CatalogClient.GetSourceFile.g.cs | 101 + ...nstill.CatalogClient.ListCatalogFiles.g.cs | 114 + .../Instill.CatalogClient.ListCatalogs.g.cs | 89 + .../Instill.CatalogClient.ListChunks.g.cs | 101 + ...ill.CatalogClient.ProcessCatalogFiles.g.cs | 119 + ...still.CatalogClient.QuestionAnswering.g.cs | 138 ++ ....CatalogClient.SimilarityChunksSearch.g.cs | 138 ++ .../Instill.CatalogClient.UpdateCatalog.g.cs | 142 ++ .../Instill.CatalogClient.UpdateChunk.g.cs | 126 + ...still.CatalogClient.UploadCatalogFile.g.cs | 180 ++ .../Generated/Instill.CatalogClient.g.cs | 63 + .../Instill.ICatalogClient.CreateCatalog.g.cs | 41 + .../Instill.ICatalogClient.DeleteCatalog.g.cs | 19 + ...till.ICatalogClient.DeleteCatalogFile.g.cs | 17 + ...Instill.ICatalogClient.GetFileCatalog.g.cs | 23 + .../Instill.ICatalogClient.GetSourceFile.g.cs | 21 + ...still.ICatalogClient.ListCatalogFiles.g.cs | 25 + .../Instill.ICatalogClient.ListCatalogs.g.cs | 17 + .../Instill.ICatalogClient.ListChunks.g.cs | 21 + ...ll.ICatalogClient.ProcessCatalogFiles.g.cs | 29 + ...till.ICatalogClient.QuestionAnswering.g.cs | 37 + ...ICatalogClient.SimilarityChunksSearch.g.cs | 37 + .../Instill.ICatalogClient.UpdateCatalog.g.cs | 41 + .../Instill.ICatalogClient.UpdateChunk.g.cs | 31 + ...till.ICatalogClient.UploadCatalogFile.g.cs | 65 + .../Generated/Instill.ICatalogClient.g.cs | 19 + .../Generated/Instill.IInstillClient.g.cs | 5 + ....InstillClient.Authorizations.Bearer.g.cs} | 8 +- ...ll.InstillClient.Constructors.Bearer.g.cs} | 2 +- .../Generated/Instill.InstillClient.g.cs | 8 + .../Instill.Models.Artifactv1alphaChunk.g.cs | 59 + .../Generated/Instill.Models.Catalog.g.cs | 101 + .../Instill.Models.CreateCatalogBody.g.cs | 35 + .../Instill.Models.CreateCatalogResponse.g.cs | 26 + ...Instill.Models.CreateCatalogResponse2.g.cs | 18 + ...ll.Models.CreateRepositoryTagResponse.g.cs | 26 + ...till.Models.DeleteCatalogFileResponse.g.cs | 23 + ...ill.Models.DeleteCatalogFileResponse2.g.cs | 18 + .../Instill.Models.DeleteCatalogResponse.g.cs | 26 + ...Instill.Models.DeleteCatalogResponse2.g.cs | 18 + ...ll.Models.DeleteRepositoryTagResponse.g.cs | 18 + .../Generated/Instill.Models.File.g.cs | 119 + .../Instill.Models.FileProcessStatus2.g.cs | 87 + .../Generated/Instill.Models.FileType2.g.cs | 129 + ...Instill.Models.GetFileCatalogResponse.g.cs | 45 + ...nstill.Models.GetFileCatalogResponse2.g.cs | 18 + ...ll.Models.GetFileCatalogResponseChunk.g.cs | 74 + ...odels.GetFileCatalogResponseChunkType.g.cs | 66 + ...Models.GetFileCatalogResponseMetadata.g.cs | 57 + ...ill.Models.GetFileCatalogResponseText.g.cs | 47 + ...still.Models.GetRepositoryTagResponse.g.cs | 26 + .../Instill.Models.GetSourceFileResponse.g.cs | 26 + ...Instill.Models.GetSourceFileResponse2.g.cs | 18 + ...Instill.Models.ListCatalogFilesFilter.g.cs | 23 + ...still.Models.ListCatalogFilesResponse.g.cs | 50 + ...till.Models.ListCatalogFilesResponse2.g.cs | 18 + .../Instill.Models.ListCatalogsResponse.g.cs | 23 + .../Instill.Models.ListCatalogsResponse2.g.cs | 18 + .../Instill.Models.ListChunksResponse.g.cs | 23 + .../Instill.Models.ListChunksResponse2.g.cs | 18 + ...ill.Models.ListRepositoryTagsResponse.g.cs | 41 + ...ill.Models.ProcessCatalogFilesRequest.g.cs | 24 + ...ll.Models.ProcessCatalogFilesResponse.g.cs | 23 + ...l.Models.ProcessCatalogFilesResponse2.g.cs | 18 + .../Instill.Models.QuestionAnsweringBody.g.cs | 29 + ...till.Models.QuestionAnsweringResponse.g.cs | 29 + ...ill.Models.QuestionAnsweringResponse2.g.cs | 18 + .../Instill.Models.RepositoryTag.g.cs | 43 + .../Generated/Instill.Models.RpcStatus.g.cs | 35 + .../Instill.Models.SimilarityChunk.g.cs | 41 + ...ill.Models.SimilarityChunksSearchBody.g.cs | 29 + ...Models.SimilarityChunksSearchResponse.g.cs | 23 + ...odels.SimilarityChunksSearchResponse2.g.cs | 18 + .../Generated/Instill.Models.SourceFile2.g.cs | 41 + .../Instill.Models.UpdateCatalogBody.g.cs | 29 + .../Instill.Models.UpdateCatalogResponse.g.cs | 26 + ...Instill.Models.UpdateCatalogResponse2.g.cs | 18 + .../Instill.Models.UpdateChunkBody.g.cs | 23 + .../Instill.Models.UpdateChunkResponse.g.cs | 26 + .../Instill.Models.UpdateChunkResponse2.g.cs | 18 + ...till.Models.UploadCatalogFileResponse.g.cs | 26 + ...ill.Models.UploadCatalogFileResponse2.g.cs | 18 + .../JsonConverters.FileProcessStatus2.g.cs | 49 + ...Converters.FileProcessStatus2Nullable.g.cs | 56 + .../Generated/JsonConverters.FileType2.g.cs | 49 + .../JsonConverters.FileType2Nullable.g.cs | 56 + ...rters.GetFileCatalogResponseChunkType.g.cs | 49 + ...tFileCatalogResponseChunkTypeNullable.g.cs | 56 + .../Generated/JsonSerializerContext.g.cs | 6 + .../Generated/JsonSerializerContextTypes.g.cs | 354 ++- src/libs/Instill/generate.sh | 4 +- src/libs/Instill/openapi.yaml | 2148 +++++++++++++---- .../Instill.IntegrationTests.csproj | 4 + .../Resources/midsummer-nights-dream.pdf | Bin 0 -> 572679 bytes .../Tests.GetRemainingCredit.cs | 2 +- .../IntegrationTests/Tests.QuickstartData.cs | 95 + src/tests/IntegrationTests/Tests.cs | 4 +- 102 files changed, 6489 insertions(+), 526 deletions(-) create mode 100644 src/libs/Instill/Generated/Instill.CatalogClient.CreateCatalog.g.cs create mode 100644 src/libs/Instill/Generated/Instill.CatalogClient.DeleteCatalog.g.cs create mode 100644 src/libs/Instill/Generated/Instill.CatalogClient.DeleteCatalogFile.g.cs create mode 100644 src/libs/Instill/Generated/Instill.CatalogClient.GetFileCatalog.g.cs create mode 100644 src/libs/Instill/Generated/Instill.CatalogClient.GetSourceFile.g.cs create mode 100644 src/libs/Instill/Generated/Instill.CatalogClient.ListCatalogFiles.g.cs create mode 100644 src/libs/Instill/Generated/Instill.CatalogClient.ListCatalogs.g.cs create mode 100644 src/libs/Instill/Generated/Instill.CatalogClient.ListChunks.g.cs create mode 100644 src/libs/Instill/Generated/Instill.CatalogClient.ProcessCatalogFiles.g.cs create mode 100644 src/libs/Instill/Generated/Instill.CatalogClient.QuestionAnswering.g.cs create mode 100644 src/libs/Instill/Generated/Instill.CatalogClient.SimilarityChunksSearch.g.cs create mode 100644 src/libs/Instill/Generated/Instill.CatalogClient.UpdateCatalog.g.cs create mode 100644 src/libs/Instill/Generated/Instill.CatalogClient.UpdateChunk.g.cs create mode 100644 src/libs/Instill/Generated/Instill.CatalogClient.UploadCatalogFile.g.cs create mode 100644 src/libs/Instill/Generated/Instill.CatalogClient.g.cs create mode 100644 src/libs/Instill/Generated/Instill.ICatalogClient.CreateCatalog.g.cs create mode 100644 src/libs/Instill/Generated/Instill.ICatalogClient.DeleteCatalog.g.cs create mode 100644 src/libs/Instill/Generated/Instill.ICatalogClient.DeleteCatalogFile.g.cs create mode 100644 src/libs/Instill/Generated/Instill.ICatalogClient.GetFileCatalog.g.cs create mode 100644 src/libs/Instill/Generated/Instill.ICatalogClient.GetSourceFile.g.cs create mode 100644 src/libs/Instill/Generated/Instill.ICatalogClient.ListCatalogFiles.g.cs create mode 100644 src/libs/Instill/Generated/Instill.ICatalogClient.ListCatalogs.g.cs create mode 100644 src/libs/Instill/Generated/Instill.ICatalogClient.ListChunks.g.cs create mode 100644 src/libs/Instill/Generated/Instill.ICatalogClient.ProcessCatalogFiles.g.cs create mode 100644 src/libs/Instill/Generated/Instill.ICatalogClient.QuestionAnswering.g.cs create mode 100644 src/libs/Instill/Generated/Instill.ICatalogClient.SimilarityChunksSearch.g.cs create mode 100644 src/libs/Instill/Generated/Instill.ICatalogClient.UpdateCatalog.g.cs create mode 100644 src/libs/Instill/Generated/Instill.ICatalogClient.UpdateChunk.g.cs create mode 100644 src/libs/Instill/Generated/Instill.ICatalogClient.UploadCatalogFile.g.cs create mode 100644 src/libs/Instill/Generated/Instill.ICatalogClient.g.cs rename src/libs/Instill/Generated/{Instill.InstillClient.Authorizations..g.cs => Instill.InstillClient.Authorizations.Bearer.g.cs} (53%) rename src/libs/Instill/Generated/{Instill.InstillClient.Constructors..g.cs => Instill.InstillClient.Constructors.Bearer.g.cs} (94%) create mode 100644 src/libs/Instill/Generated/Instill.Models.Artifactv1alphaChunk.g.cs create mode 100644 src/libs/Instill/Generated/Instill.Models.Catalog.g.cs create mode 100644 src/libs/Instill/Generated/Instill.Models.CreateCatalogBody.g.cs create mode 100644 src/libs/Instill/Generated/Instill.Models.CreateCatalogResponse.g.cs create mode 100644 src/libs/Instill/Generated/Instill.Models.CreateCatalogResponse2.g.cs create mode 100644 src/libs/Instill/Generated/Instill.Models.CreateRepositoryTagResponse.g.cs create mode 100644 src/libs/Instill/Generated/Instill.Models.DeleteCatalogFileResponse.g.cs create mode 100644 src/libs/Instill/Generated/Instill.Models.DeleteCatalogFileResponse2.g.cs create mode 100644 src/libs/Instill/Generated/Instill.Models.DeleteCatalogResponse.g.cs create mode 100644 src/libs/Instill/Generated/Instill.Models.DeleteCatalogResponse2.g.cs create mode 100644 src/libs/Instill/Generated/Instill.Models.DeleteRepositoryTagResponse.g.cs create mode 100644 src/libs/Instill/Generated/Instill.Models.File.g.cs create mode 100644 src/libs/Instill/Generated/Instill.Models.FileProcessStatus2.g.cs create mode 100644 src/libs/Instill/Generated/Instill.Models.FileType2.g.cs create mode 100644 src/libs/Instill/Generated/Instill.Models.GetFileCatalogResponse.g.cs create mode 100644 src/libs/Instill/Generated/Instill.Models.GetFileCatalogResponse2.g.cs create mode 100644 src/libs/Instill/Generated/Instill.Models.GetFileCatalogResponseChunk.g.cs create mode 100644 src/libs/Instill/Generated/Instill.Models.GetFileCatalogResponseChunkType.g.cs create mode 100644 src/libs/Instill/Generated/Instill.Models.GetFileCatalogResponseMetadata.g.cs create mode 100644 src/libs/Instill/Generated/Instill.Models.GetFileCatalogResponseText.g.cs create mode 100644 src/libs/Instill/Generated/Instill.Models.GetRepositoryTagResponse.g.cs create mode 100644 src/libs/Instill/Generated/Instill.Models.GetSourceFileResponse.g.cs create mode 100644 src/libs/Instill/Generated/Instill.Models.GetSourceFileResponse2.g.cs create mode 100644 src/libs/Instill/Generated/Instill.Models.ListCatalogFilesFilter.g.cs create mode 100644 src/libs/Instill/Generated/Instill.Models.ListCatalogFilesResponse.g.cs create mode 100644 src/libs/Instill/Generated/Instill.Models.ListCatalogFilesResponse2.g.cs create mode 100644 src/libs/Instill/Generated/Instill.Models.ListCatalogsResponse.g.cs create mode 100644 src/libs/Instill/Generated/Instill.Models.ListCatalogsResponse2.g.cs create mode 100644 src/libs/Instill/Generated/Instill.Models.ListChunksResponse.g.cs create mode 100644 src/libs/Instill/Generated/Instill.Models.ListChunksResponse2.g.cs create mode 100644 src/libs/Instill/Generated/Instill.Models.ListRepositoryTagsResponse.g.cs create mode 100644 src/libs/Instill/Generated/Instill.Models.ProcessCatalogFilesRequest.g.cs create mode 100644 src/libs/Instill/Generated/Instill.Models.ProcessCatalogFilesResponse.g.cs create mode 100644 src/libs/Instill/Generated/Instill.Models.ProcessCatalogFilesResponse2.g.cs create mode 100644 src/libs/Instill/Generated/Instill.Models.QuestionAnsweringBody.g.cs create mode 100644 src/libs/Instill/Generated/Instill.Models.QuestionAnsweringResponse.g.cs create mode 100644 src/libs/Instill/Generated/Instill.Models.QuestionAnsweringResponse2.g.cs create mode 100644 src/libs/Instill/Generated/Instill.Models.RepositoryTag.g.cs create mode 100644 src/libs/Instill/Generated/Instill.Models.RpcStatus.g.cs create mode 100644 src/libs/Instill/Generated/Instill.Models.SimilarityChunk.g.cs create mode 100644 src/libs/Instill/Generated/Instill.Models.SimilarityChunksSearchBody.g.cs create mode 100644 src/libs/Instill/Generated/Instill.Models.SimilarityChunksSearchResponse.g.cs create mode 100644 src/libs/Instill/Generated/Instill.Models.SimilarityChunksSearchResponse2.g.cs create mode 100644 src/libs/Instill/Generated/Instill.Models.SourceFile2.g.cs create mode 100644 src/libs/Instill/Generated/Instill.Models.UpdateCatalogBody.g.cs create mode 100644 src/libs/Instill/Generated/Instill.Models.UpdateCatalogResponse.g.cs create mode 100644 src/libs/Instill/Generated/Instill.Models.UpdateCatalogResponse2.g.cs create mode 100644 src/libs/Instill/Generated/Instill.Models.UpdateChunkBody.g.cs create mode 100644 src/libs/Instill/Generated/Instill.Models.UpdateChunkResponse.g.cs create mode 100644 src/libs/Instill/Generated/Instill.Models.UpdateChunkResponse2.g.cs create mode 100644 src/libs/Instill/Generated/Instill.Models.UploadCatalogFileResponse.g.cs create mode 100644 src/libs/Instill/Generated/Instill.Models.UploadCatalogFileResponse2.g.cs create mode 100644 src/libs/Instill/Generated/JsonConverters.FileProcessStatus2.g.cs create mode 100644 src/libs/Instill/Generated/JsonConverters.FileProcessStatus2Nullable.g.cs create mode 100644 src/libs/Instill/Generated/JsonConverters.FileType2.g.cs create mode 100644 src/libs/Instill/Generated/JsonConverters.FileType2Nullable.g.cs create mode 100644 src/libs/Instill/Generated/JsonConverters.GetFileCatalogResponseChunkType.g.cs create mode 100644 src/libs/Instill/Generated/JsonConverters.GetFileCatalogResponseChunkTypeNullable.g.cs create mode 100644 src/tests/IntegrationTests/Resources/midsummer-nights-dream.pdf create mode 100644 src/tests/IntegrationTests/Tests.QuickstartData.cs diff --git a/src/helpers/FixOpenApiSpec/Program.cs b/src/helpers/FixOpenApiSpec/Program.cs index 8d59cff..694aacb 100644 --- a/src/helpers/FixOpenApiSpec/Program.cs +++ b/src/helpers/FixOpenApiSpec/Program.cs @@ -5,20 +5,44 @@ using Microsoft.OpenApi.Readers; var path = args[0]; +var artifactPath = args[1]; var text = await File.ReadAllTextAsync(path); +var artifactText = await File.ReadAllTextAsync(artifactPath); text = text .Replace(" v1beta", " ") .Replace("#/definitions/v1beta", "#/definitions/") + .Replace("MgmtPublicService_", string.Empty) + ; +artifactText = artifactText + .Replace(" v1alpha", " ") + .Replace("#/definitions/v1alpha", "#/definitions/") + .Replace(" ArtifactPublicService", " ") + .Replace("#/definitions/ArtifactPublicService", "#/definitions/") + .Replace("ArtifactPublicService_", string.Empty) ; var openApiDocument = new OpenApiStringReader().Read(text, out var diagnostics); +var artifactOpenApiDocument = new OpenApiStringReader().Read(artifactText, out var artifactDiagnostics); -foreach (var (_, operation) in openApiDocument.Paths.SelectMany(x => x.Value.Operations)) +foreach (var pair in artifactOpenApiDocument.Components.Schemas) +{ + if (openApiDocument.Components.Schemas.ContainsKey(pair.Key)) + { + Console.WriteLine($"Removing {pair.Key} because it already exists in the document"); + openApiDocument.Components.Schemas.Remove(pair.Key); + } + + openApiDocument.Components.Schemas.Add(pair); +} +foreach (var pair in artifactOpenApiDocument.Paths) { - operation.OperationId = operation.OperationId.Replace("MgmtPublicService_", string.Empty); + openApiDocument.Paths.Add(pair.Key, pair.Value); } +openApiDocument.Components.SecuritySchemes["Bearer"].Type = SecuritySchemeType.Http; +openApiDocument.Components.SecuritySchemes["Bearer"].Scheme = "bearer"; + //openApiDocument.Components.Schemas["GenerateCompletionRequest"]!.Properties["stream"]!.Default = new OpenApiBoolean(true); text = openApiDocument.SerializeAsYaml(OpenApiSpecVersion.OpenApi3_0); diff --git a/src/libs/Instill/Generated/Instill.CatalogClient.CreateCatalog.g.cs b/src/libs/Instill/Generated/Instill.CatalogClient.CreateCatalog.g.cs new file mode 100644 index 0000000..5e1ad1d --- /dev/null +++ b/src/libs/Instill/Generated/Instill.CatalogClient.CreateCatalog.g.cs @@ -0,0 +1,138 @@ + +#nullable enable + +namespace Instill +{ + public partial class CatalogClient + { + partial void PrepareCreateCatalogArguments( + global::System.Net.Http.HttpClient httpClient, + ref string namespaceId, + global::Instill.CreateCatalogBody request); + partial void PrepareCreateCatalogRequest( + global::System.Net.Http.HttpClient httpClient, + global::System.Net.Http.HttpRequestMessage httpRequestMessage, + string namespaceId, + global::Instill.CreateCatalogBody request); + partial void ProcessCreateCatalogResponse( + global::System.Net.Http.HttpClient httpClient, + global::System.Net.Http.HttpResponseMessage httpResponseMessage); + + partial void ProcessCreateCatalogResponseContent( + global::System.Net.Http.HttpClient httpClient, + global::System.Net.Http.HttpResponseMessage httpResponseMessage, + ref string content); + + /// + /// Create a catalog + /// + /// + /// + /// The token to cancel the operation with + /// + public async global::System.Threading.Tasks.Task CreateCatalogAsync( + string namespaceId, + global::Instill.CreateCatalogBody request, + global::System.Threading.CancellationToken cancellationToken = default) + { + request = request ?? throw new global::System.ArgumentNullException(nameof(request)); + + PrepareArguments( + client: _httpClient); + PrepareCreateCatalogArguments( + httpClient: _httpClient, + namespaceId: ref namespaceId, + request: request); + + using var httpRequest = new global::System.Net.Http.HttpRequestMessage( + method: global::System.Net.Http.HttpMethod.Post, + requestUri: new global::System.Uri(_httpClient.BaseAddress?.AbsoluteUri.TrimEnd('/') + $"/v1alpha/namespaces/{namespaceId}/catalogs", global::System.UriKind.RelativeOrAbsolute)); + var __httpRequestContentBody = global::System.Text.Json.JsonSerializer.Serialize(request, request.GetType(), JsonSerializerContext); + var __httpRequestContent = new global::System.Net.Http.StringContent( + content: __httpRequestContentBody, + encoding: global::System.Text.Encoding.UTF8, + mediaType: "application/json"); + httpRequest.Content = __httpRequestContent; + + PrepareRequest( + client: _httpClient, + request: httpRequest); + PrepareCreateCatalogRequest( + httpClient: _httpClient, + httpRequestMessage: httpRequest, + namespaceId: namespaceId, + request: request); + + using var response = await _httpClient.SendAsync( + request: httpRequest, + completionOption: global::System.Net.Http.HttpCompletionOption.ResponseContentRead, + cancellationToken: cancellationToken).ConfigureAwait(false); + + ProcessResponse( + client: _httpClient, + response: response); + ProcessCreateCatalogResponse( + httpClient: _httpClient, + httpResponseMessage: response); + + var __content = await response.Content.ReadAsStringAsync(cancellationToken).ConfigureAwait(false); + + ProcessResponseContent( + client: _httpClient, + response: response, + content: ref __content); + ProcessCreateCatalogResponseContent( + httpClient: _httpClient, + httpResponseMessage: response, + content: ref __content); + + try + { + response.EnsureSuccessStatusCode(); + } + catch (global::System.Net.Http.HttpRequestException ex) + { + throw new global::System.InvalidOperationException(__content, ex); + } + + return + global::System.Text.Json.JsonSerializer.Deserialize(__content, typeof(global::Instill.CreateCatalogResponse), JsonSerializerContext) as global::Instill.CreateCatalogResponse ?? + throw new global::System.InvalidOperationException($"Response deserialization failed for \"{__content}\" "); + } + + /// + /// Create a catalog + /// + /// + /// + /// The catalog name. + /// + /// + /// The catalog description. + /// + /// + /// The catalog tags. + /// + /// The token to cancel the operation with + /// + public async global::System.Threading.Tasks.Task CreateCatalogAsync( + string namespaceId, + string? name = default, + string? description = default, + global::System.Collections.Generic.IList? tags = default, + global::System.Threading.CancellationToken cancellationToken = default) + { + var request = new global::Instill.CreateCatalogBody + { + Name = name, + Description = description, + Tags = tags, + }; + + return await CreateCatalogAsync( + namespaceId: namespaceId, + request: request, + cancellationToken: cancellationToken).ConfigureAwait(false); + } + } +} \ No newline at end of file diff --git a/src/libs/Instill/Generated/Instill.CatalogClient.DeleteCatalog.g.cs b/src/libs/Instill/Generated/Instill.CatalogClient.DeleteCatalog.g.cs new file mode 100644 index 0000000..9edb7d4 --- /dev/null +++ b/src/libs/Instill/Generated/Instill.CatalogClient.DeleteCatalog.g.cs @@ -0,0 +1,95 @@ + +#nullable enable + +namespace Instill +{ + public partial class CatalogClient + { + partial void PrepareDeleteCatalogArguments( + global::System.Net.Http.HttpClient httpClient, + ref string namespaceId, + ref string catalogId); + partial void PrepareDeleteCatalogRequest( + global::System.Net.Http.HttpClient httpClient, + global::System.Net.Http.HttpRequestMessage httpRequestMessage, + string namespaceId, + string catalogId); + partial void ProcessDeleteCatalogResponse( + global::System.Net.Http.HttpClient httpClient, + global::System.Net.Http.HttpResponseMessage httpResponseMessage); + + partial void ProcessDeleteCatalogResponseContent( + global::System.Net.Http.HttpClient httpClient, + global::System.Net.Http.HttpResponseMessage httpResponseMessage, + ref string content); + + /// + /// Delete a catalog + /// + /// + /// + /// The token to cancel the operation with + /// + public async global::System.Threading.Tasks.Task DeleteCatalogAsync( + string namespaceId, + string catalogId, + global::System.Threading.CancellationToken cancellationToken = default) + { + PrepareArguments( + client: _httpClient); + PrepareDeleteCatalogArguments( + httpClient: _httpClient, + namespaceId: ref namespaceId, + catalogId: ref catalogId); + + using var httpRequest = new global::System.Net.Http.HttpRequestMessage( + method: global::System.Net.Http.HttpMethod.Delete, + requestUri: new global::System.Uri(_httpClient.BaseAddress?.AbsoluteUri.TrimEnd('/') + $"/v1alpha/namespaces/{namespaceId}/catalogs/{catalogId}", global::System.UriKind.RelativeOrAbsolute)); + + PrepareRequest( + client: _httpClient, + request: httpRequest); + PrepareDeleteCatalogRequest( + httpClient: _httpClient, + httpRequestMessage: httpRequest, + namespaceId: namespaceId, + catalogId: catalogId); + + using var response = await _httpClient.SendAsync( + request: httpRequest, + completionOption: global::System.Net.Http.HttpCompletionOption.ResponseContentRead, + cancellationToken: cancellationToken).ConfigureAwait(false); + + ProcessResponse( + client: _httpClient, + response: response); + ProcessDeleteCatalogResponse( + httpClient: _httpClient, + httpResponseMessage: response); + + var __content = await response.Content.ReadAsStringAsync(cancellationToken).ConfigureAwait(false); + + ProcessResponseContent( + client: _httpClient, + response: response, + content: ref __content); + ProcessDeleteCatalogResponseContent( + httpClient: _httpClient, + httpResponseMessage: response, + content: ref __content); + + try + { + response.EnsureSuccessStatusCode(); + } + catch (global::System.Net.Http.HttpRequestException ex) + { + throw new global::System.InvalidOperationException(__content, ex); + } + + return + global::System.Text.Json.JsonSerializer.Deserialize(__content, typeof(global::Instill.DeleteCatalogResponse), JsonSerializerContext) as global::Instill.DeleteCatalogResponse ?? + throw new global::System.InvalidOperationException($"Response deserialization failed for \"{__content}\" "); + } + } +} \ No newline at end of file diff --git a/src/libs/Instill/Generated/Instill.CatalogClient.DeleteCatalogFile.g.cs b/src/libs/Instill/Generated/Instill.CatalogClient.DeleteCatalogFile.g.cs new file mode 100644 index 0000000..9e9f402 --- /dev/null +++ b/src/libs/Instill/Generated/Instill.CatalogClient.DeleteCatalogFile.g.cs @@ -0,0 +1,89 @@ + +#nullable enable + +namespace Instill +{ + public partial class CatalogClient + { + partial void PrepareDeleteCatalogFileArguments( + global::System.Net.Http.HttpClient httpClient, + ref string fileUid); + partial void PrepareDeleteCatalogFileRequest( + global::System.Net.Http.HttpClient httpClient, + global::System.Net.Http.HttpRequestMessage httpRequestMessage, + string fileUid); + partial void ProcessDeleteCatalogFileResponse( + global::System.Net.Http.HttpClient httpClient, + global::System.Net.Http.HttpResponseMessage httpResponseMessage); + + partial void ProcessDeleteCatalogFileResponseContent( + global::System.Net.Http.HttpClient httpClient, + global::System.Net.Http.HttpResponseMessage httpResponseMessage, + ref string content); + + /// + /// Delete a file + /// + /// + /// The token to cancel the operation with + /// + public async global::System.Threading.Tasks.Task DeleteCatalogFileAsync( + string fileUid, + global::System.Threading.CancellationToken cancellationToken = default) + { + PrepareArguments( + client: _httpClient); + PrepareDeleteCatalogFileArguments( + httpClient: _httpClient, + fileUid: ref fileUid); + + using var httpRequest = new global::System.Net.Http.HttpRequestMessage( + method: global::System.Net.Http.HttpMethod.Delete, + requestUri: new global::System.Uri(_httpClient.BaseAddress?.AbsoluteUri.TrimEnd('/') + $"/v1alpha/catalogs/files?fileUid={fileUid}", global::System.UriKind.RelativeOrAbsolute)); + + PrepareRequest( + client: _httpClient, + request: httpRequest); + PrepareDeleteCatalogFileRequest( + httpClient: _httpClient, + httpRequestMessage: httpRequest, + fileUid: fileUid); + + using var response = await _httpClient.SendAsync( + request: httpRequest, + completionOption: global::System.Net.Http.HttpCompletionOption.ResponseContentRead, + cancellationToken: cancellationToken).ConfigureAwait(false); + + ProcessResponse( + client: _httpClient, + response: response); + ProcessDeleteCatalogFileResponse( + httpClient: _httpClient, + httpResponseMessage: response); + + var __content = await response.Content.ReadAsStringAsync(cancellationToken).ConfigureAwait(false); + + ProcessResponseContent( + client: _httpClient, + response: response, + content: ref __content); + ProcessDeleteCatalogFileResponseContent( + httpClient: _httpClient, + httpResponseMessage: response, + content: ref __content); + + try + { + response.EnsureSuccessStatusCode(); + } + catch (global::System.Net.Http.HttpRequestException ex) + { + throw new global::System.InvalidOperationException(__content, ex); + } + + return + global::System.Text.Json.JsonSerializer.Deserialize(__content, typeof(global::Instill.DeleteCatalogFileResponse), JsonSerializerContext) as global::Instill.DeleteCatalogFileResponse ?? + throw new global::System.InvalidOperationException($"Response deserialization failed for \"{__content}\" "); + } + } +} \ No newline at end of file diff --git a/src/libs/Instill/Generated/Instill.CatalogClient.GetFileCatalog.g.cs b/src/libs/Instill/Generated/Instill.CatalogClient.GetFileCatalog.g.cs new file mode 100644 index 0000000..ad682a7 --- /dev/null +++ b/src/libs/Instill/Generated/Instill.CatalogClient.GetFileCatalog.g.cs @@ -0,0 +1,107 @@ + +#nullable enable + +namespace Instill +{ + public partial class CatalogClient + { + partial void PrepareGetFileCatalogArguments( + global::System.Net.Http.HttpClient httpClient, + ref string namespaceId, + ref string catalogId, + ref string? fileId, + ref string? fileUid); + partial void PrepareGetFileCatalogRequest( + global::System.Net.Http.HttpClient httpClient, + global::System.Net.Http.HttpRequestMessage httpRequestMessage, + string namespaceId, + string catalogId, + string? fileId, + string? fileUid); + partial void ProcessGetFileCatalogResponse( + global::System.Net.Http.HttpClient httpClient, + global::System.Net.Http.HttpResponseMessage httpResponseMessage); + + partial void ProcessGetFileCatalogResponseContent( + global::System.Net.Http.HttpClient httpClient, + global::System.Net.Http.HttpResponseMessage httpResponseMessage, + ref string content); + + /// + /// Get file catalog + /// + /// + /// + /// + /// + /// The token to cancel the operation with + /// + public async global::System.Threading.Tasks.Task GetFileCatalogAsync( + string namespaceId, + string catalogId, + string? fileId = default, + string? fileUid = default, + global::System.Threading.CancellationToken cancellationToken = default) + { + PrepareArguments( + client: _httpClient); + PrepareGetFileCatalogArguments( + httpClient: _httpClient, + namespaceId: ref namespaceId, + catalogId: ref catalogId, + fileId: ref fileId, + fileUid: ref fileUid); + + using var httpRequest = new global::System.Net.Http.HttpRequestMessage( + method: global::System.Net.Http.HttpMethod.Get, + requestUri: new global::System.Uri(_httpClient.BaseAddress?.AbsoluteUri.TrimEnd('/') + $"/v1alpha/namespaces/{namespaceId}/catalogs/{catalogId}?fileId={fileId}&fileUid={fileUid}", global::System.UriKind.RelativeOrAbsolute)); + + PrepareRequest( + client: _httpClient, + request: httpRequest); + PrepareGetFileCatalogRequest( + httpClient: _httpClient, + httpRequestMessage: httpRequest, + namespaceId: namespaceId, + catalogId: catalogId, + fileId: fileId, + fileUid: fileUid); + + using var response = await _httpClient.SendAsync( + request: httpRequest, + completionOption: global::System.Net.Http.HttpCompletionOption.ResponseContentRead, + cancellationToken: cancellationToken).ConfigureAwait(false); + + ProcessResponse( + client: _httpClient, + response: response); + ProcessGetFileCatalogResponse( + httpClient: _httpClient, + httpResponseMessage: response); + + var __content = await response.Content.ReadAsStringAsync(cancellationToken).ConfigureAwait(false); + + ProcessResponseContent( + client: _httpClient, + response: response, + content: ref __content); + ProcessGetFileCatalogResponseContent( + httpClient: _httpClient, + httpResponseMessage: response, + content: ref __content); + + try + { + response.EnsureSuccessStatusCode(); + } + catch (global::System.Net.Http.HttpRequestException ex) + { + throw new global::System.InvalidOperationException(__content, ex); + } + + return + global::System.Text.Json.JsonSerializer.Deserialize(__content, typeof(global::Instill.GetFileCatalogResponse), JsonSerializerContext) as global::Instill.GetFileCatalogResponse ?? + throw new global::System.InvalidOperationException($"Response deserialization failed for \"{__content}\" "); + } + } +} \ No newline at end of file diff --git a/src/libs/Instill/Generated/Instill.CatalogClient.GetSourceFile.g.cs b/src/libs/Instill/Generated/Instill.CatalogClient.GetSourceFile.g.cs new file mode 100644 index 0000000..ca8a72c --- /dev/null +++ b/src/libs/Instill/Generated/Instill.CatalogClient.GetSourceFile.g.cs @@ -0,0 +1,101 @@ + +#nullable enable + +namespace Instill +{ + public partial class CatalogClient + { + partial void PrepareGetSourceFileArguments( + global::System.Net.Http.HttpClient httpClient, + ref string namespaceId, + ref string catalogId, + ref string fileUid); + partial void PrepareGetSourceFileRequest( + global::System.Net.Http.HttpClient httpClient, + global::System.Net.Http.HttpRequestMessage httpRequestMessage, + string namespaceId, + string catalogId, + string fileUid); + partial void ProcessGetSourceFileResponse( + global::System.Net.Http.HttpClient httpClient, + global::System.Net.Http.HttpResponseMessage httpResponseMessage); + + partial void ProcessGetSourceFileResponseContent( + global::System.Net.Http.HttpClient httpClient, + global::System.Net.Http.HttpResponseMessage httpResponseMessage, + ref string content); + + /// + /// Get catalog single-source-of-truth file + /// + /// + /// + /// + /// The token to cancel the operation with + /// + public async global::System.Threading.Tasks.Task GetSourceFileAsync( + string namespaceId, + string catalogId, + string fileUid, + global::System.Threading.CancellationToken cancellationToken = default) + { + PrepareArguments( + client: _httpClient); + PrepareGetSourceFileArguments( + httpClient: _httpClient, + namespaceId: ref namespaceId, + catalogId: ref catalogId, + fileUid: ref fileUid); + + using var httpRequest = new global::System.Net.Http.HttpRequestMessage( + method: global::System.Net.Http.HttpMethod.Get, + requestUri: new global::System.Uri(_httpClient.BaseAddress?.AbsoluteUri.TrimEnd('/') + $"/v1alpha/namespaces/{namespaceId}/catalogs/{catalogId}/files/{fileUid}/source", global::System.UriKind.RelativeOrAbsolute)); + + PrepareRequest( + client: _httpClient, + request: httpRequest); + PrepareGetSourceFileRequest( + httpClient: _httpClient, + httpRequestMessage: httpRequest, + namespaceId: namespaceId, + catalogId: catalogId, + fileUid: fileUid); + + using var response = await _httpClient.SendAsync( + request: httpRequest, + completionOption: global::System.Net.Http.HttpCompletionOption.ResponseContentRead, + cancellationToken: cancellationToken).ConfigureAwait(false); + + ProcessResponse( + client: _httpClient, + response: response); + ProcessGetSourceFileResponse( + httpClient: _httpClient, + httpResponseMessage: response); + + var __content = await response.Content.ReadAsStringAsync(cancellationToken).ConfigureAwait(false); + + ProcessResponseContent( + client: _httpClient, + response: response, + content: ref __content); + ProcessGetSourceFileResponseContent( + httpClient: _httpClient, + httpResponseMessage: response, + content: ref __content); + + try + { + response.EnsureSuccessStatusCode(); + } + catch (global::System.Net.Http.HttpRequestException ex) + { + throw new global::System.InvalidOperationException(__content, ex); + } + + return + global::System.Text.Json.JsonSerializer.Deserialize(__content, typeof(global::Instill.GetSourceFileResponse), JsonSerializerContext) as global::Instill.GetSourceFileResponse ?? + throw new global::System.InvalidOperationException($"Response deserialization failed for \"{__content}\" "); + } + } +} \ No newline at end of file diff --git a/src/libs/Instill/Generated/Instill.CatalogClient.ListCatalogFiles.g.cs b/src/libs/Instill/Generated/Instill.CatalogClient.ListCatalogFiles.g.cs new file mode 100644 index 0000000..bb0853e --- /dev/null +++ b/src/libs/Instill/Generated/Instill.CatalogClient.ListCatalogFiles.g.cs @@ -0,0 +1,114 @@ +using System.Linq; + +#nullable enable + +namespace Instill +{ + public partial class CatalogClient + { + partial void PrepareListCatalogFilesArguments( + global::System.Net.Http.HttpClient httpClient, + ref string namespaceId, + ref string catalogId, + ref int pageSize, + ref string? pageToken, + global::System.Collections.Generic.IList? filterFileUids); + partial void PrepareListCatalogFilesRequest( + global::System.Net.Http.HttpClient httpClient, + global::System.Net.Http.HttpRequestMessage httpRequestMessage, + string namespaceId, + string catalogId, + int pageSize, + string? pageToken, + global::System.Collections.Generic.IList? filterFileUids); + partial void ProcessListCatalogFilesResponse( + global::System.Net.Http.HttpClient httpClient, + global::System.Net.Http.HttpResponseMessage httpResponseMessage); + + partial void ProcessListCatalogFilesResponseContent( + global::System.Net.Http.HttpClient httpClient, + global::System.Net.Http.HttpResponseMessage httpResponseMessage, + ref string content); + + /// + /// List catalog files + /// + /// + /// + /// + /// + /// + /// The token to cancel the operation with + /// + public async global::System.Threading.Tasks.Task ListCatalogFilesAsync( + string namespaceId, + string catalogId, + int pageSize = default, + string? pageToken = default, + global::System.Collections.Generic.IList? filterFileUids = default, + global::System.Threading.CancellationToken cancellationToken = default) + { + PrepareArguments( + client: _httpClient); + PrepareListCatalogFilesArguments( + httpClient: _httpClient, + namespaceId: ref namespaceId, + catalogId: ref catalogId, + pageSize: ref pageSize, + pageToken: ref pageToken, + filterFileUids: filterFileUids); + + using var httpRequest = new global::System.Net.Http.HttpRequestMessage( + method: global::System.Net.Http.HttpMethod.Get, + requestUri: new global::System.Uri(_httpClient.BaseAddress?.AbsoluteUri.TrimEnd('/') + $"/v1alpha/namespaces/{namespaceId}/catalogs/{catalogId}/files?pageSize={pageSize}&pageToken={pageToken}&{string.Join("&", filterFileUids?.Select(static x => $"filterFileUids={x}") ?? global::System.Array.Empty())}", global::System.UriKind.RelativeOrAbsolute)); + + PrepareRequest( + client: _httpClient, + request: httpRequest); + PrepareListCatalogFilesRequest( + httpClient: _httpClient, + httpRequestMessage: httpRequest, + namespaceId: namespaceId, + catalogId: catalogId, + pageSize: pageSize, + pageToken: pageToken, + filterFileUids: filterFileUids); + + using var response = await _httpClient.SendAsync( + request: httpRequest, + completionOption: global::System.Net.Http.HttpCompletionOption.ResponseContentRead, + cancellationToken: cancellationToken).ConfigureAwait(false); + + ProcessResponse( + client: _httpClient, + response: response); + ProcessListCatalogFilesResponse( + httpClient: _httpClient, + httpResponseMessage: response); + + var __content = await response.Content.ReadAsStringAsync(cancellationToken).ConfigureAwait(false); + + ProcessResponseContent( + client: _httpClient, + response: response, + content: ref __content); + ProcessListCatalogFilesResponseContent( + httpClient: _httpClient, + httpResponseMessage: response, + content: ref __content); + + try + { + response.EnsureSuccessStatusCode(); + } + catch (global::System.Net.Http.HttpRequestException ex) + { + throw new global::System.InvalidOperationException(__content, ex); + } + + return + global::System.Text.Json.JsonSerializer.Deserialize(__content, typeof(global::Instill.ListCatalogFilesResponse), JsonSerializerContext) as global::Instill.ListCatalogFilesResponse ?? + throw new global::System.InvalidOperationException($"Response deserialization failed for \"{__content}\" "); + } + } +} \ No newline at end of file diff --git a/src/libs/Instill/Generated/Instill.CatalogClient.ListCatalogs.g.cs b/src/libs/Instill/Generated/Instill.CatalogClient.ListCatalogs.g.cs new file mode 100644 index 0000000..f124b55 --- /dev/null +++ b/src/libs/Instill/Generated/Instill.CatalogClient.ListCatalogs.g.cs @@ -0,0 +1,89 @@ + +#nullable enable + +namespace Instill +{ + public partial class CatalogClient + { + partial void PrepareListCatalogsArguments( + global::System.Net.Http.HttpClient httpClient, + ref string namespaceId); + partial void PrepareListCatalogsRequest( + global::System.Net.Http.HttpClient httpClient, + global::System.Net.Http.HttpRequestMessage httpRequestMessage, + string namespaceId); + partial void ProcessListCatalogsResponse( + global::System.Net.Http.HttpClient httpClient, + global::System.Net.Http.HttpResponseMessage httpResponseMessage); + + partial void ProcessListCatalogsResponseContent( + global::System.Net.Http.HttpClient httpClient, + global::System.Net.Http.HttpResponseMessage httpResponseMessage, + ref string content); + + /// + /// Get all catalogs info + /// + /// + /// The token to cancel the operation with + /// + public async global::System.Threading.Tasks.Task ListCatalogsAsync( + string namespaceId, + global::System.Threading.CancellationToken cancellationToken = default) + { + PrepareArguments( + client: _httpClient); + PrepareListCatalogsArguments( + httpClient: _httpClient, + namespaceId: ref namespaceId); + + using var httpRequest = new global::System.Net.Http.HttpRequestMessage( + method: global::System.Net.Http.HttpMethod.Get, + requestUri: new global::System.Uri(_httpClient.BaseAddress?.AbsoluteUri.TrimEnd('/') + $"/v1alpha/namespaces/{namespaceId}/catalogs", global::System.UriKind.RelativeOrAbsolute)); + + PrepareRequest( + client: _httpClient, + request: httpRequest); + PrepareListCatalogsRequest( + httpClient: _httpClient, + httpRequestMessage: httpRequest, + namespaceId: namespaceId); + + using var response = await _httpClient.SendAsync( + request: httpRequest, + completionOption: global::System.Net.Http.HttpCompletionOption.ResponseContentRead, + cancellationToken: cancellationToken).ConfigureAwait(false); + + ProcessResponse( + client: _httpClient, + response: response); + ProcessListCatalogsResponse( + httpClient: _httpClient, + httpResponseMessage: response); + + var __content = await response.Content.ReadAsStringAsync(cancellationToken).ConfigureAwait(false); + + ProcessResponseContent( + client: _httpClient, + response: response, + content: ref __content); + ProcessListCatalogsResponseContent( + httpClient: _httpClient, + httpResponseMessage: response, + content: ref __content); + + try + { + response.EnsureSuccessStatusCode(); + } + catch (global::System.Net.Http.HttpRequestException ex) + { + throw new global::System.InvalidOperationException(__content, ex); + } + + return + global::System.Text.Json.JsonSerializer.Deserialize(__content, typeof(global::Instill.ListCatalogsResponse), JsonSerializerContext) as global::Instill.ListCatalogsResponse ?? + throw new global::System.InvalidOperationException($"Response deserialization failed for \"{__content}\" "); + } + } +} \ No newline at end of file diff --git a/src/libs/Instill/Generated/Instill.CatalogClient.ListChunks.g.cs b/src/libs/Instill/Generated/Instill.CatalogClient.ListChunks.g.cs new file mode 100644 index 0000000..71587ae --- /dev/null +++ b/src/libs/Instill/Generated/Instill.CatalogClient.ListChunks.g.cs @@ -0,0 +1,101 @@ + +#nullable enable + +namespace Instill +{ + public partial class CatalogClient + { + partial void PrepareListChunksArguments( + global::System.Net.Http.HttpClient httpClient, + ref string namespaceId, + ref string catalogId, + ref string? fileUid); + partial void PrepareListChunksRequest( + global::System.Net.Http.HttpClient httpClient, + global::System.Net.Http.HttpRequestMessage httpRequestMessage, + string namespaceId, + string catalogId, + string? fileUid); + partial void ProcessListChunksResponse( + global::System.Net.Http.HttpClient httpClient, + global::System.Net.Http.HttpResponseMessage httpResponseMessage); + + partial void ProcessListChunksResponseContent( + global::System.Net.Http.HttpClient httpClient, + global::System.Net.Http.HttpResponseMessage httpResponseMessage, + ref string content); + + /// + /// List catalog chunks + /// + /// + /// + /// + /// The token to cancel the operation with + /// + public async global::System.Threading.Tasks.Task ListChunksAsync( + string namespaceId, + string catalogId, + string? fileUid = default, + global::System.Threading.CancellationToken cancellationToken = default) + { + PrepareArguments( + client: _httpClient); + PrepareListChunksArguments( + httpClient: _httpClient, + namespaceId: ref namespaceId, + catalogId: ref catalogId, + fileUid: ref fileUid); + + using var httpRequest = new global::System.Net.Http.HttpRequestMessage( + method: global::System.Net.Http.HttpMethod.Get, + requestUri: new global::System.Uri(_httpClient.BaseAddress?.AbsoluteUri.TrimEnd('/') + $"/v1alpha/namespaces/{namespaceId}/catalogs/{catalogId}/chunks?fileUid={fileUid}", global::System.UriKind.RelativeOrAbsolute)); + + PrepareRequest( + client: _httpClient, + request: httpRequest); + PrepareListChunksRequest( + httpClient: _httpClient, + httpRequestMessage: httpRequest, + namespaceId: namespaceId, + catalogId: catalogId, + fileUid: fileUid); + + using var response = await _httpClient.SendAsync( + request: httpRequest, + completionOption: global::System.Net.Http.HttpCompletionOption.ResponseContentRead, + cancellationToken: cancellationToken).ConfigureAwait(false); + + ProcessResponse( + client: _httpClient, + response: response); + ProcessListChunksResponse( + httpClient: _httpClient, + httpResponseMessage: response); + + var __content = await response.Content.ReadAsStringAsync(cancellationToken).ConfigureAwait(false); + + ProcessResponseContent( + client: _httpClient, + response: response, + content: ref __content); + ProcessListChunksResponseContent( + httpClient: _httpClient, + httpResponseMessage: response, + content: ref __content); + + try + { + response.EnsureSuccessStatusCode(); + } + catch (global::System.Net.Http.HttpRequestException ex) + { + throw new global::System.InvalidOperationException(__content, ex); + } + + return + global::System.Text.Json.JsonSerializer.Deserialize(__content, typeof(global::Instill.ListChunksResponse), JsonSerializerContext) as global::Instill.ListChunksResponse ?? + throw new global::System.InvalidOperationException($"Response deserialization failed for \"{__content}\" "); + } + } +} \ No newline at end of file diff --git a/src/libs/Instill/Generated/Instill.CatalogClient.ProcessCatalogFiles.g.cs b/src/libs/Instill/Generated/Instill.CatalogClient.ProcessCatalogFiles.g.cs new file mode 100644 index 0000000..f2ed85c --- /dev/null +++ b/src/libs/Instill/Generated/Instill.CatalogClient.ProcessCatalogFiles.g.cs @@ -0,0 +1,119 @@ + +#nullable enable + +namespace Instill +{ + public partial class CatalogClient + { + partial void PrepareProcessCatalogFilesArguments( + global::System.Net.Http.HttpClient httpClient, + global::Instill.ProcessCatalogFilesRequest request); + partial void PrepareProcessCatalogFilesRequest( + global::System.Net.Http.HttpClient httpClient, + global::System.Net.Http.HttpRequestMessage httpRequestMessage, + global::Instill.ProcessCatalogFilesRequest request); + partial void ProcessProcessCatalogFilesResponse( + global::System.Net.Http.HttpClient httpClient, + global::System.Net.Http.HttpResponseMessage httpResponseMessage); + + partial void ProcessProcessCatalogFilesResponseContent( + global::System.Net.Http.HttpClient httpClient, + global::System.Net.Http.HttpResponseMessage httpResponseMessage, + ref string content); + + /// + /// Process catalog files + /// + /// + /// The token to cancel the operation with + /// + public async global::System.Threading.Tasks.Task ProcessCatalogFilesAsync( + global::Instill.ProcessCatalogFilesRequest request, + global::System.Threading.CancellationToken cancellationToken = default) + { + request = request ?? throw new global::System.ArgumentNullException(nameof(request)); + + PrepareArguments( + client: _httpClient); + PrepareProcessCatalogFilesArguments( + httpClient: _httpClient, + request: request); + + using var httpRequest = new global::System.Net.Http.HttpRequestMessage( + method: global::System.Net.Http.HttpMethod.Post, + requestUri: new global::System.Uri(_httpClient.BaseAddress?.AbsoluteUri.TrimEnd('/') + "/v1alpha/catalogs/files/processAsync", global::System.UriKind.RelativeOrAbsolute)); + var __httpRequestContentBody = global::System.Text.Json.JsonSerializer.Serialize(request, request.GetType(), JsonSerializerContext); + var __httpRequestContent = new global::System.Net.Http.StringContent( + content: __httpRequestContentBody, + encoding: global::System.Text.Encoding.UTF8, + mediaType: "application/json"); + httpRequest.Content = __httpRequestContent; + + PrepareRequest( + client: _httpClient, + request: httpRequest); + PrepareProcessCatalogFilesRequest( + httpClient: _httpClient, + httpRequestMessage: httpRequest, + request: request); + + using var response = await _httpClient.SendAsync( + request: httpRequest, + completionOption: global::System.Net.Http.HttpCompletionOption.ResponseContentRead, + cancellationToken: cancellationToken).ConfigureAwait(false); + + ProcessResponse( + client: _httpClient, + response: response); + ProcessProcessCatalogFilesResponse( + httpClient: _httpClient, + httpResponseMessage: response); + + var __content = await response.Content.ReadAsStringAsync(cancellationToken).ConfigureAwait(false); + + ProcessResponseContent( + client: _httpClient, + response: response, + content: ref __content); + ProcessProcessCatalogFilesResponseContent( + httpClient: _httpClient, + httpResponseMessage: response, + content: ref __content); + + try + { + response.EnsureSuccessStatusCode(); + } + catch (global::System.Net.Http.HttpRequestException ex) + { + throw new global::System.InvalidOperationException(__content, ex); + } + + return + global::System.Text.Json.JsonSerializer.Deserialize(__content, typeof(global::Instill.ProcessCatalogFilesResponse), JsonSerializerContext) as global::Instill.ProcessCatalogFilesResponse ?? + throw new global::System.InvalidOperationException($"Response deserialization failed for \"{__content}\" "); + } + + /// + /// Process catalog files + /// + /// + /// The file uid. + /// + /// The token to cancel the operation with + /// + public async global::System.Threading.Tasks.Task ProcessCatalogFilesAsync( + global::System.Collections.Generic.IList fileUids, + global::System.Threading.CancellationToken cancellationToken = default) + { + var request = new global::Instill.ProcessCatalogFilesRequest + { + FileUids = fileUids, + }; + + return await ProcessCatalogFilesAsync( + request: request, + cancellationToken: cancellationToken).ConfigureAwait(false); + } + } +} \ No newline at end of file diff --git a/src/libs/Instill/Generated/Instill.CatalogClient.QuestionAnswering.g.cs b/src/libs/Instill/Generated/Instill.CatalogClient.QuestionAnswering.g.cs new file mode 100644 index 0000000..ed675a0 --- /dev/null +++ b/src/libs/Instill/Generated/Instill.CatalogClient.QuestionAnswering.g.cs @@ -0,0 +1,138 @@ + +#nullable enable + +namespace Instill +{ + public partial class CatalogClient + { + partial void PrepareQuestionAnsweringArguments( + global::System.Net.Http.HttpClient httpClient, + ref string namespaceId, + ref string catalogId, + global::Instill.QuestionAnsweringBody request); + partial void PrepareQuestionAnsweringRequest( + global::System.Net.Http.HttpClient httpClient, + global::System.Net.Http.HttpRequestMessage httpRequestMessage, + string namespaceId, + string catalogId, + global::Instill.QuestionAnsweringBody request); + partial void ProcessQuestionAnsweringResponse( + global::System.Net.Http.HttpClient httpClient, + global::System.Net.Http.HttpResponseMessage httpResponseMessage); + + partial void ProcessQuestionAnsweringResponseContent( + global::System.Net.Http.HttpClient httpClient, + global::System.Net.Http.HttpResponseMessage httpResponseMessage, + ref string content); + + /// + /// Ask a question + /// + /// + /// + /// + /// The token to cancel the operation with + /// + public async global::System.Threading.Tasks.Task QuestionAnsweringAsync( + string namespaceId, + string catalogId, + global::Instill.QuestionAnsweringBody request, + global::System.Threading.CancellationToken cancellationToken = default) + { + request = request ?? throw new global::System.ArgumentNullException(nameof(request)); + + PrepareArguments( + client: _httpClient); + PrepareQuestionAnsweringArguments( + httpClient: _httpClient, + namespaceId: ref namespaceId, + catalogId: ref catalogId, + request: request); + + using var httpRequest = new global::System.Net.Http.HttpRequestMessage( + method: global::System.Net.Http.HttpMethod.Post, + requestUri: new global::System.Uri(_httpClient.BaseAddress?.AbsoluteUri.TrimEnd('/') + $"/v1alpha/namespaces/{namespaceId}/catalogs/{catalogId}/ask", global::System.UriKind.RelativeOrAbsolute)); + var __httpRequestContentBody = global::System.Text.Json.JsonSerializer.Serialize(request, request.GetType(), JsonSerializerContext); + var __httpRequestContent = new global::System.Net.Http.StringContent( + content: __httpRequestContentBody, + encoding: global::System.Text.Encoding.UTF8, + mediaType: "application/json"); + httpRequest.Content = __httpRequestContent; + + PrepareRequest( + client: _httpClient, + request: httpRequest); + PrepareQuestionAnsweringRequest( + httpClient: _httpClient, + httpRequestMessage: httpRequest, + namespaceId: namespaceId, + catalogId: catalogId, + request: request); + + using var response = await _httpClient.SendAsync( + request: httpRequest, + completionOption: global::System.Net.Http.HttpCompletionOption.ResponseContentRead, + cancellationToken: cancellationToken).ConfigureAwait(false); + + ProcessResponse( + client: _httpClient, + response: response); + ProcessQuestionAnsweringResponse( + httpClient: _httpClient, + httpResponseMessage: response); + + var __content = await response.Content.ReadAsStringAsync(cancellationToken).ConfigureAwait(false); + + ProcessResponseContent( + client: _httpClient, + response: response, + content: ref __content); + ProcessQuestionAnsweringResponseContent( + httpClient: _httpClient, + httpResponseMessage: response, + content: ref __content); + + try + { + response.EnsureSuccessStatusCode(); + } + catch (global::System.Net.Http.HttpRequestException ex) + { + throw new global::System.InvalidOperationException(__content, ex); + } + + return + global::System.Text.Json.JsonSerializer.Deserialize(__content, typeof(global::Instill.QuestionAnsweringResponse), JsonSerializerContext) as global::Instill.QuestionAnsweringResponse ?? + throw new global::System.InvalidOperationException($"Response deserialization failed for \"{__content}\" "); + } + + /// + /// Ask a question + /// + /// + /// + /// + /// + /// The token to cancel the operation with + /// + public async global::System.Threading.Tasks.Task QuestionAnsweringAsync( + string namespaceId, + string catalogId, + string? question = default, + int topK = default, + global::System.Threading.CancellationToken cancellationToken = default) + { + var request = new global::Instill.QuestionAnsweringBody + { + Question = question, + TopK = topK, + }; + + return await QuestionAnsweringAsync( + namespaceId: namespaceId, + catalogId: catalogId, + request: request, + cancellationToken: cancellationToken).ConfigureAwait(false); + } + } +} \ No newline at end of file diff --git a/src/libs/Instill/Generated/Instill.CatalogClient.SimilarityChunksSearch.g.cs b/src/libs/Instill/Generated/Instill.CatalogClient.SimilarityChunksSearch.g.cs new file mode 100644 index 0000000..bb3e13f --- /dev/null +++ b/src/libs/Instill/Generated/Instill.CatalogClient.SimilarityChunksSearch.g.cs @@ -0,0 +1,138 @@ + +#nullable enable + +namespace Instill +{ + public partial class CatalogClient + { + partial void PrepareSimilarityChunksSearchArguments( + global::System.Net.Http.HttpClient httpClient, + ref string namespaceId, + ref string catalogId, + global::Instill.SimilarityChunksSearchBody request); + partial void PrepareSimilarityChunksSearchRequest( + global::System.Net.Http.HttpClient httpClient, + global::System.Net.Http.HttpRequestMessage httpRequestMessage, + string namespaceId, + string catalogId, + global::Instill.SimilarityChunksSearchBody request); + partial void ProcessSimilarityChunksSearchResponse( + global::System.Net.Http.HttpClient httpClient, + global::System.Net.Http.HttpResponseMessage httpResponseMessage); + + partial void ProcessSimilarityChunksSearchResponseContent( + global::System.Net.Http.HttpClient httpClient, + global::System.Net.Http.HttpResponseMessage httpResponseMessage, + ref string content); + + /// + /// Retrieve similar chunks + /// + /// + /// + /// + /// The token to cancel the operation with + /// + public async global::System.Threading.Tasks.Task SimilarityChunksSearchAsync( + string namespaceId, + string catalogId, + global::Instill.SimilarityChunksSearchBody request, + global::System.Threading.CancellationToken cancellationToken = default) + { + request = request ?? throw new global::System.ArgumentNullException(nameof(request)); + + PrepareArguments( + client: _httpClient); + PrepareSimilarityChunksSearchArguments( + httpClient: _httpClient, + namespaceId: ref namespaceId, + catalogId: ref catalogId, + request: request); + + using var httpRequest = new global::System.Net.Http.HttpRequestMessage( + method: global::System.Net.Http.HttpMethod.Post, + requestUri: new global::System.Uri(_httpClient.BaseAddress?.AbsoluteUri.TrimEnd('/') + $"/v1alpha/namespaces/{namespaceId}/catalogs/{catalogId}/chunks/retrieve", global::System.UriKind.RelativeOrAbsolute)); + var __httpRequestContentBody = global::System.Text.Json.JsonSerializer.Serialize(request, request.GetType(), JsonSerializerContext); + var __httpRequestContent = new global::System.Net.Http.StringContent( + content: __httpRequestContentBody, + encoding: global::System.Text.Encoding.UTF8, + mediaType: "application/json"); + httpRequest.Content = __httpRequestContent; + + PrepareRequest( + client: _httpClient, + request: httpRequest); + PrepareSimilarityChunksSearchRequest( + httpClient: _httpClient, + httpRequestMessage: httpRequest, + namespaceId: namespaceId, + catalogId: catalogId, + request: request); + + using var response = await _httpClient.SendAsync( + request: httpRequest, + completionOption: global::System.Net.Http.HttpCompletionOption.ResponseContentRead, + cancellationToken: cancellationToken).ConfigureAwait(false); + + ProcessResponse( + client: _httpClient, + response: response); + ProcessSimilarityChunksSearchResponse( + httpClient: _httpClient, + httpResponseMessage: response); + + var __content = await response.Content.ReadAsStringAsync(cancellationToken).ConfigureAwait(false); + + ProcessResponseContent( + client: _httpClient, + response: response, + content: ref __content); + ProcessSimilarityChunksSearchResponseContent( + httpClient: _httpClient, + httpResponseMessage: response, + content: ref __content); + + try + { + response.EnsureSuccessStatusCode(); + } + catch (global::System.Net.Http.HttpRequestException ex) + { + throw new global::System.InvalidOperationException(__content, ex); + } + + return + global::System.Text.Json.JsonSerializer.Deserialize(__content, typeof(global::Instill.SimilarityChunksSearchResponse), JsonSerializerContext) as global::Instill.SimilarityChunksSearchResponse ?? + throw new global::System.InvalidOperationException($"Response deserialization failed for \"{__content}\" "); + } + + /// + /// Retrieve similar chunks + /// + /// + /// + /// + /// + /// The token to cancel the operation with + /// + public async global::System.Threading.Tasks.Task SimilarityChunksSearchAsync( + string namespaceId, + string catalogId, + string? textPrompt = default, + long topK = default, + global::System.Threading.CancellationToken cancellationToken = default) + { + var request = new global::Instill.SimilarityChunksSearchBody + { + TextPrompt = textPrompt, + TopK = topK, + }; + + return await SimilarityChunksSearchAsync( + namespaceId: namespaceId, + catalogId: catalogId, + request: request, + cancellationToken: cancellationToken).ConfigureAwait(false); + } + } +} \ No newline at end of file diff --git a/src/libs/Instill/Generated/Instill.CatalogClient.UpdateCatalog.g.cs b/src/libs/Instill/Generated/Instill.CatalogClient.UpdateCatalog.g.cs new file mode 100644 index 0000000..4801dfa --- /dev/null +++ b/src/libs/Instill/Generated/Instill.CatalogClient.UpdateCatalog.g.cs @@ -0,0 +1,142 @@ + +#nullable enable + +namespace Instill +{ + public partial class CatalogClient + { + partial void PrepareUpdateCatalogArguments( + global::System.Net.Http.HttpClient httpClient, + ref string namespaceId, + ref string catalogId, + global::Instill.UpdateCatalogBody request); + partial void PrepareUpdateCatalogRequest( + global::System.Net.Http.HttpClient httpClient, + global::System.Net.Http.HttpRequestMessage httpRequestMessage, + string namespaceId, + string catalogId, + global::Instill.UpdateCatalogBody request); + partial void ProcessUpdateCatalogResponse( + global::System.Net.Http.HttpClient httpClient, + global::System.Net.Http.HttpResponseMessage httpResponseMessage); + + partial void ProcessUpdateCatalogResponseContent( + global::System.Net.Http.HttpClient httpClient, + global::System.Net.Http.HttpResponseMessage httpResponseMessage, + ref string content); + + /// + /// Update a catalog info + /// + /// + /// + /// + /// The token to cancel the operation with + /// + public async global::System.Threading.Tasks.Task UpdateCatalogAsync( + string namespaceId, + string catalogId, + global::Instill.UpdateCatalogBody request, + global::System.Threading.CancellationToken cancellationToken = default) + { + request = request ?? throw new global::System.ArgumentNullException(nameof(request)); + + PrepareArguments( + client: _httpClient); + PrepareUpdateCatalogArguments( + httpClient: _httpClient, + namespaceId: ref namespaceId, + catalogId: ref catalogId, + request: request); + + using var httpRequest = new global::System.Net.Http.HttpRequestMessage( + method: global::System.Net.Http.HttpMethod.Put, + requestUri: new global::System.Uri(_httpClient.BaseAddress?.AbsoluteUri.TrimEnd('/') + $"/v1alpha/namespaces/{namespaceId}/catalogs/{catalogId}", global::System.UriKind.RelativeOrAbsolute)); + var __httpRequestContentBody = global::System.Text.Json.JsonSerializer.Serialize(request, request.GetType(), JsonSerializerContext); + var __httpRequestContent = new global::System.Net.Http.StringContent( + content: __httpRequestContentBody, + encoding: global::System.Text.Encoding.UTF8, + mediaType: "application/json"); + httpRequest.Content = __httpRequestContent; + + PrepareRequest( + client: _httpClient, + request: httpRequest); + PrepareUpdateCatalogRequest( + httpClient: _httpClient, + httpRequestMessage: httpRequest, + namespaceId: namespaceId, + catalogId: catalogId, + request: request); + + using var response = await _httpClient.SendAsync( + request: httpRequest, + completionOption: global::System.Net.Http.HttpCompletionOption.ResponseContentRead, + cancellationToken: cancellationToken).ConfigureAwait(false); + + ProcessResponse( + client: _httpClient, + response: response); + ProcessUpdateCatalogResponse( + httpClient: _httpClient, + httpResponseMessage: response); + + var __content = await response.Content.ReadAsStringAsync(cancellationToken).ConfigureAwait(false); + + ProcessResponseContent( + client: _httpClient, + response: response, + content: ref __content); + ProcessUpdateCatalogResponseContent( + httpClient: _httpClient, + httpResponseMessage: response, + content: ref __content); + + try + { + response.EnsureSuccessStatusCode(); + } + catch (global::System.Net.Http.HttpRequestException ex) + { + throw new global::System.InvalidOperationException(__content, ex); + } + + return + global::System.Text.Json.JsonSerializer.Deserialize(__content, typeof(global::Instill.UpdateCatalogResponse), JsonSerializerContext) as global::Instill.UpdateCatalogResponse ?? + throw new global::System.InvalidOperationException($"Response deserialization failed for \"{__content}\" "); + } + + /// + /// Update a catalog info + /// + /// + /// + /// + /// The catalog description. + /// + /// + /// The catalog tags. + /// + /// The token to cancel the operation with + /// + public async global::System.Threading.Tasks.Task UpdateCatalogAsync( + string namespaceId, + string catalogId, + string? description = default, + global::System.Collections.Generic.IList? tags = default, + global::System.Threading.CancellationToken cancellationToken = default) + { + var request = new global::Instill.UpdateCatalogBody + { + Description = description, + Tags = tags, + }; + + return await UpdateCatalogAsync( + namespaceId: namespaceId, + catalogId: catalogId, + request: request, + cancellationToken: cancellationToken).ConfigureAwait(false); + } + } +} \ No newline at end of file diff --git a/src/libs/Instill/Generated/Instill.CatalogClient.UpdateChunk.g.cs b/src/libs/Instill/Generated/Instill.CatalogClient.UpdateChunk.g.cs new file mode 100644 index 0000000..8199073 --- /dev/null +++ b/src/libs/Instill/Generated/Instill.CatalogClient.UpdateChunk.g.cs @@ -0,0 +1,126 @@ + +#nullable enable + +namespace Instill +{ + public partial class CatalogClient + { + partial void PrepareUpdateChunkArguments( + global::System.Net.Http.HttpClient httpClient, + ref string chunkUid, + global::Instill.UpdateChunkBody request); + partial void PrepareUpdateChunkRequest( + global::System.Net.Http.HttpClient httpClient, + global::System.Net.Http.HttpRequestMessage httpRequestMessage, + string chunkUid, + global::Instill.UpdateChunkBody request); + partial void ProcessUpdateChunkResponse( + global::System.Net.Http.HttpClient httpClient, + global::System.Net.Http.HttpResponseMessage httpResponseMessage); + + partial void ProcessUpdateChunkResponseContent( + global::System.Net.Http.HttpClient httpClient, + global::System.Net.Http.HttpResponseMessage httpResponseMessage, + ref string content); + + /// + /// Update catalog chunk + /// + /// + /// + /// The token to cancel the operation with + /// + public async global::System.Threading.Tasks.Task UpdateChunkAsync( + string chunkUid, + global::Instill.UpdateChunkBody request, + global::System.Threading.CancellationToken cancellationToken = default) + { + request = request ?? throw new global::System.ArgumentNullException(nameof(request)); + + PrepareArguments( + client: _httpClient); + PrepareUpdateChunkArguments( + httpClient: _httpClient, + chunkUid: ref chunkUid, + request: request); + + using var httpRequest = new global::System.Net.Http.HttpRequestMessage( + method: global::System.Net.Http.HttpMethod.Post, + requestUri: new global::System.Uri(_httpClient.BaseAddress?.AbsoluteUri.TrimEnd('/') + $"/v1alpha/chunks/{chunkUid}", global::System.UriKind.RelativeOrAbsolute)); + var __httpRequestContentBody = global::System.Text.Json.JsonSerializer.Serialize(request, request.GetType(), JsonSerializerContext); + var __httpRequestContent = new global::System.Net.Http.StringContent( + content: __httpRequestContentBody, + encoding: global::System.Text.Encoding.UTF8, + mediaType: "application/json"); + httpRequest.Content = __httpRequestContent; + + PrepareRequest( + client: _httpClient, + request: httpRequest); + PrepareUpdateChunkRequest( + httpClient: _httpClient, + httpRequestMessage: httpRequest, + chunkUid: chunkUid, + request: request); + + using var response = await _httpClient.SendAsync( + request: httpRequest, + completionOption: global::System.Net.Http.HttpCompletionOption.ResponseContentRead, + cancellationToken: cancellationToken).ConfigureAwait(false); + + ProcessResponse( + client: _httpClient, + response: response); + ProcessUpdateChunkResponse( + httpClient: _httpClient, + httpResponseMessage: response); + + var __content = await response.Content.ReadAsStringAsync(cancellationToken).ConfigureAwait(false); + + ProcessResponseContent( + client: _httpClient, + response: response, + content: ref __content); + ProcessUpdateChunkResponseContent( + httpClient: _httpClient, + httpResponseMessage: response, + content: ref __content); + + try + { + response.EnsureSuccessStatusCode(); + } + catch (global::System.Net.Http.HttpRequestException ex) + { + throw new global::System.InvalidOperationException(__content, ex); + } + + return + global::System.Text.Json.JsonSerializer.Deserialize(__content, typeof(global::Instill.UpdateChunkResponse), JsonSerializerContext) as global::Instill.UpdateChunkResponse ?? + throw new global::System.InvalidOperationException($"Response deserialization failed for \"{__content}\" "); + } + + /// + /// Update catalog chunk + /// + /// + /// + /// The token to cancel the operation with + /// + public async global::System.Threading.Tasks.Task UpdateChunkAsync( + string chunkUid, + bool retrievable = default, + global::System.Threading.CancellationToken cancellationToken = default) + { + var request = new global::Instill.UpdateChunkBody + { + Retrievable = retrievable, + }; + + return await UpdateChunkAsync( + chunkUid: chunkUid, + request: request, + cancellationToken: cancellationToken).ConfigureAwait(false); + } + } +} \ No newline at end of file diff --git a/src/libs/Instill/Generated/Instill.CatalogClient.UploadCatalogFile.g.cs b/src/libs/Instill/Generated/Instill.CatalogClient.UploadCatalogFile.g.cs new file mode 100644 index 0000000..3565912 --- /dev/null +++ b/src/libs/Instill/Generated/Instill.CatalogClient.UploadCatalogFile.g.cs @@ -0,0 +1,180 @@ + +#nullable enable + +namespace Instill +{ + public partial class CatalogClient + { + partial void PrepareUploadCatalogFileArguments( + global::System.Net.Http.HttpClient httpClient, + ref string namespaceId, + ref string catalogId, + global::Instill.File request); + partial void PrepareUploadCatalogFileRequest( + global::System.Net.Http.HttpClient httpClient, + global::System.Net.Http.HttpRequestMessage httpRequestMessage, + string namespaceId, + string catalogId, + global::Instill.File request); + partial void ProcessUploadCatalogFileResponse( + global::System.Net.Http.HttpClient httpClient, + global::System.Net.Http.HttpResponseMessage httpResponseMessage); + + partial void ProcessUploadCatalogFileResponseContent( + global::System.Net.Http.HttpClient httpClient, + global::System.Net.Http.HttpResponseMessage httpResponseMessage, + ref string content); + + /// + /// Create a file + /// + /// + /// + /// + /// The token to cancel the operation with + /// + public async global::System.Threading.Tasks.Task UploadCatalogFileAsync( + string namespaceId, + string catalogId, + global::Instill.File request, + global::System.Threading.CancellationToken cancellationToken = default) + { + request = request ?? throw new global::System.ArgumentNullException(nameof(request)); + + PrepareArguments( + client: _httpClient); + PrepareUploadCatalogFileArguments( + httpClient: _httpClient, + namespaceId: ref namespaceId, + catalogId: ref catalogId, + request: request); + + using var httpRequest = new global::System.Net.Http.HttpRequestMessage( + method: global::System.Net.Http.HttpMethod.Post, + requestUri: new global::System.Uri(_httpClient.BaseAddress?.AbsoluteUri.TrimEnd('/') + $"/v1alpha/namespaces/{namespaceId}/catalogs/{catalogId}/files", global::System.UriKind.RelativeOrAbsolute)); + var __httpRequestContentBody = global::System.Text.Json.JsonSerializer.Serialize(request, request.GetType(), JsonSerializerContext); + var __httpRequestContent = new global::System.Net.Http.StringContent( + content: __httpRequestContentBody, + encoding: global::System.Text.Encoding.UTF8, + mediaType: "application/json"); + httpRequest.Content = __httpRequestContent; + + PrepareRequest( + client: _httpClient, + request: httpRequest); + PrepareUploadCatalogFileRequest( + httpClient: _httpClient, + httpRequestMessage: httpRequest, + namespaceId: namespaceId, + catalogId: catalogId, + request: request); + + using var response = await _httpClient.SendAsync( + request: httpRequest, + completionOption: global::System.Net.Http.HttpCompletionOption.ResponseContentRead, + cancellationToken: cancellationToken).ConfigureAwait(false); + + ProcessResponse( + client: _httpClient, + response: response); + ProcessUploadCatalogFileResponse( + httpClient: _httpClient, + httpResponseMessage: response); + + var __content = await response.Content.ReadAsStringAsync(cancellationToken).ConfigureAwait(false); + + ProcessResponseContent( + client: _httpClient, + response: response, + content: ref __content); + ProcessUploadCatalogFileResponseContent( + httpClient: _httpClient, + httpResponseMessage: response, + content: ref __content); + + try + { + response.EnsureSuccessStatusCode(); + } + catch (global::System.Net.Http.HttpRequestException ex) + { + throw new global::System.InvalidOperationException(__content, ex); + } + + return + global::System.Text.Json.JsonSerializer.Deserialize(__content, typeof(global::Instill.UploadCatalogFileResponse), JsonSerializerContext) as global::Instill.UploadCatalogFileResponse ?? + throw new global::System.InvalidOperationException($"Response deserialization failed for \"{__content}\" "); + } + + /// + /// Create a file + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// The token to cancel the operation with + /// + public async global::System.Threading.Tasks.Task UploadCatalogFileAsync( + string namespaceId, + string catalogId, + string name, + global::Instill.AllOf type, + string? fileUid = default, + global::Instill.AllOf? processStatus = default, + string? processOutcome = default, + bool retrievable = default, + string? content = default, + string? ownerUid = default, + string? creatorUid = default, + string? catalogUid = default, + global::System.DateTime? createTime = default, + global::System.DateTime? updateTime = default, + global::System.DateTime? deleteTime = default, + string? size = default, + int totalChunks = default, + int totalTokens = default, + global::System.Threading.CancellationToken cancellationToken = default) + { + var request = new global::Instill.File + { + FileUid = fileUid, + Name = name, + Type = type, + ProcessStatus = processStatus, + ProcessOutcome = processOutcome, + Retrievable = retrievable, + Content = content, + OwnerUid = ownerUid, + CreatorUid = creatorUid, + CatalogUid = catalogUid, + CreateTime = createTime, + UpdateTime = updateTime, + DeleteTime = deleteTime, + Size = size, + TotalChunks = totalChunks, + TotalTokens = totalTokens, + }; + + return await UploadCatalogFileAsync( + namespaceId: namespaceId, + catalogId: catalogId, + request: request, + cancellationToken: cancellationToken).ConfigureAwait(false); + } + } +} \ No newline at end of file diff --git a/src/libs/Instill/Generated/Instill.CatalogClient.g.cs b/src/libs/Instill/Generated/Instill.CatalogClient.g.cs new file mode 100644 index 0000000..2e3ab10 --- /dev/null +++ b/src/libs/Instill/Generated/Instill.CatalogClient.g.cs @@ -0,0 +1,63 @@ + +#nullable enable + +namespace Instill +{ + /// + /// If no httpClient is provided, a new one will be created.
+ /// If no baseUri is provided, the default baseUri from OpenAPI spec will be used. + ///
+ public sealed partial class CatalogClient : global::Instill.ICatalogClient, global::System.IDisposable + { + /// + /// + /// + public const string BaseUrl = "https://api.instill.tech"; + + private readonly global::System.Net.Http.HttpClient _httpClient; + + /// + /// + /// + public global::System.Text.Json.Serialization.JsonSerializerContext JsonSerializerContext { get; set; } = global::Instill.SourceGenerationContext.Default; + + + /// + /// Creates a new instance of the CatalogClient. + /// If no httpClient is provided, a new one will be created. + /// If no baseUri is provided, the default baseUri from OpenAPI spec will be used. + /// + /// + /// + public CatalogClient( + global::System.Net.Http.HttpClient? httpClient = null, + global::System.Uri? baseUri = null) + { + _httpClient = httpClient ?? new global::System.Net.Http.HttpClient(); + _httpClient.BaseAddress ??= baseUri ?? new global::System.Uri(BaseUrl); + + Initialized(_httpClient); + } + + /// + public void Dispose() + { + _httpClient.Dispose(); + } + + partial void Initialized( + global::System.Net.Http.HttpClient client); + partial void PrepareArguments( + global::System.Net.Http.HttpClient client); + partial void PrepareRequest( + global::System.Net.Http.HttpClient client, + global::System.Net.Http.HttpRequestMessage request); + partial void ProcessResponse( + global::System.Net.Http.HttpClient client, + global::System.Net.Http.HttpResponseMessage response); + partial void ProcessResponseContent( + global::System.Net.Http.HttpClient client, + global::System.Net.Http.HttpResponseMessage response, + ref string content); + } +} \ No newline at end of file diff --git a/src/libs/Instill/Generated/Instill.ICatalogClient.CreateCatalog.g.cs b/src/libs/Instill/Generated/Instill.ICatalogClient.CreateCatalog.g.cs new file mode 100644 index 0000000..5ae1bca --- /dev/null +++ b/src/libs/Instill/Generated/Instill.ICatalogClient.CreateCatalog.g.cs @@ -0,0 +1,41 @@ +#nullable enable + +namespace Instill +{ + public partial interface ICatalogClient + { + /// + /// Create a catalog + /// + /// + /// + /// The token to cancel the operation with + /// + global::System.Threading.Tasks.Task CreateCatalogAsync( + string namespaceId, + global::Instill.CreateCatalogBody request, + global::System.Threading.CancellationToken cancellationToken = default); + + /// + /// Create a catalog + /// + /// + /// + /// The catalog name. + /// + /// + /// The catalog description. + /// + /// + /// The catalog tags. + /// + /// The token to cancel the operation with + /// + global::System.Threading.Tasks.Task CreateCatalogAsync( + string namespaceId, + string? name = default, + string? description = default, + global::System.Collections.Generic.IList? tags = default, + global::System.Threading.CancellationToken cancellationToken = default); + } +} \ No newline at end of file diff --git a/src/libs/Instill/Generated/Instill.ICatalogClient.DeleteCatalog.g.cs b/src/libs/Instill/Generated/Instill.ICatalogClient.DeleteCatalog.g.cs new file mode 100644 index 0000000..f75983a --- /dev/null +++ b/src/libs/Instill/Generated/Instill.ICatalogClient.DeleteCatalog.g.cs @@ -0,0 +1,19 @@ +#nullable enable + +namespace Instill +{ + public partial interface ICatalogClient + { + /// + /// Delete a catalog + /// + /// + /// + /// The token to cancel the operation with + /// + global::System.Threading.Tasks.Task DeleteCatalogAsync( + string namespaceId, + string catalogId, + global::System.Threading.CancellationToken cancellationToken = default); + } +} \ No newline at end of file diff --git a/src/libs/Instill/Generated/Instill.ICatalogClient.DeleteCatalogFile.g.cs b/src/libs/Instill/Generated/Instill.ICatalogClient.DeleteCatalogFile.g.cs new file mode 100644 index 0000000..d7cf00e --- /dev/null +++ b/src/libs/Instill/Generated/Instill.ICatalogClient.DeleteCatalogFile.g.cs @@ -0,0 +1,17 @@ +#nullable enable + +namespace Instill +{ + public partial interface ICatalogClient + { + /// + /// Delete a file + /// + /// + /// The token to cancel the operation with + /// + global::System.Threading.Tasks.Task DeleteCatalogFileAsync( + string fileUid, + global::System.Threading.CancellationToken cancellationToken = default); + } +} \ No newline at end of file diff --git a/src/libs/Instill/Generated/Instill.ICatalogClient.GetFileCatalog.g.cs b/src/libs/Instill/Generated/Instill.ICatalogClient.GetFileCatalog.g.cs new file mode 100644 index 0000000..4604112 --- /dev/null +++ b/src/libs/Instill/Generated/Instill.ICatalogClient.GetFileCatalog.g.cs @@ -0,0 +1,23 @@ +#nullable enable + +namespace Instill +{ + public partial interface ICatalogClient + { + /// + /// Get file catalog + /// + /// + /// + /// + /// + /// The token to cancel the operation with + /// + global::System.Threading.Tasks.Task GetFileCatalogAsync( + string namespaceId, + string catalogId, + string? fileId = default, + string? fileUid = default, + global::System.Threading.CancellationToken cancellationToken = default); + } +} \ No newline at end of file diff --git a/src/libs/Instill/Generated/Instill.ICatalogClient.GetSourceFile.g.cs b/src/libs/Instill/Generated/Instill.ICatalogClient.GetSourceFile.g.cs new file mode 100644 index 0000000..2094395 --- /dev/null +++ b/src/libs/Instill/Generated/Instill.ICatalogClient.GetSourceFile.g.cs @@ -0,0 +1,21 @@ +#nullable enable + +namespace Instill +{ + public partial interface ICatalogClient + { + /// + /// Get catalog single-source-of-truth file + /// + /// + /// + /// + /// The token to cancel the operation with + /// + global::System.Threading.Tasks.Task GetSourceFileAsync( + string namespaceId, + string catalogId, + string fileUid, + global::System.Threading.CancellationToken cancellationToken = default); + } +} \ No newline at end of file diff --git a/src/libs/Instill/Generated/Instill.ICatalogClient.ListCatalogFiles.g.cs b/src/libs/Instill/Generated/Instill.ICatalogClient.ListCatalogFiles.g.cs new file mode 100644 index 0000000..f664bac --- /dev/null +++ b/src/libs/Instill/Generated/Instill.ICatalogClient.ListCatalogFiles.g.cs @@ -0,0 +1,25 @@ +#nullable enable + +namespace Instill +{ + public partial interface ICatalogClient + { + /// + /// List catalog files + /// + /// + /// + /// + /// + /// + /// The token to cancel the operation with + /// + global::System.Threading.Tasks.Task ListCatalogFilesAsync( + string namespaceId, + string catalogId, + int pageSize = default, + string? pageToken = default, + global::System.Collections.Generic.IList? filterFileUids = default, + global::System.Threading.CancellationToken cancellationToken = default); + } +} \ No newline at end of file diff --git a/src/libs/Instill/Generated/Instill.ICatalogClient.ListCatalogs.g.cs b/src/libs/Instill/Generated/Instill.ICatalogClient.ListCatalogs.g.cs new file mode 100644 index 0000000..7f13a91 --- /dev/null +++ b/src/libs/Instill/Generated/Instill.ICatalogClient.ListCatalogs.g.cs @@ -0,0 +1,17 @@ +#nullable enable + +namespace Instill +{ + public partial interface ICatalogClient + { + /// + /// Get all catalogs info + /// + /// + /// The token to cancel the operation with + /// + global::System.Threading.Tasks.Task ListCatalogsAsync( + string namespaceId, + global::System.Threading.CancellationToken cancellationToken = default); + } +} \ No newline at end of file diff --git a/src/libs/Instill/Generated/Instill.ICatalogClient.ListChunks.g.cs b/src/libs/Instill/Generated/Instill.ICatalogClient.ListChunks.g.cs new file mode 100644 index 0000000..d3933a1 --- /dev/null +++ b/src/libs/Instill/Generated/Instill.ICatalogClient.ListChunks.g.cs @@ -0,0 +1,21 @@ +#nullable enable + +namespace Instill +{ + public partial interface ICatalogClient + { + /// + /// List catalog chunks + /// + /// + /// + /// + /// The token to cancel the operation with + /// + global::System.Threading.Tasks.Task ListChunksAsync( + string namespaceId, + string catalogId, + string? fileUid = default, + global::System.Threading.CancellationToken cancellationToken = default); + } +} \ No newline at end of file diff --git a/src/libs/Instill/Generated/Instill.ICatalogClient.ProcessCatalogFiles.g.cs b/src/libs/Instill/Generated/Instill.ICatalogClient.ProcessCatalogFiles.g.cs new file mode 100644 index 0000000..a62b1df --- /dev/null +++ b/src/libs/Instill/Generated/Instill.ICatalogClient.ProcessCatalogFiles.g.cs @@ -0,0 +1,29 @@ +#nullable enable + +namespace Instill +{ + public partial interface ICatalogClient + { + /// + /// Process catalog files + /// + /// + /// The token to cancel the operation with + /// + global::System.Threading.Tasks.Task ProcessCatalogFilesAsync( + global::Instill.ProcessCatalogFilesRequest request, + global::System.Threading.CancellationToken cancellationToken = default); + + /// + /// Process catalog files + /// + /// + /// The file uid. + /// + /// The token to cancel the operation with + /// + global::System.Threading.Tasks.Task ProcessCatalogFilesAsync( + global::System.Collections.Generic.IList fileUids, + global::System.Threading.CancellationToken cancellationToken = default); + } +} \ No newline at end of file diff --git a/src/libs/Instill/Generated/Instill.ICatalogClient.QuestionAnswering.g.cs b/src/libs/Instill/Generated/Instill.ICatalogClient.QuestionAnswering.g.cs new file mode 100644 index 0000000..21ebe73 --- /dev/null +++ b/src/libs/Instill/Generated/Instill.ICatalogClient.QuestionAnswering.g.cs @@ -0,0 +1,37 @@ +#nullable enable + +namespace Instill +{ + public partial interface ICatalogClient + { + /// + /// Ask a question + /// + /// + /// + /// + /// The token to cancel the operation with + /// + global::System.Threading.Tasks.Task QuestionAnsweringAsync( + string namespaceId, + string catalogId, + global::Instill.QuestionAnsweringBody request, + global::System.Threading.CancellationToken cancellationToken = default); + + /// + /// Ask a question + /// + /// + /// + /// + /// + /// The token to cancel the operation with + /// + global::System.Threading.Tasks.Task QuestionAnsweringAsync( + string namespaceId, + string catalogId, + string? question = default, + int topK = default, + global::System.Threading.CancellationToken cancellationToken = default); + } +} \ No newline at end of file diff --git a/src/libs/Instill/Generated/Instill.ICatalogClient.SimilarityChunksSearch.g.cs b/src/libs/Instill/Generated/Instill.ICatalogClient.SimilarityChunksSearch.g.cs new file mode 100644 index 0000000..290dd6e --- /dev/null +++ b/src/libs/Instill/Generated/Instill.ICatalogClient.SimilarityChunksSearch.g.cs @@ -0,0 +1,37 @@ +#nullable enable + +namespace Instill +{ + public partial interface ICatalogClient + { + /// + /// Retrieve similar chunks + /// + /// + /// + /// + /// The token to cancel the operation with + /// + global::System.Threading.Tasks.Task SimilarityChunksSearchAsync( + string namespaceId, + string catalogId, + global::Instill.SimilarityChunksSearchBody request, + global::System.Threading.CancellationToken cancellationToken = default); + + /// + /// Retrieve similar chunks + /// + /// + /// + /// + /// + /// The token to cancel the operation with + /// + global::System.Threading.Tasks.Task SimilarityChunksSearchAsync( + string namespaceId, + string catalogId, + string? textPrompt = default, + long topK = default, + global::System.Threading.CancellationToken cancellationToken = default); + } +} \ No newline at end of file diff --git a/src/libs/Instill/Generated/Instill.ICatalogClient.UpdateCatalog.g.cs b/src/libs/Instill/Generated/Instill.ICatalogClient.UpdateCatalog.g.cs new file mode 100644 index 0000000..3b2a4a1 --- /dev/null +++ b/src/libs/Instill/Generated/Instill.ICatalogClient.UpdateCatalog.g.cs @@ -0,0 +1,41 @@ +#nullable enable + +namespace Instill +{ + public partial interface ICatalogClient + { + /// + /// Update a catalog info + /// + /// + /// + /// + /// The token to cancel the operation with + /// + global::System.Threading.Tasks.Task UpdateCatalogAsync( + string namespaceId, + string catalogId, + global::Instill.UpdateCatalogBody request, + global::System.Threading.CancellationToken cancellationToken = default); + + /// + /// Update a catalog info + /// + /// + /// + /// + /// The catalog description. + /// + /// + /// The catalog tags. + /// + /// The token to cancel the operation with + /// + global::System.Threading.Tasks.Task UpdateCatalogAsync( + string namespaceId, + string catalogId, + string? description = default, + global::System.Collections.Generic.IList? tags = default, + global::System.Threading.CancellationToken cancellationToken = default); + } +} \ No newline at end of file diff --git a/src/libs/Instill/Generated/Instill.ICatalogClient.UpdateChunk.g.cs b/src/libs/Instill/Generated/Instill.ICatalogClient.UpdateChunk.g.cs new file mode 100644 index 0000000..dde3efd --- /dev/null +++ b/src/libs/Instill/Generated/Instill.ICatalogClient.UpdateChunk.g.cs @@ -0,0 +1,31 @@ +#nullable enable + +namespace Instill +{ + public partial interface ICatalogClient + { + /// + /// Update catalog chunk + /// + /// + /// + /// The token to cancel the operation with + /// + global::System.Threading.Tasks.Task UpdateChunkAsync( + string chunkUid, + global::Instill.UpdateChunkBody request, + global::System.Threading.CancellationToken cancellationToken = default); + + /// + /// Update catalog chunk + /// + /// + /// + /// The token to cancel the operation with + /// + global::System.Threading.Tasks.Task UpdateChunkAsync( + string chunkUid, + bool retrievable = default, + global::System.Threading.CancellationToken cancellationToken = default); + } +} \ No newline at end of file diff --git a/src/libs/Instill/Generated/Instill.ICatalogClient.UploadCatalogFile.g.cs b/src/libs/Instill/Generated/Instill.ICatalogClient.UploadCatalogFile.g.cs new file mode 100644 index 0000000..f815d66 --- /dev/null +++ b/src/libs/Instill/Generated/Instill.ICatalogClient.UploadCatalogFile.g.cs @@ -0,0 +1,65 @@ +#nullable enable + +namespace Instill +{ + public partial interface ICatalogClient + { + /// + /// Create a file + /// + /// + /// + /// + /// The token to cancel the operation with + /// + global::System.Threading.Tasks.Task UploadCatalogFileAsync( + string namespaceId, + string catalogId, + global::Instill.File request, + global::System.Threading.CancellationToken cancellationToken = default); + + /// + /// Create a file + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// The token to cancel the operation with + /// + global::System.Threading.Tasks.Task UploadCatalogFileAsync( + string namespaceId, + string catalogId, + string name, + global::Instill.AllOf type, + string? fileUid = default, + global::Instill.AllOf? processStatus = default, + string? processOutcome = default, + bool retrievable = default, + string? content = default, + string? ownerUid = default, + string? creatorUid = default, + string? catalogUid = default, + global::System.DateTime? createTime = default, + global::System.DateTime? updateTime = default, + global::System.DateTime? deleteTime = default, + string? size = default, + int totalChunks = default, + int totalTokens = default, + global::System.Threading.CancellationToken cancellationToken = default); + } +} \ No newline at end of file diff --git a/src/libs/Instill/Generated/Instill.ICatalogClient.g.cs b/src/libs/Instill/Generated/Instill.ICatalogClient.g.cs new file mode 100644 index 0000000..b56b4b9 --- /dev/null +++ b/src/libs/Instill/Generated/Instill.ICatalogClient.g.cs @@ -0,0 +1,19 @@ + +#nullable enable + +namespace Instill +{ + /// + /// If no httpClient is provided, a new one will be created.
+ /// If no baseUri is provided, the default baseUri from OpenAPI spec will be used. + ///
+ public partial interface ICatalogClient : global::System.IDisposable + { + /// + /// + /// + global::System.Text.Json.Serialization.JsonSerializerContext JsonSerializerContext { get; set; } + + + } +} \ No newline at end of file diff --git a/src/libs/Instill/Generated/Instill.IInstillClient.g.cs b/src/libs/Instill/Generated/Instill.IInstillClient.g.cs index ecf82a7..0460cb8 100644 --- a/src/libs/Instill/Generated/Instill.IInstillClient.g.cs +++ b/src/libs/Instill/Generated/Instill.IInstillClient.g.cs @@ -56,5 +56,10 @@ public partial interface IInstillClient : global::System.IDisposable /// public UtilsClient Utils { get; } + /// + /// + /// + public CatalogClient Catalog { get; } + } } \ No newline at end of file diff --git a/src/libs/Instill/Generated/Instill.InstillClient.Authorizations..g.cs b/src/libs/Instill/Generated/Instill.InstillClient.Authorizations.Bearer.g.cs similarity index 53% rename from src/libs/Instill/Generated/Instill.InstillClient.Authorizations..g.cs rename to src/libs/Instill/Generated/Instill.InstillClient.Authorizations.Bearer.g.cs index 10c5a61..be67555 100644 --- a/src/libs/Instill/Generated/Instill.InstillClient.Authorizations..g.cs +++ b/src/libs/Instill/Generated/Instill.InstillClient.Authorizations.Bearer.g.cs @@ -6,15 +6,17 @@ namespace Instill public sealed partial class InstillClient { /// - /// Authorize using ApiKey authentication. + /// Authorize using bearer authentication. /// /// - public void AuthorizeUsingApiKey( + public void AuthorizeUsingBearer( string apiKey) { apiKey = apiKey ?? throw new global::System.ArgumentNullException(nameof(apiKey)); - _httpClient.DefaultRequestHeaders.Add("Authorization", apiKey); + _httpClient.DefaultRequestHeaders.Authorization = new global::System.Net.Http.Headers.AuthenticationHeaderValue( + scheme: "Bearer", + parameter: apiKey); } } } \ No newline at end of file diff --git a/src/libs/Instill/Generated/Instill.InstillClient.Constructors..g.cs b/src/libs/Instill/Generated/Instill.InstillClient.Constructors.Bearer.g.cs similarity index 94% rename from src/libs/Instill/Generated/Instill.InstillClient.Constructors..g.cs rename to src/libs/Instill/Generated/Instill.InstillClient.Constructors.Bearer.g.cs index 6c0ec3c..21fc200 100644 --- a/src/libs/Instill/Generated/Instill.InstillClient.Constructors..g.cs +++ b/src/libs/Instill/Generated/Instill.InstillClient.Constructors.Bearer.g.cs @@ -13,7 +13,7 @@ public InstillClient( { Authorizing(_httpClient, ref apiKey); - AuthorizeUsingApiKey(apiKey); + AuthorizeUsingBearer(apiKey); Authorized(_httpClient); } diff --git a/src/libs/Instill/Generated/Instill.InstillClient.g.cs b/src/libs/Instill/Generated/Instill.InstillClient.g.cs index 59b3621..0bb2b46 100644 --- a/src/libs/Instill/Generated/Instill.InstillClient.g.cs +++ b/src/libs/Instill/Generated/Instill.InstillClient.g.cs @@ -87,6 +87,14 @@ public sealed partial class InstillClient : global::Instill.IInstillClient, glob JsonSerializerContext = JsonSerializerContext, }; + /// + /// + /// + public CatalogClient Catalog => new CatalogClient(_httpClient) + { + JsonSerializerContext = JsonSerializerContext, + }; + /// /// Creates a new instance of the InstillClient. /// If no httpClient is provided, a new one will be created. diff --git a/src/libs/Instill/Generated/Instill.Models.Artifactv1alphaChunk.g.cs b/src/libs/Instill/Generated/Instill.Models.Artifactv1alphaChunk.g.cs new file mode 100644 index 0000000..055aa1b --- /dev/null +++ b/src/libs/Instill/Generated/Instill.Models.Artifactv1alphaChunk.g.cs @@ -0,0 +1,59 @@ + +#nullable enable + +namespace Instill +{ + /// + /// The Chunk message represents a chunk of data in the artifact system. + /// + public sealed partial class Artifactv1alphaChunk + { + /// + /// + /// + [global::System.Text.Json.Serialization.JsonPropertyName("chunkUid")] + public string? ChunkUid { get; set; } + + /// + /// + /// + [global::System.Text.Json.Serialization.JsonPropertyName("retrievable")] + public bool Retrievable { get; set; } + + /// + /// + /// + [global::System.Text.Json.Serialization.JsonPropertyName("startPos")] + public long StartPos { get; set; } + + /// + /// + /// + [global::System.Text.Json.Serialization.JsonPropertyName("endPos")] + public long EndPos { get; set; } + + /// + /// + /// + [global::System.Text.Json.Serialization.JsonPropertyName("tokens")] + public long Tokens { get; set; } + + /// + /// + /// + [global::System.Text.Json.Serialization.JsonPropertyName("createTime")] + public global::System.DateTime CreateTime { get; set; } + + /// + /// + /// + [global::System.Text.Json.Serialization.JsonPropertyName("originalFileUid")] + public string? OriginalFileUid { get; set; } + + /// + /// Additional properties that are not explicitly defined in the schema + /// + [global::System.Text.Json.Serialization.JsonExtensionData] + public global::System.Collections.Generic.IDictionary AdditionalProperties { get; set; } = new global::System.Collections.Generic.Dictionary(); + } +} \ No newline at end of file diff --git a/src/libs/Instill/Generated/Instill.Models.Catalog.g.cs b/src/libs/Instill/Generated/Instill.Models.Catalog.g.cs new file mode 100644 index 0000000..5b1017c --- /dev/null +++ b/src/libs/Instill/Generated/Instill.Models.Catalog.g.cs @@ -0,0 +1,101 @@ + +#nullable enable + +namespace Instill +{ + /// + /// Catalog represents a catalog. + /// + public sealed partial class Catalog + { + /// + /// The catalog id. + /// + [global::System.Text.Json.Serialization.JsonPropertyName("catalogId")] + public string? CatalogId { get; set; } + + /// + /// The catalog name. + /// + [global::System.Text.Json.Serialization.JsonPropertyName("name")] + public string? Name { get; set; } + + /// + /// The catalog description. + /// + [global::System.Text.Json.Serialization.JsonPropertyName("description")] + public string? Description { get; set; } + + /// + /// The creation time of the catalog. + /// + [global::System.Text.Json.Serialization.JsonPropertyName("createTime")] + public string? CreateTime { get; set; } + + /// + /// The last update time of the catalog. + /// + [global::System.Text.Json.Serialization.JsonPropertyName("updateTime")] + public string? UpdateTime { get; set; } + + /// + /// The owner/namespace of the catalog. + /// + [global::System.Text.Json.Serialization.JsonPropertyName("ownerName")] + public string? OwnerName { get; set; } + + /// + /// The catalog tags. + /// + [global::System.Text.Json.Serialization.JsonPropertyName("tags")] + public global::System.Collections.Generic.IList? Tags { get; set; } + + /// + /// The catalog converting pipelines. + /// + [global::System.Text.Json.Serialization.JsonPropertyName("convertingPipelines")] + public global::System.Collections.Generic.IList? ConvertingPipelines { get; set; } + + /// + /// The catalog splitting pipelines. + /// + [global::System.Text.Json.Serialization.JsonPropertyName("splittingPipelines")] + public global::System.Collections.Generic.IList? SplittingPipelines { get; set; } + + /// + /// The catalog embedding pipelines. + /// + [global::System.Text.Json.Serialization.JsonPropertyName("embeddingPipelines")] + public global::System.Collections.Generic.IList? EmbeddingPipelines { get; set; } + + /// + /// + /// + [global::System.Text.Json.Serialization.JsonPropertyName("downstreamApps")] + public global::System.Collections.Generic.IList? DownstreamApps { get; set; } + + /// + /// The total files in catalog. + /// + [global::System.Text.Json.Serialization.JsonPropertyName("totalFiles")] + public long TotalFiles { get; set; } + + /// + /// The total tokens in catalog. + /// + [global::System.Text.Json.Serialization.JsonPropertyName("totalTokens")] + public long TotalTokens { get; set; } + + /// + /// The current used storage in catalog. + /// + [global::System.Text.Json.Serialization.JsonPropertyName("usedStorage")] + public string? UsedStorage { get; set; } + + /// + /// Additional properties that are not explicitly defined in the schema + /// + [global::System.Text.Json.Serialization.JsonExtensionData] + public global::System.Collections.Generic.IDictionary AdditionalProperties { get; set; } = new global::System.Collections.Generic.Dictionary(); + } +} \ No newline at end of file diff --git a/src/libs/Instill/Generated/Instill.Models.CreateCatalogBody.g.cs b/src/libs/Instill/Generated/Instill.Models.CreateCatalogBody.g.cs new file mode 100644 index 0000000..d1d1825 --- /dev/null +++ b/src/libs/Instill/Generated/Instill.Models.CreateCatalogBody.g.cs @@ -0,0 +1,35 @@ + +#nullable enable + +namespace Instill +{ + /// + /// CreateCatalogRequest represents a request to create a catalog. + /// + public sealed partial class CreateCatalogBody + { + /// + /// The catalog name. + /// + [global::System.Text.Json.Serialization.JsonPropertyName("name")] + public string? Name { get; set; } + + /// + /// The catalog description. + /// + [global::System.Text.Json.Serialization.JsonPropertyName("description")] + public string? Description { get; set; } + + /// + /// The catalog tags. + /// + [global::System.Text.Json.Serialization.JsonPropertyName("tags")] + public global::System.Collections.Generic.IList? Tags { get; set; } + + /// + /// Additional properties that are not explicitly defined in the schema + /// + [global::System.Text.Json.Serialization.JsonExtensionData] + public global::System.Collections.Generic.IDictionary AdditionalProperties { get; set; } = new global::System.Collections.Generic.Dictionary(); + } +} \ No newline at end of file diff --git a/src/libs/Instill/Generated/Instill.Models.CreateCatalogResponse.g.cs b/src/libs/Instill/Generated/Instill.Models.CreateCatalogResponse.g.cs new file mode 100644 index 0000000..1105b1d --- /dev/null +++ b/src/libs/Instill/Generated/Instill.Models.CreateCatalogResponse.g.cs @@ -0,0 +1,26 @@ + +#pragma warning disable CS0618 // Type or member is obsolete + +#nullable enable + +namespace Instill +{ + /// + /// CreateCatalogResponse represents a response for creating a catalog. + /// + public sealed partial class CreateCatalogResponse + { + /// + /// The created catalog. + /// + [global::System.Text.Json.Serialization.JsonPropertyName("catalog")] + [global::System.Text.Json.Serialization.JsonConverter(typeof(global::Instill.JsonConverters.AllOfJsonConverterFactory1))] + public global::Instill.AllOf? Catalog { get; set; } + + /// + /// Additional properties that are not explicitly defined in the schema + /// + [global::System.Text.Json.Serialization.JsonExtensionData] + public global::System.Collections.Generic.IDictionary AdditionalProperties { get; set; } = new global::System.Collections.Generic.Dictionary(); + } +} \ No newline at end of file diff --git a/src/libs/Instill/Generated/Instill.Models.CreateCatalogResponse2.g.cs b/src/libs/Instill/Generated/Instill.Models.CreateCatalogResponse2.g.cs new file mode 100644 index 0000000..f45f749 --- /dev/null +++ b/src/libs/Instill/Generated/Instill.Models.CreateCatalogResponse2.g.cs @@ -0,0 +1,18 @@ + +#nullable enable + +namespace Instill +{ + /// + /// + /// + public sealed partial class CreateCatalogResponse2 + { + + /// + /// Additional properties that are not explicitly defined in the schema + /// + [global::System.Text.Json.Serialization.JsonExtensionData] + public global::System.Collections.Generic.IDictionary AdditionalProperties { get; set; } = new global::System.Collections.Generic.Dictionary(); + } +} \ No newline at end of file diff --git a/src/libs/Instill/Generated/Instill.Models.CreateRepositoryTagResponse.g.cs b/src/libs/Instill/Generated/Instill.Models.CreateRepositoryTagResponse.g.cs new file mode 100644 index 0000000..68d604e --- /dev/null +++ b/src/libs/Instill/Generated/Instill.Models.CreateRepositoryTagResponse.g.cs @@ -0,0 +1,26 @@ + +#pragma warning disable CS0618 // Type or member is obsolete + +#nullable enable + +namespace Instill +{ + /// + /// CreateRepositoryTagResponse contains the created tag. + /// + public sealed partial class CreateRepositoryTagResponse + { + /// + /// The created tag. + /// + [global::System.Text.Json.Serialization.JsonPropertyName("tag")] + [global::System.Text.Json.Serialization.JsonConverter(typeof(global::Instill.JsonConverters.AllOfJsonConverterFactory1))] + public global::Instill.AllOf? Tag { get; set; } + + /// + /// Additional properties that are not explicitly defined in the schema + /// + [global::System.Text.Json.Serialization.JsonExtensionData] + public global::System.Collections.Generic.IDictionary AdditionalProperties { get; set; } = new global::System.Collections.Generic.Dictionary(); + } +} \ No newline at end of file diff --git a/src/libs/Instill/Generated/Instill.Models.DeleteCatalogFileResponse.g.cs b/src/libs/Instill/Generated/Instill.Models.DeleteCatalogFileResponse.g.cs new file mode 100644 index 0000000..dc7640d --- /dev/null +++ b/src/libs/Instill/Generated/Instill.Models.DeleteCatalogFileResponse.g.cs @@ -0,0 +1,23 @@ + +#nullable enable + +namespace Instill +{ + /// + /// + /// + public sealed partial class DeleteCatalogFileResponse + { + /// + /// The file uid. + /// + [global::System.Text.Json.Serialization.JsonPropertyName("fileUid")] + public string? FileUid { get; set; } + + /// + /// Additional properties that are not explicitly defined in the schema + /// + [global::System.Text.Json.Serialization.JsonExtensionData] + public global::System.Collections.Generic.IDictionary AdditionalProperties { get; set; } = new global::System.Collections.Generic.Dictionary(); + } +} \ No newline at end of file diff --git a/src/libs/Instill/Generated/Instill.Models.DeleteCatalogFileResponse2.g.cs b/src/libs/Instill/Generated/Instill.Models.DeleteCatalogFileResponse2.g.cs new file mode 100644 index 0000000..9f13f13 --- /dev/null +++ b/src/libs/Instill/Generated/Instill.Models.DeleteCatalogFileResponse2.g.cs @@ -0,0 +1,18 @@ + +#nullable enable + +namespace Instill +{ + /// + /// + /// + public sealed partial class DeleteCatalogFileResponse2 + { + + /// + /// Additional properties that are not explicitly defined in the schema + /// + [global::System.Text.Json.Serialization.JsonExtensionData] + public global::System.Collections.Generic.IDictionary AdditionalProperties { get; set; } = new global::System.Collections.Generic.Dictionary(); + } +} \ No newline at end of file diff --git a/src/libs/Instill/Generated/Instill.Models.DeleteCatalogResponse.g.cs b/src/libs/Instill/Generated/Instill.Models.DeleteCatalogResponse.g.cs new file mode 100644 index 0000000..4d3255f --- /dev/null +++ b/src/libs/Instill/Generated/Instill.Models.DeleteCatalogResponse.g.cs @@ -0,0 +1,26 @@ + +#pragma warning disable CS0618 // Type or member is obsolete + +#nullable enable + +namespace Instill +{ + /// + /// DeleteCatalogResponse represents a response for deleting a catalog. + /// + public sealed partial class DeleteCatalogResponse + { + /// + /// The catalog identifier. + /// + [global::System.Text.Json.Serialization.JsonPropertyName("catalog")] + [global::System.Text.Json.Serialization.JsonConverter(typeof(global::Instill.JsonConverters.AllOfJsonConverterFactory1))] + public global::Instill.AllOf? Catalog { get; set; } + + /// + /// Additional properties that are not explicitly defined in the schema + /// + [global::System.Text.Json.Serialization.JsonExtensionData] + public global::System.Collections.Generic.IDictionary AdditionalProperties { get; set; } = new global::System.Collections.Generic.Dictionary(); + } +} \ No newline at end of file diff --git a/src/libs/Instill/Generated/Instill.Models.DeleteCatalogResponse2.g.cs b/src/libs/Instill/Generated/Instill.Models.DeleteCatalogResponse2.g.cs new file mode 100644 index 0000000..33ec310 --- /dev/null +++ b/src/libs/Instill/Generated/Instill.Models.DeleteCatalogResponse2.g.cs @@ -0,0 +1,18 @@ + +#nullable enable + +namespace Instill +{ + /// + /// + /// + public sealed partial class DeleteCatalogResponse2 + { + + /// + /// Additional properties that are not explicitly defined in the schema + /// + [global::System.Text.Json.Serialization.JsonExtensionData] + public global::System.Collections.Generic.IDictionary AdditionalProperties { get; set; } = new global::System.Collections.Generic.Dictionary(); + } +} \ No newline at end of file diff --git a/src/libs/Instill/Generated/Instill.Models.DeleteRepositoryTagResponse.g.cs b/src/libs/Instill/Generated/Instill.Models.DeleteRepositoryTagResponse.g.cs new file mode 100644 index 0000000..37b27f3 --- /dev/null +++ b/src/libs/Instill/Generated/Instill.Models.DeleteRepositoryTagResponse.g.cs @@ -0,0 +1,18 @@ + +#nullable enable + +namespace Instill +{ + /// + /// DeleteRepositoryTagResponse represent an empty response. + /// + public sealed partial class DeleteRepositoryTagResponse + { + + /// + /// Additional properties that are not explicitly defined in the schema + /// + [global::System.Text.Json.Serialization.JsonExtensionData] + public global::System.Collections.Generic.IDictionary AdditionalProperties { get; set; } = new global::System.Collections.Generic.Dictionary(); + } +} \ No newline at end of file diff --git a/src/libs/Instill/Generated/Instill.Models.File.g.cs b/src/libs/Instill/Generated/Instill.Models.File.g.cs new file mode 100644 index 0000000..8111919 --- /dev/null +++ b/src/libs/Instill/Generated/Instill.Models.File.g.cs @@ -0,0 +1,119 @@ + +#pragma warning disable CS0618 // Type or member is obsolete + +#nullable enable + +namespace Instill +{ + /// + /// + /// + public sealed partial class File + { + /// + /// + /// + [global::System.Text.Json.Serialization.JsonPropertyName("fileUid")] + public string? FileUid { get; set; } + + /// + /// + /// + [global::System.Text.Json.Serialization.JsonPropertyName("name")] + [global::System.Text.Json.Serialization.JsonRequired] + public required string Name { get; set; } + + /// + /// + /// + [global::System.Text.Json.Serialization.JsonPropertyName("type")] + [global::System.Text.Json.Serialization.JsonConverter(typeof(global::Instill.JsonConverters.AllOfJsonConverterFactory1))] + [global::System.Text.Json.Serialization.JsonRequired] + public required global::Instill.AllOf Type { get; set; } + + /// + /// + /// + [global::System.Text.Json.Serialization.JsonPropertyName("processStatus")] + [global::System.Text.Json.Serialization.JsonConverter(typeof(global::Instill.JsonConverters.AllOfJsonConverterFactory1))] + public global::Instill.AllOf? ProcessStatus { get; set; } + + /// + /// + /// + [global::System.Text.Json.Serialization.JsonPropertyName("processOutcome")] + public string? ProcessOutcome { get; set; } + + /// + /// + /// + [global::System.Text.Json.Serialization.JsonPropertyName("retrievable")] + public bool Retrievable { get; set; } + + /// + /// + /// + [global::System.Text.Json.Serialization.JsonPropertyName("content")] + public string? Content { get; set; } + + /// + /// + /// + [global::System.Text.Json.Serialization.JsonPropertyName("ownerUid")] + public string? OwnerUid { get; set; } + + /// + /// + /// + [global::System.Text.Json.Serialization.JsonPropertyName("creatorUid")] + public string? CreatorUid { get; set; } + + /// + /// + /// + [global::System.Text.Json.Serialization.JsonPropertyName("catalogUid")] + public string? CatalogUid { get; set; } + + /// + /// + /// + [global::System.Text.Json.Serialization.JsonPropertyName("createTime")] + public global::System.DateTime? CreateTime { get; set; } + + /// + /// + /// + [global::System.Text.Json.Serialization.JsonPropertyName("updateTime")] + public global::System.DateTime? UpdateTime { get; set; } + + /// + /// + /// + [global::System.Text.Json.Serialization.JsonPropertyName("deleteTime")] + public global::System.DateTime? DeleteTime { get; set; } + + /// + /// + /// + [global::System.Text.Json.Serialization.JsonPropertyName("size")] + public string? Size { get; set; } + + /// + /// + /// + [global::System.Text.Json.Serialization.JsonPropertyName("totalChunks")] + public int TotalChunks { get; set; } + + /// + /// + /// + [global::System.Text.Json.Serialization.JsonPropertyName("totalTokens")] + public int TotalTokens { get; set; } + + /// + /// Additional properties that are not explicitly defined in the schema + /// + [global::System.Text.Json.Serialization.JsonExtensionData] + public global::System.Collections.Generic.IDictionary AdditionalProperties { get; set; } = new global::System.Collections.Generic.Dictionary(); + } +} \ No newline at end of file diff --git a/src/libs/Instill/Generated/Instill.Models.FileProcessStatus2.g.cs b/src/libs/Instill/Generated/Instill.Models.FileProcessStatus2.g.cs new file mode 100644 index 0000000..889fd2e --- /dev/null +++ b/src/libs/Instill/Generated/Instill.Models.FileProcessStatus2.g.cs @@ -0,0 +1,87 @@ + +#nullable enable + +namespace Instill +{ + /// + /// - FILE_PROCESS_STATUS_NOTSTARTED: NOTSTARTED
+ /// - FILE_PROCESS_STATUS_WAITING: file is waiting for embedding process
+ /// - FILE_PROCESS_STATUS_CONVERTING: file is converting
+ /// - FILE_PROCESS_STATUS_CHUNKING: file is chunking
+ /// - FILE_PROCESS_STATUS_EMBEDDING: file is embedding
+ /// - FILE_PROCESS_STATUS_COMPLETED: completed
+ /// - FILE_PROCESS_STATUS_FAILED: failed + ///
+ public enum FileProcessStatus2 + { + /// + /// + /// + FILEPROCESSSTATUSNOTSTARTED, + /// + /// + /// + FILEPROCESSSTATUSWAITING, + /// + /// + /// + FILEPROCESSSTATUSCONVERTING, + /// + /// + /// + FILEPROCESSSTATUSCHUNKING, + /// + /// + /// + FILEPROCESSSTATUSEMBEDDING, + /// + /// + /// + FILEPROCESSSTATUSCOMPLETED, + /// + /// + /// + FILEPROCESSSTATUSFAILED, + } + + /// + /// Enum extensions to do fast conversions without the reflection. + /// + public static class FileProcessStatus2Extensions + { + /// + /// Converts an enum to a string. + /// + public static string ToValueString(this FileProcessStatus2 value) + { + return value switch + { + FileProcessStatus2.FILEPROCESSSTATUSNOTSTARTED => "FILE_PROCESS_STATUS_NOTSTARTED", + FileProcessStatus2.FILEPROCESSSTATUSWAITING => "FILE_PROCESS_STATUS_WAITING", + FileProcessStatus2.FILEPROCESSSTATUSCONVERTING => "FILE_PROCESS_STATUS_CONVERTING", + FileProcessStatus2.FILEPROCESSSTATUSCHUNKING => "FILE_PROCESS_STATUS_CHUNKING", + FileProcessStatus2.FILEPROCESSSTATUSEMBEDDING => "FILE_PROCESS_STATUS_EMBEDDING", + FileProcessStatus2.FILEPROCESSSTATUSCOMPLETED => "FILE_PROCESS_STATUS_COMPLETED", + FileProcessStatus2.FILEPROCESSSTATUSFAILED => "FILE_PROCESS_STATUS_FAILED", + _ => throw new global::System.ArgumentOutOfRangeException(nameof(value), value, null), + }; + } + /// + /// Converts an string to a enum. + /// + public static FileProcessStatus2? ToEnum(string value) + { + return value switch + { + "FILE_PROCESS_STATUS_NOTSTARTED" => FileProcessStatus2.FILEPROCESSSTATUSNOTSTARTED, + "FILE_PROCESS_STATUS_WAITING" => FileProcessStatus2.FILEPROCESSSTATUSWAITING, + "FILE_PROCESS_STATUS_CONVERTING" => FileProcessStatus2.FILEPROCESSSTATUSCONVERTING, + "FILE_PROCESS_STATUS_CHUNKING" => FileProcessStatus2.FILEPROCESSSTATUSCHUNKING, + "FILE_PROCESS_STATUS_EMBEDDING" => FileProcessStatus2.FILEPROCESSSTATUSEMBEDDING, + "FILE_PROCESS_STATUS_COMPLETED" => FileProcessStatus2.FILEPROCESSSTATUSCOMPLETED, + "FILE_PROCESS_STATUS_FAILED" => FileProcessStatus2.FILEPROCESSSTATUSFAILED, + _ => null, + }; + } + } +} \ No newline at end of file diff --git a/src/libs/Instill/Generated/Instill.Models.FileType2.g.cs b/src/libs/Instill/Generated/Instill.Models.FileType2.g.cs new file mode 100644 index 0000000..6c3d249 --- /dev/null +++ b/src/libs/Instill/Generated/Instill.Models.FileType2.g.cs @@ -0,0 +1,129 @@ + +#nullable enable + +namespace Instill +{ + /// + /// - FILE_TYPE_TEXT: text
+ /// - FILE_TYPE_PDF: PDF
+ /// - FILE_TYPE_MARKDOWN: MARKDOWN
+ /// - FILE_TYPE_PNG: PNG(not supported yet)
+ /// - FILE_TYPE_JPEG: JPEG(not supported yet)
+ /// - FILE_TYPE_JPG: JPG(not supported yet)
+ /// - FILE_TYPE_HTML: HTML
+ /// - FILE_TYPE_DOCX: DOCX
+ /// - FILE_TYPE_DOC: DOC
+ /// - FILE_TYPE_PPT: PPT
+ /// - FILE_TYPE_PPTX: PPTX
+ /// - FILE_TYPE_XLS: XLS(not supported yet)
+ /// - FILE_TYPE_XLSX: XLSX + ///
+ public enum FileType2 + { + /// + /// + /// + FILETYPETEXT, + /// + /// + /// + FILETYPEPDF, + /// + /// + /// + FILETYPEMARKDOWN, + /// + /// + /// + FILETYPEPNG, + /// + /// + /// + FILETYPEJPEG, + /// + /// + /// + FILETYPEJPG, + /// + /// + /// + FILETYPEHTML, + /// + /// + /// + FILETYPEDOCX, + /// + /// + /// + FILETYPEDOC, + /// + /// + /// + FILETYPEPPT, + /// + /// + /// + FILETYPEPPTX, + /// + /// + /// + FILETYPEXLS, + /// + /// + /// + FILETYPEXLSX, + } + + /// + /// Enum extensions to do fast conversions without the reflection. + /// + public static class FileType2Extensions + { + /// + /// Converts an enum to a string. + /// + public static string ToValueString(this FileType2 value) + { + return value switch + { + FileType2.FILETYPETEXT => "FILE_TYPE_TEXT", + FileType2.FILETYPEPDF => "FILE_TYPE_PDF", + FileType2.FILETYPEMARKDOWN => "FILE_TYPE_MARKDOWN", + FileType2.FILETYPEPNG => "FILE_TYPE_PNG", + FileType2.FILETYPEJPEG => "FILE_TYPE_JPEG", + FileType2.FILETYPEJPG => "FILE_TYPE_JPG", + FileType2.FILETYPEHTML => "FILE_TYPE_HTML", + FileType2.FILETYPEDOCX => "FILE_TYPE_DOCX", + FileType2.FILETYPEDOC => "FILE_TYPE_DOC", + FileType2.FILETYPEPPT => "FILE_TYPE_PPT", + FileType2.FILETYPEPPTX => "FILE_TYPE_PPTX", + FileType2.FILETYPEXLS => "FILE_TYPE_XLS", + FileType2.FILETYPEXLSX => "FILE_TYPE_XLSX", + _ => throw new global::System.ArgumentOutOfRangeException(nameof(value), value, null), + }; + } + /// + /// Converts an string to a enum. + /// + public static FileType2? ToEnum(string value) + { + return value switch + { + "FILE_TYPE_TEXT" => FileType2.FILETYPETEXT, + "FILE_TYPE_PDF" => FileType2.FILETYPEPDF, + "FILE_TYPE_MARKDOWN" => FileType2.FILETYPEMARKDOWN, + "FILE_TYPE_PNG" => FileType2.FILETYPEPNG, + "FILE_TYPE_JPEG" => FileType2.FILETYPEJPEG, + "FILE_TYPE_JPG" => FileType2.FILETYPEJPG, + "FILE_TYPE_HTML" => FileType2.FILETYPEHTML, + "FILE_TYPE_DOCX" => FileType2.FILETYPEDOCX, + "FILE_TYPE_DOC" => FileType2.FILETYPEDOC, + "FILE_TYPE_PPT" => FileType2.FILETYPEPPT, + "FILE_TYPE_PPTX" => FileType2.FILETYPEPPTX, + "FILE_TYPE_XLS" => FileType2.FILETYPEXLS, + "FILE_TYPE_XLSX" => FileType2.FILETYPEXLSX, + _ => null, + }; + } + } +} \ No newline at end of file diff --git a/src/libs/Instill/Generated/Instill.Models.GetFileCatalogResponse.g.cs b/src/libs/Instill/Generated/Instill.Models.GetFileCatalogResponse.g.cs new file mode 100644 index 0000000..6e00656 --- /dev/null +++ b/src/libs/Instill/Generated/Instill.Models.GetFileCatalogResponse.g.cs @@ -0,0 +1,45 @@ + +#pragma warning disable CS0618 // Type or member is obsolete + +#nullable enable + +namespace Instill +{ + /// + /// + /// + public sealed partial class GetFileCatalogResponse + { + /// + /// + /// + [global::System.Text.Json.Serialization.JsonPropertyName("originalData")] + public string? OriginalData { get; set; } + + /// + /// + /// + [global::System.Text.Json.Serialization.JsonPropertyName("metadata")] + [global::System.Text.Json.Serialization.JsonConverter(typeof(global::Instill.JsonConverters.AllOfJsonConverterFactory1))] + public global::Instill.AllOf? Metadata { get; set; } + + /// + /// + /// + [global::System.Text.Json.Serialization.JsonPropertyName("text")] + [global::System.Text.Json.Serialization.JsonConverter(typeof(global::Instill.JsonConverters.AllOfJsonConverterFactory1))] + public global::Instill.AllOf? Text { get; set; } + + /// + /// + /// + [global::System.Text.Json.Serialization.JsonPropertyName("chunks")] + public global::System.Collections.Generic.IList? Chunks { get; set; } + + /// + /// Additional properties that are not explicitly defined in the schema + /// + [global::System.Text.Json.Serialization.JsonExtensionData] + public global::System.Collections.Generic.IDictionary AdditionalProperties { get; set; } = new global::System.Collections.Generic.Dictionary(); + } +} \ No newline at end of file diff --git a/src/libs/Instill/Generated/Instill.Models.GetFileCatalogResponse2.g.cs b/src/libs/Instill/Generated/Instill.Models.GetFileCatalogResponse2.g.cs new file mode 100644 index 0000000..25e6ee5 --- /dev/null +++ b/src/libs/Instill/Generated/Instill.Models.GetFileCatalogResponse2.g.cs @@ -0,0 +1,18 @@ + +#nullable enable + +namespace Instill +{ + /// + /// + /// + public sealed partial class GetFileCatalogResponse2 + { + + /// + /// Additional properties that are not explicitly defined in the schema + /// + [global::System.Text.Json.Serialization.JsonExtensionData] + public global::System.Collections.Generic.IDictionary AdditionalProperties { get; set; } = new global::System.Collections.Generic.Dictionary(); + } +} \ No newline at end of file diff --git a/src/libs/Instill/Generated/Instill.Models.GetFileCatalogResponseChunk.g.cs b/src/libs/Instill/Generated/Instill.Models.GetFileCatalogResponseChunk.g.cs new file mode 100644 index 0000000..f632a04 --- /dev/null +++ b/src/libs/Instill/Generated/Instill.Models.GetFileCatalogResponseChunk.g.cs @@ -0,0 +1,74 @@ + +#pragma warning disable CS0618 // Type or member is obsolete + +#nullable enable + +namespace Instill +{ + /// + /// + /// + public sealed partial class GetFileCatalogResponseChunk + { + /// + /// + /// + [global::System.Text.Json.Serialization.JsonPropertyName("uid")] + public string? Uid { get; set; } + + /// + /// + /// + [global::System.Text.Json.Serialization.JsonPropertyName("type")] + [global::System.Text.Json.Serialization.JsonConverter(typeof(global::Instill.JsonConverters.AllOfJsonConverterFactory1))] + public global::Instill.AllOf? Type { get; set; } + + /// + /// + /// + [global::System.Text.Json.Serialization.JsonPropertyName("startPos")] + public int StartPos { get; set; } + + /// + /// + /// + [global::System.Text.Json.Serialization.JsonPropertyName("endPos")] + public int EndPos { get; set; } + + /// + /// + /// + [global::System.Text.Json.Serialization.JsonPropertyName("content")] + public string? Content { get; set; } + + /// + /// + /// + [global::System.Text.Json.Serialization.JsonPropertyName("tokensNum")] + public int TokensNum { get; set; } + + /// + /// + /// + [global::System.Text.Json.Serialization.JsonPropertyName("embedding")] + public global::System.Collections.Generic.IList? Embedding { get; set; } + + /// + /// + /// + [global::System.Text.Json.Serialization.JsonPropertyName("createTime")] + public global::System.DateTime CreateTime { get; set; } + + /// + /// + /// + [global::System.Text.Json.Serialization.JsonPropertyName("retrievable")] + public bool Retrievable { get; set; } + + /// + /// Additional properties that are not explicitly defined in the schema + /// + [global::System.Text.Json.Serialization.JsonExtensionData] + public global::System.Collections.Generic.IDictionary AdditionalProperties { get; set; } = new global::System.Collections.Generic.Dictionary(); + } +} \ No newline at end of file diff --git a/src/libs/Instill/Generated/Instill.Models.GetFileCatalogResponseChunkType.g.cs b/src/libs/Instill/Generated/Instill.Models.GetFileCatalogResponseChunkType.g.cs new file mode 100644 index 0000000..df9cbb1 --- /dev/null +++ b/src/libs/Instill/Generated/Instill.Models.GetFileCatalogResponseChunkType.g.cs @@ -0,0 +1,66 @@ + +#nullable enable + +namespace Instill +{ + /// + /// - CHUNK_TYPE_TEXT: text
+ /// - CHUNK_TYPE_IMAGE: image
+ /// - CHUNK_TYPE_AUDIO: audio
+ /// - CHUNK_TYPE_VIDEO: video + ///
+ public enum GetFileCatalogResponseChunkType + { + /// + /// + /// + CHUNKTYPETEXT, + /// + /// + /// + CHUNKTYPEIMAGE, + /// + /// + /// + CHUNKTYPEAUDIO, + /// + /// + /// + CHUNKTYPEVIDEO, + } + + /// + /// Enum extensions to do fast conversions without the reflection. + /// + public static class GetFileCatalogResponseChunkTypeExtensions + { + /// + /// Converts an enum to a string. + /// + public static string ToValueString(this GetFileCatalogResponseChunkType value) + { + return value switch + { + GetFileCatalogResponseChunkType.CHUNKTYPETEXT => "CHUNK_TYPE_TEXT", + GetFileCatalogResponseChunkType.CHUNKTYPEIMAGE => "CHUNK_TYPE_IMAGE", + GetFileCatalogResponseChunkType.CHUNKTYPEAUDIO => "CHUNK_TYPE_AUDIO", + GetFileCatalogResponseChunkType.CHUNKTYPEVIDEO => "CHUNK_TYPE_VIDEO", + _ => throw new global::System.ArgumentOutOfRangeException(nameof(value), value, null), + }; + } + /// + /// Converts an string to a enum. + /// + public static GetFileCatalogResponseChunkType? ToEnum(string value) + { + return value switch + { + "CHUNK_TYPE_TEXT" => GetFileCatalogResponseChunkType.CHUNKTYPETEXT, + "CHUNK_TYPE_IMAGE" => GetFileCatalogResponseChunkType.CHUNKTYPEIMAGE, + "CHUNK_TYPE_AUDIO" => GetFileCatalogResponseChunkType.CHUNKTYPEAUDIO, + "CHUNK_TYPE_VIDEO" => GetFileCatalogResponseChunkType.CHUNKTYPEVIDEO, + _ => null, + }; + } + } +} \ No newline at end of file diff --git a/src/libs/Instill/Generated/Instill.Models.GetFileCatalogResponseMetadata.g.cs b/src/libs/Instill/Generated/Instill.Models.GetFileCatalogResponseMetadata.g.cs new file mode 100644 index 0000000..dd3e2d5 --- /dev/null +++ b/src/libs/Instill/Generated/Instill.Models.GetFileCatalogResponseMetadata.g.cs @@ -0,0 +1,57 @@ + +#pragma warning disable CS0618 // Type or member is obsolete + +#nullable enable + +namespace Instill +{ + /// + /// + /// + public sealed partial class GetFileCatalogResponseMetadata + { + /// + /// + /// + [global::System.Text.Json.Serialization.JsonPropertyName("fileUid")] + public string? FileUid { get; set; } + + /// + /// + /// + [global::System.Text.Json.Serialization.JsonPropertyName("fileId")] + public string? FileId { get; set; } + + /// + /// + /// + [global::System.Text.Json.Serialization.JsonPropertyName("fileType")] + [global::System.Text.Json.Serialization.JsonConverter(typeof(global::Instill.JsonConverters.AllOfJsonConverterFactory1))] + public global::Instill.AllOf? FileType { get; set; } + + /// + /// + /// + [global::System.Text.Json.Serialization.JsonPropertyName("fileSize")] + public string? FileSize { get; set; } + + /// + /// + /// + [global::System.Text.Json.Serialization.JsonPropertyName("fileUploadTime")] + public global::System.DateTime FileUploadTime { get; set; } + + /// + /// + /// + [global::System.Text.Json.Serialization.JsonPropertyName("fileProcessStatus")] + [global::System.Text.Json.Serialization.JsonConverter(typeof(global::Instill.JsonConverters.AllOfJsonConverterFactory1))] + public global::Instill.AllOf? FileProcessStatus { get; set; } + + /// + /// Additional properties that are not explicitly defined in the schema + /// + [global::System.Text.Json.Serialization.JsonExtensionData] + public global::System.Collections.Generic.IDictionary AdditionalProperties { get; set; } = new global::System.Collections.Generic.Dictionary(); + } +} \ No newline at end of file diff --git a/src/libs/Instill/Generated/Instill.Models.GetFileCatalogResponseText.g.cs b/src/libs/Instill/Generated/Instill.Models.GetFileCatalogResponseText.g.cs new file mode 100644 index 0000000..9f68d0b --- /dev/null +++ b/src/libs/Instill/Generated/Instill.Models.GetFileCatalogResponseText.g.cs @@ -0,0 +1,47 @@ + +#nullable enable + +namespace Instill +{ + /// + /// + /// + public sealed partial class GetFileCatalogResponseText + { + /// + /// + /// + [global::System.Text.Json.Serialization.JsonPropertyName("pipelineIds")] + public global::System.Collections.Generic.IList? PipelineIds { get; set; } + + /// + /// + /// + [global::System.Text.Json.Serialization.JsonPropertyName("transformedContent")] + public string? TransformedContent { get; set; } + + /// + /// + /// + [global::System.Text.Json.Serialization.JsonPropertyName("transformedContentChunkNum")] + public int TransformedContentChunkNum { get; set; } + + /// + /// + /// + [global::System.Text.Json.Serialization.JsonPropertyName("transformedContentTokenNum")] + public int TransformedContentTokenNum { get; set; } + + /// + /// + /// + [global::System.Text.Json.Serialization.JsonPropertyName("transformedContentUpdateTime")] + public global::System.DateTime TransformedContentUpdateTime { get; set; } + + /// + /// Additional properties that are not explicitly defined in the schema + /// + [global::System.Text.Json.Serialization.JsonExtensionData] + public global::System.Collections.Generic.IDictionary AdditionalProperties { get; set; } = new global::System.Collections.Generic.Dictionary(); + } +} \ No newline at end of file diff --git a/src/libs/Instill/Generated/Instill.Models.GetRepositoryTagResponse.g.cs b/src/libs/Instill/Generated/Instill.Models.GetRepositoryTagResponse.g.cs new file mode 100644 index 0000000..294c44c --- /dev/null +++ b/src/libs/Instill/Generated/Instill.Models.GetRepositoryTagResponse.g.cs @@ -0,0 +1,26 @@ + +#pragma warning disable CS0618 // Type or member is obsolete + +#nullable enable + +namespace Instill +{ + /// + /// GetRepositoryTagResponse contains the created tag. + /// + public sealed partial class GetRepositoryTagResponse + { + /// + /// The created tag. + /// + [global::System.Text.Json.Serialization.JsonPropertyName("tag")] + [global::System.Text.Json.Serialization.JsonConverter(typeof(global::Instill.JsonConverters.AllOfJsonConverterFactory1))] + public global::Instill.AllOf? Tag { get; set; } + + /// + /// Additional properties that are not explicitly defined in the schema + /// + [global::System.Text.Json.Serialization.JsonExtensionData] + public global::System.Collections.Generic.IDictionary AdditionalProperties { get; set; } = new global::System.Collections.Generic.Dictionary(); + } +} \ No newline at end of file diff --git a/src/libs/Instill/Generated/Instill.Models.GetSourceFileResponse.g.cs b/src/libs/Instill/Generated/Instill.Models.GetSourceFileResponse.g.cs new file mode 100644 index 0000000..5720551 --- /dev/null +++ b/src/libs/Instill/Generated/Instill.Models.GetSourceFileResponse.g.cs @@ -0,0 +1,26 @@ + +#pragma warning disable CS0618 // Type or member is obsolete + +#nullable enable + +namespace Instill +{ + /// + /// + /// + public sealed partial class GetSourceFileResponse + { + /// + /// + /// + [global::System.Text.Json.Serialization.JsonPropertyName("sourceFile")] + [global::System.Text.Json.Serialization.JsonConverter(typeof(global::Instill.JsonConverters.AllOfJsonConverterFactory1))] + public global::Instill.AllOf? SourceFile { get; set; } + + /// + /// Additional properties that are not explicitly defined in the schema + /// + [global::System.Text.Json.Serialization.JsonExtensionData] + public global::System.Collections.Generic.IDictionary AdditionalProperties { get; set; } = new global::System.Collections.Generic.Dictionary(); + } +} \ No newline at end of file diff --git a/src/libs/Instill/Generated/Instill.Models.GetSourceFileResponse2.g.cs b/src/libs/Instill/Generated/Instill.Models.GetSourceFileResponse2.g.cs new file mode 100644 index 0000000..36a552a --- /dev/null +++ b/src/libs/Instill/Generated/Instill.Models.GetSourceFileResponse2.g.cs @@ -0,0 +1,18 @@ + +#nullable enable + +namespace Instill +{ + /// + /// + /// + public sealed partial class GetSourceFileResponse2 + { + + /// + /// Additional properties that are not explicitly defined in the schema + /// + [global::System.Text.Json.Serialization.JsonExtensionData] + public global::System.Collections.Generic.IDictionary AdditionalProperties { get; set; } = new global::System.Collections.Generic.Dictionary(); + } +} \ No newline at end of file diff --git a/src/libs/Instill/Generated/Instill.Models.ListCatalogFilesFilter.g.cs b/src/libs/Instill/Generated/Instill.Models.ListCatalogFilesFilter.g.cs new file mode 100644 index 0000000..af702c3 --- /dev/null +++ b/src/libs/Instill/Generated/Instill.Models.ListCatalogFilesFilter.g.cs @@ -0,0 +1,23 @@ + +#nullable enable + +namespace Instill +{ + /// + /// + /// + public sealed partial class ListCatalogFilesFilter + { + /// + /// The file uids. + /// + [global::System.Text.Json.Serialization.JsonPropertyName("fileUids")] + public global::System.Collections.Generic.IList? FileUids { get; set; } + + /// + /// Additional properties that are not explicitly defined in the schema + /// + [global::System.Text.Json.Serialization.JsonExtensionData] + public global::System.Collections.Generic.IDictionary AdditionalProperties { get; set; } = new global::System.Collections.Generic.Dictionary(); + } +} \ No newline at end of file diff --git a/src/libs/Instill/Generated/Instill.Models.ListCatalogFilesResponse.g.cs b/src/libs/Instill/Generated/Instill.Models.ListCatalogFilesResponse.g.cs new file mode 100644 index 0000000..fbb513f --- /dev/null +++ b/src/libs/Instill/Generated/Instill.Models.ListCatalogFilesResponse.g.cs @@ -0,0 +1,50 @@ + +#pragma warning disable CS0618 // Type or member is obsolete + +#nullable enable + +namespace Instill +{ + /// + /// + /// + public sealed partial class ListCatalogFilesResponse + { + /// + /// The list of files. + /// + [global::System.Text.Json.Serialization.JsonPropertyName("files")] + public global::System.Collections.Generic.IList? Files { get; set; } + + /// + /// The total number of files. + /// + [global::System.Text.Json.Serialization.JsonPropertyName("totalSize")] + public int TotalSize { get; set; } + + /// + /// The requested page size. + /// + [global::System.Text.Json.Serialization.JsonPropertyName("pageSize")] + public int PageSize { get; set; } + + /// + /// + /// + [global::System.Text.Json.Serialization.JsonPropertyName("nextPageToken")] + public string? NextPageToken { get; set; } + + /// + /// The filter. + /// + [global::System.Text.Json.Serialization.JsonPropertyName("filter")] + [global::System.Text.Json.Serialization.JsonConverter(typeof(global::Instill.JsonConverters.AllOfJsonConverterFactory1))] + public global::Instill.AllOf? Filter { get; set; } + + /// + /// Additional properties that are not explicitly defined in the schema + /// + [global::System.Text.Json.Serialization.JsonExtensionData] + public global::System.Collections.Generic.IDictionary AdditionalProperties { get; set; } = new global::System.Collections.Generic.Dictionary(); + } +} \ No newline at end of file diff --git a/src/libs/Instill/Generated/Instill.Models.ListCatalogFilesResponse2.g.cs b/src/libs/Instill/Generated/Instill.Models.ListCatalogFilesResponse2.g.cs new file mode 100644 index 0000000..63c4463 --- /dev/null +++ b/src/libs/Instill/Generated/Instill.Models.ListCatalogFilesResponse2.g.cs @@ -0,0 +1,18 @@ + +#nullable enable + +namespace Instill +{ + /// + /// + /// + public sealed partial class ListCatalogFilesResponse2 + { + + /// + /// Additional properties that are not explicitly defined in the schema + /// + [global::System.Text.Json.Serialization.JsonExtensionData] + public global::System.Collections.Generic.IDictionary AdditionalProperties { get; set; } = new global::System.Collections.Generic.Dictionary(); + } +} \ No newline at end of file diff --git a/src/libs/Instill/Generated/Instill.Models.ListCatalogsResponse.g.cs b/src/libs/Instill/Generated/Instill.Models.ListCatalogsResponse.g.cs new file mode 100644 index 0000000..5cb9e31 --- /dev/null +++ b/src/libs/Instill/Generated/Instill.Models.ListCatalogsResponse.g.cs @@ -0,0 +1,23 @@ + +#nullable enable + +namespace Instill +{ + /// + /// GetCatalogsResponse represents a response for getting all catalogs from users. + /// + public sealed partial class ListCatalogsResponse + { + /// + /// The catalogs container. + /// + [global::System.Text.Json.Serialization.JsonPropertyName("catalogs")] + public global::System.Collections.Generic.IList? Catalogs { get; set; } + + /// + /// Additional properties that are not explicitly defined in the schema + /// + [global::System.Text.Json.Serialization.JsonExtensionData] + public global::System.Collections.Generic.IDictionary AdditionalProperties { get; set; } = new global::System.Collections.Generic.Dictionary(); + } +} \ No newline at end of file diff --git a/src/libs/Instill/Generated/Instill.Models.ListCatalogsResponse2.g.cs b/src/libs/Instill/Generated/Instill.Models.ListCatalogsResponse2.g.cs new file mode 100644 index 0000000..f330ce1 --- /dev/null +++ b/src/libs/Instill/Generated/Instill.Models.ListCatalogsResponse2.g.cs @@ -0,0 +1,18 @@ + +#nullable enable + +namespace Instill +{ + /// + /// + /// + public sealed partial class ListCatalogsResponse2 + { + + /// + /// Additional properties that are not explicitly defined in the schema + /// + [global::System.Text.Json.Serialization.JsonExtensionData] + public global::System.Collections.Generic.IDictionary AdditionalProperties { get; set; } = new global::System.Collections.Generic.Dictionary(); + } +} \ No newline at end of file diff --git a/src/libs/Instill/Generated/Instill.Models.ListChunksResponse.g.cs b/src/libs/Instill/Generated/Instill.Models.ListChunksResponse.g.cs new file mode 100644 index 0000000..d87b25e --- /dev/null +++ b/src/libs/Instill/Generated/Instill.Models.ListChunksResponse.g.cs @@ -0,0 +1,23 @@ + +#nullable enable + +namespace Instill +{ + /// + /// The ListChunksResponse message represents a response containing a list of chunks in the artifact system. + /// + public sealed partial class ListChunksResponse + { + /// + /// + /// + [global::System.Text.Json.Serialization.JsonPropertyName("chunks")] + public global::System.Collections.Generic.IList? Chunks { get; set; } + + /// + /// Additional properties that are not explicitly defined in the schema + /// + [global::System.Text.Json.Serialization.JsonExtensionData] + public global::System.Collections.Generic.IDictionary AdditionalProperties { get; set; } = new global::System.Collections.Generic.Dictionary(); + } +} \ No newline at end of file diff --git a/src/libs/Instill/Generated/Instill.Models.ListChunksResponse2.g.cs b/src/libs/Instill/Generated/Instill.Models.ListChunksResponse2.g.cs new file mode 100644 index 0000000..f4d3d85 --- /dev/null +++ b/src/libs/Instill/Generated/Instill.Models.ListChunksResponse2.g.cs @@ -0,0 +1,18 @@ + +#nullable enable + +namespace Instill +{ + /// + /// + /// + public sealed partial class ListChunksResponse2 + { + + /// + /// Additional properties that are not explicitly defined in the schema + /// + [global::System.Text.Json.Serialization.JsonExtensionData] + public global::System.Collections.Generic.IDictionary AdditionalProperties { get; set; } = new global::System.Collections.Generic.Dictionary(); + } +} \ No newline at end of file diff --git a/src/libs/Instill/Generated/Instill.Models.ListRepositoryTagsResponse.g.cs b/src/libs/Instill/Generated/Instill.Models.ListRepositoryTagsResponse.g.cs new file mode 100644 index 0000000..4843e0f --- /dev/null +++ b/src/libs/Instill/Generated/Instill.Models.ListRepositoryTagsResponse.g.cs @@ -0,0 +1,41 @@ + +#nullable enable + +namespace Instill +{ + /// + /// ListRepositoryTagsResponse contains a list of container image tags. + /// + public sealed partial class ListRepositoryTagsResponse + { + /// + /// A list of repository tags. + /// + [global::System.Text.Json.Serialization.JsonPropertyName("tags")] + public global::System.Collections.Generic.IList? Tags { get; set; } + + /// + /// Total number of tags. + /// + [global::System.Text.Json.Serialization.JsonPropertyName("totalSize")] + public int TotalSize { get; set; } + + /// + /// The requested page size. + /// + [global::System.Text.Json.Serialization.JsonPropertyName("pageSize")] + public int PageSize { get; set; } + + /// + /// The requested page offset. + /// + [global::System.Text.Json.Serialization.JsonPropertyName("page")] + public int Page { get; set; } + + /// + /// Additional properties that are not explicitly defined in the schema + /// + [global::System.Text.Json.Serialization.JsonExtensionData] + public global::System.Collections.Generic.IDictionary AdditionalProperties { get; set; } = new global::System.Collections.Generic.Dictionary(); + } +} \ No newline at end of file diff --git a/src/libs/Instill/Generated/Instill.Models.ProcessCatalogFilesRequest.g.cs b/src/libs/Instill/Generated/Instill.Models.ProcessCatalogFilesRequest.g.cs new file mode 100644 index 0000000..1153129 --- /dev/null +++ b/src/libs/Instill/Generated/Instill.Models.ProcessCatalogFilesRequest.g.cs @@ -0,0 +1,24 @@ + +#nullable enable + +namespace Instill +{ + /// + /// + /// + public sealed partial class ProcessCatalogFilesRequest + { + /// + /// The file uid. + /// + [global::System.Text.Json.Serialization.JsonPropertyName("fileUids")] + [global::System.Text.Json.Serialization.JsonRequired] + public required global::System.Collections.Generic.IList FileUids { get; set; } + + /// + /// Additional properties that are not explicitly defined in the schema + /// + [global::System.Text.Json.Serialization.JsonExtensionData] + public global::System.Collections.Generic.IDictionary AdditionalProperties { get; set; } = new global::System.Collections.Generic.Dictionary(); + } +} \ No newline at end of file diff --git a/src/libs/Instill/Generated/Instill.Models.ProcessCatalogFilesResponse.g.cs b/src/libs/Instill/Generated/Instill.Models.ProcessCatalogFilesResponse.g.cs new file mode 100644 index 0000000..0e877e3 --- /dev/null +++ b/src/libs/Instill/Generated/Instill.Models.ProcessCatalogFilesResponse.g.cs @@ -0,0 +1,23 @@ + +#nullable enable + +namespace Instill +{ + /// + /// + /// + public sealed partial class ProcessCatalogFilesResponse + { + /// + /// The file uid. + /// + [global::System.Text.Json.Serialization.JsonPropertyName("files")] + public global::System.Collections.Generic.IList? Files { get; set; } + + /// + /// Additional properties that are not explicitly defined in the schema + /// + [global::System.Text.Json.Serialization.JsonExtensionData] + public global::System.Collections.Generic.IDictionary AdditionalProperties { get; set; } = new global::System.Collections.Generic.Dictionary(); + } +} \ No newline at end of file diff --git a/src/libs/Instill/Generated/Instill.Models.ProcessCatalogFilesResponse2.g.cs b/src/libs/Instill/Generated/Instill.Models.ProcessCatalogFilesResponse2.g.cs new file mode 100644 index 0000000..ad4f86e --- /dev/null +++ b/src/libs/Instill/Generated/Instill.Models.ProcessCatalogFilesResponse2.g.cs @@ -0,0 +1,18 @@ + +#nullable enable + +namespace Instill +{ + /// + /// + /// + public sealed partial class ProcessCatalogFilesResponse2 + { + + /// + /// Additional properties that are not explicitly defined in the schema + /// + [global::System.Text.Json.Serialization.JsonExtensionData] + public global::System.Collections.Generic.IDictionary AdditionalProperties { get; set; } = new global::System.Collections.Generic.Dictionary(); + } +} \ No newline at end of file diff --git a/src/libs/Instill/Generated/Instill.Models.QuestionAnsweringBody.g.cs b/src/libs/Instill/Generated/Instill.Models.QuestionAnsweringBody.g.cs new file mode 100644 index 0000000..77002c8 --- /dev/null +++ b/src/libs/Instill/Generated/Instill.Models.QuestionAnsweringBody.g.cs @@ -0,0 +1,29 @@ + +#nullable enable + +namespace Instill +{ + /// + /// + /// + public sealed partial class QuestionAnsweringBody + { + /// + /// + /// + [global::System.Text.Json.Serialization.JsonPropertyName("question")] + public string? Question { get; set; } + + /// + /// + /// + [global::System.Text.Json.Serialization.JsonPropertyName("topK")] + public int TopK { get; set; } + + /// + /// Additional properties that are not explicitly defined in the schema + /// + [global::System.Text.Json.Serialization.JsonExtensionData] + public global::System.Collections.Generic.IDictionary AdditionalProperties { get; set; } = new global::System.Collections.Generic.Dictionary(); + } +} \ No newline at end of file diff --git a/src/libs/Instill/Generated/Instill.Models.QuestionAnsweringResponse.g.cs b/src/libs/Instill/Generated/Instill.Models.QuestionAnsweringResponse.g.cs new file mode 100644 index 0000000..9cfc2b1 --- /dev/null +++ b/src/libs/Instill/Generated/Instill.Models.QuestionAnsweringResponse.g.cs @@ -0,0 +1,29 @@ + +#nullable enable + +namespace Instill +{ + /// + /// + /// + public sealed partial class QuestionAnsweringResponse + { + /// + /// + /// + [global::System.Text.Json.Serialization.JsonPropertyName("answer")] + public string? Answer { get; set; } + + /// + /// + /// + [global::System.Text.Json.Serialization.JsonPropertyName("similarChunks")] + public global::System.Collections.Generic.IList? SimilarChunks { get; set; } + + /// + /// Additional properties that are not explicitly defined in the schema + /// + [global::System.Text.Json.Serialization.JsonExtensionData] + public global::System.Collections.Generic.IDictionary AdditionalProperties { get; set; } = new global::System.Collections.Generic.Dictionary(); + } +} \ No newline at end of file diff --git a/src/libs/Instill/Generated/Instill.Models.QuestionAnsweringResponse2.g.cs b/src/libs/Instill/Generated/Instill.Models.QuestionAnsweringResponse2.g.cs new file mode 100644 index 0000000..f5b6d3d --- /dev/null +++ b/src/libs/Instill/Generated/Instill.Models.QuestionAnsweringResponse2.g.cs @@ -0,0 +1,18 @@ + +#nullable enable + +namespace Instill +{ + /// + /// + /// + public sealed partial class QuestionAnsweringResponse2 + { + + /// + /// Additional properties that are not explicitly defined in the schema + /// + [global::System.Text.Json.Serialization.JsonExtensionData] + public global::System.Collections.Generic.IDictionary AdditionalProperties { get; set; } = new global::System.Collections.Generic.Dictionary(); + } +} \ No newline at end of file diff --git a/src/libs/Instill/Generated/Instill.Models.RepositoryTag.g.cs b/src/libs/Instill/Generated/Instill.Models.RepositoryTag.g.cs new file mode 100644 index 0000000..ddda124 --- /dev/null +++ b/src/libs/Instill/Generated/Instill.Models.RepositoryTag.g.cs @@ -0,0 +1,43 @@ + +#nullable enable + +namespace Instill +{ + /// + /// RepositoryTag contains information about the version of some content in a
+ /// repository. + ///
+ public sealed partial class RepositoryTag + { + /// + /// The name of the tag, defined by its parent repository and ID.
+ /// - Format: `repositories/{repository.id}/tags/{tag.id}`. + ///
+ [global::System.Text.Json.Serialization.JsonPropertyName("name")] + public string? Name { get; set; } + + /// + /// The tag identifier. + /// + [global::System.Text.Json.Serialization.JsonPropertyName("id")] + public string? Id { get; set; } + + /// + /// Unique identifier, computed from the manifest the tag refers to. + /// + [global::System.Text.Json.Serialization.JsonPropertyName("digest")] + public string? Digest { get; set; } + + /// + /// Tag update time, i.e. timestamp of the last push. + /// + [global::System.Text.Json.Serialization.JsonPropertyName("updateTime")] + public global::System.DateTime UpdateTime { get; set; } + + /// + /// Additional properties that are not explicitly defined in the schema + /// + [global::System.Text.Json.Serialization.JsonExtensionData] + public global::System.Collections.Generic.IDictionary AdditionalProperties { get; set; } = new global::System.Collections.Generic.Dictionary(); + } +} \ No newline at end of file diff --git a/src/libs/Instill/Generated/Instill.Models.RpcStatus.g.cs b/src/libs/Instill/Generated/Instill.Models.RpcStatus.g.cs new file mode 100644 index 0000000..b3f0591 --- /dev/null +++ b/src/libs/Instill/Generated/Instill.Models.RpcStatus.g.cs @@ -0,0 +1,35 @@ + +#nullable enable + +namespace Instill +{ + /// + /// + /// + public sealed partial class RpcStatus + { + /// + /// + /// + [global::System.Text.Json.Serialization.JsonPropertyName("code")] + public int Code { get; set; } + + /// + /// + /// + [global::System.Text.Json.Serialization.JsonPropertyName("message")] + public string? Message { get; set; } + + /// + /// + /// + [global::System.Text.Json.Serialization.JsonPropertyName("details")] + public global::System.Collections.Generic.IList? Details { get; set; } + + /// + /// Additional properties that are not explicitly defined in the schema + /// + [global::System.Text.Json.Serialization.JsonExtensionData] + public global::System.Collections.Generic.IDictionary AdditionalProperties { get; set; } = new global::System.Collections.Generic.Dictionary(); + } +} \ No newline at end of file diff --git a/src/libs/Instill/Generated/Instill.Models.SimilarityChunk.g.cs b/src/libs/Instill/Generated/Instill.Models.SimilarityChunk.g.cs new file mode 100644 index 0000000..b9013e8 --- /dev/null +++ b/src/libs/Instill/Generated/Instill.Models.SimilarityChunk.g.cs @@ -0,0 +1,41 @@ + +#nullable enable + +namespace Instill +{ + /// + /// + /// + public sealed partial class SimilarityChunk + { + /// + /// + /// + [global::System.Text.Json.Serialization.JsonPropertyName("chunkUid")] + public string? ChunkUid { get; set; } + + /// + /// + /// + [global::System.Text.Json.Serialization.JsonPropertyName("similarityScore")] + public float SimilarityScore { get; set; } + + /// + /// + /// + [global::System.Text.Json.Serialization.JsonPropertyName("textContent")] + public string? TextContent { get; set; } + + /// + /// + /// + [global::System.Text.Json.Serialization.JsonPropertyName("sourceFile")] + public string? SourceFile { get; set; } + + /// + /// Additional properties that are not explicitly defined in the schema + /// + [global::System.Text.Json.Serialization.JsonExtensionData] + public global::System.Collections.Generic.IDictionary AdditionalProperties { get; set; } = new global::System.Collections.Generic.Dictionary(); + } +} \ No newline at end of file diff --git a/src/libs/Instill/Generated/Instill.Models.SimilarityChunksSearchBody.g.cs b/src/libs/Instill/Generated/Instill.Models.SimilarityChunksSearchBody.g.cs new file mode 100644 index 0000000..39bbc3c --- /dev/null +++ b/src/libs/Instill/Generated/Instill.Models.SimilarityChunksSearchBody.g.cs @@ -0,0 +1,29 @@ + +#nullable enable + +namespace Instill +{ + /// + /// + /// + public sealed partial class SimilarityChunksSearchBody + { + /// + /// + /// + [global::System.Text.Json.Serialization.JsonPropertyName("textPrompt")] + public string? TextPrompt { get; set; } + + /// + /// + /// + [global::System.Text.Json.Serialization.JsonPropertyName("topK")] + public long TopK { get; set; } + + /// + /// Additional properties that are not explicitly defined in the schema + /// + [global::System.Text.Json.Serialization.JsonExtensionData] + public global::System.Collections.Generic.IDictionary AdditionalProperties { get; set; } = new global::System.Collections.Generic.Dictionary(); + } +} \ No newline at end of file diff --git a/src/libs/Instill/Generated/Instill.Models.SimilarityChunksSearchResponse.g.cs b/src/libs/Instill/Generated/Instill.Models.SimilarityChunksSearchResponse.g.cs new file mode 100644 index 0000000..151f944 --- /dev/null +++ b/src/libs/Instill/Generated/Instill.Models.SimilarityChunksSearchResponse.g.cs @@ -0,0 +1,23 @@ + +#nullable enable + +namespace Instill +{ + /// + /// + /// + public sealed partial class SimilarityChunksSearchResponse + { + /// + /// + /// + [global::System.Text.Json.Serialization.JsonPropertyName("similarChunks")] + public global::System.Collections.Generic.IList? SimilarChunks { get; set; } + + /// + /// Additional properties that are not explicitly defined in the schema + /// + [global::System.Text.Json.Serialization.JsonExtensionData] + public global::System.Collections.Generic.IDictionary AdditionalProperties { get; set; } = new global::System.Collections.Generic.Dictionary(); + } +} \ No newline at end of file diff --git a/src/libs/Instill/Generated/Instill.Models.SimilarityChunksSearchResponse2.g.cs b/src/libs/Instill/Generated/Instill.Models.SimilarityChunksSearchResponse2.g.cs new file mode 100644 index 0000000..fa91fab --- /dev/null +++ b/src/libs/Instill/Generated/Instill.Models.SimilarityChunksSearchResponse2.g.cs @@ -0,0 +1,18 @@ + +#nullable enable + +namespace Instill +{ + /// + /// + /// + public sealed partial class SimilarityChunksSearchResponse2 + { + + /// + /// Additional properties that are not explicitly defined in the schema + /// + [global::System.Text.Json.Serialization.JsonExtensionData] + public global::System.Collections.Generic.IDictionary AdditionalProperties { get; set; } = new global::System.Collections.Generic.Dictionary(); + } +} \ No newline at end of file diff --git a/src/libs/Instill/Generated/Instill.Models.SourceFile2.g.cs b/src/libs/Instill/Generated/Instill.Models.SourceFile2.g.cs new file mode 100644 index 0000000..0b65952 --- /dev/null +++ b/src/libs/Instill/Generated/Instill.Models.SourceFile2.g.cs @@ -0,0 +1,41 @@ + +#nullable enable + +namespace Instill +{ + /// + /// The SourceFile message represents a source file in the artifact system. + /// + public sealed partial class SourceFile2 + { + /// + /// + /// + [global::System.Text.Json.Serialization.JsonPropertyName("originalFileUid")] + public string? OriginalFileUid { get; set; } + + /// + /// + /// + [global::System.Text.Json.Serialization.JsonPropertyName("content")] + public string? Content { get; set; } + + /// + /// + /// + [global::System.Text.Json.Serialization.JsonPropertyName("createTime")] + public global::System.DateTime CreateTime { get; set; } + + /// + /// + /// + [global::System.Text.Json.Serialization.JsonPropertyName("updateTime")] + public global::System.DateTime UpdateTime { get; set; } + + /// + /// Additional properties that are not explicitly defined in the schema + /// + [global::System.Text.Json.Serialization.JsonExtensionData] + public global::System.Collections.Generic.IDictionary AdditionalProperties { get; set; } = new global::System.Collections.Generic.Dictionary(); + } +} \ No newline at end of file diff --git a/src/libs/Instill/Generated/Instill.Models.UpdateCatalogBody.g.cs b/src/libs/Instill/Generated/Instill.Models.UpdateCatalogBody.g.cs new file mode 100644 index 0000000..a06a8be --- /dev/null +++ b/src/libs/Instill/Generated/Instill.Models.UpdateCatalogBody.g.cs @@ -0,0 +1,29 @@ + +#nullable enable + +namespace Instill +{ + /// + /// UpdateCatalogRequest represents a request to update a catalog. + /// + public sealed partial class UpdateCatalogBody + { + /// + /// The catalog description. + /// + [global::System.Text.Json.Serialization.JsonPropertyName("description")] + public string? Description { get; set; } + + /// + /// The catalog tags. + /// + [global::System.Text.Json.Serialization.JsonPropertyName("tags")] + public global::System.Collections.Generic.IList? Tags { get; set; } + + /// + /// Additional properties that are not explicitly defined in the schema + /// + [global::System.Text.Json.Serialization.JsonExtensionData] + public global::System.Collections.Generic.IDictionary AdditionalProperties { get; set; } = new global::System.Collections.Generic.Dictionary(); + } +} \ No newline at end of file diff --git a/src/libs/Instill/Generated/Instill.Models.UpdateCatalogResponse.g.cs b/src/libs/Instill/Generated/Instill.Models.UpdateCatalogResponse.g.cs new file mode 100644 index 0000000..38573e1 --- /dev/null +++ b/src/libs/Instill/Generated/Instill.Models.UpdateCatalogResponse.g.cs @@ -0,0 +1,26 @@ + +#pragma warning disable CS0618 // Type or member is obsolete + +#nullable enable + +namespace Instill +{ + /// + /// UpdateCatalogResponse represents a response for updating a catalog. + /// + public sealed partial class UpdateCatalogResponse + { + /// + /// The updated catalog. + /// + [global::System.Text.Json.Serialization.JsonPropertyName("catalog")] + [global::System.Text.Json.Serialization.JsonConverter(typeof(global::Instill.JsonConverters.AllOfJsonConverterFactory1))] + public global::Instill.AllOf? Catalog { get; set; } + + /// + /// Additional properties that are not explicitly defined in the schema + /// + [global::System.Text.Json.Serialization.JsonExtensionData] + public global::System.Collections.Generic.IDictionary AdditionalProperties { get; set; } = new global::System.Collections.Generic.Dictionary(); + } +} \ No newline at end of file diff --git a/src/libs/Instill/Generated/Instill.Models.UpdateCatalogResponse2.g.cs b/src/libs/Instill/Generated/Instill.Models.UpdateCatalogResponse2.g.cs new file mode 100644 index 0000000..f73ba47 --- /dev/null +++ b/src/libs/Instill/Generated/Instill.Models.UpdateCatalogResponse2.g.cs @@ -0,0 +1,18 @@ + +#nullable enable + +namespace Instill +{ + /// + /// + /// + public sealed partial class UpdateCatalogResponse2 + { + + /// + /// Additional properties that are not explicitly defined in the schema + /// + [global::System.Text.Json.Serialization.JsonExtensionData] + public global::System.Collections.Generic.IDictionary AdditionalProperties { get; set; } = new global::System.Collections.Generic.Dictionary(); + } +} \ No newline at end of file diff --git a/src/libs/Instill/Generated/Instill.Models.UpdateChunkBody.g.cs b/src/libs/Instill/Generated/Instill.Models.UpdateChunkBody.g.cs new file mode 100644 index 0000000..27745d7 --- /dev/null +++ b/src/libs/Instill/Generated/Instill.Models.UpdateChunkBody.g.cs @@ -0,0 +1,23 @@ + +#nullable enable + +namespace Instill +{ + /// + /// + /// + public sealed partial class UpdateChunkBody + { + /// + /// + /// + [global::System.Text.Json.Serialization.JsonPropertyName("retrievable")] + public bool Retrievable { get; set; } + + /// + /// Additional properties that are not explicitly defined in the schema + /// + [global::System.Text.Json.Serialization.JsonExtensionData] + public global::System.Collections.Generic.IDictionary AdditionalProperties { get; set; } = new global::System.Collections.Generic.Dictionary(); + } +} \ No newline at end of file diff --git a/src/libs/Instill/Generated/Instill.Models.UpdateChunkResponse.g.cs b/src/libs/Instill/Generated/Instill.Models.UpdateChunkResponse.g.cs new file mode 100644 index 0000000..3e2d4ab --- /dev/null +++ b/src/libs/Instill/Generated/Instill.Models.UpdateChunkResponse.g.cs @@ -0,0 +1,26 @@ + +#pragma warning disable CS0618 // Type or member is obsolete + +#nullable enable + +namespace Instill +{ + /// + /// + /// + public sealed partial class UpdateChunkResponse + { + /// + /// + /// + [global::System.Text.Json.Serialization.JsonPropertyName("chunk")] + [global::System.Text.Json.Serialization.JsonConverter(typeof(global::Instill.JsonConverters.AllOfJsonConverterFactory1))] + public global::Instill.AllOf? Chunk { get; set; } + + /// + /// Additional properties that are not explicitly defined in the schema + /// + [global::System.Text.Json.Serialization.JsonExtensionData] + public global::System.Collections.Generic.IDictionary AdditionalProperties { get; set; } = new global::System.Collections.Generic.Dictionary(); + } +} \ No newline at end of file diff --git a/src/libs/Instill/Generated/Instill.Models.UpdateChunkResponse2.g.cs b/src/libs/Instill/Generated/Instill.Models.UpdateChunkResponse2.g.cs new file mode 100644 index 0000000..ce99a97 --- /dev/null +++ b/src/libs/Instill/Generated/Instill.Models.UpdateChunkResponse2.g.cs @@ -0,0 +1,18 @@ + +#nullable enable + +namespace Instill +{ + /// + /// + /// + public sealed partial class UpdateChunkResponse2 + { + + /// + /// Additional properties that are not explicitly defined in the schema + /// + [global::System.Text.Json.Serialization.JsonExtensionData] + public global::System.Collections.Generic.IDictionary AdditionalProperties { get; set; } = new global::System.Collections.Generic.Dictionary(); + } +} \ No newline at end of file diff --git a/src/libs/Instill/Generated/Instill.Models.UploadCatalogFileResponse.g.cs b/src/libs/Instill/Generated/Instill.Models.UploadCatalogFileResponse.g.cs new file mode 100644 index 0000000..5d7898c --- /dev/null +++ b/src/libs/Instill/Generated/Instill.Models.UploadCatalogFileResponse.g.cs @@ -0,0 +1,26 @@ + +#pragma warning disable CS0618 // Type or member is obsolete + +#nullable enable + +namespace Instill +{ + /// + /// + /// + public sealed partial class UploadCatalogFileResponse + { + /// + /// + /// + [global::System.Text.Json.Serialization.JsonPropertyName("file")] + [global::System.Text.Json.Serialization.JsonConverter(typeof(global::Instill.JsonConverters.AllOfJsonConverterFactory1))] + public global::Instill.AllOf? File { get; set; } + + /// + /// Additional properties that are not explicitly defined in the schema + /// + [global::System.Text.Json.Serialization.JsonExtensionData] + public global::System.Collections.Generic.IDictionary AdditionalProperties { get; set; } = new global::System.Collections.Generic.Dictionary(); + } +} \ No newline at end of file diff --git a/src/libs/Instill/Generated/Instill.Models.UploadCatalogFileResponse2.g.cs b/src/libs/Instill/Generated/Instill.Models.UploadCatalogFileResponse2.g.cs new file mode 100644 index 0000000..5c84043 --- /dev/null +++ b/src/libs/Instill/Generated/Instill.Models.UploadCatalogFileResponse2.g.cs @@ -0,0 +1,18 @@ + +#nullable enable + +namespace Instill +{ + /// + /// + /// + public sealed partial class UploadCatalogFileResponse2 + { + + /// + /// Additional properties that are not explicitly defined in the schema + /// + [global::System.Text.Json.Serialization.JsonExtensionData] + public global::System.Collections.Generic.IDictionary AdditionalProperties { get; set; } = new global::System.Collections.Generic.Dictionary(); + } +} \ No newline at end of file diff --git a/src/libs/Instill/Generated/JsonConverters.FileProcessStatus2.g.cs b/src/libs/Instill/Generated/JsonConverters.FileProcessStatus2.g.cs new file mode 100644 index 0000000..0c27bb1 --- /dev/null +++ b/src/libs/Instill/Generated/JsonConverters.FileProcessStatus2.g.cs @@ -0,0 +1,49 @@ +#nullable enable + +namespace Instill.JsonConverters +{ + /// + public sealed class FileProcessStatus2JsonConverter : global::System.Text.Json.Serialization.JsonConverter + { + /// + public override global::Instill.FileProcessStatus2 Read( + ref global::System.Text.Json.Utf8JsonReader reader, + global::System.Type typeToConvert, + global::System.Text.Json.JsonSerializerOptions options) + { + switch (reader.TokenType) + { + case global::System.Text.Json.JsonTokenType.String: + { + var stringValue = reader.GetString(); + if (stringValue != null) + { + return global::Instill.FileProcessStatus2Extensions.ToEnum(stringValue) ?? default; + } + + break; + } + case global::System.Text.Json.JsonTokenType.Number: + { + var numValue = reader.GetInt32(); + return (global::Instill.FileProcessStatus2)numValue; + } + default: + throw new global::System.ArgumentOutOfRangeException(nameof(reader)); + } + + return default; + } + + /// + public override void Write( + global::System.Text.Json.Utf8JsonWriter writer, + global::Instill.FileProcessStatus2 value, + global::System.Text.Json.JsonSerializerOptions options) + { + writer = writer ?? throw new global::System.ArgumentNullException(nameof(writer)); + + writer.WriteStringValue(global::Instill.FileProcessStatus2Extensions.ToValueString(value)); + } + } +} diff --git a/src/libs/Instill/Generated/JsonConverters.FileProcessStatus2Nullable.g.cs b/src/libs/Instill/Generated/JsonConverters.FileProcessStatus2Nullable.g.cs new file mode 100644 index 0000000..3c9449d --- /dev/null +++ b/src/libs/Instill/Generated/JsonConverters.FileProcessStatus2Nullable.g.cs @@ -0,0 +1,56 @@ +#nullable enable + +namespace Instill.JsonConverters +{ + /// + public sealed class FileProcessStatus2NullableJsonConverter : global::System.Text.Json.Serialization.JsonConverter + { + /// + public override global::Instill.FileProcessStatus2? Read( + ref global::System.Text.Json.Utf8JsonReader reader, + global::System.Type typeToConvert, + global::System.Text.Json.JsonSerializerOptions options) + { + switch (reader.TokenType) + { + case global::System.Text.Json.JsonTokenType.String: + { + var stringValue = reader.GetString(); + if (stringValue != null) + { + return global::Instill.FileProcessStatus2Extensions.ToEnum(stringValue); + } + + break; + } + case global::System.Text.Json.JsonTokenType.Number: + { + var numValue = reader.GetInt32(); + return (global::Instill.FileProcessStatus2)numValue; + } + default: + throw new global::System.ArgumentOutOfRangeException(nameof(reader)); + } + + return default; + } + + /// + public override void Write( + global::System.Text.Json.Utf8JsonWriter writer, + global::Instill.FileProcessStatus2? value, + global::System.Text.Json.JsonSerializerOptions options) + { + writer = writer ?? throw new global::System.ArgumentNullException(nameof(writer)); + + if (value == null) + { + writer.WriteNullValue(); + } + else + { + writer.WriteStringValue(global::Instill.FileProcessStatus2Extensions.ToValueString(value.Value)); + } + } + } +} diff --git a/src/libs/Instill/Generated/JsonConverters.FileType2.g.cs b/src/libs/Instill/Generated/JsonConverters.FileType2.g.cs new file mode 100644 index 0000000..4cebb26 --- /dev/null +++ b/src/libs/Instill/Generated/JsonConverters.FileType2.g.cs @@ -0,0 +1,49 @@ +#nullable enable + +namespace Instill.JsonConverters +{ + /// + public sealed class FileType2JsonConverter : global::System.Text.Json.Serialization.JsonConverter + { + /// + public override global::Instill.FileType2 Read( + ref global::System.Text.Json.Utf8JsonReader reader, + global::System.Type typeToConvert, + global::System.Text.Json.JsonSerializerOptions options) + { + switch (reader.TokenType) + { + case global::System.Text.Json.JsonTokenType.String: + { + var stringValue = reader.GetString(); + if (stringValue != null) + { + return global::Instill.FileType2Extensions.ToEnum(stringValue) ?? default; + } + + break; + } + case global::System.Text.Json.JsonTokenType.Number: + { + var numValue = reader.GetInt32(); + return (global::Instill.FileType2)numValue; + } + default: + throw new global::System.ArgumentOutOfRangeException(nameof(reader)); + } + + return default; + } + + /// + public override void Write( + global::System.Text.Json.Utf8JsonWriter writer, + global::Instill.FileType2 value, + global::System.Text.Json.JsonSerializerOptions options) + { + writer = writer ?? throw new global::System.ArgumentNullException(nameof(writer)); + + writer.WriteStringValue(global::Instill.FileType2Extensions.ToValueString(value)); + } + } +} diff --git a/src/libs/Instill/Generated/JsonConverters.FileType2Nullable.g.cs b/src/libs/Instill/Generated/JsonConverters.FileType2Nullable.g.cs new file mode 100644 index 0000000..95e408d --- /dev/null +++ b/src/libs/Instill/Generated/JsonConverters.FileType2Nullable.g.cs @@ -0,0 +1,56 @@ +#nullable enable + +namespace Instill.JsonConverters +{ + /// + public sealed class FileType2NullableJsonConverter : global::System.Text.Json.Serialization.JsonConverter + { + /// + public override global::Instill.FileType2? Read( + ref global::System.Text.Json.Utf8JsonReader reader, + global::System.Type typeToConvert, + global::System.Text.Json.JsonSerializerOptions options) + { + switch (reader.TokenType) + { + case global::System.Text.Json.JsonTokenType.String: + { + var stringValue = reader.GetString(); + if (stringValue != null) + { + return global::Instill.FileType2Extensions.ToEnum(stringValue); + } + + break; + } + case global::System.Text.Json.JsonTokenType.Number: + { + var numValue = reader.GetInt32(); + return (global::Instill.FileType2)numValue; + } + default: + throw new global::System.ArgumentOutOfRangeException(nameof(reader)); + } + + return default; + } + + /// + public override void Write( + global::System.Text.Json.Utf8JsonWriter writer, + global::Instill.FileType2? value, + global::System.Text.Json.JsonSerializerOptions options) + { + writer = writer ?? throw new global::System.ArgumentNullException(nameof(writer)); + + if (value == null) + { + writer.WriteNullValue(); + } + else + { + writer.WriteStringValue(global::Instill.FileType2Extensions.ToValueString(value.Value)); + } + } + } +} diff --git a/src/libs/Instill/Generated/JsonConverters.GetFileCatalogResponseChunkType.g.cs b/src/libs/Instill/Generated/JsonConverters.GetFileCatalogResponseChunkType.g.cs new file mode 100644 index 0000000..1bc8189 --- /dev/null +++ b/src/libs/Instill/Generated/JsonConverters.GetFileCatalogResponseChunkType.g.cs @@ -0,0 +1,49 @@ +#nullable enable + +namespace Instill.JsonConverters +{ + /// + public sealed class GetFileCatalogResponseChunkTypeJsonConverter : global::System.Text.Json.Serialization.JsonConverter + { + /// + public override global::Instill.GetFileCatalogResponseChunkType Read( + ref global::System.Text.Json.Utf8JsonReader reader, + global::System.Type typeToConvert, + global::System.Text.Json.JsonSerializerOptions options) + { + switch (reader.TokenType) + { + case global::System.Text.Json.JsonTokenType.String: + { + var stringValue = reader.GetString(); + if (stringValue != null) + { + return global::Instill.GetFileCatalogResponseChunkTypeExtensions.ToEnum(stringValue) ?? default; + } + + break; + } + case global::System.Text.Json.JsonTokenType.Number: + { + var numValue = reader.GetInt32(); + return (global::Instill.GetFileCatalogResponseChunkType)numValue; + } + default: + throw new global::System.ArgumentOutOfRangeException(nameof(reader)); + } + + return default; + } + + /// + public override void Write( + global::System.Text.Json.Utf8JsonWriter writer, + global::Instill.GetFileCatalogResponseChunkType value, + global::System.Text.Json.JsonSerializerOptions options) + { + writer = writer ?? throw new global::System.ArgumentNullException(nameof(writer)); + + writer.WriteStringValue(global::Instill.GetFileCatalogResponseChunkTypeExtensions.ToValueString(value)); + } + } +} diff --git a/src/libs/Instill/Generated/JsonConverters.GetFileCatalogResponseChunkTypeNullable.g.cs b/src/libs/Instill/Generated/JsonConverters.GetFileCatalogResponseChunkTypeNullable.g.cs new file mode 100644 index 0000000..39f6960 --- /dev/null +++ b/src/libs/Instill/Generated/JsonConverters.GetFileCatalogResponseChunkTypeNullable.g.cs @@ -0,0 +1,56 @@ +#nullable enable + +namespace Instill.JsonConverters +{ + /// + public sealed class GetFileCatalogResponseChunkTypeNullableJsonConverter : global::System.Text.Json.Serialization.JsonConverter + { + /// + public override global::Instill.GetFileCatalogResponseChunkType? Read( + ref global::System.Text.Json.Utf8JsonReader reader, + global::System.Type typeToConvert, + global::System.Text.Json.JsonSerializerOptions options) + { + switch (reader.TokenType) + { + case global::System.Text.Json.JsonTokenType.String: + { + var stringValue = reader.GetString(); + if (stringValue != null) + { + return global::Instill.GetFileCatalogResponseChunkTypeExtensions.ToEnum(stringValue); + } + + break; + } + case global::System.Text.Json.JsonTokenType.Number: + { + var numValue = reader.GetInt32(); + return (global::Instill.GetFileCatalogResponseChunkType)numValue; + } + default: + throw new global::System.ArgumentOutOfRangeException(nameof(reader)); + } + + return default; + } + + /// + public override void Write( + global::System.Text.Json.Utf8JsonWriter writer, + global::Instill.GetFileCatalogResponseChunkType? value, + global::System.Text.Json.JsonSerializerOptions options) + { + writer = writer ?? throw new global::System.ArgumentNullException(nameof(writer)); + + if (value == null) + { + writer.WriteNullValue(); + } + else + { + writer.WriteStringValue(global::Instill.GetFileCatalogResponseChunkTypeExtensions.ToValueString(value.Value)); + } + } + } +} diff --git a/src/libs/Instill/Generated/JsonSerializerContext.g.cs b/src/libs/Instill/Generated/JsonSerializerContext.g.cs index 1b6610e..ee454fc 100644 --- a/src/libs/Instill/Generated/JsonSerializerContext.g.cs +++ b/src/libs/Instill/Generated/JsonSerializerContext.g.cs @@ -37,6 +37,12 @@ namespace Instill typeof(global::Instill.JsonConverters.ModeNullableJsonConverter), typeof(global::Instill.JsonConverters.ViewJsonConverter), typeof(global::Instill.JsonConverters.ViewNullableJsonConverter), + typeof(global::Instill.JsonConverters.GetFileCatalogResponseChunkTypeJsonConverter), + typeof(global::Instill.JsonConverters.GetFileCatalogResponseChunkTypeNullableJsonConverter), + typeof(global::Instill.JsonConverters.FileType2JsonConverter), + typeof(global::Instill.JsonConverters.FileType2NullableJsonConverter), + typeof(global::Instill.JsonConverters.FileProcessStatus2JsonConverter), + typeof(global::Instill.JsonConverters.FileProcessStatus2NullableJsonConverter), typeof(global::Instill.JsonConverters.ListUsersViewJsonConverter), typeof(global::Instill.JsonConverters.ListUsersViewNullableJsonConverter), typeof(global::Instill.JsonConverters.GetUserViewJsonConverter), diff --git a/src/libs/Instill/Generated/JsonSerializerContextTypes.g.cs b/src/libs/Instill/Generated/JsonSerializerContextTypes.g.cs index 51af99f..704313a 100644 --- a/src/libs/Instill/Generated/JsonSerializerContextTypes.g.cs +++ b/src/libs/Instill/Generated/JsonSerializerContextTypes.g.cs @@ -465,142 +465,426 @@ public sealed partial class JsonSerializerContextTypes /// /// /// - public global::Instill.ListUsersView? Type113 { get; set; } + public global::Instill.CreateCatalogBody? Type113 { get; set; } /// /// /// - public global::Instill.GetUserView? Type114 { get; set; } + public global::System.Collections.Generic.IList? Type114 { get; set; } /// /// /// - public global::Instill.ListOrganizationsView? Type115 { get; set; } + public global::Instill.QuestionAnsweringBody? Type115 { get; set; } /// /// /// - public global::Instill.GetOrganizationView? Type116 { get; set; } + public global::Instill.SimilarityChunksSearchBody? Type116 { get; set; } /// /// /// - public global::Instill.GetUserMembershipView? Type117 { get; set; } + public long? Type117 { get; set; } /// /// /// - public global::Instill.GetOrganizationMembershipView? Type118 { get; set; } + public global::Instill.UpdateCatalogBody? Type118 { get; set; } /// /// /// - public global::Instill.GetAuthenticatedUserResponse2? Type119 { get; set; } + public global::Instill.UpdateChunkBody? Type119 { get; set; } /// /// /// - public global::Instill.PatchAuthenticatedUserResponse2? Type120 { get; set; } + public global::Instill.GetFileCatalogResponseChunkType? Type120 { get; set; } /// /// /// - public global::Instill.ListUsersResponse2? Type121 { get; set; } + public global::Instill.GetFileCatalogResponseMetadata? Type121 { get; set; } /// /// /// - public global::Instill.GetUserResponse2? Type122 { get; set; } + public global::Instill.AllOf? Type122 { get; set; } /// /// /// - public global::Instill.ListOrganizationsResponse2? Type123 { get; set; } + public global::Instill.FileType2? Type123 { get; set; } /// /// /// - public global::Instill.CreateOrganizationResponse2? Type124 { get; set; } + public global::Instill.AllOf? Type124 { get; set; } /// /// /// - public global::Instill.GetOrganizationResponse2? Type125 { get; set; } + public global::Instill.FileProcessStatus2? Type125 { get; set; } /// /// /// - public global::Instill.DeleteOrganizationResponse2? Type126 { get; set; } + public global::Instill.GetFileCatalogResponseText? Type126 { get; set; } /// /// /// - public global::Instill.UpdateOrganizationResponse2? Type127 { get; set; } + public global::Instill.Artifactv1alphaChunk? Type127 { get; set; } /// /// /// - public global::Instill.ListUserMembershipsResponse2? Type128 { get; set; } + public global::Instill.RpcStatus? Type128 { get; set; } /// /// /// - public global::Instill.GetUserMembershipResponse2? Type129 { get; set; } + public global::Instill.Catalog? Type129 { get; set; } /// /// /// - public global::Instill.UpdateUserMembershipResponse2? Type130 { get; set; } + public global::Instill.CreateCatalogResponse? Type130 { get; set; } /// /// /// - public global::Instill.DeleteUserMembershipResponse2? Type131 { get; set; } + public global::Instill.AllOf? Type131 { get; set; } /// /// /// - public global::Instill.ListOrganizationMembershipsResponse2? Type132 { get; set; } + public global::Instill.CreateRepositoryTagResponse? Type132 { get; set; } /// /// /// - public global::Instill.GetOrganizationMembershipResponse2? Type133 { get; set; } + public global::Instill.AllOf? Type133 { get; set; } /// /// /// - public global::Instill.UpdateOrganizationMembershipResponse2? Type134 { get; set; } + public global::Instill.RepositoryTag? Type134 { get; set; } /// /// /// - public global::Instill.DeleteOrganizationMembershipResponse2? Type135 { get; set; } + public global::Instill.DeleteCatalogFileResponse? Type135 { get; set; } /// /// /// - public global::Instill.GetAuthenticatedUserSubscriptionResponse2? Type136 { get; set; } + public global::Instill.DeleteCatalogResponse? Type136 { get; set; } /// /// /// - public global::Instill.GetOrganizationSubscriptionResponse2? Type137 { get; set; } + public global::Instill.DeleteRepositoryTagResponse? Type137 { get; set; } /// /// /// - public global::Instill.ListTokensResponse2? Type138 { get; set; } + public global::Instill.File? Type138 { get; set; } /// /// /// - public global::Instill.CreateTokenResponse2? Type139 { get; set; } + public global::Instill.GetFileCatalogResponse? Type139 { get; set; } /// /// /// - public global::Instill.GetTokenResponse2? Type140 { get; set; } + public global::Instill.AllOf? Type140 { get; set; } /// /// /// - public global::Instill.DeleteTokenResponse2? Type141 { get; set; } + public global::Instill.AllOf? Type141 { get; set; } /// /// /// - public global::Instill.ValidateTokenResponse2? Type142 { get; set; } + public global::System.Collections.Generic.IList? Type142 { get; set; } /// /// /// - public global::Instill.GetRemainingCreditResponse2? Type143 { get; set; } + public global::Instill.GetFileCatalogResponseChunk? Type143 { get; set; } /// /// /// - public global::Instill.CheckNamespaceResponse2? Type144 { get; set; } + public global::Instill.AllOf? Type144 { get; set; } /// /// /// - public global::Instill.ListPipelineTriggerTableRecordsResponse2? Type145 { get; set; } + public global::Instill.GetRepositoryTagResponse? Type145 { get; set; } /// /// /// - public global::Instill.ListPipelineTriggerChartRecordsResponse2? Type146 { get; set; } + public global::Instill.GetSourceFileResponse? Type146 { get; set; } /// /// /// - public global::Instill.ListCreditConsumptionChartRecordsResponse2? Type147 { get; set; } + public global::Instill.AllOf? Type147 { get; set; } + /// + /// + /// + public global::Instill.SourceFile2? Type148 { get; set; } + /// + /// + /// + public global::Instill.ListCatalogFilesFilter? Type149 { get; set; } + /// + /// + /// + public global::Instill.ListCatalogFilesResponse? Type150 { get; set; } + /// + /// + /// + public global::System.Collections.Generic.IList? Type151 { get; set; } + /// + /// + /// + public global::Instill.AllOf? Type152 { get; set; } + /// + /// + /// + public global::Instill.ListCatalogsResponse? Type153 { get; set; } + /// + /// + /// + public global::System.Collections.Generic.IList? Type154 { get; set; } + /// + /// + /// + public global::Instill.ListChunksResponse? Type155 { get; set; } + /// + /// + /// + public global::System.Collections.Generic.IList? Type156 { get; set; } + /// + /// + /// + public global::Instill.ListRepositoryTagsResponse? Type157 { get; set; } + /// + /// + /// + public global::System.Collections.Generic.IList? Type158 { get; set; } + /// + /// + /// + public global::Instill.ProcessCatalogFilesRequest? Type159 { get; set; } + /// + /// + /// + public global::Instill.ProcessCatalogFilesResponse? Type160 { get; set; } + /// + /// + /// + public global::Instill.QuestionAnsweringResponse? Type161 { get; set; } + /// + /// + /// + public global::System.Collections.Generic.IList? Type162 { get; set; } + /// + /// + /// + public global::Instill.SimilarityChunk? Type163 { get; set; } + /// + /// + /// + public global::Instill.SimilarityChunksSearchResponse? Type164 { get; set; } + /// + /// + /// + public global::Instill.UpdateCatalogResponse? Type165 { get; set; } + /// + /// + /// + public global::Instill.UpdateChunkResponse? Type166 { get; set; } + /// + /// + /// + public global::Instill.AllOf? Type167 { get; set; } + /// + /// + /// + public global::Instill.UploadCatalogFileResponse? Type168 { get; set; } + /// + /// + /// + public global::Instill.AllOf? Type169 { get; set; } + /// + /// + /// + public global::Instill.ListUsersView? Type170 { get; set; } + /// + /// + /// + public global::Instill.GetUserView? Type171 { get; set; } + /// + /// + /// + public global::Instill.ListOrganizationsView? Type172 { get; set; } + /// + /// + /// + public global::Instill.GetOrganizationView? Type173 { get; set; } + /// + /// + /// + public global::Instill.GetUserMembershipView? Type174 { get; set; } + /// + /// + /// + public global::Instill.GetOrganizationMembershipView? Type175 { get; set; } + /// + /// + /// + public global::Instill.GetAuthenticatedUserResponse2? Type176 { get; set; } + /// + /// + /// + public global::Instill.PatchAuthenticatedUserResponse2? Type177 { get; set; } + /// + /// + /// + public global::Instill.ListUsersResponse2? Type178 { get; set; } + /// + /// + /// + public global::Instill.GetUserResponse2? Type179 { get; set; } + /// + /// + /// + public global::Instill.ListOrganizationsResponse2? Type180 { get; set; } + /// + /// + /// + public global::Instill.CreateOrganizationResponse2? Type181 { get; set; } + /// + /// + /// + public global::Instill.GetOrganizationResponse2? Type182 { get; set; } + /// + /// + /// + public global::Instill.DeleteOrganizationResponse2? Type183 { get; set; } + /// + /// + /// + public global::Instill.UpdateOrganizationResponse2? Type184 { get; set; } + /// + /// + /// + public global::Instill.ListUserMembershipsResponse2? Type185 { get; set; } + /// + /// + /// + public global::Instill.GetUserMembershipResponse2? Type186 { get; set; } + /// + /// + /// + public global::Instill.UpdateUserMembershipResponse2? Type187 { get; set; } + /// + /// + /// + public global::Instill.DeleteUserMembershipResponse2? Type188 { get; set; } + /// + /// + /// + public global::Instill.ListOrganizationMembershipsResponse2? Type189 { get; set; } + /// + /// + /// + public global::Instill.GetOrganizationMembershipResponse2? Type190 { get; set; } + /// + /// + /// + public global::Instill.UpdateOrganizationMembershipResponse2? Type191 { get; set; } + /// + /// + /// + public global::Instill.DeleteOrganizationMembershipResponse2? Type192 { get; set; } + /// + /// + /// + public global::Instill.GetAuthenticatedUserSubscriptionResponse2? Type193 { get; set; } + /// + /// + /// + public global::Instill.GetOrganizationSubscriptionResponse2? Type194 { get; set; } + /// + /// + /// + public global::Instill.ListTokensResponse2? Type195 { get; set; } + /// + /// + /// + public global::Instill.CreateTokenResponse2? Type196 { get; set; } + /// + /// + /// + public global::Instill.GetTokenResponse2? Type197 { get; set; } + /// + /// + /// + public global::Instill.DeleteTokenResponse2? Type198 { get; set; } + /// + /// + /// + public global::Instill.ValidateTokenResponse2? Type199 { get; set; } + /// + /// + /// + public global::Instill.GetRemainingCreditResponse2? Type200 { get; set; } + /// + /// + /// + public global::Instill.CheckNamespaceResponse2? Type201 { get; set; } + /// + /// + /// + public global::Instill.ListPipelineTriggerTableRecordsResponse2? Type202 { get; set; } + /// + /// + /// + public global::Instill.ListPipelineTriggerChartRecordsResponse2? Type203 { get; set; } + /// + /// + /// + public global::Instill.ListCreditConsumptionChartRecordsResponse2? Type204 { get; set; } + /// + /// + /// + public global::Instill.ListCatalogsResponse2? Type205 { get; set; } + /// + /// + /// + public global::Instill.CreateCatalogResponse2? Type206 { get; set; } + /// + /// + /// + public global::Instill.GetFileCatalogResponse2? Type207 { get; set; } + /// + /// + /// + public global::Instill.UpdateCatalogResponse2? Type208 { get; set; } + /// + /// + /// + public global::Instill.DeleteCatalogResponse2? Type209 { get; set; } + /// + /// + /// + public global::Instill.ListCatalogFilesResponse2? Type210 { get; set; } + /// + /// + /// + public global::Instill.UploadCatalogFileResponse2? Type211 { get; set; } + /// + /// + /// + public global::Instill.DeleteCatalogFileResponse2? Type212 { get; set; } + /// + /// + /// + public global::Instill.ProcessCatalogFilesResponse2? Type213 { get; set; } + /// + /// + /// + public global::Instill.ListChunksResponse2? Type214 { get; set; } + /// + /// + /// + public global::Instill.GetSourceFileResponse2? Type215 { get; set; } + /// + /// + /// + public global::Instill.UpdateChunkResponse2? Type216 { get; set; } + /// + /// + /// + public global::Instill.SimilarityChunksSearchResponse2? Type217 { get; set; } + /// + /// + /// + public global::Instill.QuestionAnsweringResponse2? Type218 { get; set; } } } \ No newline at end of file diff --git a/src/libs/Instill/generate.sh b/src/libs/Instill/generate.sh index ceb09fa..3b418cf 100644 --- a/src/libs/Instill/generate.sh +++ b/src/libs/Instill/generate.sh @@ -1,7 +1,9 @@ dotnet tool install --global autosdk.cli --prerelease rm -rf Generated curl -o openapi.yaml https://raw.githubusercontent.com/instill-ai/protobufs/main/openapiv2/core/service.swagger.yaml -dotnet run --project ../../helpers/FixOpenApiSpec openapi.yaml +curl -o openapi.artifact.yaml https://raw.githubusercontent.com/instill-ai/protobufs/main/openapiv2/artifact/service.swagger.yaml +dotnet run --project ../../helpers/FixOpenApiSpec openapi.yaml openapi.artifact.yaml +rm openapi.artifact.yaml if [ $? -ne 0 ]; then echo "Failed, exiting..." exit 1 diff --git a/src/libs/Instill/openapi.yaml b/src/libs/Instill/openapi.yaml index 27df65d..66f80d3 100644 --- a/src/libs/Instill/openapi.yaml +++ b/src/libs/Instill/openapi.yaml @@ -1092,6 +1092,573 @@ paths: application/json: schema: $ref: '#/components/schemas/googlerpcStatus' + '/v1alpha/namespaces/{namespaceId}/catalogs': + get: + tags: + - Catalog + summary: Get all catalogs info + operationId: ListCatalogs + parameters: + - name: namespaceId + in: path + description: User ID for which to list the catalogs + required: true + schema: + type: string + responses: + '200': + description: A successful response. + content: + application/json: + schema: + $ref: '#/components/schemas/ListCatalogsResponse' + '401': + description: Returned when the client credentials are not valid. + content: + application/json: + schema: { } + default: + description: An unexpected error response. + content: + application/json: + schema: + $ref: '#/components/schemas/rpcStatus' + post: + tags: + - Catalog + summary: Create a catalog + operationId: CreateCatalog + parameters: + - name: namespaceId + in: path + description: The catalog's owner(namespaces). + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateCatalogBody' + required: true + x-bodyName: body + responses: + '200': + description: A successful response. + content: + application/json: + schema: + $ref: '#/components/schemas/CreateCatalogResponse' + '401': + description: Returned when the client credentials are not valid. + content: + application/json: + schema: { } + default: + description: An unexpected error response. + content: + application/json: + schema: + $ref: '#/components/schemas/rpcStatus' + '/v1alpha/namespaces/{namespaceId}/catalogs/{catalogId}': + get: + tags: + - Catalog + summary: Get file catalog + operationId: GetFileCatalog + parameters: + - name: namespaceId + in: path + description: id of the namespace + required: true + schema: + type: string + - name: catalogId + in: path + description: id of the catalog + required: true + schema: + type: string + - name: fileId + in: query + description: id of the file(i.e. file name) + schema: + type: string + - name: fileUid + in: query + description: Uid of the file + schema: + type: string + responses: + '200': + description: A successful response. + content: + application/json: + schema: + $ref: '#/components/schemas/GetFileCatalogResponse' + '401': + description: Returned when the client credentials are not valid. + content: + application/json: + schema: { } + default: + description: An unexpected error response. + content: + application/json: + schema: + $ref: '#/components/schemas/rpcStatus' + put: + tags: + - Catalog + summary: Update a catalog info + operationId: UpdateCatalog + parameters: + - name: namespaceId + in: path + description: The catalog owner(namespace). + required: true + schema: + type: string + - name: catalogId + in: path + description: The catalog id. + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateCatalogBody' + required: true + x-bodyName: body + responses: + '200': + description: A successful response. + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateCatalogResponse' + '401': + description: Returned when the client credentials are not valid. + content: + application/json: + schema: { } + default: + description: An unexpected error response. + content: + application/json: + schema: + $ref: '#/components/schemas/rpcStatus' + delete: + tags: + - Catalog + summary: Delete a catalog + operationId: DeleteCatalog + parameters: + - name: namespaceId + in: path + description: The owner's id. i.e. namespace. + required: true + schema: + type: string + - name: catalogId + in: path + description: The catalog id. + required: true + schema: + type: string + responses: + '200': + description: A successful response. + content: + application/json: + schema: + $ref: '#/components/schemas/DeleteCatalogResponse' + '401': + description: Returned when the client credentials are not valid. + content: + application/json: + schema: { } + default: + description: An unexpected error response. + content: + application/json: + schema: + $ref: '#/components/schemas/rpcStatus' + '/v1alpha/namespaces/{namespaceId}/catalogs/{catalogId}/files': + get: + tags: + - Catalog + summary: List catalog files + operationId: ListCatalogFiles + parameters: + - name: namespaceId + in: path + description: The owner/namespace uid id. + required: true + schema: + type: string + - name: catalogId + in: path + description: The catalog id. + required: true + schema: + type: string + - name: pageSize + in: query + description: The page size (default:10; max 100). + schema: + type: integer + format: int32 + - name: pageToken + in: query + description: The next page token(default from first file's token). + schema: + type: string + - name: filter.fileUids + in: query + description: The file uids. + style: form + schema: + type: array + items: + type: string + responses: + '200': + description: A successful response. + content: + application/json: + schema: + $ref: '#/components/schemas/ListCatalogFilesResponse' + '401': + description: Returned when the client credentials are not valid. + content: + application/json: + schema: { } + default: + description: An unexpected error response. + content: + application/json: + schema: + $ref: '#/components/schemas/rpcStatus' + post: + tags: + - Catalog + summary: Create a file + operationId: UploadCatalogFile + parameters: + - name: namespaceId + in: path + description: owner/namespace uid + required: true + schema: + type: string + - name: catalogId + in: path + description: catalog id + required: true + schema: + type: string + requestBody: + description: file + content: + application/json: + schema: + $ref: '#/components/schemas/File' + required: true + x-bodyName: file + responses: + '200': + description: A successful response. + content: + application/json: + schema: + $ref: '#/components/schemas/UploadCatalogFileResponse' + '401': + description: Returned when the client credentials are not valid. + content: + application/json: + schema: { } + default: + description: An unexpected error response. + content: + application/json: + schema: + $ref: '#/components/schemas/rpcStatus' + /v1alpha/catalogs/files: + delete: + tags: + - Catalog + summary: Delete a file + operationId: DeleteCatalogFile + parameters: + - name: fileUid + in: query + description: The file uid. + required: true + schema: + type: string + responses: + '200': + description: A successful response. + content: + application/json: + schema: + $ref: '#/components/schemas/DeleteCatalogFileResponse' + '401': + description: Returned when the client credentials are not valid. + content: + application/json: + schema: { } + default: + description: An unexpected error response. + content: + application/json: + schema: + $ref: '#/components/schemas/rpcStatus' + /v1alpha/catalogs/files/processAsync: + post: + tags: + - Catalog + summary: Process catalog files + operationId: ProcessCatalogFiles + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ProcessCatalogFilesRequest' + required: true + x-bodyName: body + responses: + '200': + description: A successful response. + content: + application/json: + schema: + $ref: '#/components/schemas/ProcessCatalogFilesResponse' + '401': + description: Returned when the client credentials are not valid. + content: + application/json: + schema: { } + default: + description: An unexpected error response. + content: + application/json: + schema: + $ref: '#/components/schemas/rpcStatus' + '/v1alpha/namespaces/{namespaceId}/catalogs/{catalogId}/chunks': + get: + tags: + - Catalog + summary: List catalog chunks + operationId: ListChunks + parameters: + - name: namespaceId + in: path + description: owner/namespace id (not uid) + required: true + schema: + type: string + - name: catalogId + in: path + description: catalog id (not uid) + required: true + schema: + type: string + - name: fileUid + in: query + description: unique identifier of the file + schema: + type: string + responses: + '200': + description: A successful response. + content: + application/json: + schema: + $ref: '#/components/schemas/ListChunksResponse' + '401': + description: Returned when the client credentials are not valid. + content: + application/json: + schema: { } + default: + description: An unexpected error response. + content: + application/json: + schema: + $ref: '#/components/schemas/rpcStatus' + '/v1alpha/namespaces/{namespaceId}/catalogs/{catalogId}/files/{fileUid}/source': + get: + tags: + - Catalog + summary: Get catalog single-source-of-truth file + operationId: GetSourceFile + parameters: + - name: namespaceId + in: path + description: owner/namespace id + required: true + schema: + type: string + - name: catalogId + in: path + description: catalog id + required: true + schema: + type: string + - name: fileUid + in: path + description: unique identifier of the original uploaded file + required: true + schema: + type: string + responses: + '200': + description: A successful response. + content: + application/json: + schema: + $ref: '#/components/schemas/GetSourceFileResponse' + '401': + description: Returned when the client credentials are not valid. + content: + application/json: + schema: { } + default: + description: An unexpected error response. + content: + application/json: + schema: + $ref: '#/components/schemas/rpcStatus' + '/v1alpha/chunks/{chunkUid}': + post: + tags: + - Catalog + summary: Update catalog chunk + operationId: UpdateChunk + parameters: + - name: chunkUid + in: path + description: chunk uid + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateChunkBody' + required: true + x-bodyName: body + responses: + '200': + description: A successful response. + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateChunkResponse' + '401': + description: Returned when the client credentials are not valid. + content: + application/json: + schema: { } + default: + description: An unexpected error response. + content: + application/json: + schema: + $ref: '#/components/schemas/rpcStatus' + '/v1alpha/namespaces/{namespaceId}/catalogs/{catalogId}/chunks/retrieve': + post: + tags: + - Catalog + summary: Retrieve similar chunks + operationId: SimilarityChunksSearch + parameters: + - name: namespaceId + in: path + description: owner/namespace id + required: true + schema: + type: string + - name: catalogId + in: path + description: catalog id + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/SimilarityChunksSearchBody' + required: true + x-bodyName: body + responses: + '200': + description: A successful response. + content: + application/json: + schema: + $ref: '#/components/schemas/SimilarityChunksSearchResponse' + '401': + description: Returned when the client credentials are not valid. + content: + application/json: + schema: { } + default: + description: An unexpected error response. + content: + application/json: + schema: + $ref: '#/components/schemas/rpcStatus' + '/v1alpha/namespaces/{namespaceId}/catalogs/{catalogId}/ask': + post: + tags: + - Catalog + summary: Ask a question + operationId: QuestionAnswering + parameters: + - name: namespaceId + in: path + description: id of the namespace + required: true + schema: + type: string + - name: catalogId + in: path + description: id of the catalog + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/QuestionAnsweringBody' + required: true + x-bodyName: body + responses: + '200': + description: A successful response. + content: + application/json: + schema: + $ref: '#/components/schemas/QuestionAnsweringResponse' + '401': + description: Returned when the client credentials are not valid. + content: + application/json: + schema: { } + default: + description: An unexpected error response. + content: + application/json: + schema: + $ref: '#/components/schemas/rpcStatus' components: schemas: ApiTokenState: @@ -1367,320 +1934,614 @@ components: GetAuthenticatedUserResponse: type: object properties: - user: - allOf: - - $ref: '#/components/schemas/AuthenticatedUser' - description: The authenticated user resource. + user: + allOf: + - $ref: '#/components/schemas/AuthenticatedUser' + description: The authenticated user resource. + readOnly: true + description: GetAuthenticatedUserResponse contains the requested authenticated user. + GetAuthenticatedUserSubscriptionResponse: + type: object + properties: + subscription: + allOf: + - $ref: '#/components/schemas/UserSubscription' + description: The subscription resource. + readOnly: true + description: GetAuthenticatedUserSubscriptionResponse contains the requested subscription. + GetOrganizationAdminResponse: + title: GetOrganizationAdminResponse represents a response for a organization resource + type: object + properties: + organization: + title: A organization resource + allOf: + - $ref: '#/components/schemas/Organization' + GetOrganizationMembershipResponse: + type: object + properties: + membership: + allOf: + - $ref: '#/components/schemas/OrganizationMembership' + description: The requested organization membership. + readOnly: true + description: GetOrganizationMembershipResponse contains the organization membership. + GetOrganizationResponse: + type: object + properties: + organization: + allOf: + - $ref: '#/components/schemas/Organization' + description: The organization resource. + readOnly: true + description: GetOrganizationResponse contains the requested organization. + GetOrganizationSubscriptionAdminResponse: + title: GetOrganizationSubscriptionAdminResponse + type: object + properties: + subscription: + title: Subscription + allOf: + - $ref: '#/components/schemas/OrganizationSubscription' + GetOrganizationSubscriptionResponse: + type: object + properties: + subscription: + allOf: + - $ref: '#/components/schemas/OrganizationSubscription' + description: The subscription resource. + readOnly: true + description: GetOrganizationSubscriptionResponse contains the requested subscription. + GetRemainingCreditAdminResponse: + type: object + properties: + amount: + type: number + description: The requested credit. + format: float + description: "GetRemainingCreditAdminResponse contains the remaining credit of a user or\norganization." + GetRemainingCreditResponse: + type: object + properties: + perishable: + type: number + description: 'Amount of perishable credit, i.e. credit with an expiration date.' + format: float + readOnly: true + imperishable: + type: number + description: "Amount of imperishable credit, e.g. purchased credit, which doesn't\nexpire." + format: float + readOnly: true + total: + type: number + description: Total remaining credit. + format: float + readOnly: true + description: "GetRemainingCreditResponse contains the remaining credit of a user or\norganization." + GetTokenResponse: + type: object + properties: + token: + allOf: + - $ref: '#/components/schemas/ApiToken' + description: The API token resource. + readOnly: true + description: GetTokenResponse contains the requested token. + GetUserAdminResponse: + title: GetUserAdminResponse represents a response for a user resource + type: object + properties: + user: + title: A user resource + allOf: + - $ref: '#/components/schemas/User' + GetUserMembershipResponse: + type: object + properties: + membership: + allOf: + - $ref: '#/components/schemas/UserMembership' + description: The requested user membership. + readOnly: true + description: GetUserMembershipResponse contains the user membership. + GetUserResponse: + type: object + properties: + user: + allOf: + - $ref: '#/components/schemas/User' + description: The user resource. + readOnly: true + description: GetUserResponse contains the requested user. + GetUserSubscriptionAdminResponse: + title: GetUserSubscriptionAdminResponse + type: object + properties: + subscription: + title: Subscription + allOf: + - $ref: '#/components/schemas/UserSubscription' + ListCreditConsumptionChartRecordsResponse: + type: object + properties: + creditConsumptionChartRecords: + type: array + items: + $ref: '#/components/schemas/CreditConsumptionChartRecord' + description: 'Credit consumption timelines, aggregated by source.' + description: "ListCreditConsumptionChartRecordsResponse contains a list of credit consumption\nchart records." + ListOrganizationMembershipsResponse: + type: object + properties: + memberships: + type: array + items: + $ref: '#/components/schemas/OrganizationMembership' + description: "The organization memberships, i.e., the users that belong to the\norganization." + readOnly: true + description: ListOrganizationMembershipsResponse contains a list of memberships. + ListOrganizationsAdminResponse: + title: ListOrganizationsAdminResponse represents a response for a list of organizations + type: object + properties: + organizations: + title: A list of organizations + type: array + items: + $ref: '#/components/schemas/Organization' + nextPageToken: + type: string + description: Next page token. + totalSize: + type: integer + description: Total number of organizations. + format: int32 + ListOrganizationsResponse: + title: ListOrganizationsResponse represents a response for a list of organizations + type: object + properties: + organizations: + title: A list of organizations + type: array + items: + $ref: '#/components/schemas/Organization' + readOnly: true + nextPageToken: + type: string + description: Next page token. + readOnly: true + totalSize: + type: integer + description: Total number of organizations. + format: int32 + readOnly: true + ListPipelineTriggerChartRecordsResponse: + type: object + properties: + pipelineTriggerChartRecords: + type: array + items: + $ref: '#/components/schemas/PipelineTriggerChartRecord' + description: A list of pipeline trigger records. + description: "ListPipelineTriggerChartRecordsResponse contains a list of pipeline trigger\nchart records." + ListPipelineTriggerTableRecordsResponse: + type: object + properties: + pipelineTriggerTableRecords: + type: array + items: + $ref: '#/components/schemas/PipelineTriggerTableRecord' + description: A list of pipeline trigger tables. + nextPageToken: + type: string + description: Next page token. + totalSize: + title: Total number of pipeline trigger records + type: integer + format: int32 + description: ListPipelineTriggerTableRecordsResponse contains the pipeline metrics. + ListTokensResponse: + type: object + properties: + tokens: + type: array + items: + $ref: '#/components/schemas/ApiToken' + description: A list of API token resources. + nextPageToken: + type: string + description: Next page token. + totalSize: + type: integer + description: Total number of API token resources. + format: int32 + description: ListTokensResponse contains a list of API tokens. + ListUserMembershipsResponse: + type: object + properties: + memberships: + type: array + items: + $ref: '#/components/schemas/UserMembership' + description: 'The user memberships, i.e., the organizations the user belongs to.' readOnly: true - description: GetAuthenticatedUserResponse contains the requested authenticated user. - GetAuthenticatedUserSubscriptionResponse: + description: ListUserMembershipsResponse contains a list of memberships. + ListUsersAdminResponse: + title: ListUsersAdminResponse represents a response for a list of users type: object properties: - subscription: - allOf: - - $ref: '#/components/schemas/UserSubscription' - description: The subscription resource. + users: + title: A list of users + type: array + items: + $ref: '#/components/schemas/User' + nextPageToken: + type: string + description: Next page token. + totalSize: + type: integer + description: Total number of users. + format: int32 + ListUsersResponse: + type: object + properties: + users: + type: array + items: + $ref: '#/components/schemas/User' + description: A list of user resources. readOnly: true - description: GetAuthenticatedUserSubscriptionResponse contains the requested subscription. - GetOrganizationAdminResponse: - title: GetOrganizationAdminResponse represents a response for a organization resource + nextPageToken: + type: string + description: Next page token. + readOnly: true + totalSize: + type: integer + description: Total number of users. + format: int32 + readOnly: true + description: ListUsersResponse contains a list of users. + LookUpOrganizationAdminResponse: + title: LookUpOrganizationAdminResponse represents a response for a organization resource by admin type: object properties: organization: title: A organization resource allOf: - $ref: '#/components/schemas/Organization' - GetOrganizationMembershipResponse: + LookUpUserAdminResponse: + title: LookUpUserAdminResponse represents a response for a user resource by admin type: object properties: - membership: + user: + title: A user resource allOf: - - $ref: '#/components/schemas/OrganizationMembership' - description: The requested organization membership. - readOnly: true - description: GetOrganizationMembershipResponse contains the organization membership. - GetOrganizationResponse: + - $ref: '#/components/schemas/User' + MembershipState: + enum: + - MEMBERSHIP_STATE_ACTIVE + - MEMBERSHIP_STATE_PENDING + type: string + description: "MembershipState describes the state of a user membership to an organization.\n\n - MEMBERSHIP_STATE_ACTIVE: Active.\n - MEMBERSHIP_STATE_PENDING: Pending, i.e., a request has been sent to the user to join an\norganization." + Mode: + enum: + - MODE_SYNC + - MODE_ASYNC + type: string + description: "Mode describes the execution mode of the pipeline (sync or async).\n\n - MODE_SYNC: Synchronous (result is returned in the response).\n - MODE_ASYNC: Asynchronous (response only contains acknowledgement)." + OnboardingStatus: + enum: + - ONBOARDING_STATUS_IN_PROGRESS + - ONBOARDING_STATUS_COMPLETED + type: string + description: "OnboardingStatus describes the status of the user onboarding process.\n\n - ONBOARDING_STATUS_IN_PROGRESS: In progress, i.e., the user has initiated the onboarding process\nbut has not yet completed it.\n - ONBOARDING_STATUS_COMPLETED: Completed." + Organization: + required: + - profile type: object properties: - organization: + name: + type: string + description: "The name of the organization, defined by its ID.\n- Format: `organization/{organization.id}`." + readOnly: true + uid: + type: string + description: Organization UUID. + readOnly: true + id: + type: string + description: "Resource ID (used in `name` as the last segment). This conforms to\nRFC-1034, which restricts to letters, numbers, and hyphen, with the first\ncharacter a letter, the last a letter or a number, and a 63 character\nmaximum.\n\nNote that the ID can be updated." + createTime: + type: string + description: Creation time. + format: date-time + readOnly: true + updateTime: + type: string + description: Update time. + format: date-time + readOnly: true + owner: allOf: - - $ref: '#/components/schemas/Organization' - description: The organization resource. + - $ref: '#/components/schemas/User' + description: The user that owns the organization. readOnly: true - description: GetOrganizationResponse contains the requested organization. - GetOrganizationSubscriptionAdminResponse: - title: GetOrganizationSubscriptionAdminResponse - type: object - properties: - subscription: - title: Subscription + profile: allOf: - - $ref: '#/components/schemas/OrganizationSubscription' - GetOrganizationSubscriptionResponse: - type: object - properties: - subscription: + - $ref: '#/components/schemas/OrganizationProfile' + description: Profile. + permission: + title: Permission allOf: - - $ref: '#/components/schemas/OrganizationSubscription' - description: The subscription resource. + - $ref: '#/components/schemas/Permission' readOnly: true - description: GetOrganizationSubscriptionResponse contains the requested subscription. - GetRemainingCreditAdminResponse: - type: object - properties: - amount: - type: number - description: The requested credit. - format: float - description: "GetRemainingCreditAdminResponse contains the remaining credit of a user or\norganization." - GetRemainingCreditResponse: + description: "Organizations group several users. As entities, they can own resources such\nas pipelines or releases." + OrganizationMembership: + required: + - role type: object properties: - perishable: - type: number - description: 'Amount of perishable credit, i.e. credit with an expiration date.' - format: float + name: + type: string + description: "The resource name of the membership, which allows its access by\norganization and user ID.\n- Format: `organizations/{organization.id}/memberships/{user.id}`." readOnly: true - imperishable: - type: number - description: "Amount of imperishable credit, e.g. purchased credit, which doesn't\nexpire." - format: float + role: + type: string + description: Role of the user in the organization. + state: + allOf: + - $ref: '#/components/schemas/MembershipState' + description: State of the membership. readOnly: true - total: - type: number - description: Total remaining credit. - format: float + user: + allOf: + - $ref: '#/components/schemas/User' + description: User information. readOnly: true - description: "GetRemainingCreditResponse contains the remaining credit of a user or\norganization." - GetTokenResponse: - type: object - properties: - token: + organization: allOf: - - $ref: '#/components/schemas/ApiToken' - description: The API token resource. + - $ref: '#/components/schemas/Organization' + description: Organization information. readOnly: true - description: GetTokenResponse contains the requested token. - GetUserAdminResponse: - title: GetUserAdminResponse represents a response for a user resource + description: "An organization membership defines the relationship between an organization\nand a user that is attached to it." + OrganizationProfile: type: object properties: - user: - title: A user resource - allOf: - - $ref: '#/components/schemas/User' - GetUserMembershipResponse: + displayName: + type: string + description: Display name. + bio: + type: string + description: Biography. + avatar: + type: string + description: Avatar in base64 format. + publicEmail: + type: string + description: Public email. + socialProfileLinks: + type: object + additionalProperties: + type: string + description: "Social profile links list the links to the organization's social profiles.\nThe key represents the provider, and the value is the corresponding URL." + description: OrganizationProfile describes the public data of an organization. + OrganizationSubscription: type: object properties: - membership: + plan: allOf: - - $ref: '#/components/schemas/UserMembership' - description: The requested user membership. + - $ref: '#/components/schemas/OrganizationSubscriptionPlan' + description: Plan identifier. readOnly: true - description: GetUserMembershipResponse contains the user membership. - GetUserResponse: - type: object - properties: - user: + detail: allOf: - - $ref: '#/components/schemas/User' - description: The user resource. + - $ref: '#/components/schemas/StripeSubscriptionDetail' + description: Details of the associated Stripe subscription. readOnly: true - description: GetUserResponse contains the requested user. - GetUserSubscriptionAdminResponse: - title: GetUserSubscriptionAdminResponse + usedSeats: + type: integer + description: Number of used seats within the organization subscription. + format: int32 + readOnly: true + description: 'OrganizationSubscription details describe the plan (i.e., features) an organization has access to.' + OrganizationSubscriptionPlan: + enum: + - PLAN_FREE + - PLAN_TEAM + - PLAN_ENTERPRISE + type: string + description: "Enumerates the plan types for the organization subscription.\n\n - PLAN_FREE: Free plan.\n - PLAN_TEAM: Team plan.\n - PLAN_ENTERPRISE: Enterprise plan." + PatchAuthenticatedUserResponse: + title: "PatchAuthenticatedUserResponse contains the updated user.\nthe authenticated user resource" type: object properties: - subscription: - title: Subscription - allOf: - - $ref: '#/components/schemas/UserSubscription' - ListCreditConsumptionChartRecordsResponse: + user: + allOf: + - $ref: '#/components/schemas/AuthenticatedUser' + description: The updated user resource. + readOnly: true + Permission: type: object properties: - creditConsumptionChartRecords: - type: array - items: - $ref: '#/components/schemas/CreditConsumptionChartRecord' - description: 'Credit consumption timelines, aggregated by source.' - description: "ListCreditConsumptionChartRecordsResponse contains a list of credit consumption\nchart records." - ListOrganizationMembershipsResponse: + canEdit: + type: boolean + description: Defines whether the resource can be modified. + readOnly: true + description: Permission defines how a resource can be used. + PipelineTriggerChartRecord: type: object properties: - memberships: + pipelineId: + type: string + description: Pipeline ID. + pipelineUid: + type: string + description: Pipeline UUID. + triggerMode: + allOf: + - $ref: '#/components/schemas/Mode' + description: Trigger mode. + status: + allOf: + - $ref: '#/components/schemas/mgmtv1betaStatus' + description: Final status. + readOnly: true + timeBuckets: type: array items: - $ref: '#/components/schemas/OrganizationMembership' - description: "The organization memberships, i.e., the users that belong to the\norganization." + type: string + format: date-time + description: Time buckets. readOnly: true - description: ListOrganizationMembershipsResponse contains a list of memberships. - ListOrganizationsAdminResponse: - title: ListOrganizationsAdminResponse represents a response for a list of organizations - type: object - properties: - organizations: - title: A list of organizations + triggerCounts: type: array items: - $ref: '#/components/schemas/Organization' - nextPageToken: - type: string - description: Next page token. - totalSize: - type: integer - description: Total number of organizations. - format: int32 - ListOrganizationsResponse: - title: ListOrganizationsResponse represents a response for a list of organizations - type: object - properties: - organizations: - title: A list of organizations + type: integer + format: int32 + description: Aggregated trigger count in each time bucket. + readOnly: true + computeTimeDuration: type: array items: - $ref: '#/components/schemas/Organization' + type: number + format: float + description: Total computation time duration in each time bucket. readOnly: true - nextPageToken: + pipelineReleaseId: type: string - description: Next page token. + description: Version for the triggered pipeline if it is a release pipeline. readOnly: true - totalSize: - type: integer - description: Total number of organizations. - format: int32 + pipelineReleaseUid: + type: string + description: Release UUID for the triggered pipeline if it is a release pipeline. readOnly: true - ListPipelineTriggerChartRecordsResponse: - type: object - properties: - pipelineTriggerChartRecords: - type: array - items: - $ref: '#/components/schemas/PipelineTriggerChartRecord' - description: A list of pipeline trigger records. - description: "ListPipelineTriggerChartRecordsResponse contains a list of pipeline trigger\nchart records." - ListPipelineTriggerTableRecordsResponse: + description: "PipelineTriggerChartRecord contains pipeline trigger metrics, aggregated by\npipeline ID and time frame." + PipelineTriggerTableRecord: type: object properties: - pipelineTriggerTableRecords: - type: array - items: - $ref: '#/components/schemas/PipelineTriggerTableRecord' - description: A list of pipeline trigger tables. - nextPageToken: + pipelineId: type: string - description: Next page token. - totalSize: - title: Total number of pipeline trigger records - type: integer - format: int32 - description: ListPipelineTriggerTableRecordsResponse contains the pipeline metrics. - ListTokensResponse: - type: object - properties: - tokens: - type: array - items: - $ref: '#/components/schemas/ApiToken' - description: A list of API token resources. - nextPageToken: + description: Pipeline ID. + pipelineUid: type: string - description: Next page token. - totalSize: + description: Pipeline UUID. + triggerCountCompleted: type: integer - description: Total number of API token resources. + description: Number of triggers with `STATUS_COMPLETED`. format: int32 - description: ListTokensResponse contains a list of API tokens. - ListUserMembershipsResponse: - type: object - properties: - memberships: - type: array - items: - $ref: '#/components/schemas/UserMembership' - description: 'The user memberships, i.e., the organizations the user belongs to.' readOnly: true - description: ListUserMembershipsResponse contains a list of memberships. - ListUsersAdminResponse: - title: ListUsersAdminResponse represents a response for a list of users - type: object - properties: - users: - title: A list of users - type: array - items: - $ref: '#/components/schemas/User' - nextPageToken: - type: string - description: Next page token. - totalSize: + triggerCountErrored: type: integer - description: Total number of users. + description: Number of triggers with `STATUS_ERRORED`. format: int32 - ListUsersResponse: + readOnly: true + pipelineReleaseId: + type: string + description: Version for the triggered pipeline if it is a release pipeline. + readOnly: true + pipelineReleaseUid: + type: string + description: Release UUID for the triggered pipeline if it is a release pipeline. + readOnly: true + description: "PipelineTriggerTableRecord contains pipeline trigger metrics, aggregated by\npipeline ID." + StripeSubscriptionDetail: type: object properties: - users: - type: array - items: - $ref: '#/components/schemas/User' - description: A list of user resources. + productName: + type: string + description: Product name associated with the subscription in Stripe. readOnly: true - nextPageToken: + id: type: string - description: Next page token. + description: Unique identifier for the subscription. readOnly: true - totalSize: + itemId: + type: string + description: Identifier for the specific item within the subscription. + readOnly: true + price: + type: number + description: Price of the subscription. + format: float + readOnly: true + canceledAt: type: integer - description: Total number of users. + description: 'Optional timestamp indicating when the subscription was canceled, if applicable.' format: int32 readOnly: true - description: ListUsersResponse contains a list of users. - LookUpOrganizationAdminResponse: - title: LookUpOrganizationAdminResponse represents a response for a organization resource by admin + trialEnd: + type: integer + description: 'Optional timestamp indicating when the trial ended, if applicable.' + format: int32 + readOnly: true + status: + allOf: + - $ref: '#/components/schemas/StripeSubscriptionDetailStatus' + description: Status of the subscription. + readOnly: true + description: + type: string + description: Description of the subscription. + readOnly: true + description: StripeSubscriptionDetail describes the details of a subscription in Stripe. + StripeSubscriptionDetailStatus: + enum: + - STATUS_INCOMPLETE + - STATUS_INCOMPLETE_EXPIRED + - STATUS_TRIALING + - STATUS_ACTIVE + - STATUS_PAST_DUE + - STATUS_CANCELED + - STATUS_UNPAID + - STATUS_PAUSED + type: string + description: "Enumerates the status types for the user's subscription.\n\n - STATUS_INCOMPLETE: Incomplete.\n - STATUS_INCOMPLETE_EXPIRED: Incomplete Expired.\n - STATUS_TRIALING: Trialing.\n - STATUS_ACTIVE: Active.\n - STATUS_PAST_DUE: Past due.\n - STATUS_CANCELED: Canceled.\n - STATUS_UNPAID: Unpaid.\n - STATUS_PAUSED: Paused." + SubtractCreditAdminResponse: type: object properties: - organization: - title: A organization resource - allOf: - - $ref: '#/components/schemas/Organization' - LookUpUserAdminResponse: - title: LookUpUserAdminResponse represents a response for a user resource by admin + amount: + type: number + description: The remaining credit. + format: float + description: "SubtractCreditResponse contains the remaining credit of an account after the\nsubtraction." + UpdateOrganizationMembershipResponse: type: object properties: - user: - title: A user resource - allOf: - - $ref: '#/components/schemas/User' - MembershipState: - enum: - - MEMBERSHIP_STATE_ACTIVE - - MEMBERSHIP_STATE_PENDING - type: string - description: "MembershipState describes the state of a user membership to an organization.\n\n - MEMBERSHIP_STATE_ACTIVE: Active.\n - MEMBERSHIP_STATE_PENDING: Pending, i.e., a request has been sent to the user to join an\norganization." - Mode: - enum: - - MODE_SYNC - - MODE_ASYNC - type: string - description: "Mode describes the execution mode of the pipeline (sync or async).\n\n - MODE_SYNC: Synchronous (result is returned in the response).\n - MODE_ASYNC: Asynchronous (response only contains acknowledgement)." - OnboardingStatus: - enum: - - ONBOARDING_STATUS_IN_PROGRESS - - ONBOARDING_STATUS_COMPLETED - type: string - description: "OnboardingStatus describes the status of the user onboarding process.\n\n - ONBOARDING_STATUS_IN_PROGRESS: In progress, i.e., the user has initiated the onboarding process\nbut has not yet completed it.\n - ONBOARDING_STATUS_COMPLETED: Completed." - Organization: - required: - - profile + membership: + allOf: + - $ref: '#/components/schemas/OrganizationMembership' + description: The updated membership resource. + readOnly: true + description: UpdateOrganizationMembershipResponse contains the updated membership. + UpdateOrganizationResponse: + type: object + properties: + organization: + allOf: + - $ref: '#/components/schemas/Organization' + description: The organization resource. + readOnly: true + description: UpdateOrganizationResponse contains the updated organization. + UpdateUserMembershipResponse: + type: object + properties: + membership: + allOf: + - $ref: '#/components/schemas/UserMembership' + description: The updated membership resource. + readOnly: true + description: UpdateUserMembershipResponse contains the updated membership. + User: type: object properties: name: type: string - description: "The name of the organization, defined by its ID.\n- Format: `organization/{organization.id}`." + description: "The name of the user, defined by its ID.\n- Format: `users/{user.id}`." readOnly: true uid: type: string - description: Organization UUID. + description: "User UUID. This field is optionally set by users on creation (it will be\nserver-generated if unspecified)." readOnly: true id: type: string @@ -1695,38 +2556,28 @@ components: description: Update time. format: date-time readOnly: true - owner: - allOf: - - $ref: '#/components/schemas/User' - description: The user that owns the organization. - readOnly: true profile: allOf: - - $ref: '#/components/schemas/OrganizationProfile' + - $ref: '#/components/schemas/UserProfile' description: Profile. - permission: - title: Permission - allOf: - - $ref: '#/components/schemas/Permission' - readOnly: true - description: "Organizations group several users. As entities, they can own resources such\nas pipelines or releases." - OrganizationMembership: + description: "User describes an individual that interacts with Instill AI. It doesn't\ncontain any private information about the user." + UserMembership: required: - - role + - state type: object properties: name: type: string - description: "The resource name of the membership, which allows its access by\norganization and user ID.\n- Format: `organizations/{organization.id}/memberships/{user.id}`." + description: "The resource name of the membership, which allows its access by user and\norganization ID.\n- Format: `users/{user.id}/memberships/{organization.id}`." readOnly: true role: type: string description: Role of the user in the organization. + readOnly: true state: allOf: - $ref: '#/components/schemas/MembershipState' description: State of the membership. - readOnly: true user: allOf: - $ref: '#/components/schemas/User' @@ -1737,8 +2588,8 @@ components: - $ref: '#/components/schemas/Organization' description: Organization information. readOnly: true - description: "An organization membership defines the relationship between an organization\nand a user that is attached to it." - OrganizationProfile: + description: "A user membership defines the relationship between a user and an\norganization they belong to." + UserProfile: type: object properties: displayName: @@ -1753,18 +2604,21 @@ components: publicEmail: type: string description: Public email. + companyName: + type: string + description: Company name. socialProfileLinks: type: object additionalProperties: type: string - description: "Social profile links list the links to the organization's social profiles.\nThe key represents the provider, and the value is the corresponding URL." - description: OrganizationProfile describes the public data of an organization. - OrganizationSubscription: + description: "Social profile links list the links to the user's social profiles.\nThe key represents the provider, and the value is the corresponding URL." + description: UserProfile describes the public data of a user. + UserSubscription: type: object properties: plan: allOf: - - $ref: '#/components/schemas/OrganizationSubscriptionPlan' + - $ref: '#/components/schemas/UserSubscriptionPlan' description: Plan identifier. readOnly: true detail: @@ -1772,320 +2626,652 @@ components: - $ref: '#/components/schemas/StripeSubscriptionDetail' description: Details of the associated Stripe subscription. readOnly: true - usedSeats: - type: integer - description: Number of used seats within the organization subscription. - format: int32 - readOnly: true - description: 'OrganizationSubscription details describe the plan (i.e., features) an organization has access to.' - OrganizationSubscriptionPlan: + description: 'UserSubscription details describe the plan (i.e., features) a user has access to.' + UserSubscriptionPlan: enum: - PLAN_FREE - - PLAN_TEAM - - PLAN_ENTERPRISE + - PLAN_PRO type: string - description: "Enumerates the plan types for the organization subscription.\n\n - PLAN_FREE: Free plan.\n - PLAN_TEAM: Team plan.\n - PLAN_ENTERPRISE: Enterprise plan." - PatchAuthenticatedUserResponse: - title: "PatchAuthenticatedUserResponse contains the updated user.\nthe authenticated user resource" + description: "Enumerates the plan types for the user subscription.\n\n - PLAN_FREE: Free plan.\n - PLAN_PRO: Pro plan." + ValidateTokenResponse: type: object properties: - user: - allOf: - - $ref: '#/components/schemas/AuthenticatedUser' - description: The updated user resource. + userUid: + type: string + description: 'If token is valid, UUID of the user that owns it.' readOnly: true - Permission: + description: ValidateTokenResponse contains the validation of a token. + View: + enum: + - VIEW_BASIC + - VIEW_FULL + type: string + description: "View defines how a resource is presented. It can be used as a parameter in a\nmethod request to allow clients to select the amount of information they\nwant in the response.\n\n - VIEW_BASIC: Default view, only includes basic information.\n - VIEW_FULL: Full representation." + CreateCatalogBody: type: object properties: - canEdit: + name: + type: string + description: The catalog name. + description: + type: string + description: The catalog description. + tags: + type: array + items: + type: string + description: The catalog tags. + description: CreateCatalogRequest represents a request to create a catalog. + QuestionAnsweringBody: + title: QuestionAnsweringRequest + type: object + properties: + question: + title: question to be answered + type: string + topK: + title: top k default to 5 + type: integer + format: int32 + SimilarityChunksSearchBody: + title: Similar chunk search request + type: object + properties: + textPrompt: + title: text prompt + type: string + topK: + title: top k + type: integer + format: int64 + UpdateCatalogBody: + type: object + properties: + description: + type: string + description: The catalog description. + tags: + type: array + items: + type: string + description: The catalog tags. + description: UpdateCatalogRequest represents a request to update a catalog. + UpdateChunkBody: + title: Create chunk response + type: object + properties: + retrievable: + title: whether the chunk is retrievable type: boolean - description: Defines whether the resource can be modified. - readOnly: true - description: Permission defines how a resource can be used. - PipelineTriggerChartRecord: + GetFileCatalogResponseChunkType: + title: chunk type + enum: + - CHUNK_TYPE_TEXT + - CHUNK_TYPE_IMAGE + - CHUNK_TYPE_AUDIO + - CHUNK_TYPE_VIDEO + type: string + description: "- CHUNK_TYPE_TEXT: text\n - CHUNK_TYPE_IMAGE: image\n - CHUNK_TYPE_AUDIO: audio\n - CHUNK_TYPE_VIDEO: video" + GetFileCatalogResponseMetadata: + title: metadata type: object properties: - pipelineId: + fileUid: + title: file uid type: string - description: Pipeline ID. - pipelineUid: + fileId: + title: file id type: string - description: Pipeline UUID. - triggerMode: + fileType: + title: file type allOf: - - $ref: '#/components/schemas/Mode' - description: Trigger mode. - status: + - $ref: '#/components/schemas/FileType' + fileSize: + title: file size in bytes + type: string + format: int64 + fileUploadTime: + title: upload time + type: string + format: date-time + fileProcessStatus: + title: file process status allOf: - - $ref: '#/components/schemas/mgmtv1betaStatus' - description: Final status. - readOnly: true - timeBuckets: + - $ref: '#/components/schemas/FileProcessStatus' + GetFileCatalogResponseText: + title: text message + type: object + properties: + pipelineIds: + title: pipelines type: array items: type: string - format: date-time - description: Time buckets. - readOnly: true - triggerCounts: + transformedContent: + title: transformed content + type: string + transformedContentChunkNum: + title: transformed content chunk number + type: integer + format: int32 + transformedContentTokenNum: + title: transformed content token number + type: integer + format: int32 + transformedContentUpdateTime: + title: transformed content update time + type: string + format: date-time + artifactv1alphaChunk: + type: object + properties: + chunkUid: + title: unique identifier of the chunk + type: string + retrievable: + title: whether the chunk is retrievable + type: boolean + startPos: + title: start position of the chunk in the source file + type: integer + format: int64 + endPos: + title: end position of the chunk in the source file + type: integer + format: int64 + tokens: + title: tokens of the chunk + type: integer + format: int64 + createTime: + title: creation time of the chunk + type: string + format: date-time + originalFileUid: + title: original file unique identifier + type: string + description: The Chunk message represents a chunk of data in the artifact system. + rpcStatus: + type: object + properties: + code: + type: integer + format: int32 + message: + type: string + details: type: array items: - type: integer - format: int32 - description: Aggregated trigger count in each time bucket. - readOnly: true - computeTimeDuration: + $ref: '#/components/schemas/protobufAny' + Catalog: + type: object + properties: + catalogId: + type: string + description: The catalog id. + name: + type: string + description: The catalog name. + description: + type: string + description: The catalog description. + createTime: + type: string + description: The creation time of the catalog. + updateTime: + type: string + description: The last update time of the catalog. + ownerName: + type: string + description: The owner/namespace of the catalog. + tags: type: array items: - type: number - format: float - description: Total computation time duration in each time bucket. - readOnly: true - pipelineReleaseId: - type: string - description: Version for the triggered pipeline if it is a release pipeline. - readOnly: true - pipelineReleaseUid: + type: string + description: The catalog tags. + convertingPipelines: + type: array + items: + type: string + description: The catalog converting pipelines. + splittingPipelines: + type: array + items: + type: string + description: The catalog splitting pipelines. + embeddingPipelines: + type: array + items: + type: string + description: The catalog embedding pipelines. + downstreamApps: + title: The downstream apps + type: array + items: + type: string + totalFiles: + type: integer + description: The total files in catalog. + format: int64 + totalTokens: + type: integer + description: The total tokens in catalog. + format: int64 + usedStorage: + type: string + description: The current used storage in catalog. + format: uint64 + description: Catalog represents a catalog. + CreateCatalogResponse: + type: object + properties: + catalog: + allOf: + - $ref: '#/components/schemas/Catalog' + description: The created catalog. + description: CreateCatalogResponse represents a response for creating a catalog. + CreateRepositoryTagResponse: + type: object + properties: + tag: + allOf: + - $ref: '#/components/schemas/RepositoryTag' + description: The created tag. + description: CreateRepositoryTagResponse contains the created tag. + DeleteCatalogFileResponse: + title: delete file response + type: object + properties: + fileUid: type: string - description: Release UUID for the triggered pipeline if it is a release pipeline. - readOnly: true - description: "PipelineTriggerChartRecord contains pipeline trigger metrics, aggregated by\npipeline ID and time frame." - PipelineTriggerTableRecord: + description: The file uid. + DeleteCatalogResponse: type: object properties: - pipelineId: + catalog: + allOf: + - $ref: '#/components/schemas/Catalog' + description: The catalog identifier. + description: DeleteCatalogResponse represents a response for deleting a catalog. + DeleteRepositoryTagResponse: + type: object + description: DeleteRepositoryTagResponse represent an empty response. + File: + title: file + required: + - name + - type + type: object + properties: + fileUid: + title: file uid type: string - description: Pipeline ID. - pipelineUid: + readOnly: true + name: + title: file name type: string - description: Pipeline UUID. - triggerCountCompleted: - type: integer - description: Number of triggers with `STATUS_COMPLETED`. - format: int32 + type: + title: file type + allOf: + - $ref: '#/components/schemas/FileType' + processStatus: + title: file process status + allOf: + - $ref: '#/components/schemas/FileProcessStatus' readOnly: true - triggerCountErrored: - type: integer - description: Number of triggers with `STATUS_ERRORED`. - format: int32 + processOutcome: + title: file process message + type: string + readOnly: true + retrievable: + title: retrievable(this is reserved for future use) + type: boolean readOnly: true - pipelineReleaseId: + content: + title: content(this is reserved for future use) + type: string + ownerUid: + title: owner/namespace uid type: string - description: Version for the triggered pipeline if it is a release pipeline. readOnly: true - pipelineReleaseUid: + creatorUid: + title: creator uid from authn token type: string - description: Release UUID for the triggered pipeline if it is a release pipeline. readOnly: true - description: "PipelineTriggerTableRecord contains pipeline trigger metrics, aggregated by\npipeline ID." - StripeSubscriptionDetail: - type: object - properties: - productName: + catalogUid: + title: catalog uid type: string - description: Product name associated with the subscription in Stripe. readOnly: true - id: + createTime: + title: create time type: string - description: Unique identifier for the subscription. + format: date-time readOnly: true - itemId: + updateTime: + title: update time type: string - description: Identifier for the specific item within the subscription. + format: date-time readOnly: true - price: - type: number - description: Price of the subscription. - format: float + deleteTime: + title: delete time + type: string + format: date-time readOnly: true - canceledAt: + size: + title: file size in bytes + type: string + format: int64 + readOnly: true + totalChunks: + title: total chunks type: integer - description: 'Optional timestamp indicating when the subscription was canceled, if applicable.' format: int32 readOnly: true - trialEnd: + totalTokens: + title: total tokens type: integer - description: 'Optional timestamp indicating when the trial ended, if applicable.' format: int32 readOnly: true - status: - allOf: - - $ref: '#/components/schemas/StripeSubscriptionDetailStatus' - description: Status of the subscription. - readOnly: true - description: - type: string - description: Description of the subscription. - readOnly: true - description: StripeSubscriptionDetail describes the details of a subscription in Stripe. - StripeSubscriptionDetailStatus: + FileProcessStatus: + title: file embedding process status enum: - - STATUS_INCOMPLETE - - STATUS_INCOMPLETE_EXPIRED - - STATUS_TRIALING - - STATUS_ACTIVE - - STATUS_PAST_DUE - - STATUS_CANCELED - - STATUS_UNPAID - - STATUS_PAUSED + - FILE_PROCESS_STATUS_NOTSTARTED + - FILE_PROCESS_STATUS_WAITING + - FILE_PROCESS_STATUS_CONVERTING + - FILE_PROCESS_STATUS_CHUNKING + - FILE_PROCESS_STATUS_EMBEDDING + - FILE_PROCESS_STATUS_COMPLETED + - FILE_PROCESS_STATUS_FAILED type: string - description: "Enumerates the status types for the user's subscription.\n\n - STATUS_INCOMPLETE: Incomplete.\n - STATUS_INCOMPLETE_EXPIRED: Incomplete Expired.\n - STATUS_TRIALING: Trialing.\n - STATUS_ACTIVE: Active.\n - STATUS_PAST_DUE: Past due.\n - STATUS_CANCELED: Canceled.\n - STATUS_UNPAID: Unpaid.\n - STATUS_PAUSED: Paused." - SubtractCreditAdminResponse: + description: "- FILE_PROCESS_STATUS_NOTSTARTED: NOTSTARTED\n - FILE_PROCESS_STATUS_WAITING: file is waiting for embedding process\n - FILE_PROCESS_STATUS_CONVERTING: file is converting\n - FILE_PROCESS_STATUS_CHUNKING: file is chunking\n - FILE_PROCESS_STATUS_EMBEDDING: file is embedding\n - FILE_PROCESS_STATUS_COMPLETED: completed\n - FILE_PROCESS_STATUS_FAILED: failed" + FileType: + title: file type + enum: + - FILE_TYPE_TEXT + - FILE_TYPE_PDF + - FILE_TYPE_MARKDOWN + - FILE_TYPE_PNG + - FILE_TYPE_JPEG + - FILE_TYPE_JPG + - FILE_TYPE_HTML + - FILE_TYPE_DOCX + - FILE_TYPE_DOC + - FILE_TYPE_PPT + - FILE_TYPE_PPTX + - FILE_TYPE_XLS + - FILE_TYPE_XLSX + type: string + description: "- FILE_TYPE_TEXT: text\n - FILE_TYPE_PDF: PDF\n - FILE_TYPE_MARKDOWN: MARKDOWN\n - FILE_TYPE_PNG: PNG(not supported yet)\n - FILE_TYPE_JPEG: JPEG(not supported yet)\n - FILE_TYPE_JPG: JPG(not supported yet)\n - FILE_TYPE_HTML: HTML\n - FILE_TYPE_DOCX: DOCX\n - FILE_TYPE_DOC: DOC\n - FILE_TYPE_PPT: PPT\n - FILE_TYPE_PPTX: PPTX\n - FILE_TYPE_XLS: XLS(not supported yet)\n - FILE_TYPE_XLSX: XLSX" + GetFileCatalogResponse: + title: GetFileCatalogResponse type: object properties: - amount: - type: number - description: The remaining credit. - format: float - description: "SubtractCreditResponse contains the remaining credit of an account after the\nsubtraction." - UpdateOrganizationMembershipResponse: + originalData: + title: original data is encoded in base64 + type: string + metadata: + title: file catalog + allOf: + - $ref: '#/components/schemas/GetFileCatalogResponseMetadata' + text: + title: text + allOf: + - $ref: '#/components/schemas/GetFileCatalogResponseText' + chunks: + title: chunks + type: array + items: + $ref: '#/components/schemas/GetFileCatalogResponseChunk' + GetFileCatalogResponseChunk: + title: chunk message type: object properties: - membership: + uid: + title: chunk uid + type: string + type: + title: 'chunk type. i.e. text, image, audio, and video' allOf: - - $ref: '#/components/schemas/OrganizationMembership' - description: The updated membership resource. - readOnly: true - description: UpdateOrganizationMembershipResponse contains the updated membership. - UpdateOrganizationResponse: + - $ref: '#/components/schemas/GetFileCatalogResponseChunkType' + startPos: + title: chunk start position + type: integer + format: int32 + endPos: + title: chunk end position + type: integer + format: int32 + content: + title: chunk content + type: string + tokensNum: + title: chunk tokens num + type: integer + format: int32 + embedding: + title: embedding. float32 array + type: array + items: + type: number + format: float + createTime: + title: chunk create time + type: string + format: date-time + retrievable: + title: chunk retrievable + type: boolean + GetRepositoryTagResponse: type: object properties: - organization: + tag: allOf: - - $ref: '#/components/schemas/Organization' - description: The organization resource. - readOnly: true - description: UpdateOrganizationResponse contains the updated organization. - UpdateUserMembershipResponse: + - $ref: '#/components/schemas/RepositoryTag' + description: The created tag. + description: GetRepositoryTagResponse contains the created tag. + GetSourceFileResponse: + title: get source file response type: object properties: - membership: + sourceFile: + title: source file(either original file or converted file) allOf: - - $ref: '#/components/schemas/UserMembership' - description: The updated membership resource. - readOnly: true - description: UpdateUserMembershipResponse contains the updated membership. - User: + - $ref: '#/components/schemas/SourceFile' + ListCatalogFilesFilter: + title: "list file filter\ntodo: support more parameters" type: object properties: - name: + fileUids: + type: array + items: + type: string + description: The file uids. + ListCatalogFilesResponse: + title: list files response + type: object + properties: + files: + type: array + items: + $ref: '#/components/schemas/File' + description: The list of files. + totalSize: + type: integer + description: The total number of files. + format: int32 + pageSize: + type: integer + description: The requested page size. + format: int32 + nextPageToken: + title: next page token type: string - description: "The name of the user, defined by its ID.\n- Format: `users/{user.id}`." - readOnly: true - uid: + filter: + allOf: + - $ref: '#/components/schemas/ListCatalogFilesFilter' + description: The filter. + ListCatalogsResponse: + type: object + properties: + catalogs: + type: array + items: + $ref: '#/components/schemas/Catalog' + description: The catalogs container. + description: GetCatalogsResponse represents a response for getting all catalogs from users. + ListChunksResponse: + type: object + properties: + chunks: + title: repeated chunks + type: array + items: + $ref: '#/components/schemas/artifactv1alphaChunk' + description: The ListChunksResponse message represents a response containing a list of chunks in the artifact system. + ListRepositoryTagsResponse: + type: object + properties: + tags: + type: array + items: + $ref: '#/components/schemas/RepositoryTag' + description: A list of repository tags. + totalSize: + type: integer + description: Total number of tags. + format: int32 + pageSize: + type: integer + description: The requested page size. + format: int32 + page: + type: integer + description: The requested page offset. + format: int32 + description: ListRepositoryTagsResponse contains a list of container image tags. + ProcessCatalogFilesRequest: + title: Process Catalog File Request + required: + - fileUids + type: object + properties: + fileUids: + type: array + items: + type: string + description: The file uid. + ProcessCatalogFilesResponse: + title: Process Catalog File Response + type: object + properties: + files: + type: array + items: + $ref: '#/components/schemas/File' + description: The file uid. + QuestionAnsweringResponse: + title: QuestionAnsweringResponse + type: object + properties: + answer: + title: answer to the question type: string - description: "User UUID. This field is optionally set by users on creation (it will be\nserver-generated if unspecified)." - readOnly: true + similarChunks: + title: chunks + type: array + items: + $ref: '#/components/schemas/SimilarityChunk' + RepositoryTag: + type: object + properties: + name: + type: string + description: "The name of the tag, defined by its parent repository and ID.\n- Format: `repositories/{repository.id}/tags/{tag.id}`." id: type: string - description: "Resource ID (used in `name` as the last segment). This conforms to\nRFC-1034, which restricts to letters, numbers, and hyphen, with the first\ncharacter a letter, the last a letter or a number, and a 63 character\nmaximum.\n\nNote that the ID can be updated." - createTime: + description: The tag identifier. + digest: type: string - description: Creation time. - format: date-time - readOnly: true + description: 'Unique identifier, computed from the manifest the tag refers to.' updateTime: type: string - description: Update time. + description: 'Tag update time, i.e. timestamp of the last push.' format: date-time readOnly: true - profile: - allOf: - - $ref: '#/components/schemas/UserProfile' - description: Profile. - description: "User describes an individual that interacts with Instill AI. It doesn't\ncontain any private information about the user." - UserMembership: - required: - - state + description: "RepositoryTag contains information about the version of some content in a\nrepository." + SimilarityChunk: + title: similarity chunks type: object properties: - name: + chunkUid: + title: chunk uid type: string - description: "The resource name of the membership, which allows its access by user and\norganization ID.\n- Format: `users/{user.id}/memberships/{organization.id}`." - readOnly: true - role: + similarityScore: + title: similarity score + type: number + format: float + textContent: + title: content type: string - description: Role of the user in the organization. - readOnly: true - state: - allOf: - - $ref: '#/components/schemas/MembershipState' - description: State of the membership. - user: - allOf: - - $ref: '#/components/schemas/User' - description: User information. - readOnly: true - organization: - allOf: - - $ref: '#/components/schemas/Organization' - description: Organization information. - readOnly: true - description: "A user membership defines the relationship between a user and an\norganization they belong to." - UserProfile: + sourceFile: + title: source file + type: string + SimilarityChunksSearchResponse: + title: Similar chunk search response type: object properties: - displayName: - type: string - description: Display name. - bio: + similarChunks: + title: chunks + type: array + items: + $ref: '#/components/schemas/SimilarityChunk' + SourceFile: + type: object + properties: + originalFileUid: + title: original file unique identifier type: string - description: Biography. - avatar: + content: + title: content type: string - description: Avatar in base64 format. - publicEmail: + createTime: + title: creation time of the source file type: string - description: Public email. - companyName: + format: date-time + updateTime: + title: update time of the source file type: string - description: Company name. - socialProfileLinks: - type: object - additionalProperties: - type: string - description: "Social profile links list the links to the user's social profiles.\nThe key represents the provider, and the value is the corresponding URL." - description: UserProfile describes the public data of a user. - UserSubscription: + format: date-time + description: The SourceFile message represents a source file in the artifact system. + UpdateCatalogResponse: type: object properties: - plan: + catalog: allOf: - - $ref: '#/components/schemas/UserSubscriptionPlan' - description: Plan identifier. - readOnly: true - detail: + - $ref: '#/components/schemas/Catalog' + description: The updated catalog. + description: UpdateCatalogResponse represents a response for updating a catalog. + UpdateChunkResponse: + title: update chunk response + type: object + properties: + chunk: + title: chunk allOf: - - $ref: '#/components/schemas/StripeSubscriptionDetail' - description: Details of the associated Stripe subscription. - readOnly: true - description: 'UserSubscription details describe the plan (i.e., features) a user has access to.' - UserSubscriptionPlan: - enum: - - PLAN_FREE - - PLAN_PRO - type: string - description: "Enumerates the plan types for the user subscription.\n\n - PLAN_FREE: Free plan.\n - PLAN_PRO: Pro plan." - ValidateTokenResponse: + - $ref: '#/components/schemas/artifactv1alphaChunk' + UploadCatalogFileResponse: + title: upload file response type: object properties: - userUid: - type: string - description: 'If token is valid, UUID of the user that owns it.' - readOnly: true - description: ValidateTokenResponse contains the validation of a token. - View: - enum: - - VIEW_BASIC - - VIEW_FULL - type: string - description: "View defines how a resource is presented. It can be used as a parameter in a\nmethod request to allow clients to select the amount of information they\nwant in the response.\n\n - VIEW_BASIC: Default view, only includes basic information.\n - VIEW_FULL: Full representation." + file: + title: file + allOf: + - $ref: '#/components/schemas/File' securitySchemes: Bearer: - type: apiKey + type: http description: 'Enter the token with the `Bearer ` prefix, e.g. `Bearer abcde12345`' - name: Authorization - in: header + scheme: bearer x-default: Bearer instill_sk_*** security: - Bearer: [ ] diff --git a/src/tests/IntegrationTests/Instill.IntegrationTests.csproj b/src/tests/IntegrationTests/Instill.IntegrationTests.csproj index 2ece42d..8bc671f 100644 --- a/src/tests/IntegrationTests/Instill.IntegrationTests.csproj +++ b/src/tests/IntegrationTests/Instill.IntegrationTests.csproj @@ -9,6 +9,10 @@ all runtime; build; native; contentfiles; analyzers; buildtransitive + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + diff --git a/src/tests/IntegrationTests/Resources/midsummer-nights-dream.pdf b/src/tests/IntegrationTests/Resources/midsummer-nights-dream.pdf new file mode 100644 index 0000000000000000000000000000000000000000..bde6951f907b1b3d7d5e58fd2888f33abd6108be GIT binary patch literal 572679 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 z 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

TljGuRocX6>4cg{~ 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 S=)Xka53iEz$H#ZQKk*-NJ#}*c literal 0 HcmV?d00001 diff --git a/src/tests/IntegrationTests/Tests.GetRemainingCredit.cs b/src/tests/IntegrationTests/Tests.GetRemainingCredit.cs index c65eb8b..5997027 100644 --- a/src/tests/IntegrationTests/Tests.GetRemainingCredit.cs +++ b/src/tests/IntegrationTests/Tests.GetRemainingCredit.cs @@ -7,7 +7,7 @@ public async Task GetRemainingCredit() { using var client = GetAuthenticatedClient(); - GetRemainingCreditResponse response = await client.Credit.GetRemainingCreditAsync(namespaceId: ""); + GetRemainingCreditResponse response = await client.Credit.GetRemainingCreditAsync(namespaceId: "havendv"); Console.WriteLine($"Perishable: {response.Perishable}"); Console.WriteLine($"Imperishable: {response.Imperishable}"); diff --git a/src/tests/IntegrationTests/Tests.QuickstartData.cs b/src/tests/IntegrationTests/Tests.QuickstartData.cs new file mode 100644 index 0000000..8095426 --- /dev/null +++ b/src/tests/IntegrationTests/Tests.QuickstartData.cs @@ -0,0 +1,95 @@ +namespace Instill.IntegrationTests; + +public partial class Tests +{ + [TestMethod] + public async Task QuickstartData() + { + using var client = GetAuthenticatedClient(); + using var cancellationTokenSource = new CancellationTokenSource(TimeSpan.FromMinutes(5)); + var cancellationToken = cancellationTokenSource.Token; + + CreateCatalogResponse createCatalogResponse = await client.Catalog.CreateCatalogAsync( + namespaceId: "havendv", + name: "shakespeare", + description: "Works of Shakespeare", + cancellationToken: cancellationToken); + + var catalog = createCatalogResponse.Catalog?.Value1; + Console.WriteLine($"CatalogId: {catalog?.CatalogId}"); + Console.WriteLine($"Name: {catalog?.Name}"); + Console.WriteLine($"Description: {catalog?.Description}"); + Console.WriteLine($"TotalFiles: {catalog?.TotalFiles}"); + Console.WriteLine($"TotalTokens: {catalog?.TotalTokens}"); + + catalog.Should().NotBeNull(); + catalog?.CatalogId.Should().NotBeNull(); + + UploadCatalogFileResponse uploadFileResponse = await client.Catalog.UploadCatalogFileAsync( + namespaceId: "havendv", + catalogId: catalog?.CatalogId!, + name: "midsummer-nights-dream.pdf", + type: FileType2.FILETYPEPDF, + content: Convert.ToBase64String(H.Resources.midsummer_nights_dream_pdf.AsBytes()), + // createTime: DateTime.UtcNow, + // updateTime: DateTime.UtcNow, + // deleteTime: DateTime.UtcNow, + cancellationToken: cancellationToken); + + var file = uploadFileResponse.File?.Value1; + Console.WriteLine($"FileUid: {file?.FileUid}"); + Console.WriteLine($"Name: {file?.Name}"); + Console.WriteLine($"Type: {file?.Type.Value1}"); + Console.WriteLine($"Size: {file?.Size}"); + Console.WriteLine($"TotalTokens: {file?.TotalTokens}"); + Console.WriteLine($"TotalChunks: {file?.TotalChunks}"); + + file.Should().NotBeNull(); + file?.FileUid.Should().NotBeNull(); + + ProcessCatalogFilesResponse processFilesResponse = await client.Catalog.ProcessCatalogFilesAsync( + fileUids: [file?.FileUid!], + cancellationToken: cancellationToken); + + processFilesResponse.Files?[0].ProcessStatus?.Value1.Should().Be(FileProcessStatus2.FILEPROCESSSTATUSWAITING); + + while (!cancellationToken.IsCancellationRequested) + { + await Task.Delay(TimeSpan.FromSeconds(5), cancellationToken); + + ListCatalogFilesResponse listFilesResponse = await client.Catalog.ListCatalogFilesAsync( + namespaceId: "havendv", + catalogId: catalog?.CatalogId!, + cancellationToken: cancellationToken); + + if (listFilesResponse.Files?[0].ProcessStatus?.Value1 is + FileProcessStatus2.FILEPROCESSSTATUSCOMPLETED or + FileProcessStatus2.FILEPROCESSSTATUSFAILED) + { + break; + } + } + + const string question = "Who are the main characters involved in the love triangle in Act I?"; + Console.WriteLine($"Question: {question}"); + + QuestionAnsweringResponse questionAnsweringResponse = await client.Catalog.QuestionAnsweringAsync( + namespaceId: "havendv", + catalogId: catalog?.CatalogId!, + question: question, + topK: 5, + cancellationToken: cancellationToken); + + Console.WriteLine($"Answer: {questionAnsweringResponse.Answer}"); + Console.WriteLine("SimilarChunks:"); + + foreach (var chunk in questionAnsweringResponse.SimilarChunks ?? []) + { + Console.WriteLine($" ChunkUid: {chunk.ChunkUid}"); + Console.WriteLine($" SimilarityScore: {chunk.SimilarityScore}"); + Console.WriteLine($" TextContent: {chunk.TextContent}"); + Console.WriteLine($" SourceFile: {chunk.SourceFile}"); + Console.WriteLine("----------------------------------------"); + } + } +} diff --git a/src/tests/IntegrationTests/Tests.cs b/src/tests/IntegrationTests/Tests.cs index e1ebccd..2dc38b0 100644 --- a/src/tests/IntegrationTests/Tests.cs +++ b/src/tests/IntegrationTests/Tests.cs @@ -7,8 +7,8 @@ public partial class Tests public InstillClient GetAuthenticatedClient() { var apiKey = - Environment.GetEnvironmentVariable("INSTILL_API_KEY") ?? - throw new AssertInconclusiveException("INSTILL_API_KEY environment variable is not found."); + Environment.GetEnvironmentVariable("INSTILL_API_TOKEN") ?? + throw new AssertInconclusiveException("INSTILL_API_TOKEN environment variable is not found."); var client = new InstillClient(apiKey);

@cC-(UdRy~z3FC=f#ARVFw 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�vEuYSSq}k^4ir@;i#o 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�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