From dfd31f6317f42881d3927ea67a02b4bb090efafd Mon Sep 17 00:00:00 2001 From: Niels Swimberghe <3382717+Swimburger@users.noreply.github.com> Date: Mon, 4 Nov 2024 17:46:37 -0500 Subject: [PATCH 1/3] chore(seed): Regenerate seed (#5098) Regen seed --- .../__test__/__snapshots__/ir.test.ts.snap | 3002 +- .../csharp-grpc-proto-exhaustive.json | 3760 +++ .../test-definitions/csharp-grpc-proto.json | 655 + .../type__Column.json | 100 + .../type__DeleteResponse.json | 5 + .../type__DescribeResponse.json | 70 + .../type__FetchResponse.json | 156 + .../type__IndexedData.json | 24 + .../type__ListElement.json | 17 + .../type__ListResponse.json | 100 + .../type__Metadata.json | 38 + .../type__MetadataValue.json | 14 + .../type__NamespaceSummary.json | 18 + .../type__Pagination.json | 17 + .../type__QueryColumn.json | 117 + .../type__QueryResponse.json | 214 + .../type__QueryResult.json | 145 + .../type__ScoredColumn.json | 116 + .../type__UpdateResponse.json | 5 + .../type__UploadResponse.json | 18 + .../type__Usage.json | 18 + .../type__CreateResponse.json | 111 + .../csharp-grpc-proto/type__Metadata.json | 38 + .../type__MetadataValue.json | 14 + .../csharp-grpc-proto/type__UserModel.json | 95 + .../csharp-grpc-proto-exhaustive.json | 23882 ++++++++++++++++ .../test-definitions/csharp-grpc-proto.json | 3173 ++ .../csharp-grpc-proto-exhaustive.json | 1821 ++ .../__snapshots__/csharp-grpc-proto.json | 343 + .../.mock/definition/path-param.yml | 6 +- .../.mock/definition/path-param.yml | 6 +- .../no-custom-config/.mock/generators.yml | 11 +- .../.mock}/openapi/openapi.yml | 0 .../read-only-memory/.mock/generators.yml | 11 +- .../.mock/openapi/openapi.yml | 33 + .../mixed-case/.mock/definition/service.yml | 3 + seed/csharp-sdk/any-auth/README.md | 2 +- seed/csharp-sdk/any-auth/reference.md | 2 +- seed/csharp-sdk/any-auth/snippet.json | 2 +- .../Unit/MockServer/GetTokenTest.cs | 5 +- .../src/SeedAnyAuth/Auth/AuthClient.cs | 2 +- seed/csharp-sdk/audiences/README.md | 9 +- seed/csharp-sdk/audiences/reference.md | 9 +- seed/csharp-sdk/audiences/snippet.json | 2 +- .../Unit/MockServer/FindTest.cs | 13 +- .../src/SeedAudiences/Foo/FooClient.cs | 9 +- .../cross-package-type-names/README.md | 9 +- .../cross-package-type-names/reference.md | 9 +- .../cross-package-type-names/snippet.json | 2 +- .../Unit/MockServer/FindTest.cs | 13 +- .../Foo/FooClient.cs | 9 +- .../.mock/definition/path-param.yml | 6 +- .../forward-compatible-enums/reference.md | 22 +- .../forward-compatible-enums/snippet.json | 6 +- .../Unit/MockServer/SendListTest.cs | 3 + .../SeedEnum.Test/Unit/MockServer/SendTest.cs | 3 + .../src/SeedEnum/PathParam/PathParamClient.cs | 6 +- .../SeedEnum/QueryParam/QueryParamClient.cs | 2 + .../.mock/definition/path-param.yml | 6 +- seed/csharp-sdk/enum/plain-enums/reference.md | 22 +- seed/csharp-sdk/enum/plain-enums/snippet.json | 6 +- .../Unit/MockServer/SendListTest.cs | 3 + .../SeedEnum.Test/Unit/MockServer/SendTest.cs | 3 + .../src/SeedEnum/PathParam/PathParamClient.cs | 6 +- .../SeedEnum/QueryParam/QueryParamClient.cs | 2 + .../examples/no-custom-config/reference.md | 201 +- .../examples/no-custom-config/snippet.json | 2 +- .../src/SeedExamples/Service/ServiceClient.cs | 201 +- .../examples/readme-config/reference.md | 201 +- .../examples/readme-config/snippet.json | 2 +- .../src/SeedExamples/Service/ServiceClient.cs | 201 +- .../explicit-namespaces/reference.md | 181 +- .../explicit-namespaces/snippet.json | 14 +- ...GetAndReturnNestedWithOptionalFieldTest.cs | 52 +- ...ReturnNestedWithRequiredFieldAsListTest.cs | 107 +- ...GetAndReturnNestedWithRequiredFieldTest.cs | 54 +- .../MockServer/GetAndReturnOptionalTest.cs | 9 +- .../GetAndReturnWithOptionalFieldTest.cs | 54 +- .../PostWithObjectBodyandResponseTest.cs | 54 +- .../Unit/MockServer/TestPatchTest.cs | 54 +- .../Endpoints/Container/ContainerClient.cs | 4 +- .../HttpMethods/HttpMethodsClient.cs | 26 +- .../Endpoints/Object/ObjectClient.cs | 125 +- .../InlinedRequests/InlinedRequestsClient.cs | 26 +- .../no-generate-error-types/reference.md | 181 +- .../no-generate-error-types/snippet.json | 14 +- ...GetAndReturnNestedWithOptionalFieldTest.cs | 52 +- ...ReturnNestedWithRequiredFieldAsListTest.cs | 107 +- ...GetAndReturnNestedWithRequiredFieldTest.cs | 54 +- .../MockServer/GetAndReturnOptionalTest.cs | 9 +- .../GetAndReturnWithOptionalFieldTest.cs | 54 +- .../PostWithObjectBodyandResponseTest.cs | 54 +- .../Unit/MockServer/TestPatchTest.cs | 54 +- .../Endpoints/Container/ContainerClient.cs | 4 +- .../HttpMethods/HttpMethodsClient.cs | 26 +- .../Endpoints/Object/ObjectClient.cs | 125 +- .../InlinedRequests/InlinedRequestsClient.cs | 26 +- .../reference.md | 181 +- .../snippet.json | 14 +- ...GetAndReturnNestedWithOptionalFieldTest.cs | 52 +- ...ReturnNestedWithRequiredFieldAsListTest.cs | 107 +- ...GetAndReturnNestedWithRequiredFieldTest.cs | 54 +- .../MockServer/GetAndReturnOptionalTest.cs | 9 +- .../GetAndReturnWithOptionalFieldTest.cs | 54 +- .../PostWithObjectBodyandResponseTest.cs | 54 +- .../Unit/MockServer/TestPatchTest.cs | 54 +- .../Endpoints/Container/ContainerClient.cs | 4 +- .../HttpMethods/HttpMethodsClient.cs | 26 +- .../Endpoints/Object/ObjectClient.cs | 125 +- .../InlinedRequests/InlinedRequestsClient.cs | 26 +- .../no-custom-config/.mock/generators.yml | 11 +- .../.mock/openapi/openapi.yml | 33 + .../no-custom-config/README.md | 22 +- .../no-custom-config/reference.md | 25 + .../no-custom-config/snippet.json | 26 +- .../src/SeedApi/Core/Public/ClientOptions.cs | 2 +- .../SeedApi/Core/Public/SeedApiEnvironment.cs | 6 + .../SeedApi/Dataservice/DataserviceClient.cs | 35 + .../src/SeedApi/SeedApiClient.cs | 2 +- .../package-id/.mock/generators.yml | 11 +- .../package-id/.mock/openapi/openapi.yml | 33 + .../package-id/README.md | 22 +- .../package-id/reference.md | 25 + .../package-id/snippet.json | 26 +- .../src/SeedApi/Core/Public/ClientOptions.cs | 2 +- .../SeedApi/Core/Public/SeedApiEnvironment.cs | 6 + .../SeedApi/Dataservice/DataserviceClient.cs | 35 + .../package-id/src/SeedApi/SeedApiClient.cs | 2 +- .../read-only-memory/.mock/generators.yml | 11 +- .../.mock/openapi/openapi.yml | 33 + .../read-only-memory/README.md | 18 +- .../read-only-memory/reference.md | 25 + .../read-only-memory/snippet.json | 26 +- .../src/SeedApi/Core/Public/ClientOptions.cs | 2 +- .../SeedApi/Core/Public/SeedApiEnvironment.cs | 6 + .../SeedApi/Dataservice/DataserviceClient.cs | 35 + .../src/SeedApi/SeedApiClient.cs | 2 +- .../Unit/MockServer/SendTest.cs | 3 +- .../mixed-case/.mock/definition/service.yml | 3 + .../mixed-file-directory/reference.md | 4 +- .../mixed-file-directory/snippet.json | 4 +- .../Unit/MockServer/ListEventsTest.cs | 10 +- .../Unit/MockServer/ListTest.cs | 13 +- .../User/Events/EventsClient.cs | 2 +- .../SeedMixedFileDirectory/User/UserClient.cs | 2 +- seed/csharp-sdk/multi-line-docs/README.md | 2 +- seed/csharp-sdk/multi-line-docs/reference.md | 2 +- seed/csharp-sdk/multi-line-docs/snippet.json | 2 +- .../Unit/MockServer/CreateUserTest.cs | 5 +- .../src/SeedMultiLineDocs/User/UserClient.cs | 2 +- .../README.md | 2 +- .../reference.md | 4 +- .../snippet.json | 4 +- .../GetTokenWithClientCredentialsTest.cs | 5 +- .../Unit/MockServer/RefreshTokenTest.cs | 5 +- .../Auth/AuthClient.cs | 4 +- .../README.md | 2 +- .../reference.md | 2 +- .../snippet.json | 2 +- .../Unit/MockServer/GetTokenTest.cs | 5 +- .../Auth/AuthClient.cs | 2 +- .../oauth-client-credentials/README.md | 2 +- .../oauth-client-credentials/reference.md | 4 +- .../oauth-client-credentials/snippet.json | 4 +- .../GetTokenWithClientCredentialsTest.cs | 5 +- .../Unit/MockServer/RefreshTokenTest.cs | 5 +- .../Auth/AuthClient.cs | 4 +- .../no-simplify-object-dictionaries/README.md | 10 +- .../reference.md | 10 +- .../snippet.json | 2 +- .../Unit/MockServer/SendOptionalBodyTest.cs | 19 +- .../Optional/OptionalClient.cs | 10 +- seed/csharp-sdk/pagination/README.md | 2 +- seed/csharp-sdk/pagination/reference.md | 52 +- seed/csharp-sdk/pagination/snippet.json | 20 +- .../Unit/MockServer/ListUsernamesTest.cs | 10 +- .../ListWithBodyCursorPaginationTest.cs | 11 +- .../ListWithBodyOffsetPaginationTest.cs | 8 +- .../ListWithCursorPaginationTest.cs | 19 +- ...tWithExtendedResultsAndOptionalDataTest.cs | 13 +- .../MockServer/ListWithExtendedResultsTest.cs | 10 +- .../MockServer/ListWithGlobalConfigTest.cs | 10 +- ...ListWithOffsetPaginationHasNextPageTest.cs | 17 +- .../ListWithOffsetPaginationTest.cs | 19 +- .../ListWithOffsetStepPaginationTest.cs | 17 +- .../src/SeedPagination/Users/UsersClient.cs | 52 +- seed/csharp-sdk/trace/reference.md | 243 +- seed/csharp-sdk/trace/snippet.json | 14 +- .../Unit/MockServer/CreatePlaylistTest.cs | 6 + .../Unit/MockServer/GetPlaylistsTest.cs | 4 + .../MockServer/StoreTracedTestCaseTest.cs | 136 +- .../MockServer/StoreTracedTestCaseV2Test.cs | 128 +- .../MockServer/StoreTracedWorkspaceTest.cs | 161 +- .../MockServer/StoreTracedWorkspaceV2Test.cs | 128 +- .../Unit/MockServer/UpdatePlaylistTest.cs | 17 +- .../trace/src/SeedTrace/Admin/AdminClient.cs | 230 +- .../src/SeedTrace/Playlist/PlaylistClient.cs | 13 +- .../.mock/generators.yml | 11 +- .../.mock/openapi/openapi.yml | 33 + .../fastapi/grpc-proto-exhaustive/__init__.py | 2 + .../resources/dataservice/service/service.py | 58 +- .../fastapi/grpc-proto-exhaustive/security.py | 9 + .../.mock/generators.yml | 11 +- .../.mock/openapi/openapi.yml | 33 + .../.mock/generators.yml | 11 +- .../.mock/openapi/openapi.yml | 33 + .../.mock/generators.yml | 11 +- .../.mock/openapi/openapi.yml | 33 + .../core/request_option.go | 19 +- .../dataservice/client.go | 50 +- .../dynamic-snippets/example0/snippet.go | 20 +- .../dynamic-snippets/example1/snippet.go | 65 +- .../dynamic-snippets/example10/snippet.go | 13 +- .../dynamic-snippets/example11/snippet.go | 109 +- .../dynamic-snippets/example12/snippet.go | 13 +- .../dynamic-snippets/example13/snippet.go | 98 +- .../dynamic-snippets/example14/snippet.go | 22 + .../dynamic-snippets/example15/snippet.go | 46 + .../dynamic-snippets/example2/snippet.go | 20 +- .../dynamic-snippets/example3/snippet.go | 73 +- .../dynamic-snippets/example4/snippet.go | 11 +- .../dynamic-snippets/example5/snippet.go | 21 +- .../dynamic-snippets/example6/snippet.go | 11 +- .../dynamic-snippets/example7/snippet.go | 24 +- .../dynamic-snippets/example8/snippet.go | 11 +- .../dynamic-snippets/example9/snippet.go | 25 +- .../grpc-proto-exhaustive/environments.go | 13 + .../option/request_option.go | 7 + .../go-sdk/grpc-proto-exhaustive/snippet.json | 25 +- .../.mock/generators.yml | 11 +- .../.mock/openapi/openapi.yml | 33 + .../.mock/generators.yml | 11 +- .../.mock/openapi/openapi.yml | 33 + .../src/Dataservice/DataserviceClient.php | 55 +- .../src/Environments.php | 8 + .../grpc-proto-exhaustive/src/SeedClient.php | 5 + .../.mock/generators.yml | 11 +- .../.mock/openapi/openapi.yml | 33 + .../grpc-proto-exhaustive/collection.json | 266 +- .../.mock/generators.yml | 11 +- .../.mock/openapi/openapi.yml | 33 + .../lib/requests.rb | 4 +- .../lib/requests.rb | 4 +- seed/ruby-sdk/basic-auth/lib/requests.rb | 4 +- .../lib/requests.rb | 4 +- seed/ruby-sdk/custom-auth/lib/requests.rb | 4 +- seed/ruby-sdk/examples/lib/requests.rb | 4 +- .../exhaustive/extra-deps/lib/requests.rb | 4 +- .../lib/requests.rb | 4 +- .../no-custom-config/lib/requests.rb | 4 +- .../.mock/generators.yml | 11 +- .../.mock/openapi/openapi.yml | 33 + .../grpc-proto-exhaustive/lib/environment.rb | 7 + .../lib/fern_grpc_proto_exhaustive.rb | 19 +- .../dataservice/client.rb | 160 +- .../grpc-proto-exhaustive/lib/requests.rb | 51 +- .../grpc-proto-exhaustive/snippet.json | 50 +- .../idempotency-headers/lib/requests.rb | 4 +- seed/ruby-sdk/imdb/lib/requests.rb | 4 +- .../lib/requests.rb | 4 +- .../multi-url-environment/lib/requests.rb | 4 +- seed/ruby-sdk/no-environment/lib/requests.rb | 4 +- .../lib/requests.rb | 4 +- .../lib/requests.rb | 4 +- .../lib/requests.rb | 4 +- .../oauth-client-credentials/lib/requests.rb | 4 +- seed/ruby-sdk/pagination/lib/requests.rb | 4 +- .../lib/requests.rb | 4 +- .../lib/requests.rb | 4 +- seed/ruby-sdk/trace/lib/requests.rb | 4 +- .../.mock/generators.yml | 11 +- .../.mock/openapi/openapi.yml | 33 + seed/ts-sdk/grpc-proto-exhaustive/README.md | 23 +- .../ts-sdk/grpc-proto-exhaustive/reference.md | 40 + .../resolved-snippet-templates.md | 46 +- .../snippet-templates.json | 131 +- .../ts-sdk/grpc-proto-exhaustive/snippet.json | 25 +- .../grpc-proto-exhaustive/src/Client.ts | 6 +- .../resources/dataservice/client/Client.ts | 116 +- .../grpc-proto-exhaustive/src/environments.ts | 9 + .../ts-sdk/grpc-proto-exhaustive/src/index.ts | 1 + .../resources/dataservice/client/foo.ts | 15 + .../resources/dataservice/client/index.ts | 1 + .../generators.yml | 0 .../openapi/openapi.yml | 25 + .../overrides.yml | 0 .../proto/data/v1/data.proto | 0 .../proto/google/api/annotations.proto | 0 .../proto/google/api/field_behavior.proto | 0 .../proto/google/api/http.proto | 0 .../generators.yml | 0 .../overrides.yml | 0 .../proto/google/api/annotations.proto | 0 .../proto/google/api/http.proto | 0 .../proto/user/v1/user.proto | 0 295 files changed, 42529 insertions(+), 3248 deletions(-) create mode 100644 packages/cli/dynamic-snippets/src/__test__/test-definitions/csharp-grpc-proto-exhaustive.json create mode 100644 packages/cli/dynamic-snippets/src/__test__/test-definitions/csharp-grpc-proto.json create mode 100644 packages/cli/fern-definition/ir-to-jsonschema/src/__test__/__snapshots__/csharp-grpc-proto-exhaustive/type__Column.json create mode 100644 packages/cli/fern-definition/ir-to-jsonschema/src/__test__/__snapshots__/csharp-grpc-proto-exhaustive/type__DeleteResponse.json create mode 100644 packages/cli/fern-definition/ir-to-jsonschema/src/__test__/__snapshots__/csharp-grpc-proto-exhaustive/type__DescribeResponse.json create mode 100644 packages/cli/fern-definition/ir-to-jsonschema/src/__test__/__snapshots__/csharp-grpc-proto-exhaustive/type__FetchResponse.json create mode 100644 packages/cli/fern-definition/ir-to-jsonschema/src/__test__/__snapshots__/csharp-grpc-proto-exhaustive/type__IndexedData.json create mode 100644 packages/cli/fern-definition/ir-to-jsonschema/src/__test__/__snapshots__/csharp-grpc-proto-exhaustive/type__ListElement.json create mode 100644 packages/cli/fern-definition/ir-to-jsonschema/src/__test__/__snapshots__/csharp-grpc-proto-exhaustive/type__ListResponse.json create mode 100644 packages/cli/fern-definition/ir-to-jsonschema/src/__test__/__snapshots__/csharp-grpc-proto-exhaustive/type__Metadata.json create mode 100644 packages/cli/fern-definition/ir-to-jsonschema/src/__test__/__snapshots__/csharp-grpc-proto-exhaustive/type__MetadataValue.json create mode 100644 packages/cli/fern-definition/ir-to-jsonschema/src/__test__/__snapshots__/csharp-grpc-proto-exhaustive/type__NamespaceSummary.json create mode 100644 packages/cli/fern-definition/ir-to-jsonschema/src/__test__/__snapshots__/csharp-grpc-proto-exhaustive/type__Pagination.json create mode 100644 packages/cli/fern-definition/ir-to-jsonschema/src/__test__/__snapshots__/csharp-grpc-proto-exhaustive/type__QueryColumn.json create mode 100644 packages/cli/fern-definition/ir-to-jsonschema/src/__test__/__snapshots__/csharp-grpc-proto-exhaustive/type__QueryResponse.json create mode 100644 packages/cli/fern-definition/ir-to-jsonschema/src/__test__/__snapshots__/csharp-grpc-proto-exhaustive/type__QueryResult.json create mode 100644 packages/cli/fern-definition/ir-to-jsonschema/src/__test__/__snapshots__/csharp-grpc-proto-exhaustive/type__ScoredColumn.json create mode 100644 packages/cli/fern-definition/ir-to-jsonschema/src/__test__/__snapshots__/csharp-grpc-proto-exhaustive/type__UpdateResponse.json create mode 100644 packages/cli/fern-definition/ir-to-jsonschema/src/__test__/__snapshots__/csharp-grpc-proto-exhaustive/type__UploadResponse.json create mode 100644 packages/cli/fern-definition/ir-to-jsonschema/src/__test__/__snapshots__/csharp-grpc-proto-exhaustive/type__Usage.json create mode 100644 packages/cli/fern-definition/ir-to-jsonschema/src/__test__/__snapshots__/csharp-grpc-proto/type__CreateResponse.json create mode 100644 packages/cli/fern-definition/ir-to-jsonschema/src/__test__/__snapshots__/csharp-grpc-proto/type__Metadata.json create mode 100644 packages/cli/fern-definition/ir-to-jsonschema/src/__test__/__snapshots__/csharp-grpc-proto/type__MetadataValue.json create mode 100644 packages/cli/fern-definition/ir-to-jsonschema/src/__test__/__snapshots__/csharp-grpc-proto/type__UserModel.json create mode 100644 packages/cli/generation/ir-generator/src/__test__/test-definitions/csharp-grpc-proto-exhaustive.json create mode 100644 packages/cli/generation/ir-generator/src/__test__/test-definitions/csharp-grpc-proto.json create mode 100644 packages/cli/register/src/ir-to-fdr-converter/__test__/__snapshots__/csharp-grpc-proto-exhaustive.json create mode 100644 packages/cli/register/src/ir-to-fdr-converter/__test__/__snapshots__/csharp-grpc-proto.json rename {test-definitions/fern/apis/grpc-proto-exhaustive => seed/csharp-model/grpc-proto-exhaustive/no-custom-config/.mock}/openapi/openapi.yml (100%) create mode 100644 seed/csharp-model/grpc-proto-exhaustive/read-only-memory/.mock/openapi/openapi.yml create mode 100644 seed/csharp-sdk/grpc-proto-exhaustive/no-custom-config/.mock/openapi/openapi.yml create mode 100644 seed/csharp-sdk/grpc-proto-exhaustive/no-custom-config/src/SeedApi/Core/Public/SeedApiEnvironment.cs create mode 100644 seed/csharp-sdk/grpc-proto-exhaustive/package-id/.mock/openapi/openapi.yml create mode 100644 seed/csharp-sdk/grpc-proto-exhaustive/package-id/src/SeedApi/Core/Public/SeedApiEnvironment.cs create mode 100644 seed/csharp-sdk/grpc-proto-exhaustive/read-only-memory/.mock/openapi/openapi.yml create mode 100644 seed/csharp-sdk/grpc-proto-exhaustive/read-only-memory/src/SeedApi/Core/Public/SeedApiEnvironment.cs create mode 100644 seed/fastapi/grpc-proto-exhaustive/.mock/openapi/openapi.yml create mode 100644 seed/fastapi/grpc-proto-exhaustive/security.py create mode 100644 seed/go-fiber/grpc-proto-exhaustive/.mock/openapi/openapi.yml create mode 100644 seed/go-model/grpc-proto-exhaustive/.mock/openapi/openapi.yml create mode 100644 seed/go-sdk/grpc-proto-exhaustive/.mock/openapi/openapi.yml create mode 100644 seed/go-sdk/grpc-proto-exhaustive/dynamic-snippets/example14/snippet.go create mode 100644 seed/go-sdk/grpc-proto-exhaustive/dynamic-snippets/example15/snippet.go create mode 100644 seed/go-sdk/grpc-proto-exhaustive/environments.go create mode 100644 seed/php-model/grpc-proto-exhaustive/.mock/openapi/openapi.yml create mode 100644 seed/php-sdk/grpc-proto-exhaustive/.mock/openapi/openapi.yml create mode 100644 seed/php-sdk/grpc-proto-exhaustive/src/Environments.php create mode 100644 seed/postman/grpc-proto-exhaustive/.mock/openapi/openapi.yml create mode 100644 seed/pydantic/grpc-proto-exhaustive/.mock/openapi/openapi.yml create mode 100644 seed/ruby-sdk/grpc-proto-exhaustive/.mock/openapi/openapi.yml create mode 100644 seed/ruby-sdk/grpc-proto-exhaustive/lib/environment.rb create mode 100644 seed/ts-sdk/grpc-proto-exhaustive/.mock/openapi/openapi.yml create mode 100644 seed/ts-sdk/grpc-proto-exhaustive/src/environments.ts create mode 100644 seed/ts-sdk/grpc-proto-exhaustive/src/serialization/resources/dataservice/client/foo.ts rename test-definitions/fern/apis/{grpc-proto-exhaustive => csharp-grpc-proto-exhaustive}/generators.yml (100%) create mode 100644 test-definitions/fern/apis/csharp-grpc-proto-exhaustive/openapi/openapi.yml rename test-definitions/fern/apis/{grpc-proto-exhaustive => csharp-grpc-proto-exhaustive}/overrides.yml (100%) rename test-definitions/fern/apis/{grpc-proto-exhaustive => csharp-grpc-proto-exhaustive}/proto/data/v1/data.proto (100%) rename test-definitions/fern/apis/{grpc-proto-exhaustive => csharp-grpc-proto-exhaustive}/proto/google/api/annotations.proto (100%) rename test-definitions/fern/apis/{grpc-proto-exhaustive => csharp-grpc-proto-exhaustive}/proto/google/api/field_behavior.proto (100%) rename test-definitions/fern/apis/{grpc-proto-exhaustive => csharp-grpc-proto-exhaustive}/proto/google/api/http.proto (100%) rename test-definitions/fern/apis/{grpc-proto => csharp-grpc-proto}/generators.yml (100%) rename test-definitions/fern/apis/{grpc-proto => csharp-grpc-proto}/overrides.yml (100%) rename test-definitions/fern/apis/{grpc-proto => csharp-grpc-proto}/proto/google/api/annotations.proto (100%) rename test-definitions/fern/apis/{grpc-proto => csharp-grpc-proto}/proto/google/api/http.proto (100%) rename test-definitions/fern/apis/{grpc-proto => csharp-grpc-proto}/proto/user/v1/user.proto (100%) diff --git a/generators/go-v2/dynamic-snippets/src/__test__/__snapshots__/ir.test.ts.snap b/generators/go-v2/dynamic-snippets/src/__test__/__snapshots__/ir.test.ts.snap index 16d71c758d6..899dc277978 100644 --- a/generators/go-v2/dynamic-snippets/src/__test__/__snapshots__/ir.test.ts.snap +++ b/generators/go-v2/dynamic-snippets/src/__test__/__snapshots__/ir.test.ts.snap @@ -404,88 +404,91 @@ func do() { " `; -exports[`test definitions > csharp-namespace-conflict 1`] = ` +exports[`test definitions > csharp-grpc-proto 1`] = ` "package example import ( context "context" + acme "github.com/acme/acme-go" client "github.com/acme/acme-go/client" ) func do() { client := client.NewClient() - client.Tasktest.Hello( + client.Userservice.Create( context.TODO(), + &acme.CreateRequest{}, ) } -" -`; -exports[`test definitions > custom-auth 1`] = ` -"package example +------------------------ + +package example import ( context "context" + acme "github.com/acme/acme-go" client "github.com/acme/acme-go/client" - option "github.com/acme/acme-go/option" ) func do() { - client := client.NewClient( - option.WithCustomAuthScheme( - "", - ), - ) - client.CustomAuth.GetWithCustomAuth( + client := client.NewClient() + client.Userservice.Create( context.TODO(), + &acme.CreateRequest{ + Username: acme.String( + "username", + ), + Email: acme.String( + "email", + ), + Age: acme.Int( + 1, + ), + Weight: acme.Float64( + 1.1, + ), + Metadata: &acme.Metadata{ + StringMetadataValueMap: map[string]*acme.MetadataValue{ + "metadata": &acme.MetadataValue{ + Double: 1.1, + }, + }, + }, + }, ) } +" +`; ------------------------- - -package example +exports[`test definitions > csharp-grpc-proto-exhaustive 1`] = ` +"package example import ( context "context" client "github.com/acme/acme-go/client" - option "github.com/acme/acme-go/option" ) func do() { - client := client.NewClient( - option.WithCustomAuthScheme( - "", - ), - ) - client.CustomAuth.PostWithCustomAuth( + client := client.NewClient() + client.Dataservice.Foo( context.TODO(), - map[string]interface{}{ - "key": "value", - }, ) } -" -`; -exports[`test definitions > enum 1`] = ` -"package example +------------------------ + +package example import ( context "context" - acme "github.com/acme/acme-go" client "github.com/acme/acme-go/client" ) func do() { client := client.NewClient() - client.InlinedRequest.Send( + client.Dataservice.Foo( context.TODO(), - &acme.SendEnumInlinedRequest{ - Operand: acme.OperandGreaterThan, - OperandOrColor: &acme.ColorOrOperand{ - Color: acme.ColorRed, - }, - }, ) } @@ -501,16 +504,16 @@ import ( func do() { client := client.NewClient() - client.InlinedRequest.Send( + client.Dataservice.Upload( context.TODO(), - &acme.SendEnumInlinedRequest{ - Operand: acme.OperandGreaterThan, - MaybeOperand: acme.OperandGreaterThan.Ptr(), - OperandOrColor: &acme.ColorOrOperand{ - Color: acme.ColorRed, - }, - MaybeOperandOrColor: &acme.ColorOrOperand{ - Color: acme.ColorRed, + &acme.UploadRequest{ + Columns: []*acme.Column{ + &acme.Column{ + ID: "id", + Values: []float64{ + 1.1, + }, + }, }, }, ) @@ -528,11 +531,62 @@ import ( func do() { client := client.NewClient() - client.PathParam.Send( + client.Dataservice.Upload( context.TODO(), - acme.OperandGreaterThan, - &acme.ColorOrOperand{ - Color: acme.ColorRed, + &acme.UploadRequest{ + Columns: []*acme.Column{ + &acme.Column{ + ID: "id", + Values: []float64{ + 1.1, + 1.1, + }, + Metadata: &acme.Metadata{ + StringMetadataValueMap: map[string]*acme.MetadataValue{ + "metadata": &acme.MetadataValue{ + Double: 1.1, + }, + }, + }, + IndexedData: &acme.IndexedData{ + Indices: []int{ + 1, + 1, + }, + Values: []float64{ + 1.1, + 1.1, + }, + }, + }, + &acme.Column{ + ID: "id", + Values: []float64{ + 1.1, + 1.1, + }, + Metadata: &acme.Metadata{ + StringMetadataValueMap: map[string]*acme.MetadataValue{ + "metadata": &acme.MetadataValue{ + Double: 1.1, + }, + }, + }, + IndexedData: &acme.IndexedData{ + Indices: []int{ + 1, + 1, + }, + Values: []float64{ + 1.1, + 1.1, + }, + }, + }, + }, + Namespace: acme.String( + "namespace", + ), }, ) } @@ -549,12 +603,9 @@ import ( func do() { client := client.NewClient() - client.PathParam.Send( + client.Dataservice.Delete( context.TODO(), - acme.OperandGreaterThan, - &acme.ColorOrOperand{ - Color: acme.ColorRed, - }, + &acme.DeleteRequest{}, ) } @@ -570,12 +621,25 @@ import ( func do() { client := client.NewClient() - client.QueryParam.Send( + client.Dataservice.Delete( context.TODO(), - &acme.SendEnumAsQueryParamRequest{ - Operand: acme.OperandGreaterThan, - OperandOrColor: &acme.ColorOrOperand{ - Color: acme.ColorRed, + &acme.DeleteRequest{ + IDs: []string{ + "ids", + "ids", + }, + DeleteAll: acme.Bool( + true, + ), + Namespace: acme.String( + "namespace", + ), + Filter: &acme.Metadata{ + StringMetadataValueMap: map[string]*acme.MetadataValue{ + "filter": &acme.MetadataValue{ + Double: 1.1, + }, + }, }, }, ) @@ -593,15 +657,9 @@ import ( func do() { client := client.NewClient() - client.QueryParam.Send( + client.Dataservice.Describe( context.TODO(), - &acme.SendEnumAsQueryParamRequest{ - Operand: acme.OperandGreaterThan, - MaybeOperand: acme.OperandGreaterThan.Ptr(), - OperandOrColor: &acme.ColorOrOperand{ - Color: acme.ColorRed, - }, - }, + &acme.DescribeRequest{}, ) } @@ -617,62 +675,62 @@ import ( func do() { client := client.NewClient() - client.QueryParam.SendList( + client.Dataservice.Describe( context.TODO(), - &acme.SendEnumListAsQueryParamRequest{ - Operand: []acme.Operand{ - acme.OperandGreaterThan, - }, - MaybeOperand: []*acme.Operand{ - acme.OperandGreaterThan.Ptr(), - }, - OperandOrColor: []*acme.ColorOrOperand{ - &acme.ColorOrOperand{ - Color: acme.ColorRed, + &acme.DescribeRequest{ + Filter: &acme.Metadata{ + StringMetadataValueMap: map[string]*acme.MetadataValue{ + "filter": &acme.MetadataValue{ + Double: 1.1, + }, }, }, - MaybeOperandOrColor: []*acme.ColorOrOperand{}, }, ) } -" -`; -exports[`test definitions > error-property 1`] = ` -"package example +------------------------ + +package example import ( context "context" + acme "github.com/acme/acme-go" client "github.com/acme/acme-go/client" ) func do() { client := client.NewClient() - client.PropertyBasedError.ThrowError( + client.Dataservice.Fetch( context.TODO(), + &acme.FetchRequest{}, ) } -" -`; -exports[`test definitions > examples 1`] = ` -"package example +------------------------ + +package example import ( context "context" + acme "github.com/acme/acme-go" client "github.com/acme/acme-go/client" - option "github.com/acme/acme-go/option" ) func do() { - client := client.NewClient( - option.WithToken( - "", - ), - ) - client.Echo( + client := client.NewClient() + client.Dataservice.Fetch( context.TODO(), - "Hello world!\\n\\nwith\\n\\tnewlines", + &acme.FetchRequest{ + IDs: []*string{ + acme.String( + "ids", + ), + }, + Namespace: acme.String( + "namespace", + ), + }, ) } @@ -682,19 +740,15 @@ package example import ( context "context" + acme "github.com/acme/acme-go" client "github.com/acme/acme-go/client" - option "github.com/acme/acme-go/option" ) func do() { - client := client.NewClient( - option.WithToken( - "", - ), - ) - client.Echo( + client := client.NewClient() + client.Dataservice.List( context.TODO(), - "string", + &acme.ListRequest{}, ) } @@ -704,19 +758,28 @@ package example import ( context "context" + acme "github.com/acme/acme-go" client "github.com/acme/acme-go/client" - option "github.com/acme/acme-go/option" ) func do() { - client := client.NewClient( - option.WithToken( - "", - ), - ) - client.Echo( + client := client.NewClient() + client.Dataservice.List( context.TODO(), - "primitive", + &acme.ListRequest{ + Prefix: acme.String( + "prefix", + ), + Limit: acme.Int( + 1, + ), + PaginationToken: acme.String( + "paginationToken", + ), + Namespace: acme.String( + "namespace", + ), + }, ) } @@ -726,19 +789,17 @@ package example import ( context "context" + acme "github.com/acme/acme-go" client "github.com/acme/acme-go/client" - option "github.com/acme/acme-go/option" ) func do() { - client := client.NewClient( - option.WithToken( - "", - ), - ) - client.File.Notification.Service.GetException( + client := client.NewClient() + client.Dataservice.Query( context.TODO(), - "notification-hsy129x", + &acme.QueryRequest{ + TopK: 1, + }, ) } @@ -748,19 +809,110 @@ package example import ( context "context" + acme "github.com/acme/acme-go" client "github.com/acme/acme-go/client" - option "github.com/acme/acme-go/option" ) func do() { - client := client.NewClient( - option.WithToken( - "", - ), - ) - client.File.Notification.Service.GetException( + client := client.NewClient() + client.Dataservice.Query( context.TODO(), - "notificationId", + &acme.QueryRequest{ + Namespace: acme.String( + "namespace", + ), + TopK: 1, + Filter: &acme.Metadata{ + StringMetadataValueMap: map[string]*acme.MetadataValue{ + "filter": &acme.MetadataValue{ + Double: 1.1, + }, + }, + }, + IncludeValues: acme.Bool( + true, + ), + IncludeMetadata: acme.Bool( + true, + ), + Queries: []*acme.QueryColumn{ + &acme.QueryColumn{ + Values: []float64{ + 1.1, + 1.1, + }, + TopK: acme.Int( + 1, + ), + Namespace: acme.String( + "namespace", + ), + Filter: &acme.Metadata{ + StringMetadataValueMap: map[string]*acme.MetadataValue{ + "filter": &acme.MetadataValue{ + Double: 1.1, + }, + }, + }, + IndexedData: &acme.IndexedData{ + Indices: []int{ + 1, + 1, + }, + Values: []float64{ + 1.1, + 1.1, + }, + }, + }, + &acme.QueryColumn{ + Values: []float64{ + 1.1, + 1.1, + }, + TopK: acme.Int( + 1, + ), + Namespace: acme.String( + "namespace", + ), + Filter: &acme.Metadata{ + StringMetadataValueMap: map[string]*acme.MetadataValue{ + "filter": &acme.MetadataValue{ + Double: 1.1, + }, + }, + }, + IndexedData: &acme.IndexedData{ + Indices: []int{ + 1, + 1, + }, + Values: []float64{ + 1.1, + 1.1, + }, + }, + }, + }, + Column: []float64{ + 1.1, + 1.1, + }, + ID: acme.String( + "id", + ), + IndexedData: &acme.IndexedData{ + Indices: []int{ + 1, + 1, + }, + Values: []float64{ + 1.1, + 1.1, + }, + }, + }, ) } @@ -770,22 +922,16 @@ package example import ( context "context" + acme "github.com/acme/acme-go" client "github.com/acme/acme-go/client" - file "github.com/acme/acme-go/file" - option "github.com/acme/acme-go/option" ) func do() { - client := client.NewClient( - option.WithToken( - "", - ), - ) - client.File.Service.GetFile( + client := client.NewClient() + client.Dataservice.Update( context.TODO(), - "file.txt", - &file.GetFileRequest{ - XFileAPIVersion: "0.0.2", + &acme.UpdateRequest{ + ID: "id", }, ) } @@ -796,51 +942,65 @@ package example import ( context "context" + acme "github.com/acme/acme-go" client "github.com/acme/acme-go/client" - file "github.com/acme/acme-go/file" - option "github.com/acme/acme-go/option" ) func do() { - client := client.NewClient( - option.WithToken( - "", - ), - ) - client.File.Service.GetFile( + client := client.NewClient() + client.Dataservice.Update( context.TODO(), - "filename", - &file.GetFileRequest{ - XFileAPIVersion: "X-File-API-Version", + &acme.UpdateRequest{ + ID: "id", + Values: []float64{ + 1.1, + 1.1, + }, + SetMetadata: &acme.Metadata{ + StringMetadataValueMap: map[string]*acme.MetadataValue{ + "setMetadata": &acme.MetadataValue{ + Double: 1.1, + }, + }, + }, + Namespace: acme.String( + "namespace", + ), + IndexedData: &acme.IndexedData{ + Indices: []int{ + 1, + 1, + }, + Values: []float64{ + 1.1, + 1.1, + }, + }, }, ) } +" +`; ------------------------- - -package example +exports[`test definitions > csharp-namespace-conflict 1`] = ` +"package example import ( context "context" client "github.com/acme/acme-go/client" - option "github.com/acme/acme-go/option" ) func do() { - client := client.NewClient( - option.WithToken( - "", - ), - ) - client.Health.Service.Check( + client := client.NewClient() + client.Tasktest.Hello( context.TODO(), - "id-2sdx82h", ) } +" +`; ------------------------- - -package example +exports[`test definitions > custom-auth 1`] = ` +"package example import ( context "context" @@ -850,13 +1010,12 @@ import ( func do() { client := client.NewClient( - option.WithToken( - "", + option.WithCustomAuthScheme( + "", ), ) - client.Health.Service.Check( + client.CustomAuth.GetWithCustomAuth( context.TODO(), - "id-3tey93i", ) } @@ -872,34 +1031,66 @@ import ( func do() { client := client.NewClient( - option.WithToken( - "", + option.WithCustomAuthScheme( + "", ), ) - client.Health.Service.Check( + client.CustomAuth.PostWithCustomAuth( context.TODO(), - "id", + map[string]interface{}{ + "key": "value", + }, ) } +" +`; ------------------------- +exports[`test definitions > enum 1`] = ` +"package example + +import ( + context "context" + acme "github.com/acme/acme-go" + client "github.com/acme/acme-go/client" +) + +func do() { + client := client.NewClient() + client.InlinedRequest.Send( + context.TODO(), + &acme.SendEnumInlinedRequest{ + Operand: acme.OperandGreaterThan, + OperandOrColor: &acme.ColorOrOperand{ + Color: acme.ColorRed, + }, + }, + ) +} + +------------------------ package example import ( context "context" + acme "github.com/acme/acme-go" client "github.com/acme/acme-go/client" - option "github.com/acme/acme-go/option" ) func do() { - client := client.NewClient( - option.WithToken( - "", - ), - ) - client.Health.Service.Ping( + client := client.NewClient() + client.InlinedRequest.Send( context.TODO(), + &acme.SendEnumInlinedRequest{ + Operand: acme.OperandGreaterThan, + MaybeOperand: acme.OperandGreaterThan.Ptr(), + OperandOrColor: &acme.ColorOrOperand{ + Color: acme.ColorRed, + }, + MaybeOperandOrColor: &acme.ColorOrOperand{ + Color: acme.ColorRed, + }, + }, ) } @@ -909,18 +1100,39 @@ package example import ( context "context" + acme "github.com/acme/acme-go" client "github.com/acme/acme-go/client" - option "github.com/acme/acme-go/option" ) func do() { - client := client.NewClient( - option.WithToken( - "", - ), + client := client.NewClient() + client.PathParam.Send( + context.TODO(), + acme.OperandGreaterThan, + &acme.ColorOrOperand{ + Color: acme.ColorRed, + }, ) - client.Health.Service.Ping( +} + +------------------------ + +package example + +import ( + context "context" + acme "github.com/acme/acme-go" + client "github.com/acme/acme-go/client" +) + +func do() { + client := client.NewClient() + client.PathParam.Send( context.TODO(), + acme.OperandGreaterThan, + &acme.ColorOrOperand{ + Color: acme.ColorRed, + }, ) } @@ -930,19 +1142,44 @@ package example import ( context "context" + acme "github.com/acme/acme-go" client "github.com/acme/acme-go/client" - option "github.com/acme/acme-go/option" ) func do() { - client := client.NewClient( - option.WithToken( - "", - ), + client := client.NewClient() + client.QueryParam.Send( + context.TODO(), + &acme.SendEnumAsQueryParamRequest{ + Operand: acme.OperandGreaterThan, + OperandOrColor: &acme.ColorOrOperand{ + Color: acme.ColorRed, + }, + }, ) - client.Service.GetMovie( +} + +------------------------ + +package example + +import ( + context "context" + acme "github.com/acme/acme-go" + client "github.com/acme/acme-go/client" +) + +func do() { + client := client.NewClient() + client.QueryParam.Send( context.TODO(), - "movie-c06a4ad7", + &acme.SendEnumAsQueryParamRequest{ + Operand: acme.OperandGreaterThan, + MaybeOperand: acme.OperandGreaterThan.Ptr(), + OperandOrColor: &acme.ColorOrOperand{ + Color: acme.ColorRed, + }, + }, ) } @@ -950,6 +1187,55 @@ func do() { package example +import ( + context "context" + acme "github.com/acme/acme-go" + client "github.com/acme/acme-go/client" +) + +func do() { + client := client.NewClient() + client.QueryParam.SendList( + context.TODO(), + &acme.SendEnumListAsQueryParamRequest{ + Operand: []acme.Operand{ + acme.OperandGreaterThan, + }, + MaybeOperand: []*acme.Operand{ + acme.OperandGreaterThan.Ptr(), + }, + OperandOrColor: []*acme.ColorOrOperand{ + &acme.ColorOrOperand{ + Color: acme.ColorRed, + }, + }, + MaybeOperandOrColor: []*acme.ColorOrOperand{}, + }, + ) +} +" +`; + +exports[`test definitions > error-property 1`] = ` +"package example + +import ( + context "context" + client "github.com/acme/acme-go/client" +) + +func do() { + client := client.NewClient() + client.PropertyBasedError.ThrowError( + context.TODO(), + ) +} +" +`; + +exports[`test definitions > examples 1`] = ` +"package example + import ( context "context" client "github.com/acme/acme-go/client" @@ -962,9 +1248,9 @@ func do() { "", ), ) - client.Service.GetMovie( + client.Echo( context.TODO(), - "movieId", + "Hello world!\\n\\nwith\\n\\tnewlines", ) } @@ -974,7 +1260,6 @@ package example import ( context "context" - acme "github.com/acme/acme-go" client "github.com/acme/acme-go/client" option "github.com/acme/acme-go/option" ) @@ -985,31 +1270,9 @@ func do() { "", ), ) - client.Service.CreateMovie( + client.Echo( context.TODO(), - &acme.Movie{ - ID: "movie-c06a4ad7", - Prequel: acme.String( - "movie-cv9b914f", - ), - Title: "The Boy and the Heron", - From: "Hayao Miyazaki", - Rating: 8, - Tag: "tag-wf9as23d", - Metadata: map[string]interface{}{ - "actors": []interface{}{ - "Christian Bale", - "Florence Pugh", - "Willem Dafoe", - }, - "releaseDate": "2023-12-08", - "ratings": map[string]interface{}{ - "rottenTomatoes": 97, - "imdb": 7.6, - }, - }, - Revenue: 1000000, - }, + "string", ) } @@ -1019,7 +1282,6 @@ package example import ( context "context" - acme "github.com/acme/acme-go" client "github.com/acme/acme-go/client" option "github.com/acme/acme-go/option" ) @@ -1030,27 +1292,9 @@ func do() { "", ), ) - client.Service.CreateMovie( + client.Echo( context.TODO(), - &acme.Movie{ - ID: "id", - Prequel: acme.String( - "prequel", - ), - Title: "title", - From: "from", - Rating: 1.1, - Tag: "tag", - Book: acme.String( - "book", - ), - Metadata: map[string]interface{}{ - "metadata": map[string]interface{}{ - "key": "value", - }, - }, - Revenue: 1000000, - }, + "primitive", ) } @@ -1060,7 +1304,6 @@ package example import ( context "context" - acme "github.com/acme/acme-go" client "github.com/acme/acme-go/client" option "github.com/acme/acme-go/option" ) @@ -1071,19 +1314,9 @@ func do() { "", ), ) - client.Service.GetMetadata( + client.File.Notification.Service.GetException( context.TODO(), - &acme.GetMetadataRequest{ - Shallow: acme.Bool( - false, - ), - Tag: []*string{ - acme.String( - "development", - ), - }, - XAPIVersion: "0.0.1", - }, + "notification-hsy129x", ) } @@ -1093,7 +1326,6 @@ package example import ( context "context" - acme "github.com/acme/acme-go" client "github.com/acme/acme-go/client" option "github.com/acme/acme-go/option" ) @@ -1104,19 +1336,9 @@ func do() { "", ), ) - client.Service.GetMetadata( + client.File.Notification.Service.GetException( context.TODO(), - &acme.GetMetadataRequest{ - Shallow: acme.Bool( - true, - ), - Tag: []*string{ - acme.String( - "tag", - ), - }, - XAPIVersion: "X-API-Version", - }, + "notificationId", ) } @@ -1126,11 +1348,9 @@ package example import ( context "context" - acme "github.com/acme/acme-go" client "github.com/acme/acme-go/client" - commons "github.com/acme/acme-go/commons" + file "github.com/acme/acme-go/file" option "github.com/acme/acme-go/option" - uuid "github.com/google/uuid" ) func do() { @@ -1139,230 +1359,23 @@ func do() { "", ), ) - client.Service.CreateBigEntity( + client.File.Service.GetFile( context.TODO(), - &acme.BigEntity{ - CastMember: &acme.CastMember{ - Actor: &acme.Actor{ - Name: "name", - ID: "id", - }, - }, - ExtendedMovie: &acme.ExtendedMovie{ - Cast: []string{ - "cast", - "cast", - }, - }, - Entity: &acme.Entity{ - Type: &acme.Type{ - BasicType: acme.BasicTypePrimitive, - }, - Name: "name", - }, - Metadata: &acme.Metadata{}, - CommonMetadata: &commons.Metadata{ - ID: "id", - Data: map[string]string{ - "data": "data", - }, - JSONString: acme.String( - "jsonString", - ), - }, - EventInfo: &commons.EventInfo{ - Metadata: &commons.Metadata{ - ID: "id", - Data: map[string]string{ - "data": "data", - }, - JSONString: acme.String( - "jsonString", - ), - }, - }, - Data: &commons.Data{}, - Migration: &acme.Migration{ - Name: "name", - Status: acme.MigrationStatusRunning, - }, - Exception: &acme.Exception{ - Generic: &acme.ExceptionInfo{ - ExceptionType: "exceptionType", - ExceptionMessage: "exceptionMessage", - ExceptionStacktrace: "exceptionStacktrace", - }, - }, - Test: &acme.Test{}, - Node: &acme.Node{ - Name: "name", - Nodes: []*acme.Node{ - &acme.Node{ - Name: "name", - Nodes: []*acme.Node{ - &acme.Node{ - Name: "name", - Nodes: []*acme.Node{}, - Trees: []*acme.Tree{}, - }, - &acme.Node{ - Name: "name", - Nodes: []*acme.Node{}, - Trees: []*acme.Tree{}, - }, - }, - Trees: []*acme.Tree{ - &acme.Tree{ - Nodes: []*acme.Node{}, - }, - &acme.Tree{ - Nodes: []*acme.Node{}, - }, - }, - }, - &acme.Node{ - Name: "name", - Nodes: []*acme.Node{ - &acme.Node{ - Name: "name", - Nodes: []*acme.Node{}, - Trees: []*acme.Tree{}, - }, - &acme.Node{ - Name: "name", - Nodes: []*acme.Node{}, - Trees: []*acme.Tree{}, - }, - }, - Trees: []*acme.Tree{ - &acme.Tree{ - Nodes: []*acme.Node{}, - }, - &acme.Tree{ - Nodes: []*acme.Node{}, - }, - }, - }, - }, - Trees: []*acme.Tree{ - &acme.Tree{ - Nodes: []*acme.Node{ - &acme.Node{ - Name: "name", - Nodes: []*acme.Node{}, - Trees: []*acme.Tree{}, - }, - &acme.Node{ - Name: "name", - Nodes: []*acme.Node{}, - Trees: []*acme.Tree{}, - }, - }, - }, - &acme.Tree{ - Nodes: []*acme.Node{ - &acme.Node{ - Name: "name", - Nodes: []*acme.Node{}, - Trees: []*acme.Tree{}, - }, - &acme.Node{ - Name: "name", - Nodes: []*acme.Node{}, - Trees: []*acme.Tree{}, - }, - }, - }, - }, - }, - Directory: &acme.Directory{ - Name: "name", - Files: []*acme.File{ - &acme.File{ - Name: "name", - Contents: "contents", - }, - &acme.File{ - Name: "name", - Contents: "contents", - }, - }, - Directories: []*acme.Directory{ - &acme.Directory{ - Name: "name", - Files: []*acme.File{ - &acme.File{ - Name: "name", - Contents: "contents", - }, - &acme.File{ - Name: "name", - Contents: "contents", - }, - }, - Directories: []*acme.Directory{ - &acme.Directory{ - Name: "name", - Files: []*acme.File{}, - Directories: []*acme.Directory{}, - }, - &acme.Directory{ - Name: "name", - Files: []*acme.File{}, - Directories: []*acme.Directory{}, - }, - }, - }, - &acme.Directory{ - Name: "name", - Files: []*acme.File{ - &acme.File{ - Name: "name", - Contents: "contents", - }, - &acme.File{ - Name: "name", - Contents: "contents", - }, - }, - Directories: []*acme.Directory{ - &acme.Directory{ - Name: "name", - Files: []*acme.File{}, - Directories: []*acme.Directory{}, - }, - &acme.Directory{ - Name: "name", - Files: []*acme.File{}, - Directories: []*acme.Directory{}, - }, - }, - }, - }, - }, - Moment: &acme.Moment{ - ID: uuid.MustParse( - "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", - ), - Date: acme.MustParseDateTime( - "2023-01-15", - ), - Datetime: acme.MustParseDateTime( - "2024-01-15T09:30:00Z", - ), - }, + "file.txt", + &file.GetFileRequest{ + XFileAPIVersion: "0.0.2", }, ) } -" -`; -exports[`test definitions > exhaustive 1`] = ` -"package example +------------------------ + +package example import ( context "context" client "github.com/acme/acme-go/client" + file "github.com/acme/acme-go/file" option "github.com/acme/acme-go/option" ) @@ -1372,11 +1385,11 @@ func do() { "", ), ) - client.Endpoints.Container.GetAndReturnListOfPrimitives( + client.File.Service.GetFile( context.TODO(), - []string{ - "string", - "string", + "filename", + &file.GetFileRequest{ + XFileAPIVersion: "X-File-API-Version", }, ) } @@ -1389,7 +1402,6 @@ import ( context "context" client "github.com/acme/acme-go/client" option "github.com/acme/acme-go/option" - types "github.com/acme/acme-go/types" ) func do() { @@ -1398,16 +1410,9 @@ func do() { "", ), ) - client.Endpoints.Container.GetAndReturnListOfObjects( + client.Health.Service.Check( context.TODO(), - []*types.ObjectWithRequiredField{ - &types.ObjectWithRequiredField{ - String: "string", - }, - &types.ObjectWithRequiredField{ - String: "string", - }, - }, + "id-2sdx82h", ) } @@ -1427,11 +1432,9 @@ func do() { "", ), ) - client.Endpoints.Container.GetAndReturnSetOfPrimitives( + client.Health.Service.Check( context.TODO(), - []string{ - "string", - }, + "id-3tey93i", ) } @@ -1443,7 +1446,6 @@ import ( context "context" client "github.com/acme/acme-go/client" option "github.com/acme/acme-go/option" - types "github.com/acme/acme-go/types" ) func do() { @@ -1452,13 +1454,9 @@ func do() { "", ), ) - client.Endpoints.Container.GetAndReturnSetOfObjects( + client.Health.Service.Check( context.TODO(), - []*types.ObjectWithRequiredField{ - &types.ObjectWithRequiredField{ - String: "string", - }, - }, + "id", ) } @@ -1478,11 +1476,8 @@ func do() { "", ), ) - client.Endpoints.Container.GetAndReturnMapPrimToPrim( + client.Health.Service.Ping( context.TODO(), - map[string]string{ - "string": "string", - }, ) } @@ -1494,7 +1489,6 @@ import ( context "context" client "github.com/acme/acme-go/client" option "github.com/acme/acme-go/option" - types "github.com/acme/acme-go/types" ) func do() { @@ -1503,13 +1497,8 @@ func do() { "", ), ) - client.Endpoints.Container.GetAndReturnMapOfPrimToObject( + client.Health.Service.Ping( context.TODO(), - map[string]*types.ObjectWithRequiredField{ - "string": &types.ObjectWithRequiredField{ - String: "string", - }, - }, ) } @@ -1521,7 +1510,6 @@ import ( context "context" client "github.com/acme/acme-go/client" option "github.com/acme/acme-go/option" - types "github.com/acme/acme-go/types" ) func do() { @@ -1530,11 +1518,9 @@ func do() { "", ), ) - client.Endpoints.Container.GetAndReturnOptional( + client.Service.GetMovie( context.TODO(), - &types.ObjectWithRequiredField{ - String: "string", - }, + "movie-c06a4ad7", ) } @@ -1546,7 +1532,6 @@ import ( context "context" client "github.com/acme/acme-go/client" option "github.com/acme/acme-go/option" - types "github.com/acme/acme-go/types" ) func do() { @@ -1555,9 +1540,9 @@ func do() { "", ), ) - client.Endpoints.Enum.GetAndReturnEnum( + client.Service.GetMovie( context.TODO(), - types.WeatherReportSunny, + "movieId", ) } @@ -1567,6 +1552,7 @@ package example import ( context "context" + acme "github.com/acme/acme-go" client "github.com/acme/acme-go/client" option "github.com/acme/acme-go/option" ) @@ -1577,9 +1563,31 @@ func do() { "", ), ) - client.Endpoints.HTTPMethods.TestGet( + client.Service.CreateMovie( context.TODO(), - "id", + &acme.Movie{ + ID: "movie-c06a4ad7", + Prequel: acme.String( + "movie-cv9b914f", + ), + Title: "The Boy and the Heron", + From: "Hayao Miyazaki", + Rating: 8, + Tag: "tag-wf9as23d", + Metadata: map[string]interface{}{ + "actors": []interface{}{ + "Christian Bale", + "Florence Pugh", + "Willem Dafoe", + }, + "releaseDate": "2023-12-08", + "ratings": map[string]interface{}{ + "rottenTomatoes": 97, + "imdb": 7.6, + }, + }, + Revenue: 1000000, + }, ) } @@ -1589,9 +1597,9 @@ package example import ( context "context" + acme "github.com/acme/acme-go" client "github.com/acme/acme-go/client" option "github.com/acme/acme-go/option" - types "github.com/acme/acme-go/types" ) func do() { @@ -1600,10 +1608,26 @@ func do() { "", ), ) - client.Endpoints.HTTPMethods.TestPost( + client.Service.CreateMovie( context.TODO(), - &types.ObjectWithRequiredField{ - String: "string", + &acme.Movie{ + ID: "id", + Prequel: acme.String( + "prequel", + ), + Title: "title", + From: "from", + Rating: 1.1, + Tag: "tag", + Book: acme.String( + "book", + ), + Metadata: map[string]interface{}{ + "metadata": map[string]interface{}{ + "key": "value", + }, + }, + Revenue: 1000000, }, ) } @@ -1614,9 +1638,9 @@ package example import ( context "context" + acme "github.com/acme/acme-go" client "github.com/acme/acme-go/client" option "github.com/acme/acme-go/option" - types "github.com/acme/acme-go/types" ) func do() { @@ -1625,11 +1649,18 @@ func do() { "", ), ) - client.Endpoints.HTTPMethods.TestPut( + client.Service.GetMetadata( context.TODO(), - "id", - &types.ObjectWithRequiredField{ - String: "string", + &acme.GetMetadataRequest{ + Shallow: acme.Bool( + false, + ), + Tag: []*string{ + acme.String( + "development", + ), + }, + XAPIVersion: "0.0.1", }, ) } @@ -1643,8 +1674,6 @@ import ( acme "github.com/acme/acme-go" client "github.com/acme/acme-go/client" option "github.com/acme/acme-go/option" - types "github.com/acme/acme-go/types" - uuid "github.com/google/uuid" ) func do() { @@ -1653,54 +1682,18 @@ func do() { "", ), ) - client.Endpoints.HTTPMethods.TestPatch( + client.Service.GetMetadata( context.TODO(), - "id", - &types.ObjectWithOptionalField{ - String: acme.String( - "string", - ), - Integer: acme.Int( - 1, - ), - Long: acme.Int64( - 1000000, - ), - Double: acme.Float64( - 1.1, - ), - Bool: acme.Bool( + &acme.GetMetadataRequest{ + Shallow: acme.Bool( true, ), - Datetime: acme.Time( - acme.MustParseDateTime( - "2024-01-15T09:30:00Z", - ), - ), - Date: acme.Time( - acme.MustParseDateTime( - "2023-01-15", - ), - ), - UUID: acme.UUID( - uuid.MustParse( - "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", + Tag: []*string{ + acme.String( + "tag", ), - ), - Base64: []byte("SGVsbG8gd29ybGQh"), - List: []string{ - "list", - "list", - }, - Set: []string{ - "set", - }, - Map: map[int]string{ - 1: "map", }, - Bigint: acme.String( - "1000000", - ), + XAPIVersion: "X-API-Version", }, ) } @@ -1709,34 +1702,12 @@ func do() { package example -import ( - context "context" - client "github.com/acme/acme-go/client" - option "github.com/acme/acme-go/option" -) - -func do() { - client := client.NewClient( - option.WithToken( - "", - ), - ) - client.Endpoints.HTTPMethods.TestDelete( - context.TODO(), - "id", - ) -} - ------------------------- - -package example - import ( context "context" acme "github.com/acme/acme-go" client "github.com/acme/acme-go/client" + commons "github.com/acme/acme-go/commons" option "github.com/acme/acme-go/option" - types "github.com/acme/acme-go/types" uuid "github.com/google/uuid" ) @@ -1746,380 +1717,244 @@ func do() { "", ), ) - client.Endpoints.Object.GetAndReturnWithOptionalField( + client.Service.CreateBigEntity( context.TODO(), - &types.ObjectWithOptionalField{ - String: acme.String( - "string", - ), - Integer: acme.Int( - 1, - ), - Long: acme.Int64( - 1000000, - ), - Double: acme.Float64( - 1.1, - ), - Bool: acme.Bool( - true, - ), - Datetime: acme.Time( - acme.MustParseDateTime( - "2024-01-15T09:30:00Z", - ), - ), - Date: acme.Time( - acme.MustParseDateTime( - "2023-01-15", - ), - ), - UUID: acme.UUID( - uuid.MustParse( - "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", + &acme.BigEntity{ + CastMember: &acme.CastMember{ + Actor: &acme.Actor{ + Name: "name", + ID: "id", + }, + }, + ExtendedMovie: &acme.ExtendedMovie{ + Cast: []string{ + "cast", + "cast", + }, + }, + Entity: &acme.Entity{ + Type: &acme.Type{ + BasicType: acme.BasicTypePrimitive, + }, + Name: "name", + }, + Metadata: &acme.Metadata{}, + CommonMetadata: &commons.Metadata{ + ID: "id", + Data: map[string]string{ + "data": "data", + }, + JSONString: acme.String( + "jsonString", ), - ), - Base64: []byte("SGVsbG8gd29ybGQh"), - List: []string{ - "list", - "list", }, - Set: []string{ - "set", + EventInfo: &commons.EventInfo{ + Metadata: &commons.Metadata{ + ID: "id", + Data: map[string]string{ + "data": "data", + }, + JSONString: acme.String( + "jsonString", + ), + }, }, - Map: map[int]string{ - 1: "map", + Data: &commons.Data{}, + Migration: &acme.Migration{ + Name: "name", + Status: acme.MigrationStatusRunning, }, - Bigint: acme.String( - "1000000", - ), - }, - ) -} - ------------------------- - -package example - -import ( - context "context" - client "github.com/acme/acme-go/client" - option "github.com/acme/acme-go/option" - types "github.com/acme/acme-go/types" -) - -func do() { - client := client.NewClient( - option.WithToken( - "", - ), - ) - client.Endpoints.Object.GetAndReturnWithRequiredField( - context.TODO(), - &types.ObjectWithRequiredField{ - String: "string", - }, - ) -} - ------------------------- - -package example - -import ( - context "context" - client "github.com/acme/acme-go/client" - option "github.com/acme/acme-go/option" - types "github.com/acme/acme-go/types" -) - -func do() { - client := client.NewClient( - option.WithToken( - "", - ), - ) - client.Endpoints.Object.GetAndReturnWithMapOfMap( - context.TODO(), - &types.ObjectWithMapOfMap{ - Map: map[string]map[string]string{ - "map": map[string]string{ - "map": "map", - }, - }, - }, - ) -} - ------------------------- - -package example - -import ( - context "context" - acme "github.com/acme/acme-go" - client "github.com/acme/acme-go/client" - option "github.com/acme/acme-go/option" - types "github.com/acme/acme-go/types" - uuid "github.com/google/uuid" -) - -func do() { - client := client.NewClient( - option.WithToken( - "", - ), - ) - client.Endpoints.Object.GetAndReturnNestedWithOptionalField( - context.TODO(), - &types.NestedObjectWithOptionalField{ - String: acme.String( - "string", - ), - NestedObject: &types.ObjectWithOptionalField{ - String: acme.String( - "string", - ), - Integer: acme.Int( - 1, - ), - Long: acme.Int64( - 1000000, - ), - Double: acme.Float64( - 1.1, - ), - Bool: acme.Bool( - true, - ), - Datetime: acme.Time( - acme.MustParseDateTime( - "2024-01-15T09:30:00Z", - ), - ), - Date: acme.Time( - acme.MustParseDateTime( - "2023-01-15", - ), - ), - UUID: acme.UUID( - uuid.MustParse( - "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", - ), - ), - Base64: []byte("SGVsbG8gd29ybGQh"), - List: []string{ - "list", - "list", - }, - Set: []string{ - "set", - }, - Map: map[int]string{ - 1: "map", - }, - Bigint: acme.String( - "1000000", - ), - }, - }, - ) -} - ------------------------- - -package example - -import ( - context "context" - acme "github.com/acme/acme-go" - client "github.com/acme/acme-go/client" - option "github.com/acme/acme-go/option" - types "github.com/acme/acme-go/types" - uuid "github.com/google/uuid" -) - -func do() { - client := client.NewClient( - option.WithToken( - "", - ), - ) - client.Endpoints.Object.GetAndReturnNestedWithRequiredField( - context.TODO(), - "string", - &types.NestedObjectWithRequiredField{ - String: "string", - NestedObject: &types.ObjectWithOptionalField{ - String: acme.String( - "string", - ), - Integer: acme.Int( - 1, - ), - Long: acme.Int64( - 1000000, - ), - Double: acme.Float64( - 1.1, - ), - Bool: acme.Bool( - true, - ), - Datetime: acme.Time( - acme.MustParseDateTime( - "2024-01-15T09:30:00Z", - ), - ), - Date: acme.Time( - acme.MustParseDateTime( - "2023-01-15", - ), - ), - UUID: acme.UUID( - uuid.MustParse( - "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", - ), - ), - Base64: []byte("SGVsbG8gd29ybGQh"), - List: []string{ - "list", - "list", - }, - Set: []string{ - "set", - }, - Map: map[int]string{ - 1: "map", + Exception: &acme.Exception{ + Generic: &acme.ExceptionInfo{ + ExceptionType: "exceptionType", + ExceptionMessage: "exceptionMessage", + ExceptionStacktrace: "exceptionStacktrace", }, - Bigint: acme.String( - "1000000", - ), }, - }, - ) -} - ------------------------- - -package example - -import ( - context "context" - acme "github.com/acme/acme-go" - client "github.com/acme/acme-go/client" - option "github.com/acme/acme-go/option" - types "github.com/acme/acme-go/types" - uuid "github.com/google/uuid" -) - -func do() { - client := client.NewClient( - option.WithToken( - "", - ), - ) - client.Endpoints.Object.GetAndReturnNestedWithRequiredFieldAsList( - context.TODO(), - []*types.NestedObjectWithRequiredField{ - &types.NestedObjectWithRequiredField{ - String: "string", - NestedObject: &types.ObjectWithOptionalField{ - String: acme.String( - "string", - ), - Integer: acme.Int( - 1, - ), - Long: acme.Int64( - 1000000, - ), - Double: acme.Float64( - 1.1, - ), - Bool: acme.Bool( - true, - ), - Datetime: acme.Time( - acme.MustParseDateTime( - "2024-01-15T09:30:00Z", - ), - ), - Date: acme.Time( - acme.MustParseDateTime( - "2023-01-15", - ), - ), - UUID: acme.UUID( - uuid.MustParse( - "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", - ), - ), - Base64: []byte("SGVsbG8gd29ybGQh"), - List: []string{ - "list", - "list", + Test: &acme.Test{}, + Node: &acme.Node{ + Name: "name", + Nodes: []*acme.Node{ + &acme.Node{ + Name: "name", + Nodes: []*acme.Node{ + &acme.Node{ + Name: "name", + Nodes: []*acme.Node{}, + Trees: []*acme.Tree{}, + }, + &acme.Node{ + Name: "name", + Nodes: []*acme.Node{}, + Trees: []*acme.Tree{}, + }, + }, + Trees: []*acme.Tree{ + &acme.Tree{ + Nodes: []*acme.Node{}, + }, + &acme.Tree{ + Nodes: []*acme.Node{}, + }, + }, }, - Set: []string{ - "set", + &acme.Node{ + Name: "name", + Nodes: []*acme.Node{ + &acme.Node{ + Name: "name", + Nodes: []*acme.Node{}, + Trees: []*acme.Tree{}, + }, + &acme.Node{ + Name: "name", + Nodes: []*acme.Node{}, + Trees: []*acme.Tree{}, + }, + }, + Trees: []*acme.Tree{ + &acme.Tree{ + Nodes: []*acme.Node{}, + }, + &acme.Tree{ + Nodes: []*acme.Node{}, + }, + }, }, - Map: map[int]string{ - 1: "map", + }, + Trees: []*acme.Tree{ + &acme.Tree{ + Nodes: []*acme.Node{ + &acme.Node{ + Name: "name", + Nodes: []*acme.Node{}, + Trees: []*acme.Tree{}, + }, + &acme.Node{ + Name: "name", + Nodes: []*acme.Node{}, + Trees: []*acme.Tree{}, + }, + }, + }, + &acme.Tree{ + Nodes: []*acme.Node{ + &acme.Node{ + Name: "name", + Nodes: []*acme.Node{}, + Trees: []*acme.Tree{}, + }, + &acme.Node{ + Name: "name", + Nodes: []*acme.Node{}, + Trees: []*acme.Tree{}, + }, + }, }, - Bigint: acme.String( - "1000000", - ), }, }, - &types.NestedObjectWithRequiredField{ - String: "string", - NestedObject: &types.ObjectWithOptionalField{ - String: acme.String( - "string", - ), - Integer: acme.Int( - 1, - ), - Long: acme.Int64( - 1000000, - ), - Double: acme.Float64( - 1.1, - ), - Bool: acme.Bool( - true, - ), - Datetime: acme.Time( - acme.MustParseDateTime( - "2024-01-15T09:30:00Z", - ), - ), - Date: acme.Time( - acme.MustParseDateTime( - "2023-01-15", - ), - ), - UUID: acme.UUID( - uuid.MustParse( - "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", - ), - ), - Base64: []byte("SGVsbG8gd29ybGQh"), - List: []string{ - "list", - "list", + Directory: &acme.Directory{ + Name: "name", + Files: []*acme.File{ + &acme.File{ + Name: "name", + Contents: "contents", }, - Set: []string{ - "set", + &acme.File{ + Name: "name", + Contents: "contents", }, - Map: map[int]string{ - 1: "map", + }, + Directories: []*acme.Directory{ + &acme.Directory{ + Name: "name", + Files: []*acme.File{ + &acme.File{ + Name: "name", + Contents: "contents", + }, + &acme.File{ + Name: "name", + Contents: "contents", + }, + }, + Directories: []*acme.Directory{ + &acme.Directory{ + Name: "name", + Files: []*acme.File{}, + Directories: []*acme.Directory{}, + }, + &acme.Directory{ + Name: "name", + Files: []*acme.File{}, + Directories: []*acme.Directory{}, + }, + }, + }, + &acme.Directory{ + Name: "name", + Files: []*acme.File{ + &acme.File{ + Name: "name", + Contents: "contents", + }, + &acme.File{ + Name: "name", + Contents: "contents", + }, + }, + Directories: []*acme.Directory{ + &acme.Directory{ + Name: "name", + Files: []*acme.File{}, + Directories: []*acme.Directory{}, + }, + &acme.Directory{ + Name: "name", + Files: []*acme.File{}, + Directories: []*acme.Directory{}, + }, + }, }, - Bigint: acme.String( - "1000000", - ), }, }, + Moment: &acme.Moment{ + ID: uuid.MustParse( + "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", + ), + Date: acme.MustParseDateTime( + "2023-01-15", + ), + Datetime: acme.MustParseDateTime( + "2024-01-15T09:30:00Z", + ), + }, + }, + ) +} +" +`; + +exports[`test definitions > exhaustive 1`] = ` +"package example + +import ( + context "context" + client "github.com/acme/acme-go/client" + option "github.com/acme/acme-go/option" +) + +func do() { + client := client.NewClient( + option.WithToken( + "", + ), + ) + client.Endpoints.Container.GetAndReturnListOfPrimitives( + context.TODO(), + []string{ + "string", + "string", }, ) } @@ -2132,6 +1967,7 @@ import ( context "context" client "github.com/acme/acme-go/client" option "github.com/acme/acme-go/option" + types "github.com/acme/acme-go/types" ) func do() { @@ -2140,9 +1976,16 @@ func do() { "", ), ) - client.Endpoints.Params.GetWithPath( + client.Endpoints.Container.GetAndReturnListOfObjects( context.TODO(), - "param", + []*types.ObjectWithRequiredField{ + &types.ObjectWithRequiredField{ + String: "string", + }, + &types.ObjectWithRequiredField{ + String: "string", + }, + }, ) } @@ -2153,7 +1996,6 @@ package example import ( context "context" client "github.com/acme/acme-go/client" - endpoints "github.com/acme/acme-go/endpoints" option "github.com/acme/acme-go/option" ) @@ -2163,11 +2005,10 @@ func do() { "", ), ) - client.Endpoints.Params.GetWithQuery( + client.Endpoints.Container.GetAndReturnSetOfPrimitives( context.TODO(), - &endpoints.GetWithQuery{ - Query: "query", - Number: 1, + []string{ + "string", }, ) } @@ -2179,8 +2020,8 @@ package example import ( context "context" client "github.com/acme/acme-go/client" - endpoints "github.com/acme/acme-go/endpoints" option "github.com/acme/acme-go/option" + types "github.com/acme/acme-go/types" ) func do() { @@ -2189,14 +2030,11 @@ func do() { "", ), ) - client.Endpoints.Params.GetWithAllowMultipleQuery( + client.Endpoints.Container.GetAndReturnSetOfObjects( context.TODO(), - &endpoints.GetWithMultipleQuery{ - Query: []string{ - "query", - }, - Numer: []int{ - 1, + []*types.ObjectWithRequiredField{ + &types.ObjectWithRequiredField{ + String: "string", }, }, ) @@ -2209,7 +2047,6 @@ package example import ( context "context" client "github.com/acme/acme-go/client" - endpoints "github.com/acme/acme-go/endpoints" option "github.com/acme/acme-go/option" ) @@ -2219,11 +2056,10 @@ func do() { "", ), ) - client.Endpoints.Params.GetWithPathAndQuery( + client.Endpoints.Container.GetAndReturnMapPrimToPrim( context.TODO(), - "param", - &endpoints.GetWithPathAndQuery{ - Query: "query", + map[string]string{ + "string": "string", }, ) } @@ -2236,6 +2072,7 @@ import ( context "context" client "github.com/acme/acme-go/client" option "github.com/acme/acme-go/option" + types "github.com/acme/acme-go/types" ) func do() { @@ -2244,10 +2081,13 @@ func do() { "", ), ) - client.Endpoints.Params.ModifyWithPath( + client.Endpoints.Container.GetAndReturnMapOfPrimToObject( context.TODO(), - "param", - "string", + map[string]*types.ObjectWithRequiredField{ + "string": &types.ObjectWithRequiredField{ + String: "string", + }, + }, ) } @@ -2259,6 +2099,7 @@ import ( context "context" client "github.com/acme/acme-go/client" option "github.com/acme/acme-go/option" + types "github.com/acme/acme-go/types" ) func do() { @@ -2267,9 +2108,11 @@ func do() { "", ), ) - client.Endpoints.Primitive.GetAndReturnString( + client.Endpoints.Container.GetAndReturnOptional( context.TODO(), - "string", + &types.ObjectWithRequiredField{ + String: "string", + }, ) } @@ -2281,6 +2124,7 @@ import ( context "context" client "github.com/acme/acme-go/client" option "github.com/acme/acme-go/option" + types "github.com/acme/acme-go/types" ) func do() { @@ -2289,9 +2133,9 @@ func do() { "", ), ) - client.Endpoints.Primitive.GetAndReturnInt( + client.Endpoints.Enum.GetAndReturnEnum( context.TODO(), - 1, + types.WeatherReportSunny, ) } @@ -2311,9 +2155,9 @@ func do() { "", ), ) - client.Endpoints.Primitive.GetAndReturnLong( + client.Endpoints.HTTPMethods.TestGet( context.TODO(), - 1000000, + "id", ) } @@ -2325,6 +2169,7 @@ import ( context "context" client "github.com/acme/acme-go/client" option "github.com/acme/acme-go/option" + types "github.com/acme/acme-go/types" ) func do() { @@ -2333,9 +2178,11 @@ func do() { "", ), ) - client.Endpoints.Primitive.GetAndReturnDouble( + client.Endpoints.HTTPMethods.TestPost( context.TODO(), - 1.1, + &types.ObjectWithRequiredField{ + String: "string", + }, ) } @@ -2347,6 +2194,7 @@ import ( context "context" client "github.com/acme/acme-go/client" option "github.com/acme/acme-go/option" + types "github.com/acme/acme-go/types" ) func do() { @@ -2355,9 +2203,12 @@ func do() { "", ), ) - client.Endpoints.Primitive.GetAndReturnBool( + client.Endpoints.HTTPMethods.TestPut( context.TODO(), - true, + "id", + &types.ObjectWithRequiredField{ + String: "string", + }, ) } @@ -2370,6 +2221,8 @@ import ( acme "github.com/acme/acme-go" client "github.com/acme/acme-go/client" option "github.com/acme/acme-go/option" + types "github.com/acme/acme-go/types" + uuid "github.com/google/uuid" ) func do() { @@ -2378,12 +2231,148 @@ func do() { "", ), ) - client.Endpoints.Primitive.GetAndReturnDatetime( + client.Endpoints.HTTPMethods.TestPatch( context.TODO(), - acme.MustParseDateTime( - "2024-01-15T09:30:00Z", + "id", + &types.ObjectWithOptionalField{ + String: acme.String( + "string", + ), + Integer: acme.Int( + 1, + ), + Long: acme.Int64( + 1000000, + ), + Double: acme.Float64( + 1.1, + ), + Bool: acme.Bool( + true, + ), + Datetime: acme.Time( + acme.MustParseDateTime( + "2024-01-15T09:30:00Z", + ), + ), + Date: acme.Time( + acme.MustParseDateTime( + "2023-01-15", + ), + ), + UUID: acme.UUID( + uuid.MustParse( + "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", + ), + ), + Base64: []byte("SGVsbG8gd29ybGQh"), + List: []string{ + "list", + "list", + }, + Set: []string{ + "set", + }, + Map: map[int]string{ + 1: "map", + }, + Bigint: acme.String( + "1000000", + ), + }, + ) +} + +------------------------ + +package example + +import ( + context "context" + client "github.com/acme/acme-go/client" + option "github.com/acme/acme-go/option" +) + +func do() { + client := client.NewClient( + option.WithToken( + "", + ), + ) + client.Endpoints.HTTPMethods.TestDelete( + context.TODO(), + "id", + ) +} + +------------------------ + +package example + +import ( + context "context" + acme "github.com/acme/acme-go" + client "github.com/acme/acme-go/client" + option "github.com/acme/acme-go/option" + types "github.com/acme/acme-go/types" + uuid "github.com/google/uuid" +) + +func do() { + client := client.NewClient( + option.WithToken( + "", ), ) + client.Endpoints.Object.GetAndReturnWithOptionalField( + context.TODO(), + &types.ObjectWithOptionalField{ + String: acme.String( + "string", + ), + Integer: acme.Int( + 1, + ), + Long: acme.Int64( + 1000000, + ), + Double: acme.Float64( + 1.1, + ), + Bool: acme.Bool( + true, + ), + Datetime: acme.Time( + acme.MustParseDateTime( + "2024-01-15T09:30:00Z", + ), + ), + Date: acme.Time( + acme.MustParseDateTime( + "2023-01-15", + ), + ), + UUID: acme.UUID( + uuid.MustParse( + "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", + ), + ), + Base64: []byte("SGVsbG8gd29ybGQh"), + List: []string{ + "list", + "list", + }, + Set: []string{ + "set", + }, + Map: map[int]string{ + 1: "map", + }, + Bigint: acme.String( + "1000000", + ), + }, + ) } ------------------------ @@ -2392,9 +2381,9 @@ package example import ( context "context" - acme "github.com/acme/acme-go" client "github.com/acme/acme-go/client" option "github.com/acme/acme-go/option" + types "github.com/acme/acme-go/types" ) func do() { @@ -2403,11 +2392,11 @@ func do() { "", ), ) - client.Endpoints.Primitive.GetAndReturnDate( + client.Endpoints.Object.GetAndReturnWithRequiredField( context.TODO(), - acme.MustParseDateTime( - "2023-01-15", - ), + &types.ObjectWithRequiredField{ + String: "string", + }, ) } @@ -2419,7 +2408,7 @@ import ( context "context" client "github.com/acme/acme-go/client" option "github.com/acme/acme-go/option" - uuid "github.com/google/uuid" + types "github.com/acme/acme-go/types" ) func do() { @@ -2428,11 +2417,15 @@ func do() { "", ), ) - client.Endpoints.Primitive.GetAndReturnUUID( + client.Endpoints.Object.GetAndReturnWithMapOfMap( context.TODO(), - uuid.MustParse( - "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", - ), + &types.ObjectWithMapOfMap{ + Map: map[string]map[string]string{ + "map": map[string]string{ + "map": "map", + }, + }, + }, ) } @@ -2442,8 +2435,11 @@ package example import ( context "context" + acme "github.com/acme/acme-go" client "github.com/acme/acme-go/client" option "github.com/acme/acme-go/option" + types "github.com/acme/acme-go/types" + uuid "github.com/google/uuid" ) func do() { @@ -2452,9 +2448,59 @@ func do() { "", ), ) - client.Endpoints.Primitive.GetAndReturnBase64( + client.Endpoints.Object.GetAndReturnNestedWithOptionalField( context.TODO(), - []byte("SGVsbG8gd29ybGQh"), + &types.NestedObjectWithOptionalField{ + String: acme.String( + "string", + ), + NestedObject: &types.ObjectWithOptionalField{ + String: acme.String( + "string", + ), + Integer: acme.Int( + 1, + ), + Long: acme.Int64( + 1000000, + ), + Double: acme.Float64( + 1.1, + ), + Bool: acme.Bool( + true, + ), + Datetime: acme.Time( + acme.MustParseDateTime( + "2024-01-15T09:30:00Z", + ), + ), + Date: acme.Time( + acme.MustParseDateTime( + "2023-01-15", + ), + ), + UUID: acme.UUID( + uuid.MustParse( + "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", + ), + ), + Base64: []byte("SGVsbG8gd29ybGQh"), + List: []string{ + "list", + "list", + }, + Set: []string{ + "set", + }, + Map: map[int]string{ + 1: "map", + }, + Bigint: acme.String( + "1000000", + ), + }, + }, ) } @@ -2464,9 +2510,11 @@ package example import ( context "context" + acme "github.com/acme/acme-go" client "github.com/acme/acme-go/client" option "github.com/acme/acme-go/option" types "github.com/acme/acme-go/types" + uuid "github.com/google/uuid" ) func do() { @@ -2475,12 +2523,56 @@ func do() { "", ), ) - client.Endpoints.Union.GetAndReturnUnion( + client.Endpoints.Object.GetAndReturnNestedWithRequiredField( context.TODO(), - &types.Animal{ - Dog: &types.Dog{ - Name: "name", - LikesToWoof: true, + "string", + &types.NestedObjectWithRequiredField{ + String: "string", + NestedObject: &types.ObjectWithOptionalField{ + String: acme.String( + "string", + ), + Integer: acme.Int( + 1, + ), + Long: acme.Int64( + 1000000, + ), + Double: acme.Float64( + 1.1, + ), + Bool: acme.Bool( + true, + ), + Datetime: acme.Time( + acme.MustParseDateTime( + "2024-01-15T09:30:00Z", + ), + ), + Date: acme.Time( + acme.MustParseDateTime( + "2023-01-15", + ), + ), + UUID: acme.UUID( + uuid.MustParse( + "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", + ), + ), + Base64: []byte("SGVsbG8gd29ybGQh"), + List: []string{ + "list", + "list", + }, + Set: []string{ + "set", + }, + Map: map[int]string{ + 1: "map", + }, + Bigint: acme.String( + "1000000", + ), }, }, ) @@ -2505,56 +2597,106 @@ func do() { "", ), ) - client.InlinedRequests.PostWithObjectBodyandResponse( + client.Endpoints.Object.GetAndReturnNestedWithRequiredFieldAsList( context.TODO(), - &acme.PostWithObjectBody{ - String: "string", - Integer: 1, - NestedObject: &types.ObjectWithOptionalField{ - String: acme.String( - "string", - ), - Integer: acme.Int( - 1, - ), - Long: acme.Int64( - 1000000, - ), - Double: acme.Float64( - 1.1, - ), - Bool: acme.Bool( - true, - ), - Datetime: acme.Time( - acme.MustParseDateTime( - "2024-01-15T09:30:00Z", + []*types.NestedObjectWithRequiredField{ + &types.NestedObjectWithRequiredField{ + String: "string", + NestedObject: &types.ObjectWithOptionalField{ + String: acme.String( + "string", + ), + Integer: acme.Int( + 1, + ), + Long: acme.Int64( + 1000000, + ), + Double: acme.Float64( + 1.1, + ), + Bool: acme.Bool( + true, + ), + Datetime: acme.Time( + acme.MustParseDateTime( + "2024-01-15T09:30:00Z", + ), + ), + Date: acme.Time( + acme.MustParseDateTime( + "2023-01-15", + ), + ), + UUID: acme.UUID( + uuid.MustParse( + "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", + ), + ), + Base64: []byte("SGVsbG8gd29ybGQh"), + List: []string{ + "list", + "list", + }, + Set: []string{ + "set", + }, + Map: map[int]string{ + 1: "map", + }, + Bigint: acme.String( + "1000000", + ), + }, + }, + &types.NestedObjectWithRequiredField{ + String: "string", + NestedObject: &types.ObjectWithOptionalField{ + String: acme.String( + "string", + ), + Integer: acme.Int( + 1, + ), + Long: acme.Int64( + 1000000, + ), + Double: acme.Float64( + 1.1, + ), + Bool: acme.Bool( + true, + ), + Datetime: acme.Time( + acme.MustParseDateTime( + "2024-01-15T09:30:00Z", + ), + ), + Date: acme.Time( + acme.MustParseDateTime( + "2023-01-15", + ), ), - ), - Date: acme.Time( - acme.MustParseDateTime( - "2023-01-15", + UUID: acme.UUID( + uuid.MustParse( + "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", + ), ), - ), - UUID: acme.UUID( - uuid.MustParse( - "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", + Base64: []byte("SGVsbG8gd29ybGQh"), + List: []string{ + "list", + "list", + }, + Set: []string{ + "set", + }, + Map: map[int]string{ + 1: "map", + }, + Bigint: acme.String( + "1000000", ), - ), - Base64: []byte("SGVsbG8gd29ybGQh"), - List: []string{ - "list", - "list", - }, - Set: []string{ - "set", - }, - Map: map[int]string{ - 1: "map", }, - Bigint: acme.String( - "1000000", - ), }, }, ) @@ -2576,11 +2718,9 @@ func do() { "", ), ) - client.NoAuth.PostWithNoAuth( + client.Endpoints.Params.GetWithPath( context.TODO(), - map[string]interface{}{ - "key": "value", - }, + "param", ) } @@ -2591,6 +2731,7 @@ package example import ( context "context" client "github.com/acme/acme-go/client" + endpoints "github.com/acme/acme-go/endpoints" option "github.com/acme/acme-go/option" ) @@ -2600,8 +2741,12 @@ func do() { "", ), ) - client.NoReqBody.GetWithNoRequestBody( + client.Endpoints.Params.GetWithQuery( context.TODO(), + &endpoints.GetWithQuery{ + Query: "query", + Number: 1, + }, ) } @@ -2612,6 +2757,7 @@ package example import ( context "context" client "github.com/acme/acme-go/client" + endpoints "github.com/acme/acme-go/endpoints" option "github.com/acme/acme-go/option" ) @@ -2621,8 +2767,16 @@ func do() { "", ), ) - client.NoReqBody.PostWithNoRequestBody( + client.Endpoints.Params.GetWithAllowMultipleQuery( context.TODO(), + &endpoints.GetWithMultipleQuery{ + Query: []string{ + "query", + }, + Numer: []int{ + 1, + }, + }, ) } @@ -2632,8 +2786,8 @@ package example import ( context "context" - acme "github.com/acme/acme-go" client "github.com/acme/acme-go/client" + endpoints "github.com/acme/acme-go/endpoints" option "github.com/acme/acme-go/option" ) @@ -2643,76 +2797,35 @@ func do() { "", ), ) - client.ReqWithHeaders.GetWithCustomHeader( + client.Endpoints.Params.GetWithPathAndQuery( context.TODO(), - &acme.ReqWithHeaders{ - XTestServiceHeader: "X-TEST-SERVICE-HEADER", - XTestEndpointHeader: "X-TEST-ENDPOINT-HEADER", - Body: "string", + "param", + &endpoints.GetWithPathAndQuery{ + Query: "query", }, ) } -" -`; - -exports[`test definitions > extends 1`] = ` -"package example -import ( - context "context" - acme "github.com/acme/acme-go" - client "github.com/acme/acme-go/client" -) - -func do() { - client := client.NewClient() - client.ExtendedInlineRequestBody( - context.TODO(), - &acme.Inlined{ - Unique: "unique", - }, - ) -} -" -`; +------------------------ -exports[`test definitions > extra-properties 1`] = ` -"package example +package example import ( context "context" - acme "github.com/acme/acme-go" client "github.com/acme/acme-go/client" + option "github.com/acme/acme-go/option" ) func do() { - client := client.NewClient() - client.User.CreateUser( - context.TODO(), - &acme.CreateUserRequest{ - Name: "name", - }, + client := client.NewClient( + option.WithToken( + "", + ), ) -} -" -`; - -exports[`test definitions > file-download 1`] = `""`; - -exports[`test definitions > file-upload 1`] = `""`; - -exports[`test definitions > folders 1`] = ` -"package example - -import ( - context "context" - client "github.com/acme/acme-go/client" -) - -func do() { - client := client.NewClient() - client.Foo( + client.Endpoints.Params.ModifyWithPath( context.TODO(), + "param", + "string", ) } @@ -2723,12 +2836,18 @@ package example import ( context "context" client "github.com/acme/acme-go/client" + option "github.com/acme/acme-go/option" ) func do() { - client := client.NewClient() - client.Foo( + client := client.NewClient( + option.WithToken( + "", + ), + ) + client.Endpoints.Primitive.GetAndReturnString( context.TODO(), + "string", ) } @@ -2739,12 +2858,18 @@ package example import ( context "context" client "github.com/acme/acme-go/client" + option "github.com/acme/acme-go/option" ) func do() { - client := client.NewClient() - client.Foo( + client := client.NewClient( + option.WithToken( + "", + ), + ) + client.Endpoints.Primitive.GetAndReturnInt( context.TODO(), + 1, ) } @@ -2755,12 +2880,18 @@ package example import ( context "context" client "github.com/acme/acme-go/client" + option "github.com/acme/acme-go/option" ) func do() { - client := client.NewClient() - client.Foo( + client := client.NewClient( + option.WithToken( + "", + ), + ) + client.Endpoints.Primitive.GetAndReturnLong( context.TODO(), + 1000000, ) } @@ -2771,12 +2902,18 @@ package example import ( context "context" client "github.com/acme/acme-go/client" + option "github.com/acme/acme-go/option" ) func do() { - client := client.NewClient() - client.Folder.Service.Endpoint( + client := client.NewClient( + option.WithToken( + "", + ), + ) + client.Endpoints.Primitive.GetAndReturnDouble( context.TODO(), + 1.1, ) } @@ -2787,27 +2924,6 @@ package example import ( context "context" client "github.com/acme/acme-go/client" -) - -func do() { - client := client.NewClient() - client.Folder.Service.UnknownRequest( - context.TODO(), - map[string]interface{}{ - "key": "value", - }, - ) -} -" -`; - -exports[`test definitions > go-content-type 1`] = ` -"package example - -import ( - context "context" - acme "github.com/acme/acme-go" - client "github.com/acme/acme-go/client" option "github.com/acme/acme-go/option" ) @@ -2817,31 +2933,9 @@ func do() { "", ), ) - client.Imdb.CreateMovie( - context.TODO(), - &acme.CreateMovieRequest{ - Title: "title", - Rating: 1.1, - }, - ) -} -" -`; - -exports[`test definitions > grpc-proto 1`] = ` -"package example - -import ( - context "context" - acme "github.com/acme/acme-go" - client "github.com/acme/acme-go/client" -) - -func do() { - client := client.NewClient() - client.Userservice.Create( + client.Endpoints.Primitive.GetAndReturnBool( context.TODO(), - &acme.CreateRequest{}, + true, ) } @@ -2853,55 +2947,70 @@ import ( context "context" acme "github.com/acme/acme-go" client "github.com/acme/acme-go/client" + option "github.com/acme/acme-go/option" ) func do() { - client := client.NewClient() - client.Userservice.Create( + client := client.NewClient( + option.WithToken( + "", + ), + ) + client.Endpoints.Primitive.GetAndReturnDatetime( context.TODO(), - &acme.CreateRequest{ - Username: acme.String( - "username", - ), - Email: acme.String( - "email", - ), - Age: acme.Int( - 1, - ), - Weight: acme.Float64( - 1.1, - ), - Metadata: &acme.Metadata{ - StringMetadataValueMap: map[string]*acme.MetadataValue{ - "metadata": &acme.MetadataValue{ - Double: 1.1, - }, - }, - }, - }, + acme.MustParseDateTime( + "2024-01-15T09:30:00Z", + ), + ) +} + +------------------------ + +package example + +import ( + context "context" + acme "github.com/acme/acme-go" + client "github.com/acme/acme-go/client" + option "github.com/acme/acme-go/option" +) + +func do() { + client := client.NewClient( + option.WithToken( + "", + ), + ) + client.Endpoints.Primitive.GetAndReturnDate( + context.TODO(), + acme.MustParseDateTime( + "2023-01-15", + ), ) } -" -`; -exports[`test definitions > grpc-proto-exhaustive 1`] = ` -"package example +------------------------ + +package example import ( context "context" client "github.com/acme/acme-go/client" option "github.com/acme/acme-go/option" + uuid "github.com/google/uuid" ) func do() { client := client.NewClient( - option.WithAPIKey( - "", + option.WithToken( + "", ), ) - client.Dataservice.Foo( + client.Endpoints.Primitive.GetAndReturnUUID( context.TODO(), + uuid.MustParse( + "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", + ), ) } @@ -2917,12 +3026,13 @@ import ( func do() { client := client.NewClient( - option.WithAPIKey( - "", + option.WithToken( + "", ), ) - client.Dataservice.Foo( + client.Endpoints.Primitive.GetAndReturnBase64( context.TODO(), + []byte("SGVsbG8gd29ybGQh"), ) } @@ -2932,27 +3042,23 @@ package example import ( context "context" - acme "github.com/acme/acme-go" client "github.com/acme/acme-go/client" option "github.com/acme/acme-go/option" + types "github.com/acme/acme-go/types" ) func do() { client := client.NewClient( - option.WithAPIKey( - "", + option.WithToken( + "", ), ) - client.Dataservice.Upload( + client.Endpoints.Union.GetAndReturnUnion( context.TODO(), - &acme.UploadRequest{ - Columns: []*acme.Column{ - &acme.Column{ - ID: "id", - Values: []float64{ - 1.1, - }, - }, + &types.Animal{ + Dog: &types.Dog{ + Name: "name", + LikesToWoof: true, }, }, ) @@ -2967,70 +3073,67 @@ import ( acme "github.com/acme/acme-go" client "github.com/acme/acme-go/client" option "github.com/acme/acme-go/option" + types "github.com/acme/acme-go/types" + uuid "github.com/google/uuid" ) func do() { client := client.NewClient( - option.WithAPIKey( - "", + option.WithToken( + "", ), ) - client.Dataservice.Upload( + client.InlinedRequests.PostWithObjectBodyandResponse( context.TODO(), - &acme.UploadRequest{ - Columns: []*acme.Column{ - &acme.Column{ - ID: "id", - Values: []float64{ - 1.1, - 1.1, - }, - Metadata: &acme.Metadata{ - StringMetadataValueMap: map[string]*acme.MetadataValue{ - "metadata": &acme.MetadataValue{ - Double: 1.1, - }, - }, - }, - IndexedData: &acme.IndexedData{ - Indices: []int{ - 1, - 1, - }, - Values: []float64{ - 1.1, - 1.1, - }, - }, + &acme.PostWithObjectBody{ + String: "string", + Integer: 1, + NestedObject: &types.ObjectWithOptionalField{ + String: acme.String( + "string", + ), + Integer: acme.Int( + 1, + ), + Long: acme.Int64( + 1000000, + ), + Double: acme.Float64( + 1.1, + ), + Bool: acme.Bool( + true, + ), + Datetime: acme.Time( + acme.MustParseDateTime( + "2024-01-15T09:30:00Z", + ), + ), + Date: acme.Time( + acme.MustParseDateTime( + "2023-01-15", + ), + ), + UUID: acme.UUID( + uuid.MustParse( + "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", + ), + ), + Base64: []byte("SGVsbG8gd29ybGQh"), + List: []string{ + "list", + "list", }, - &acme.Column{ - ID: "id", - Values: []float64{ - 1.1, - 1.1, - }, - Metadata: &acme.Metadata{ - StringMetadataValueMap: map[string]*acme.MetadataValue{ - "metadata": &acme.MetadataValue{ - Double: 1.1, - }, - }, - }, - IndexedData: &acme.IndexedData{ - Indices: []int{ - 1, - 1, - }, - Values: []float64{ - 1.1, - 1.1, - }, - }, + Set: []string{ + "set", + }, + Map: map[int]string{ + 1: "map", }, + Bigint: acme.String( + "1000000", + ), }, - Namespace: acme.String( - "namespace", - ), }, ) } @@ -3041,20 +3144,21 @@ package example import ( context "context" - acme "github.com/acme/acme-go" client "github.com/acme/acme-go/client" option "github.com/acme/acme-go/option" ) func do() { client := client.NewClient( - option.WithAPIKey( - "", + option.WithToken( + "", ), ) - client.Dataservice.Delete( + client.NoAuth.PostWithNoAuth( context.TODO(), - &acme.DeleteRequest{}, + map[string]interface{}{ + "key": "value", + }, ) } @@ -3064,38 +3168,18 @@ package example import ( context "context" - acme "github.com/acme/acme-go" client "github.com/acme/acme-go/client" option "github.com/acme/acme-go/option" ) func do() { client := client.NewClient( - option.WithAPIKey( - "", + option.WithToken( + "", ), ) - client.Dataservice.Delete( + client.NoReqBody.GetWithNoRequestBody( context.TODO(), - &acme.DeleteRequest{ - IDs: []string{ - "ids", - "ids", - }, - DeleteAll: acme.Bool( - true, - ), - Namespace: acme.String( - "namespace", - ), - Filter: &acme.Metadata{ - StringMetadataValueMap: map[string]*acme.MetadataValue{ - "filter": &acme.MetadataValue{ - Double: 1.1, - }, - }, - }, - }, ) } @@ -3105,20 +3189,18 @@ package example import ( context "context" - acme "github.com/acme/acme-go" client "github.com/acme/acme-go/client" option "github.com/acme/acme-go/option" ) func do() { client := client.NewClient( - option.WithAPIKey( - "", + option.WithToken( + "", ), ) - client.Dataservice.Describe( + client.NoReqBody.PostWithNoRequestBody( context.TODO(), - &acme.DescribeRequest{}, ) } @@ -3135,76 +3217,80 @@ import ( func do() { client := client.NewClient( - option.WithAPIKey( - "", + option.WithToken( + "", ), ) - client.Dataservice.Describe( + client.ReqWithHeaders.GetWithCustomHeader( context.TODO(), - &acme.DescribeRequest{ - Filter: &acme.Metadata{ - StringMetadataValueMap: map[string]*acme.MetadataValue{ - "filter": &acme.MetadataValue{ - Double: 1.1, - }, - }, - }, + &acme.ReqWithHeaders{ + XTestServiceHeader: "X-TEST-SERVICE-HEADER", + XTestEndpointHeader: "X-TEST-ENDPOINT-HEADER", + Body: "string", }, ) } +" +`; ------------------------- +exports[`test definitions > extends 1`] = ` +"package example + +import ( + context "context" + acme "github.com/acme/acme-go" + client "github.com/acme/acme-go/client" +) + +func do() { + client := client.NewClient() + client.ExtendedInlineRequestBody( + context.TODO(), + &acme.Inlined{ + Unique: "unique", + }, + ) +} +" +`; -package example +exports[`test definitions > extra-properties 1`] = ` +"package example import ( context "context" acme "github.com/acme/acme-go" client "github.com/acme/acme-go/client" - option "github.com/acme/acme-go/option" ) func do() { - client := client.NewClient( - option.WithAPIKey( - "", - ), - ) - client.Dataservice.Fetch( + client := client.NewClient() + client.User.CreateUser( context.TODO(), - &acme.FetchRequest{}, + &acme.CreateUserRequest{ + Name: "name", + }, ) } +" +`; ------------------------- +exports[`test definitions > file-download 1`] = `""`; -package example +exports[`test definitions > file-upload 1`] = `""`; + +exports[`test definitions > folders 1`] = ` +"package example import ( context "context" - acme "github.com/acme/acme-go" client "github.com/acme/acme-go/client" - option "github.com/acme/acme-go/option" ) func do() { - client := client.NewClient( - option.WithAPIKey( - "", - ), - ) - client.Dataservice.Fetch( + client := client.NewClient() + client.Foo( context.TODO(), - &acme.FetchRequest{ - IDs: []*string{ - acme.String( - "ids", - ), - }, - Namespace: acme.String( - "namespace", - ), - }, ) } @@ -3214,20 +3300,13 @@ package example import ( context "context" - acme "github.com/acme/acme-go" client "github.com/acme/acme-go/client" - option "github.com/acme/acme-go/option" ) func do() { - client := client.NewClient( - option.WithAPIKey( - "", - ), - ) - client.Dataservice.List( + client := client.NewClient() + client.Foo( context.TODO(), - &acme.ListRequest{}, ) } @@ -3237,33 +3316,13 @@ package example import ( context "context" - acme "github.com/acme/acme-go" client "github.com/acme/acme-go/client" - option "github.com/acme/acme-go/option" ) func do() { - client := client.NewClient( - option.WithAPIKey( - "", - ), - ) - client.Dataservice.List( + client := client.NewClient() + client.Foo( context.TODO(), - &acme.ListRequest{ - Prefix: acme.String( - "prefix", - ), - Limit: acme.Int( - 1, - ), - PaginationToken: acme.String( - "paginationToken", - ), - Namespace: acme.String( - "namespace", - ), - }, ) } @@ -3273,22 +3332,13 @@ package example import ( context "context" - acme "github.com/acme/acme-go" client "github.com/acme/acme-go/client" - option "github.com/acme/acme-go/option" ) func do() { - client := client.NewClient( - option.WithAPIKey( - "", - ), - ) - client.Dataservice.Query( + client := client.NewClient() + client.Foo( context.TODO(), - &acme.QueryRequest{ - TopK: 1, - }, ) } @@ -3298,115 +3348,13 @@ package example import ( context "context" - acme "github.com/acme/acme-go" client "github.com/acme/acme-go/client" - option "github.com/acme/acme-go/option" ) func do() { - client := client.NewClient( - option.WithAPIKey( - "", - ), - ) - client.Dataservice.Query( + client := client.NewClient() + client.Folder.Service.Endpoint( context.TODO(), - &acme.QueryRequest{ - Namespace: acme.String( - "namespace", - ), - TopK: 1, - Filter: &acme.Metadata{ - StringMetadataValueMap: map[string]*acme.MetadataValue{ - "filter": &acme.MetadataValue{ - Double: 1.1, - }, - }, - }, - IncludeValues: acme.Bool( - true, - ), - IncludeMetadata: acme.Bool( - true, - ), - Queries: []*acme.QueryColumn{ - &acme.QueryColumn{ - Values: []float64{ - 1.1, - 1.1, - }, - TopK: acme.Int( - 1, - ), - Namespace: acme.String( - "namespace", - ), - Filter: &acme.Metadata{ - StringMetadataValueMap: map[string]*acme.MetadataValue{ - "filter": &acme.MetadataValue{ - Double: 1.1, - }, - }, - }, - IndexedData: &acme.IndexedData{ - Indices: []int{ - 1, - 1, - }, - Values: []float64{ - 1.1, - 1.1, - }, - }, - }, - &acme.QueryColumn{ - Values: []float64{ - 1.1, - 1.1, - }, - TopK: acme.Int( - 1, - ), - Namespace: acme.String( - "namespace", - ), - Filter: &acme.Metadata{ - StringMetadataValueMap: map[string]*acme.MetadataValue{ - "filter": &acme.MetadataValue{ - Double: 1.1, - }, - }, - }, - IndexedData: &acme.IndexedData{ - Indices: []int{ - 1, - 1, - }, - Values: []float64{ - 1.1, - 1.1, - }, - }, - }, - }, - Column: []float64{ - 1.1, - 1.1, - }, - ID: acme.String( - "id", - ), - IndexedData: &acme.IndexedData{ - Indices: []int{ - 1, - 1, - }, - Values: []float64{ - 1.1, - 1.1, - }, - }, - }, ) } @@ -3416,28 +3364,23 @@ package example import ( context "context" - acme "github.com/acme/acme-go" client "github.com/acme/acme-go/client" - option "github.com/acme/acme-go/option" ) func do() { - client := client.NewClient( - option.WithAPIKey( - "", - ), - ) - client.Dataservice.Update( + client := client.NewClient() + client.Folder.Service.UnknownRequest( context.TODO(), - &acme.UpdateRequest{ - ID: "id", + map[string]interface{}{ + "key": "value", }, ) } +" +`; ------------------------- - -package example +exports[`test definitions > go-content-type 1`] = ` +"package example import ( context "context" @@ -3448,38 +3391,15 @@ import ( func do() { client := client.NewClient( - option.WithAPIKey( - "", + option.WithToken( + "", ), ) - client.Dataservice.Update( + client.Imdb.CreateMovie( context.TODO(), - &acme.UpdateRequest{ - ID: "id", - Values: []float64{ - 1.1, - 1.1, - }, - SetMetadata: &acme.Metadata{ - StringMetadataValueMap: map[string]*acme.MetadataValue{ - "setMetadata": &acme.MetadataValue{ - Double: 1.1, - }, - }, - }, - Namespace: acme.String( - "namespace", - ), - IndexedData: &acme.IndexedData{ - Indices: []int{ - 1, - 1, - }, - Values: []float64{ - 1.1, - 1.1, - }, - }, + &acme.CreateMovieRequest{ + Title: "title", + Rating: 1.1, }, ) } diff --git a/packages/cli/dynamic-snippets/src/__test__/test-definitions/csharp-grpc-proto-exhaustive.json b/packages/cli/dynamic-snippets/src/__test__/test-definitions/csharp-grpc-proto-exhaustive.json new file mode 100644 index 00000000000..956dec3d7b3 --- /dev/null +++ b/packages/cli/dynamic-snippets/src/__test__/test-definitions/csharp-grpc-proto-exhaustive.json @@ -0,0 +1,3760 @@ +{ + "version": "1.0.0", + "types": { + "type_:Column": { + "type": "object", + "declaration": { + "name": { + "originalName": "Column", + "camelCase": { + "unsafeName": "column", + "safeName": "column" + }, + "snakeCase": { + "unsafeName": "column", + "safeName": "column" + }, + "screamingSnakeCase": { + "unsafeName": "COLUMN", + "safeName": "COLUMN" + }, + "pascalCase": { + "unsafeName": "Column", + "safeName": "Column" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + } + }, + "properties": [ + { + "name": { + "name": { + "originalName": "id", + "camelCase": { + "unsafeName": "id", + "safeName": "id" + }, + "snakeCase": { + "unsafeName": "id", + "safeName": "id" + }, + "screamingSnakeCase": { + "unsafeName": "ID", + "safeName": "ID" + }, + "pascalCase": { + "unsafeName": "ID", + "safeName": "ID" + } + }, + "wireValue": "id" + }, + "typeReference": { + "_type": "primitive", + "value": "STRING" + } + }, + { + "name": { + "name": { + "originalName": "values", + "camelCase": { + "unsafeName": "values", + "safeName": "values" + }, + "snakeCase": { + "unsafeName": "values", + "safeName": "values" + }, + "screamingSnakeCase": { + "unsafeName": "VALUES", + "safeName": "VALUES" + }, + "pascalCase": { + "unsafeName": "Values", + "safeName": "Values" + } + }, + "wireValue": "values" + }, + "typeReference": { + "_type": "list", + "value": { + "_type": "primitive", + "value": "FLOAT" + } + } + }, + { + "name": { + "name": { + "originalName": "metadata", + "camelCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "snakeCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "screamingSnakeCase": { + "unsafeName": "METADATA", + "safeName": "METADATA" + }, + "pascalCase": { + "unsafeName": "Metadata", + "safeName": "Metadata" + } + }, + "wireValue": "metadata" + }, + "typeReference": { + "_type": "optional", + "value": { + "_type": "named", + "value": "type_:Metadata" + } + } + }, + { + "name": { + "name": { + "originalName": "indexedData", + "camelCase": { + "unsafeName": "indexedData", + "safeName": "indexedData" + }, + "snakeCase": { + "unsafeName": "indexed_data", + "safeName": "indexed_data" + }, + "screamingSnakeCase": { + "unsafeName": "INDEXED_DATA", + "safeName": "INDEXED_DATA" + }, + "pascalCase": { + "unsafeName": "IndexedData", + "safeName": "IndexedData" + } + }, + "wireValue": "indexedData" + }, + "typeReference": { + "_type": "optional", + "value": { + "_type": "named", + "value": "type_:IndexedData" + } + } + } + ] + }, + "type_:DeleteResponse": { + "type": "object", + "declaration": { + "name": { + "originalName": "DeleteResponse", + "camelCase": { + "unsafeName": "deleteResponse", + "safeName": "deleteResponse" + }, + "snakeCase": { + "unsafeName": "delete_response", + "safeName": "delete_response" + }, + "screamingSnakeCase": { + "unsafeName": "DELETE_RESPONSE", + "safeName": "DELETE_RESPONSE" + }, + "pascalCase": { + "unsafeName": "DeleteResponse", + "safeName": "DeleteResponse" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + } + }, + "properties": [] + }, + "type_:DescribeResponse": { + "type": "object", + "declaration": { + "name": { + "originalName": "DescribeResponse", + "camelCase": { + "unsafeName": "describeResponse", + "safeName": "describeResponse" + }, + "snakeCase": { + "unsafeName": "describe_response", + "safeName": "describe_response" + }, + "screamingSnakeCase": { + "unsafeName": "DESCRIBE_RESPONSE", + "safeName": "DESCRIBE_RESPONSE" + }, + "pascalCase": { + "unsafeName": "DescribeResponse", + "safeName": "DescribeResponse" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + } + }, + "properties": [ + { + "name": { + "name": { + "originalName": "namespaces", + "camelCase": { + "unsafeName": "namespaces", + "safeName": "namespaces" + }, + "snakeCase": { + "unsafeName": "namespaces", + "safeName": "namespaces" + }, + "screamingSnakeCase": { + "unsafeName": "NAMESPACES", + "safeName": "NAMESPACES" + }, + "pascalCase": { + "unsafeName": "Namespaces", + "safeName": "Namespaces" + } + }, + "wireValue": "namespaces" + }, + "typeReference": { + "_type": "optional", + "value": { + "_type": "map", + "key": { + "_type": "primitive", + "value": "STRING" + }, + "value": { + "_type": "named", + "value": "type_:NamespaceSummary" + } + } + } + }, + { + "name": { + "name": { + "originalName": "dimension", + "camelCase": { + "unsafeName": "dimension", + "safeName": "dimension" + }, + "snakeCase": { + "unsafeName": "dimension", + "safeName": "dimension" + }, + "screamingSnakeCase": { + "unsafeName": "DIMENSION", + "safeName": "DIMENSION" + }, + "pascalCase": { + "unsafeName": "Dimension", + "safeName": "Dimension" + } + }, + "wireValue": "dimension" + }, + "typeReference": { + "_type": "optional", + "value": { + "_type": "primitive", + "value": "UINT" + } + } + }, + { + "name": { + "name": { + "originalName": "fullness", + "camelCase": { + "unsafeName": "fullness", + "safeName": "fullness" + }, + "snakeCase": { + "unsafeName": "fullness", + "safeName": "fullness" + }, + "screamingSnakeCase": { + "unsafeName": "FULLNESS", + "safeName": "FULLNESS" + }, + "pascalCase": { + "unsafeName": "Fullness", + "safeName": "Fullness" + } + }, + "wireValue": "fullness" + }, + "typeReference": { + "_type": "optional", + "value": { + "_type": "primitive", + "value": "FLOAT" + } + } + }, + { + "name": { + "name": { + "originalName": "totalCount", + "camelCase": { + "unsafeName": "totalCount", + "safeName": "totalCount" + }, + "snakeCase": { + "unsafeName": "total_count", + "safeName": "total_count" + }, + "screamingSnakeCase": { + "unsafeName": "TOTAL_COUNT", + "safeName": "TOTAL_COUNT" + }, + "pascalCase": { + "unsafeName": "TotalCount", + "safeName": "TotalCount" + } + }, + "wireValue": "totalCount" + }, + "typeReference": { + "_type": "optional", + "value": { + "_type": "primitive", + "value": "UINT" + } + } + } + ] + }, + "type_:FetchResponse": { + "type": "object", + "declaration": { + "name": { + "originalName": "FetchResponse", + "camelCase": { + "unsafeName": "fetchResponse", + "safeName": "fetchResponse" + }, + "snakeCase": { + "unsafeName": "fetch_response", + "safeName": "fetch_response" + }, + "screamingSnakeCase": { + "unsafeName": "FETCH_RESPONSE", + "safeName": "FETCH_RESPONSE" + }, + "pascalCase": { + "unsafeName": "FetchResponse", + "safeName": "FetchResponse" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + } + }, + "properties": [ + { + "name": { + "name": { + "originalName": "columns", + "camelCase": { + "unsafeName": "columns", + "safeName": "columns" + }, + "snakeCase": { + "unsafeName": "columns", + "safeName": "columns" + }, + "screamingSnakeCase": { + "unsafeName": "COLUMNS", + "safeName": "COLUMNS" + }, + "pascalCase": { + "unsafeName": "Columns", + "safeName": "Columns" + } + }, + "wireValue": "columns" + }, + "typeReference": { + "_type": "optional", + "value": { + "_type": "map", + "key": { + "_type": "primitive", + "value": "STRING" + }, + "value": { + "_type": "named", + "value": "type_:Column" + } + } + } + }, + { + "name": { + "name": { + "originalName": "namespace", + "camelCase": { + "unsafeName": "namespace", + "safeName": "namespace" + }, + "snakeCase": { + "unsafeName": "namespace", + "safeName": "namespace" + }, + "screamingSnakeCase": { + "unsafeName": "NAMESPACE", + "safeName": "NAMESPACE" + }, + "pascalCase": { + "unsafeName": "Namespace", + "safeName": "Namespace" + } + }, + "wireValue": "namespace" + }, + "typeReference": { + "_type": "optional", + "value": { + "_type": "primitive", + "value": "STRING" + } + } + }, + { + "name": { + "name": { + "originalName": "usage", + "camelCase": { + "unsafeName": "usage", + "safeName": "usage" + }, + "snakeCase": { + "unsafeName": "usage", + "safeName": "usage" + }, + "screamingSnakeCase": { + "unsafeName": "USAGE", + "safeName": "USAGE" + }, + "pascalCase": { + "unsafeName": "Usage", + "safeName": "Usage" + } + }, + "wireValue": "usage" + }, + "typeReference": { + "_type": "optional", + "value": { + "_type": "named", + "value": "type_:Usage" + } + } + } + ] + }, + "type_:IndexedData": { + "type": "object", + "declaration": { + "name": { + "originalName": "IndexedData", + "camelCase": { + "unsafeName": "indexedData", + "safeName": "indexedData" + }, + "snakeCase": { + "unsafeName": "indexed_data", + "safeName": "indexed_data" + }, + "screamingSnakeCase": { + "unsafeName": "INDEXED_DATA", + "safeName": "INDEXED_DATA" + }, + "pascalCase": { + "unsafeName": "IndexedData", + "safeName": "IndexedData" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + } + }, + "properties": [ + { + "name": { + "name": { + "originalName": "indices", + "camelCase": { + "unsafeName": "indices", + "safeName": "indices" + }, + "snakeCase": { + "unsafeName": "indices", + "safeName": "indices" + }, + "screamingSnakeCase": { + "unsafeName": "INDICES", + "safeName": "INDICES" + }, + "pascalCase": { + "unsafeName": "Indices", + "safeName": "Indices" + } + }, + "wireValue": "indices" + }, + "typeReference": { + "_type": "list", + "value": { + "_type": "primitive", + "value": "UINT" + } + } + }, + { + "name": { + "name": { + "originalName": "values", + "camelCase": { + "unsafeName": "values", + "safeName": "values" + }, + "snakeCase": { + "unsafeName": "values", + "safeName": "values" + }, + "screamingSnakeCase": { + "unsafeName": "VALUES", + "safeName": "VALUES" + }, + "pascalCase": { + "unsafeName": "Values", + "safeName": "Values" + } + }, + "wireValue": "values" + }, + "typeReference": { + "_type": "list", + "value": { + "_type": "primitive", + "value": "FLOAT" + } + } + } + ] + }, + "type_:ListElement": { + "type": "object", + "declaration": { + "name": { + "originalName": "ListElement", + "camelCase": { + "unsafeName": "listElement", + "safeName": "listElement" + }, + "snakeCase": { + "unsafeName": "list_element", + "safeName": "list_element" + }, + "screamingSnakeCase": { + "unsafeName": "LIST_ELEMENT", + "safeName": "LIST_ELEMENT" + }, + "pascalCase": { + "unsafeName": "ListElement", + "safeName": "ListElement" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + } + }, + "properties": [ + { + "name": { + "name": { + "originalName": "id", + "camelCase": { + "unsafeName": "id", + "safeName": "id" + }, + "snakeCase": { + "unsafeName": "id", + "safeName": "id" + }, + "screamingSnakeCase": { + "unsafeName": "ID", + "safeName": "ID" + }, + "pascalCase": { + "unsafeName": "ID", + "safeName": "ID" + } + }, + "wireValue": "id" + }, + "typeReference": { + "_type": "optional", + "value": { + "_type": "primitive", + "value": "STRING" + } + } + } + ] + }, + "type_:ListResponse": { + "type": "object", + "declaration": { + "name": { + "originalName": "ListResponse", + "camelCase": { + "unsafeName": "listResponse", + "safeName": "listResponse" + }, + "snakeCase": { + "unsafeName": "list_response", + "safeName": "list_response" + }, + "screamingSnakeCase": { + "unsafeName": "LIST_RESPONSE", + "safeName": "LIST_RESPONSE" + }, + "pascalCase": { + "unsafeName": "ListResponse", + "safeName": "ListResponse" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + } + }, + "properties": [ + { + "name": { + "name": { + "originalName": "columns", + "camelCase": { + "unsafeName": "columns", + "safeName": "columns" + }, + "snakeCase": { + "unsafeName": "columns", + "safeName": "columns" + }, + "screamingSnakeCase": { + "unsafeName": "COLUMNS", + "safeName": "COLUMNS" + }, + "pascalCase": { + "unsafeName": "Columns", + "safeName": "Columns" + } + }, + "wireValue": "columns" + }, + "typeReference": { + "_type": "optional", + "value": { + "_type": "list", + "value": { + "_type": "named", + "value": "type_:ListElement" + } + } + } + }, + { + "name": { + "name": { + "originalName": "pagination", + "camelCase": { + "unsafeName": "pagination", + "safeName": "pagination" + }, + "snakeCase": { + "unsafeName": "pagination", + "safeName": "pagination" + }, + "screamingSnakeCase": { + "unsafeName": "PAGINATION", + "safeName": "PAGINATION" + }, + "pascalCase": { + "unsafeName": "Pagination", + "safeName": "Pagination" + } + }, + "wireValue": "pagination" + }, + "typeReference": { + "_type": "optional", + "value": { + "_type": "named", + "value": "type_:Pagination" + } + } + }, + { + "name": { + "name": { + "originalName": "namespace", + "camelCase": { + "unsafeName": "namespace", + "safeName": "namespace" + }, + "snakeCase": { + "unsafeName": "namespace", + "safeName": "namespace" + }, + "screamingSnakeCase": { + "unsafeName": "NAMESPACE", + "safeName": "NAMESPACE" + }, + "pascalCase": { + "unsafeName": "Namespace", + "safeName": "Namespace" + } + }, + "wireValue": "namespace" + }, + "typeReference": { + "_type": "optional", + "value": { + "_type": "primitive", + "value": "STRING" + } + } + }, + { + "name": { + "name": { + "originalName": "usage", + "camelCase": { + "unsafeName": "usage", + "safeName": "usage" + }, + "snakeCase": { + "unsafeName": "usage", + "safeName": "usage" + }, + "screamingSnakeCase": { + "unsafeName": "USAGE", + "safeName": "USAGE" + }, + "pascalCase": { + "unsafeName": "Usage", + "safeName": "Usage" + } + }, + "wireValue": "usage" + }, + "typeReference": { + "_type": "optional", + "value": { + "_type": "named", + "value": "type_:Usage" + } + } + } + ] + }, + "type_:NamespaceSummary": { + "type": "object", + "declaration": { + "name": { + "originalName": "NamespaceSummary", + "camelCase": { + "unsafeName": "namespaceSummary", + "safeName": "namespaceSummary" + }, + "snakeCase": { + "unsafeName": "namespace_summary", + "safeName": "namespace_summary" + }, + "screamingSnakeCase": { + "unsafeName": "NAMESPACE_SUMMARY", + "safeName": "NAMESPACE_SUMMARY" + }, + "pascalCase": { + "unsafeName": "NamespaceSummary", + "safeName": "NamespaceSummary" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + } + }, + "properties": [ + { + "name": { + "name": { + "originalName": "count", + "camelCase": { + "unsafeName": "count", + "safeName": "count" + }, + "snakeCase": { + "unsafeName": "count", + "safeName": "count" + }, + "screamingSnakeCase": { + "unsafeName": "COUNT", + "safeName": "COUNT" + }, + "pascalCase": { + "unsafeName": "Count", + "safeName": "Count" + } + }, + "wireValue": "count" + }, + "typeReference": { + "_type": "optional", + "value": { + "_type": "primitive", + "value": "UINT" + } + } + } + ] + }, + "type_:Pagination": { + "type": "object", + "declaration": { + "name": { + "originalName": "Pagination", + "camelCase": { + "unsafeName": "pagination", + "safeName": "pagination" + }, + "snakeCase": { + "unsafeName": "pagination", + "safeName": "pagination" + }, + "screamingSnakeCase": { + "unsafeName": "PAGINATION", + "safeName": "PAGINATION" + }, + "pascalCase": { + "unsafeName": "Pagination", + "safeName": "Pagination" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + } + }, + "properties": [ + { + "name": { + "name": { + "originalName": "next", + "camelCase": { + "unsafeName": "next", + "safeName": "next" + }, + "snakeCase": { + "unsafeName": "next", + "safeName": "next" + }, + "screamingSnakeCase": { + "unsafeName": "NEXT", + "safeName": "NEXT" + }, + "pascalCase": { + "unsafeName": "Next", + "safeName": "Next" + } + }, + "wireValue": "next" + }, + "typeReference": { + "_type": "optional", + "value": { + "_type": "primitive", + "value": "STRING" + } + } + } + ] + }, + "type_:QueryColumn": { + "type": "object", + "declaration": { + "name": { + "originalName": "QueryColumn", + "camelCase": { + "unsafeName": "queryColumn", + "safeName": "queryColumn" + }, + "snakeCase": { + "unsafeName": "query_column", + "safeName": "query_column" + }, + "screamingSnakeCase": { + "unsafeName": "QUERY_COLUMN", + "safeName": "QUERY_COLUMN" + }, + "pascalCase": { + "unsafeName": "QueryColumn", + "safeName": "QueryColumn" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + } + }, + "properties": [ + { + "name": { + "name": { + "originalName": "values", + "camelCase": { + "unsafeName": "values", + "safeName": "values" + }, + "snakeCase": { + "unsafeName": "values", + "safeName": "values" + }, + "screamingSnakeCase": { + "unsafeName": "VALUES", + "safeName": "VALUES" + }, + "pascalCase": { + "unsafeName": "Values", + "safeName": "Values" + } + }, + "wireValue": "values" + }, + "typeReference": { + "_type": "list", + "value": { + "_type": "primitive", + "value": "FLOAT" + } + } + }, + { + "name": { + "name": { + "originalName": "topK", + "camelCase": { + "unsafeName": "topK", + "safeName": "topK" + }, + "snakeCase": { + "unsafeName": "top_k", + "safeName": "top_k" + }, + "screamingSnakeCase": { + "unsafeName": "TOP_K", + "safeName": "TOP_K" + }, + "pascalCase": { + "unsafeName": "TopK", + "safeName": "TopK" + } + }, + "wireValue": "topK" + }, + "typeReference": { + "_type": "optional", + "value": { + "_type": "primitive", + "value": "UINT" + } + } + }, + { + "name": { + "name": { + "originalName": "namespace", + "camelCase": { + "unsafeName": "namespace", + "safeName": "namespace" + }, + "snakeCase": { + "unsafeName": "namespace", + "safeName": "namespace" + }, + "screamingSnakeCase": { + "unsafeName": "NAMESPACE", + "safeName": "NAMESPACE" + }, + "pascalCase": { + "unsafeName": "Namespace", + "safeName": "Namespace" + } + }, + "wireValue": "namespace" + }, + "typeReference": { + "_type": "optional", + "value": { + "_type": "primitive", + "value": "STRING" + } + } + }, + { + "name": { + "name": { + "originalName": "filter", + "camelCase": { + "unsafeName": "filter", + "safeName": "filter" + }, + "snakeCase": { + "unsafeName": "filter", + "safeName": "filter" + }, + "screamingSnakeCase": { + "unsafeName": "FILTER", + "safeName": "FILTER" + }, + "pascalCase": { + "unsafeName": "Filter", + "safeName": "Filter" + } + }, + "wireValue": "filter" + }, + "typeReference": { + "_type": "optional", + "value": { + "_type": "named", + "value": "type_:Metadata" + } + } + }, + { + "name": { + "name": { + "originalName": "indexedData", + "camelCase": { + "unsafeName": "indexedData", + "safeName": "indexedData" + }, + "snakeCase": { + "unsafeName": "indexed_data", + "safeName": "indexed_data" + }, + "screamingSnakeCase": { + "unsafeName": "INDEXED_DATA", + "safeName": "INDEXED_DATA" + }, + "pascalCase": { + "unsafeName": "IndexedData", + "safeName": "IndexedData" + } + }, + "wireValue": "indexedData" + }, + "typeReference": { + "_type": "optional", + "value": { + "_type": "named", + "value": "type_:IndexedData" + } + } + } + ] + }, + "type_:QueryResponse": { + "type": "object", + "declaration": { + "name": { + "originalName": "QueryResponse", + "camelCase": { + "unsafeName": "queryResponse", + "safeName": "queryResponse" + }, + "snakeCase": { + "unsafeName": "query_response", + "safeName": "query_response" + }, + "screamingSnakeCase": { + "unsafeName": "QUERY_RESPONSE", + "safeName": "QUERY_RESPONSE" + }, + "pascalCase": { + "unsafeName": "QueryResponse", + "safeName": "QueryResponse" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + } + }, + "properties": [ + { + "name": { + "name": { + "originalName": "results", + "camelCase": { + "unsafeName": "results", + "safeName": "results" + }, + "snakeCase": { + "unsafeName": "results", + "safeName": "results" + }, + "screamingSnakeCase": { + "unsafeName": "RESULTS", + "safeName": "RESULTS" + }, + "pascalCase": { + "unsafeName": "Results", + "safeName": "Results" + } + }, + "wireValue": "results" + }, + "typeReference": { + "_type": "optional", + "value": { + "_type": "list", + "value": { + "_type": "named", + "value": "type_:QueryResult" + } + } + } + }, + { + "name": { + "name": { + "originalName": "matches", + "camelCase": { + "unsafeName": "matches", + "safeName": "matches" + }, + "snakeCase": { + "unsafeName": "matches", + "safeName": "matches" + }, + "screamingSnakeCase": { + "unsafeName": "MATCHES", + "safeName": "MATCHES" + }, + "pascalCase": { + "unsafeName": "Matches", + "safeName": "Matches" + } + }, + "wireValue": "matches" + }, + "typeReference": { + "_type": "optional", + "value": { + "_type": "list", + "value": { + "_type": "named", + "value": "type_:ScoredColumn" + } + } + } + }, + { + "name": { + "name": { + "originalName": "namespace", + "camelCase": { + "unsafeName": "namespace", + "safeName": "namespace" + }, + "snakeCase": { + "unsafeName": "namespace", + "safeName": "namespace" + }, + "screamingSnakeCase": { + "unsafeName": "NAMESPACE", + "safeName": "NAMESPACE" + }, + "pascalCase": { + "unsafeName": "Namespace", + "safeName": "Namespace" + } + }, + "wireValue": "namespace" + }, + "typeReference": { + "_type": "optional", + "value": { + "_type": "primitive", + "value": "STRING" + } + } + }, + { + "name": { + "name": { + "originalName": "usage", + "camelCase": { + "unsafeName": "usage", + "safeName": "usage" + }, + "snakeCase": { + "unsafeName": "usage", + "safeName": "usage" + }, + "screamingSnakeCase": { + "unsafeName": "USAGE", + "safeName": "USAGE" + }, + "pascalCase": { + "unsafeName": "Usage", + "safeName": "Usage" + } + }, + "wireValue": "usage" + }, + "typeReference": { + "_type": "optional", + "value": { + "_type": "named", + "value": "type_:Usage" + } + } + } + ] + }, + "type_:QueryResult": { + "type": "object", + "declaration": { + "name": { + "originalName": "QueryResult", + "camelCase": { + "unsafeName": "queryResult", + "safeName": "queryResult" + }, + "snakeCase": { + "unsafeName": "query_result", + "safeName": "query_result" + }, + "screamingSnakeCase": { + "unsafeName": "QUERY_RESULT", + "safeName": "QUERY_RESULT" + }, + "pascalCase": { + "unsafeName": "QueryResult", + "safeName": "QueryResult" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + } + }, + "properties": [ + { + "name": { + "name": { + "originalName": "matches", + "camelCase": { + "unsafeName": "matches", + "safeName": "matches" + }, + "snakeCase": { + "unsafeName": "matches", + "safeName": "matches" + }, + "screamingSnakeCase": { + "unsafeName": "MATCHES", + "safeName": "MATCHES" + }, + "pascalCase": { + "unsafeName": "Matches", + "safeName": "Matches" + } + }, + "wireValue": "matches" + }, + "typeReference": { + "_type": "optional", + "value": { + "_type": "list", + "value": { + "_type": "named", + "value": "type_:ScoredColumn" + } + } + } + }, + { + "name": { + "name": { + "originalName": "namespace", + "camelCase": { + "unsafeName": "namespace", + "safeName": "namespace" + }, + "snakeCase": { + "unsafeName": "namespace", + "safeName": "namespace" + }, + "screamingSnakeCase": { + "unsafeName": "NAMESPACE", + "safeName": "NAMESPACE" + }, + "pascalCase": { + "unsafeName": "Namespace", + "safeName": "Namespace" + } + }, + "wireValue": "namespace" + }, + "typeReference": { + "_type": "optional", + "value": { + "_type": "primitive", + "value": "STRING" + } + } + } + ] + }, + "type_:ScoredColumn": { + "type": "object", + "declaration": { + "name": { + "originalName": "ScoredColumn", + "camelCase": { + "unsafeName": "scoredColumn", + "safeName": "scoredColumn" + }, + "snakeCase": { + "unsafeName": "scored_column", + "safeName": "scored_column" + }, + "screamingSnakeCase": { + "unsafeName": "SCORED_COLUMN", + "safeName": "SCORED_COLUMN" + }, + "pascalCase": { + "unsafeName": "ScoredColumn", + "safeName": "ScoredColumn" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + } + }, + "properties": [ + { + "name": { + "name": { + "originalName": "id", + "camelCase": { + "unsafeName": "id", + "safeName": "id" + }, + "snakeCase": { + "unsafeName": "id", + "safeName": "id" + }, + "screamingSnakeCase": { + "unsafeName": "ID", + "safeName": "ID" + }, + "pascalCase": { + "unsafeName": "ID", + "safeName": "ID" + } + }, + "wireValue": "id" + }, + "typeReference": { + "_type": "primitive", + "value": "STRING" + } + }, + { + "name": { + "name": { + "originalName": "score", + "camelCase": { + "unsafeName": "score", + "safeName": "score" + }, + "snakeCase": { + "unsafeName": "score", + "safeName": "score" + }, + "screamingSnakeCase": { + "unsafeName": "SCORE", + "safeName": "SCORE" + }, + "pascalCase": { + "unsafeName": "Score", + "safeName": "Score" + } + }, + "wireValue": "score" + }, + "typeReference": { + "_type": "optional", + "value": { + "_type": "primitive", + "value": "FLOAT" + } + } + }, + { + "name": { + "name": { + "originalName": "values", + "camelCase": { + "unsafeName": "values", + "safeName": "values" + }, + "snakeCase": { + "unsafeName": "values", + "safeName": "values" + }, + "screamingSnakeCase": { + "unsafeName": "VALUES", + "safeName": "VALUES" + }, + "pascalCase": { + "unsafeName": "Values", + "safeName": "Values" + } + }, + "wireValue": "values" + }, + "typeReference": { + "_type": "optional", + "value": { + "_type": "list", + "value": { + "_type": "primitive", + "value": "FLOAT" + } + } + } + }, + { + "name": { + "name": { + "originalName": "metadata", + "camelCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "snakeCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "screamingSnakeCase": { + "unsafeName": "METADATA", + "safeName": "METADATA" + }, + "pascalCase": { + "unsafeName": "Metadata", + "safeName": "Metadata" + } + }, + "wireValue": "metadata" + }, + "typeReference": { + "_type": "optional", + "value": { + "_type": "named", + "value": "type_:Metadata" + } + } + }, + { + "name": { + "name": { + "originalName": "indexedData", + "camelCase": { + "unsafeName": "indexedData", + "safeName": "indexedData" + }, + "snakeCase": { + "unsafeName": "indexed_data", + "safeName": "indexed_data" + }, + "screamingSnakeCase": { + "unsafeName": "INDEXED_DATA", + "safeName": "INDEXED_DATA" + }, + "pascalCase": { + "unsafeName": "IndexedData", + "safeName": "IndexedData" + } + }, + "wireValue": "indexedData" + }, + "typeReference": { + "_type": "optional", + "value": { + "_type": "named", + "value": "type_:IndexedData" + } + } + } + ] + }, + "type_:UpdateResponse": { + "type": "object", + "declaration": { + "name": { + "originalName": "UpdateResponse", + "camelCase": { + "unsafeName": "updateResponse", + "safeName": "updateResponse" + }, + "snakeCase": { + "unsafeName": "update_response", + "safeName": "update_response" + }, + "screamingSnakeCase": { + "unsafeName": "UPDATE_RESPONSE", + "safeName": "UPDATE_RESPONSE" + }, + "pascalCase": { + "unsafeName": "UpdateResponse", + "safeName": "UpdateResponse" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + } + }, + "properties": [] + }, + "type_:UploadResponse": { + "type": "object", + "declaration": { + "name": { + "originalName": "UploadResponse", + "camelCase": { + "unsafeName": "uploadResponse", + "safeName": "uploadResponse" + }, + "snakeCase": { + "unsafeName": "upload_response", + "safeName": "upload_response" + }, + "screamingSnakeCase": { + "unsafeName": "UPLOAD_RESPONSE", + "safeName": "UPLOAD_RESPONSE" + }, + "pascalCase": { + "unsafeName": "UploadResponse", + "safeName": "UploadResponse" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + } + }, + "properties": [ + { + "name": { + "name": { + "originalName": "count", + "camelCase": { + "unsafeName": "count", + "safeName": "count" + }, + "snakeCase": { + "unsafeName": "count", + "safeName": "count" + }, + "screamingSnakeCase": { + "unsafeName": "COUNT", + "safeName": "COUNT" + }, + "pascalCase": { + "unsafeName": "Count", + "safeName": "Count" + } + }, + "wireValue": "count" + }, + "typeReference": { + "_type": "optional", + "value": { + "_type": "primitive", + "value": "UINT" + } + } + } + ] + }, + "type_:Usage": { + "type": "object", + "declaration": { + "name": { + "originalName": "Usage", + "camelCase": { + "unsafeName": "usage", + "safeName": "usage" + }, + "snakeCase": { + "unsafeName": "usage", + "safeName": "usage" + }, + "screamingSnakeCase": { + "unsafeName": "USAGE", + "safeName": "USAGE" + }, + "pascalCase": { + "unsafeName": "Usage", + "safeName": "Usage" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + } + }, + "properties": [ + { + "name": { + "name": { + "originalName": "units", + "camelCase": { + "unsafeName": "units", + "safeName": "units" + }, + "snakeCase": { + "unsafeName": "units", + "safeName": "units" + }, + "screamingSnakeCase": { + "unsafeName": "UNITS", + "safeName": "UNITS" + }, + "pascalCase": { + "unsafeName": "Units", + "safeName": "Units" + } + }, + "wireValue": "units" + }, + "typeReference": { + "_type": "optional", + "value": { + "_type": "primitive", + "value": "UINT" + } + } + } + ] + }, + "type_:Metadata": { + "type": "undiscriminatedUnion", + "declaration": { + "name": { + "originalName": "Metadata", + "camelCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "snakeCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "screamingSnakeCase": { + "unsafeName": "METADATA", + "safeName": "METADATA" + }, + "pascalCase": { + "unsafeName": "Metadata", + "safeName": "Metadata" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + } + }, + "types": [ + { + "_type": "map", + "key": { + "_type": "primitive", + "value": "STRING" + }, + "value": { + "_type": "named", + "value": "type_:MetadataValue" + } + }, + { + "_type": "map", + "key": { + "_type": "primitive", + "value": "STRING" + }, + "value": { + "_type": "unknown" + } + } + ] + }, + "type_:MetadataValue": { + "type": "undiscriminatedUnion", + "declaration": { + "name": { + "originalName": "MetadataValue", + "camelCase": { + "unsafeName": "metadataValue", + "safeName": "metadataValue" + }, + "snakeCase": { + "unsafeName": "metadata_value", + "safeName": "metadata_value" + }, + "screamingSnakeCase": { + "unsafeName": "METADATA_VALUE", + "safeName": "METADATA_VALUE" + }, + "pascalCase": { + "unsafeName": "MetadataValue", + "safeName": "MetadataValue" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + } + }, + "types": [ + { + "_type": "primitive", + "value": "DOUBLE" + }, + { + "_type": "primitive", + "value": "STRING" + }, + { + "_type": "primitive", + "value": "BOOLEAN" + } + ] + } + }, + "headers": [], + "endpoints": { + "endpoint_dataservice.foo": { + "auth": null, + "declaration": { + "name": { + "originalName": "foo", + "camelCase": { + "unsafeName": "foo", + "safeName": "foo" + }, + "snakeCase": { + "unsafeName": "foo", + "safeName": "foo" + }, + "screamingSnakeCase": { + "unsafeName": "FOO", + "safeName": "FOO" + }, + "pascalCase": { + "unsafeName": "Foo", + "safeName": "Foo" + } + }, + "fernFilepath": { + "allParts": [ + { + "originalName": "dataservice", + "camelCase": { + "unsafeName": "dataservice", + "safeName": "dataservice" + }, + "snakeCase": { + "unsafeName": "dataservice", + "safeName": "dataservice" + }, + "screamingSnakeCase": { + "unsafeName": "DATASERVICE", + "safeName": "DATASERVICE" + }, + "pascalCase": { + "unsafeName": "Dataservice", + "safeName": "Dataservice" + } + } + ], + "packagePath": [], + "file": { + "originalName": "dataservice", + "camelCase": { + "unsafeName": "dataservice", + "safeName": "dataservice" + }, + "snakeCase": { + "unsafeName": "dataservice", + "safeName": "dataservice" + }, + "screamingSnakeCase": { + "unsafeName": "DATASERVICE", + "safeName": "DATASERVICE" + }, + "pascalCase": { + "unsafeName": "Dataservice", + "safeName": "Dataservice" + } + } + } + }, + "location": { + "method": "POST", + "path": "/foo" + }, + "request": { + "type": "body", + "pathParameters": [], + "body": null + }, + "response": { + "type": "json" + } + }, + "endpoint_dataservice.upload": { + "auth": null, + "declaration": { + "name": { + "originalName": "upload", + "camelCase": { + "unsafeName": "upload", + "safeName": "upload" + }, + "snakeCase": { + "unsafeName": "upload", + "safeName": "upload" + }, + "screamingSnakeCase": { + "unsafeName": "UPLOAD", + "safeName": "UPLOAD" + }, + "pascalCase": { + "unsafeName": "Upload", + "safeName": "Upload" + } + }, + "fernFilepath": { + "allParts": [ + { + "originalName": "dataservice", + "camelCase": { + "unsafeName": "dataservice", + "safeName": "dataservice" + }, + "snakeCase": { + "unsafeName": "dataservice", + "safeName": "dataservice" + }, + "screamingSnakeCase": { + "unsafeName": "DATASERVICE", + "safeName": "DATASERVICE" + }, + "pascalCase": { + "unsafeName": "Dataservice", + "safeName": "Dataservice" + } + } + ], + "packagePath": [], + "file": { + "originalName": "dataservice", + "camelCase": { + "unsafeName": "dataservice", + "safeName": "dataservice" + }, + "snakeCase": { + "unsafeName": "dataservice", + "safeName": "dataservice" + }, + "screamingSnakeCase": { + "unsafeName": "DATASERVICE", + "safeName": "DATASERVICE" + }, + "pascalCase": { + "unsafeName": "Dataservice", + "safeName": "Dataservice" + } + } + } + }, + "location": { + "method": "POST", + "path": "/data" + }, + "request": { + "type": "inlined", + "declaration": { + "name": { + "originalName": "UploadRequest", + "camelCase": { + "unsafeName": "uploadRequest", + "safeName": "uploadRequest" + }, + "snakeCase": { + "unsafeName": "upload_request", + "safeName": "upload_request" + }, + "screamingSnakeCase": { + "unsafeName": "UPLOAD_REQUEST", + "safeName": "UPLOAD_REQUEST" + }, + "pascalCase": { + "unsafeName": "UploadRequest", + "safeName": "UploadRequest" + } + }, + "fernFilepath": { + "allParts": [ + { + "originalName": "dataservice", + "camelCase": { + "unsafeName": "dataservice", + "safeName": "dataservice" + }, + "snakeCase": { + "unsafeName": "dataservice", + "safeName": "dataservice" + }, + "screamingSnakeCase": { + "unsafeName": "DATASERVICE", + "safeName": "DATASERVICE" + }, + "pascalCase": { + "unsafeName": "Dataservice", + "safeName": "Dataservice" + } + } + ], + "packagePath": [], + "file": { + "originalName": "dataservice", + "camelCase": { + "unsafeName": "dataservice", + "safeName": "dataservice" + }, + "snakeCase": { + "unsafeName": "dataservice", + "safeName": "dataservice" + }, + "screamingSnakeCase": { + "unsafeName": "DATASERVICE", + "safeName": "DATASERVICE" + }, + "pascalCase": { + "unsafeName": "Dataservice", + "safeName": "Dataservice" + } + } + } + }, + "pathParameters": [], + "queryParameters": [], + "headers": [], + "body": { + "type": "properties", + "value": [ + { + "name": { + "name": { + "originalName": "columns", + "camelCase": { + "unsafeName": "columns", + "safeName": "columns" + }, + "snakeCase": { + "unsafeName": "columns", + "safeName": "columns" + }, + "screamingSnakeCase": { + "unsafeName": "COLUMNS", + "safeName": "COLUMNS" + }, + "pascalCase": { + "unsafeName": "Columns", + "safeName": "Columns" + } + }, + "wireValue": "columns" + }, + "typeReference": { + "_type": "list", + "value": { + "_type": "named", + "value": "type_:Column" + } + } + }, + { + "name": { + "name": { + "originalName": "namespace", + "camelCase": { + "unsafeName": "namespace", + "safeName": "namespace" + }, + "snakeCase": { + "unsafeName": "namespace", + "safeName": "namespace" + }, + "screamingSnakeCase": { + "unsafeName": "NAMESPACE", + "safeName": "NAMESPACE" + }, + "pascalCase": { + "unsafeName": "Namespace", + "safeName": "Namespace" + } + }, + "wireValue": "namespace" + }, + "typeReference": { + "_type": "optional", + "value": { + "_type": "primitive", + "value": "STRING" + } + } + } + ] + } + }, + "response": { + "type": "json" + } + }, + "endpoint_dataservice.delete": { + "auth": null, + "declaration": { + "name": { + "originalName": "delete", + "camelCase": { + "unsafeName": "delete", + "safeName": "delete" + }, + "snakeCase": { + "unsafeName": "delete", + "safeName": "delete" + }, + "screamingSnakeCase": { + "unsafeName": "DELETE", + "safeName": "DELETE" + }, + "pascalCase": { + "unsafeName": "Delete", + "safeName": "Delete" + } + }, + "fernFilepath": { + "allParts": [ + { + "originalName": "dataservice", + "camelCase": { + "unsafeName": "dataservice", + "safeName": "dataservice" + }, + "snakeCase": { + "unsafeName": "dataservice", + "safeName": "dataservice" + }, + "screamingSnakeCase": { + "unsafeName": "DATASERVICE", + "safeName": "DATASERVICE" + }, + "pascalCase": { + "unsafeName": "Dataservice", + "safeName": "Dataservice" + } + } + ], + "packagePath": [], + "file": { + "originalName": "dataservice", + "camelCase": { + "unsafeName": "dataservice", + "safeName": "dataservice" + }, + "snakeCase": { + "unsafeName": "dataservice", + "safeName": "dataservice" + }, + "screamingSnakeCase": { + "unsafeName": "DATASERVICE", + "safeName": "DATASERVICE" + }, + "pascalCase": { + "unsafeName": "Dataservice", + "safeName": "Dataservice" + } + } + } + }, + "location": { + "method": "POST", + "path": "/data/delete" + }, + "request": { + "type": "inlined", + "declaration": { + "name": { + "originalName": "DeleteRequest", + "camelCase": { + "unsafeName": "deleteRequest", + "safeName": "deleteRequest" + }, + "snakeCase": { + "unsafeName": "delete_request", + "safeName": "delete_request" + }, + "screamingSnakeCase": { + "unsafeName": "DELETE_REQUEST", + "safeName": "DELETE_REQUEST" + }, + "pascalCase": { + "unsafeName": "DeleteRequest", + "safeName": "DeleteRequest" + } + }, + "fernFilepath": { + "allParts": [ + { + "originalName": "dataservice", + "camelCase": { + "unsafeName": "dataservice", + "safeName": "dataservice" + }, + "snakeCase": { + "unsafeName": "dataservice", + "safeName": "dataservice" + }, + "screamingSnakeCase": { + "unsafeName": "DATASERVICE", + "safeName": "DATASERVICE" + }, + "pascalCase": { + "unsafeName": "Dataservice", + "safeName": "Dataservice" + } + } + ], + "packagePath": [], + "file": { + "originalName": "dataservice", + "camelCase": { + "unsafeName": "dataservice", + "safeName": "dataservice" + }, + "snakeCase": { + "unsafeName": "dataservice", + "safeName": "dataservice" + }, + "screamingSnakeCase": { + "unsafeName": "DATASERVICE", + "safeName": "DATASERVICE" + }, + "pascalCase": { + "unsafeName": "Dataservice", + "safeName": "Dataservice" + } + } + } + }, + "pathParameters": [], + "queryParameters": [], + "headers": [], + "body": { + "type": "properties", + "value": [ + { + "name": { + "name": { + "originalName": "ids", + "camelCase": { + "unsafeName": "ids", + "safeName": "ids" + }, + "snakeCase": { + "unsafeName": "ids", + "safeName": "ids" + }, + "screamingSnakeCase": { + "unsafeName": "IDS", + "safeName": "IDS" + }, + "pascalCase": { + "unsafeName": "IDs", + "safeName": "IDs" + } + }, + "wireValue": "ids" + }, + "typeReference": { + "_type": "optional", + "value": { + "_type": "list", + "value": { + "_type": "primitive", + "value": "STRING" + } + } + } + }, + { + "name": { + "name": { + "originalName": "deleteAll", + "camelCase": { + "unsafeName": "deleteAll", + "safeName": "deleteAll" + }, + "snakeCase": { + "unsafeName": "delete_all", + "safeName": "delete_all" + }, + "screamingSnakeCase": { + "unsafeName": "DELETE_ALL", + "safeName": "DELETE_ALL" + }, + "pascalCase": { + "unsafeName": "DeleteAll", + "safeName": "DeleteAll" + } + }, + "wireValue": "deleteAll" + }, + "typeReference": { + "_type": "optional", + "value": { + "_type": "primitive", + "value": "BOOLEAN" + } + } + }, + { + "name": { + "name": { + "originalName": "namespace", + "camelCase": { + "unsafeName": "namespace", + "safeName": "namespace" + }, + "snakeCase": { + "unsafeName": "namespace", + "safeName": "namespace" + }, + "screamingSnakeCase": { + "unsafeName": "NAMESPACE", + "safeName": "NAMESPACE" + }, + "pascalCase": { + "unsafeName": "Namespace", + "safeName": "Namespace" + } + }, + "wireValue": "namespace" + }, + "typeReference": { + "_type": "optional", + "value": { + "_type": "primitive", + "value": "STRING" + } + } + }, + { + "name": { + "name": { + "originalName": "filter", + "camelCase": { + "unsafeName": "filter", + "safeName": "filter" + }, + "snakeCase": { + "unsafeName": "filter", + "safeName": "filter" + }, + "screamingSnakeCase": { + "unsafeName": "FILTER", + "safeName": "FILTER" + }, + "pascalCase": { + "unsafeName": "Filter", + "safeName": "Filter" + } + }, + "wireValue": "filter" + }, + "typeReference": { + "_type": "optional", + "value": { + "_type": "named", + "value": "type_:Metadata" + } + } + } + ] + } + }, + "response": { + "type": "json" + } + }, + "endpoint_dataservice.describe": { + "auth": null, + "declaration": { + "name": { + "originalName": "describe", + "camelCase": { + "unsafeName": "describe", + "safeName": "describe" + }, + "snakeCase": { + "unsafeName": "describe", + "safeName": "describe" + }, + "screamingSnakeCase": { + "unsafeName": "DESCRIBE", + "safeName": "DESCRIBE" + }, + "pascalCase": { + "unsafeName": "Describe", + "safeName": "Describe" + } + }, + "fernFilepath": { + "allParts": [ + { + "originalName": "dataservice", + "camelCase": { + "unsafeName": "dataservice", + "safeName": "dataservice" + }, + "snakeCase": { + "unsafeName": "dataservice", + "safeName": "dataservice" + }, + "screamingSnakeCase": { + "unsafeName": "DATASERVICE", + "safeName": "DATASERVICE" + }, + "pascalCase": { + "unsafeName": "Dataservice", + "safeName": "Dataservice" + } + } + ], + "packagePath": [], + "file": { + "originalName": "dataservice", + "camelCase": { + "unsafeName": "dataservice", + "safeName": "dataservice" + }, + "snakeCase": { + "unsafeName": "dataservice", + "safeName": "dataservice" + }, + "screamingSnakeCase": { + "unsafeName": "DATASERVICE", + "safeName": "DATASERVICE" + }, + "pascalCase": { + "unsafeName": "Dataservice", + "safeName": "Dataservice" + } + } + } + }, + "location": { + "method": "POST", + "path": "/data/describe" + }, + "request": { + "type": "inlined", + "declaration": { + "name": { + "originalName": "DescribeRequest", + "camelCase": { + "unsafeName": "describeRequest", + "safeName": "describeRequest" + }, + "snakeCase": { + "unsafeName": "describe_request", + "safeName": "describe_request" + }, + "screamingSnakeCase": { + "unsafeName": "DESCRIBE_REQUEST", + "safeName": "DESCRIBE_REQUEST" + }, + "pascalCase": { + "unsafeName": "DescribeRequest", + "safeName": "DescribeRequest" + } + }, + "fernFilepath": { + "allParts": [ + { + "originalName": "dataservice", + "camelCase": { + "unsafeName": "dataservice", + "safeName": "dataservice" + }, + "snakeCase": { + "unsafeName": "dataservice", + "safeName": "dataservice" + }, + "screamingSnakeCase": { + "unsafeName": "DATASERVICE", + "safeName": "DATASERVICE" + }, + "pascalCase": { + "unsafeName": "Dataservice", + "safeName": "Dataservice" + } + } + ], + "packagePath": [], + "file": { + "originalName": "dataservice", + "camelCase": { + "unsafeName": "dataservice", + "safeName": "dataservice" + }, + "snakeCase": { + "unsafeName": "dataservice", + "safeName": "dataservice" + }, + "screamingSnakeCase": { + "unsafeName": "DATASERVICE", + "safeName": "DATASERVICE" + }, + "pascalCase": { + "unsafeName": "Dataservice", + "safeName": "Dataservice" + } + } + } + }, + "pathParameters": [], + "queryParameters": [], + "headers": [], + "body": { + "type": "properties", + "value": [ + { + "name": { + "name": { + "originalName": "filter", + "camelCase": { + "unsafeName": "filter", + "safeName": "filter" + }, + "snakeCase": { + "unsafeName": "filter", + "safeName": "filter" + }, + "screamingSnakeCase": { + "unsafeName": "FILTER", + "safeName": "FILTER" + }, + "pascalCase": { + "unsafeName": "Filter", + "safeName": "Filter" + } + }, + "wireValue": "filter" + }, + "typeReference": { + "_type": "optional", + "value": { + "_type": "named", + "value": "type_:Metadata" + } + } + } + ] + } + }, + "response": { + "type": "json" + } + }, + "endpoint_dataservice.fetch": { + "auth": null, + "declaration": { + "name": { + "originalName": "fetch", + "camelCase": { + "unsafeName": "fetch", + "safeName": "fetch" + }, + "snakeCase": { + "unsafeName": "fetch", + "safeName": "fetch" + }, + "screamingSnakeCase": { + "unsafeName": "FETCH", + "safeName": "FETCH" + }, + "pascalCase": { + "unsafeName": "Fetch", + "safeName": "Fetch" + } + }, + "fernFilepath": { + "allParts": [ + { + "originalName": "dataservice", + "camelCase": { + "unsafeName": "dataservice", + "safeName": "dataservice" + }, + "snakeCase": { + "unsafeName": "dataservice", + "safeName": "dataservice" + }, + "screamingSnakeCase": { + "unsafeName": "DATASERVICE", + "safeName": "DATASERVICE" + }, + "pascalCase": { + "unsafeName": "Dataservice", + "safeName": "Dataservice" + } + } + ], + "packagePath": [], + "file": { + "originalName": "dataservice", + "camelCase": { + "unsafeName": "dataservice", + "safeName": "dataservice" + }, + "snakeCase": { + "unsafeName": "dataservice", + "safeName": "dataservice" + }, + "screamingSnakeCase": { + "unsafeName": "DATASERVICE", + "safeName": "DATASERVICE" + }, + "pascalCase": { + "unsafeName": "Dataservice", + "safeName": "Dataservice" + } + } + } + }, + "location": { + "method": "GET", + "path": "/data/fetch" + }, + "request": { + "type": "inlined", + "declaration": { + "name": { + "originalName": "FetchRequest", + "camelCase": { + "unsafeName": "fetchRequest", + "safeName": "fetchRequest" + }, + "snakeCase": { + "unsafeName": "fetch_request", + "safeName": "fetch_request" + }, + "screamingSnakeCase": { + "unsafeName": "FETCH_REQUEST", + "safeName": "FETCH_REQUEST" + }, + "pascalCase": { + "unsafeName": "FetchRequest", + "safeName": "FetchRequest" + } + }, + "fernFilepath": { + "allParts": [ + { + "originalName": "dataservice", + "camelCase": { + "unsafeName": "dataservice", + "safeName": "dataservice" + }, + "snakeCase": { + "unsafeName": "dataservice", + "safeName": "dataservice" + }, + "screamingSnakeCase": { + "unsafeName": "DATASERVICE", + "safeName": "DATASERVICE" + }, + "pascalCase": { + "unsafeName": "Dataservice", + "safeName": "Dataservice" + } + } + ], + "packagePath": [], + "file": { + "originalName": "dataservice", + "camelCase": { + "unsafeName": "dataservice", + "safeName": "dataservice" + }, + "snakeCase": { + "unsafeName": "dataservice", + "safeName": "dataservice" + }, + "screamingSnakeCase": { + "unsafeName": "DATASERVICE", + "safeName": "DATASERVICE" + }, + "pascalCase": { + "unsafeName": "Dataservice", + "safeName": "Dataservice" + } + } + } + }, + "pathParameters": [], + "queryParameters": [ + { + "name": { + "name": { + "originalName": "ids", + "camelCase": { + "unsafeName": "ids", + "safeName": "ids" + }, + "snakeCase": { + "unsafeName": "ids", + "safeName": "ids" + }, + "screamingSnakeCase": { + "unsafeName": "IDS", + "safeName": "IDS" + }, + "pascalCase": { + "unsafeName": "IDs", + "safeName": "IDs" + } + }, + "wireValue": "ids" + }, + "typeReference": { + "_type": "list", + "value": { + "_type": "optional", + "value": { + "_type": "primitive", + "value": "STRING" + } + } + } + }, + { + "name": { + "name": { + "originalName": "namespace", + "camelCase": { + "unsafeName": "namespace", + "safeName": "namespace" + }, + "snakeCase": { + "unsafeName": "namespace", + "safeName": "namespace" + }, + "screamingSnakeCase": { + "unsafeName": "NAMESPACE", + "safeName": "NAMESPACE" + }, + "pascalCase": { + "unsafeName": "Namespace", + "safeName": "Namespace" + } + }, + "wireValue": "namespace" + }, + "typeReference": { + "_type": "optional", + "value": { + "_type": "primitive", + "value": "STRING" + } + } + } + ], + "headers": [], + "body": null + }, + "response": { + "type": "json" + } + }, + "endpoint_dataservice.list": { + "auth": null, + "declaration": { + "name": { + "originalName": "list", + "camelCase": { + "unsafeName": "list", + "safeName": "list" + }, + "snakeCase": { + "unsafeName": "list", + "safeName": "list" + }, + "screamingSnakeCase": { + "unsafeName": "LIST", + "safeName": "LIST" + }, + "pascalCase": { + "unsafeName": "List", + "safeName": "List" + } + }, + "fernFilepath": { + "allParts": [ + { + "originalName": "dataservice", + "camelCase": { + "unsafeName": "dataservice", + "safeName": "dataservice" + }, + "snakeCase": { + "unsafeName": "dataservice", + "safeName": "dataservice" + }, + "screamingSnakeCase": { + "unsafeName": "DATASERVICE", + "safeName": "DATASERVICE" + }, + "pascalCase": { + "unsafeName": "Dataservice", + "safeName": "Dataservice" + } + } + ], + "packagePath": [], + "file": { + "originalName": "dataservice", + "camelCase": { + "unsafeName": "dataservice", + "safeName": "dataservice" + }, + "snakeCase": { + "unsafeName": "dataservice", + "safeName": "dataservice" + }, + "screamingSnakeCase": { + "unsafeName": "DATASERVICE", + "safeName": "DATASERVICE" + }, + "pascalCase": { + "unsafeName": "Dataservice", + "safeName": "Dataservice" + } + } + } + }, + "location": { + "method": "GET", + "path": "/data/list" + }, + "request": { + "type": "inlined", + "declaration": { + "name": { + "originalName": "ListRequest", + "camelCase": { + "unsafeName": "listRequest", + "safeName": "listRequest" + }, + "snakeCase": { + "unsafeName": "list_request", + "safeName": "list_request" + }, + "screamingSnakeCase": { + "unsafeName": "LIST_REQUEST", + "safeName": "LIST_REQUEST" + }, + "pascalCase": { + "unsafeName": "ListRequest", + "safeName": "ListRequest" + } + }, + "fernFilepath": { + "allParts": [ + { + "originalName": "dataservice", + "camelCase": { + "unsafeName": "dataservice", + "safeName": "dataservice" + }, + "snakeCase": { + "unsafeName": "dataservice", + "safeName": "dataservice" + }, + "screamingSnakeCase": { + "unsafeName": "DATASERVICE", + "safeName": "DATASERVICE" + }, + "pascalCase": { + "unsafeName": "Dataservice", + "safeName": "Dataservice" + } + } + ], + "packagePath": [], + "file": { + "originalName": "dataservice", + "camelCase": { + "unsafeName": "dataservice", + "safeName": "dataservice" + }, + "snakeCase": { + "unsafeName": "dataservice", + "safeName": "dataservice" + }, + "screamingSnakeCase": { + "unsafeName": "DATASERVICE", + "safeName": "DATASERVICE" + }, + "pascalCase": { + "unsafeName": "Dataservice", + "safeName": "Dataservice" + } + } + } + }, + "pathParameters": [], + "queryParameters": [ + { + "name": { + "name": { + "originalName": "prefix", + "camelCase": { + "unsafeName": "prefix", + "safeName": "prefix" + }, + "snakeCase": { + "unsafeName": "prefix", + "safeName": "prefix" + }, + "screamingSnakeCase": { + "unsafeName": "PREFIX", + "safeName": "PREFIX" + }, + "pascalCase": { + "unsafeName": "Prefix", + "safeName": "Prefix" + } + }, + "wireValue": "prefix" + }, + "typeReference": { + "_type": "optional", + "value": { + "_type": "primitive", + "value": "STRING" + } + } + }, + { + "name": { + "name": { + "originalName": "limit", + "camelCase": { + "unsafeName": "limit", + "safeName": "limit" + }, + "snakeCase": { + "unsafeName": "limit", + "safeName": "limit" + }, + "screamingSnakeCase": { + "unsafeName": "LIMIT", + "safeName": "LIMIT" + }, + "pascalCase": { + "unsafeName": "Limit", + "safeName": "Limit" + } + }, + "wireValue": "limit" + }, + "typeReference": { + "_type": "optional", + "value": { + "_type": "primitive", + "value": "UINT" + } + } + }, + { + "name": { + "name": { + "originalName": "paginationToken", + "camelCase": { + "unsafeName": "paginationToken", + "safeName": "paginationToken" + }, + "snakeCase": { + "unsafeName": "pagination_token", + "safeName": "pagination_token" + }, + "screamingSnakeCase": { + "unsafeName": "PAGINATION_TOKEN", + "safeName": "PAGINATION_TOKEN" + }, + "pascalCase": { + "unsafeName": "PaginationToken", + "safeName": "PaginationToken" + } + }, + "wireValue": "paginationToken" + }, + "typeReference": { + "_type": "optional", + "value": { + "_type": "primitive", + "value": "STRING" + } + } + }, + { + "name": { + "name": { + "originalName": "namespace", + "camelCase": { + "unsafeName": "namespace", + "safeName": "namespace" + }, + "snakeCase": { + "unsafeName": "namespace", + "safeName": "namespace" + }, + "screamingSnakeCase": { + "unsafeName": "NAMESPACE", + "safeName": "NAMESPACE" + }, + "pascalCase": { + "unsafeName": "Namespace", + "safeName": "Namespace" + } + }, + "wireValue": "namespace" + }, + "typeReference": { + "_type": "optional", + "value": { + "_type": "primitive", + "value": "STRING" + } + } + } + ], + "headers": [], + "body": null + }, + "response": { + "type": "json" + } + }, + "endpoint_dataservice.query": { + "auth": null, + "declaration": { + "name": { + "originalName": "query", + "camelCase": { + "unsafeName": "query", + "safeName": "query" + }, + "snakeCase": { + "unsafeName": "query", + "safeName": "query" + }, + "screamingSnakeCase": { + "unsafeName": "QUERY", + "safeName": "QUERY" + }, + "pascalCase": { + "unsafeName": "Query", + "safeName": "Query" + } + }, + "fernFilepath": { + "allParts": [ + { + "originalName": "dataservice", + "camelCase": { + "unsafeName": "dataservice", + "safeName": "dataservice" + }, + "snakeCase": { + "unsafeName": "dataservice", + "safeName": "dataservice" + }, + "screamingSnakeCase": { + "unsafeName": "DATASERVICE", + "safeName": "DATASERVICE" + }, + "pascalCase": { + "unsafeName": "Dataservice", + "safeName": "Dataservice" + } + } + ], + "packagePath": [], + "file": { + "originalName": "dataservice", + "camelCase": { + "unsafeName": "dataservice", + "safeName": "dataservice" + }, + "snakeCase": { + "unsafeName": "dataservice", + "safeName": "dataservice" + }, + "screamingSnakeCase": { + "unsafeName": "DATASERVICE", + "safeName": "DATASERVICE" + }, + "pascalCase": { + "unsafeName": "Dataservice", + "safeName": "Dataservice" + } + } + } + }, + "location": { + "method": "POST", + "path": "/data/query" + }, + "request": { + "type": "inlined", + "declaration": { + "name": { + "originalName": "QueryRequest", + "camelCase": { + "unsafeName": "queryRequest", + "safeName": "queryRequest" + }, + "snakeCase": { + "unsafeName": "query_request", + "safeName": "query_request" + }, + "screamingSnakeCase": { + "unsafeName": "QUERY_REQUEST", + "safeName": "QUERY_REQUEST" + }, + "pascalCase": { + "unsafeName": "QueryRequest", + "safeName": "QueryRequest" + } + }, + "fernFilepath": { + "allParts": [ + { + "originalName": "dataservice", + "camelCase": { + "unsafeName": "dataservice", + "safeName": "dataservice" + }, + "snakeCase": { + "unsafeName": "dataservice", + "safeName": "dataservice" + }, + "screamingSnakeCase": { + "unsafeName": "DATASERVICE", + "safeName": "DATASERVICE" + }, + "pascalCase": { + "unsafeName": "Dataservice", + "safeName": "Dataservice" + } + } + ], + "packagePath": [], + "file": { + "originalName": "dataservice", + "camelCase": { + "unsafeName": "dataservice", + "safeName": "dataservice" + }, + "snakeCase": { + "unsafeName": "dataservice", + "safeName": "dataservice" + }, + "screamingSnakeCase": { + "unsafeName": "DATASERVICE", + "safeName": "DATASERVICE" + }, + "pascalCase": { + "unsafeName": "Dataservice", + "safeName": "Dataservice" + } + } + } + }, + "pathParameters": [], + "queryParameters": [], + "headers": [], + "body": { + "type": "properties", + "value": [ + { + "name": { + "name": { + "originalName": "namespace", + "camelCase": { + "unsafeName": "namespace", + "safeName": "namespace" + }, + "snakeCase": { + "unsafeName": "namespace", + "safeName": "namespace" + }, + "screamingSnakeCase": { + "unsafeName": "NAMESPACE", + "safeName": "NAMESPACE" + }, + "pascalCase": { + "unsafeName": "Namespace", + "safeName": "Namespace" + } + }, + "wireValue": "namespace" + }, + "typeReference": { + "_type": "optional", + "value": { + "_type": "primitive", + "value": "STRING" + } + } + }, + { + "name": { + "name": { + "originalName": "topK", + "camelCase": { + "unsafeName": "topK", + "safeName": "topK" + }, + "snakeCase": { + "unsafeName": "top_k", + "safeName": "top_k" + }, + "screamingSnakeCase": { + "unsafeName": "TOP_K", + "safeName": "TOP_K" + }, + "pascalCase": { + "unsafeName": "TopK", + "safeName": "TopK" + } + }, + "wireValue": "topK" + }, + "typeReference": { + "_type": "primitive", + "value": "UINT" + } + }, + { + "name": { + "name": { + "originalName": "filter", + "camelCase": { + "unsafeName": "filter", + "safeName": "filter" + }, + "snakeCase": { + "unsafeName": "filter", + "safeName": "filter" + }, + "screamingSnakeCase": { + "unsafeName": "FILTER", + "safeName": "FILTER" + }, + "pascalCase": { + "unsafeName": "Filter", + "safeName": "Filter" + } + }, + "wireValue": "filter" + }, + "typeReference": { + "_type": "optional", + "value": { + "_type": "named", + "value": "type_:Metadata" + } + } + }, + { + "name": { + "name": { + "originalName": "includeValues", + "camelCase": { + "unsafeName": "includeValues", + "safeName": "includeValues" + }, + "snakeCase": { + "unsafeName": "include_values", + "safeName": "include_values" + }, + "screamingSnakeCase": { + "unsafeName": "INCLUDE_VALUES", + "safeName": "INCLUDE_VALUES" + }, + "pascalCase": { + "unsafeName": "IncludeValues", + "safeName": "IncludeValues" + } + }, + "wireValue": "includeValues" + }, + "typeReference": { + "_type": "optional", + "value": { + "_type": "primitive", + "value": "BOOLEAN" + } + } + }, + { + "name": { + "name": { + "originalName": "includeMetadata", + "camelCase": { + "unsafeName": "includeMetadata", + "safeName": "includeMetadata" + }, + "snakeCase": { + "unsafeName": "include_metadata", + "safeName": "include_metadata" + }, + "screamingSnakeCase": { + "unsafeName": "INCLUDE_METADATA", + "safeName": "INCLUDE_METADATA" + }, + "pascalCase": { + "unsafeName": "IncludeMetadata", + "safeName": "IncludeMetadata" + } + }, + "wireValue": "includeMetadata" + }, + "typeReference": { + "_type": "optional", + "value": { + "_type": "primitive", + "value": "BOOLEAN" + } + } + }, + { + "name": { + "name": { + "originalName": "queries", + "camelCase": { + "unsafeName": "queries", + "safeName": "queries" + }, + "snakeCase": { + "unsafeName": "queries", + "safeName": "queries" + }, + "screamingSnakeCase": { + "unsafeName": "QUERIES", + "safeName": "QUERIES" + }, + "pascalCase": { + "unsafeName": "Queries", + "safeName": "Queries" + } + }, + "wireValue": "queries" + }, + "typeReference": { + "_type": "optional", + "value": { + "_type": "list", + "value": { + "_type": "named", + "value": "type_:QueryColumn" + } + } + } + }, + { + "name": { + "name": { + "originalName": "column", + "camelCase": { + "unsafeName": "column", + "safeName": "column" + }, + "snakeCase": { + "unsafeName": "column", + "safeName": "column" + }, + "screamingSnakeCase": { + "unsafeName": "COLUMN", + "safeName": "COLUMN" + }, + "pascalCase": { + "unsafeName": "Column", + "safeName": "Column" + } + }, + "wireValue": "column" + }, + "typeReference": { + "_type": "optional", + "value": { + "_type": "list", + "value": { + "_type": "primitive", + "value": "FLOAT" + } + } + } + }, + { + "name": { + "name": { + "originalName": "id", + "camelCase": { + "unsafeName": "id", + "safeName": "id" + }, + "snakeCase": { + "unsafeName": "id", + "safeName": "id" + }, + "screamingSnakeCase": { + "unsafeName": "ID", + "safeName": "ID" + }, + "pascalCase": { + "unsafeName": "ID", + "safeName": "ID" + } + }, + "wireValue": "id" + }, + "typeReference": { + "_type": "optional", + "value": { + "_type": "primitive", + "value": "STRING" + } + } + }, + { + "name": { + "name": { + "originalName": "indexedData", + "camelCase": { + "unsafeName": "indexedData", + "safeName": "indexedData" + }, + "snakeCase": { + "unsafeName": "indexed_data", + "safeName": "indexed_data" + }, + "screamingSnakeCase": { + "unsafeName": "INDEXED_DATA", + "safeName": "INDEXED_DATA" + }, + "pascalCase": { + "unsafeName": "IndexedData", + "safeName": "IndexedData" + } + }, + "wireValue": "indexedData" + }, + "typeReference": { + "_type": "optional", + "value": { + "_type": "named", + "value": "type_:IndexedData" + } + } + } + ] + } + }, + "response": { + "type": "json" + } + }, + "endpoint_dataservice.update": { + "auth": null, + "declaration": { + "name": { + "originalName": "update", + "camelCase": { + "unsafeName": "update", + "safeName": "update" + }, + "snakeCase": { + "unsafeName": "update", + "safeName": "update" + }, + "screamingSnakeCase": { + "unsafeName": "UPDATE", + "safeName": "UPDATE" + }, + "pascalCase": { + "unsafeName": "Update", + "safeName": "Update" + } + }, + "fernFilepath": { + "allParts": [ + { + "originalName": "dataservice", + "camelCase": { + "unsafeName": "dataservice", + "safeName": "dataservice" + }, + "snakeCase": { + "unsafeName": "dataservice", + "safeName": "dataservice" + }, + "screamingSnakeCase": { + "unsafeName": "DATASERVICE", + "safeName": "DATASERVICE" + }, + "pascalCase": { + "unsafeName": "Dataservice", + "safeName": "Dataservice" + } + } + ], + "packagePath": [], + "file": { + "originalName": "dataservice", + "camelCase": { + "unsafeName": "dataservice", + "safeName": "dataservice" + }, + "snakeCase": { + "unsafeName": "dataservice", + "safeName": "dataservice" + }, + "screamingSnakeCase": { + "unsafeName": "DATASERVICE", + "safeName": "DATASERVICE" + }, + "pascalCase": { + "unsafeName": "Dataservice", + "safeName": "Dataservice" + } + } + } + }, + "location": { + "method": "POST", + "path": "/data/update" + }, + "request": { + "type": "inlined", + "declaration": { + "name": { + "originalName": "UpdateRequest", + "camelCase": { + "unsafeName": "updateRequest", + "safeName": "updateRequest" + }, + "snakeCase": { + "unsafeName": "update_request", + "safeName": "update_request" + }, + "screamingSnakeCase": { + "unsafeName": "UPDATE_REQUEST", + "safeName": "UPDATE_REQUEST" + }, + "pascalCase": { + "unsafeName": "UpdateRequest", + "safeName": "UpdateRequest" + } + }, + "fernFilepath": { + "allParts": [ + { + "originalName": "dataservice", + "camelCase": { + "unsafeName": "dataservice", + "safeName": "dataservice" + }, + "snakeCase": { + "unsafeName": "dataservice", + "safeName": "dataservice" + }, + "screamingSnakeCase": { + "unsafeName": "DATASERVICE", + "safeName": "DATASERVICE" + }, + "pascalCase": { + "unsafeName": "Dataservice", + "safeName": "Dataservice" + } + } + ], + "packagePath": [], + "file": { + "originalName": "dataservice", + "camelCase": { + "unsafeName": "dataservice", + "safeName": "dataservice" + }, + "snakeCase": { + "unsafeName": "dataservice", + "safeName": "dataservice" + }, + "screamingSnakeCase": { + "unsafeName": "DATASERVICE", + "safeName": "DATASERVICE" + }, + "pascalCase": { + "unsafeName": "Dataservice", + "safeName": "Dataservice" + } + } + } + }, + "pathParameters": [], + "queryParameters": [], + "headers": [], + "body": { + "type": "properties", + "value": [ + { + "name": { + "name": { + "originalName": "id", + "camelCase": { + "unsafeName": "id", + "safeName": "id" + }, + "snakeCase": { + "unsafeName": "id", + "safeName": "id" + }, + "screamingSnakeCase": { + "unsafeName": "ID", + "safeName": "ID" + }, + "pascalCase": { + "unsafeName": "ID", + "safeName": "ID" + } + }, + "wireValue": "id" + }, + "typeReference": { + "_type": "primitive", + "value": "STRING" + } + }, + { + "name": { + "name": { + "originalName": "values", + "camelCase": { + "unsafeName": "values", + "safeName": "values" + }, + "snakeCase": { + "unsafeName": "values", + "safeName": "values" + }, + "screamingSnakeCase": { + "unsafeName": "VALUES", + "safeName": "VALUES" + }, + "pascalCase": { + "unsafeName": "Values", + "safeName": "Values" + } + }, + "wireValue": "values" + }, + "typeReference": { + "_type": "optional", + "value": { + "_type": "list", + "value": { + "_type": "primitive", + "value": "FLOAT" + } + } + } + }, + { + "name": { + "name": { + "originalName": "setMetadata", + "camelCase": { + "unsafeName": "setMetadata", + "safeName": "setMetadata" + }, + "snakeCase": { + "unsafeName": "set_metadata", + "safeName": "set_metadata" + }, + "screamingSnakeCase": { + "unsafeName": "SET_METADATA", + "safeName": "SET_METADATA" + }, + "pascalCase": { + "unsafeName": "SetMetadata", + "safeName": "SetMetadata" + } + }, + "wireValue": "setMetadata" + }, + "typeReference": { + "_type": "optional", + "value": { + "_type": "named", + "value": "type_:Metadata" + } + } + }, + { + "name": { + "name": { + "originalName": "namespace", + "camelCase": { + "unsafeName": "namespace", + "safeName": "namespace" + }, + "snakeCase": { + "unsafeName": "namespace", + "safeName": "namespace" + }, + "screamingSnakeCase": { + "unsafeName": "NAMESPACE", + "safeName": "NAMESPACE" + }, + "pascalCase": { + "unsafeName": "Namespace", + "safeName": "Namespace" + } + }, + "wireValue": "namespace" + }, + "typeReference": { + "_type": "optional", + "value": { + "_type": "primitive", + "value": "STRING" + } + } + }, + { + "name": { + "name": { + "originalName": "indexedData", + "camelCase": { + "unsafeName": "indexedData", + "safeName": "indexedData" + }, + "snakeCase": { + "unsafeName": "indexed_data", + "safeName": "indexed_data" + }, + "screamingSnakeCase": { + "unsafeName": "INDEXED_DATA", + "safeName": "INDEXED_DATA" + }, + "pascalCase": { + "unsafeName": "IndexedData", + "safeName": "IndexedData" + } + }, + "wireValue": "indexedData" + }, + "typeReference": { + "_type": "optional", + "value": { + "_type": "named", + "value": "type_:IndexedData" + } + } + } + ] + } + }, + "response": { + "type": "json" + } + } + } +} \ No newline at end of file diff --git a/packages/cli/dynamic-snippets/src/__test__/test-definitions/csharp-grpc-proto.json b/packages/cli/dynamic-snippets/src/__test__/test-definitions/csharp-grpc-proto.json new file mode 100644 index 00000000000..ddda8ee63d7 --- /dev/null +++ b/packages/cli/dynamic-snippets/src/__test__/test-definitions/csharp-grpc-proto.json @@ -0,0 +1,655 @@ +{ + "version": "1.0.0", + "types": { + "type_:CreateResponse": { + "type": "object", + "declaration": { + "name": { + "originalName": "CreateResponse", + "camelCase": { + "unsafeName": "createResponse", + "safeName": "createResponse" + }, + "snakeCase": { + "unsafeName": "create_response", + "safeName": "create_response" + }, + "screamingSnakeCase": { + "unsafeName": "CREATE_RESPONSE", + "safeName": "CREATE_RESPONSE" + }, + "pascalCase": { + "unsafeName": "CreateResponse", + "safeName": "CreateResponse" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + } + }, + "properties": [ + { + "name": { + "name": { + "originalName": "user", + "camelCase": { + "unsafeName": "user", + "safeName": "user" + }, + "snakeCase": { + "unsafeName": "user", + "safeName": "user" + }, + "screamingSnakeCase": { + "unsafeName": "USER", + "safeName": "USER" + }, + "pascalCase": { + "unsafeName": "User", + "safeName": "User" + } + }, + "wireValue": "user" + }, + "typeReference": { + "_type": "optional", + "value": { + "_type": "named", + "value": "type_:UserModel" + } + } + } + ] + }, + "type_:UserModel": { + "type": "object", + "declaration": { + "name": { + "originalName": "UserModel", + "camelCase": { + "unsafeName": "userModel", + "safeName": "userModel" + }, + "snakeCase": { + "unsafeName": "user_model", + "safeName": "user_model" + }, + "screamingSnakeCase": { + "unsafeName": "USER_MODEL", + "safeName": "USER_MODEL" + }, + "pascalCase": { + "unsafeName": "UserModel", + "safeName": "UserModel" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + } + }, + "properties": [ + { + "name": { + "name": { + "originalName": "username", + "camelCase": { + "unsafeName": "username", + "safeName": "username" + }, + "snakeCase": { + "unsafeName": "username", + "safeName": "username" + }, + "screamingSnakeCase": { + "unsafeName": "USERNAME", + "safeName": "USERNAME" + }, + "pascalCase": { + "unsafeName": "Username", + "safeName": "Username" + } + }, + "wireValue": "username" + }, + "typeReference": { + "_type": "optional", + "value": { + "_type": "primitive", + "value": "STRING" + } + } + }, + { + "name": { + "name": { + "originalName": "email", + "camelCase": { + "unsafeName": "email", + "safeName": "email" + }, + "snakeCase": { + "unsafeName": "email", + "safeName": "email" + }, + "screamingSnakeCase": { + "unsafeName": "EMAIL", + "safeName": "EMAIL" + }, + "pascalCase": { + "unsafeName": "Email", + "safeName": "Email" + } + }, + "wireValue": "email" + }, + "typeReference": { + "_type": "optional", + "value": { + "_type": "primitive", + "value": "STRING" + } + } + }, + { + "name": { + "name": { + "originalName": "age", + "camelCase": { + "unsafeName": "age", + "safeName": "age" + }, + "snakeCase": { + "unsafeName": "age", + "safeName": "age" + }, + "screamingSnakeCase": { + "unsafeName": "AGE", + "safeName": "AGE" + }, + "pascalCase": { + "unsafeName": "Age", + "safeName": "Age" + } + }, + "wireValue": "age" + }, + "typeReference": { + "_type": "optional", + "value": { + "_type": "primitive", + "value": "UINT" + } + } + }, + { + "name": { + "name": { + "originalName": "weight", + "camelCase": { + "unsafeName": "weight", + "safeName": "weight" + }, + "snakeCase": { + "unsafeName": "weight", + "safeName": "weight" + }, + "screamingSnakeCase": { + "unsafeName": "WEIGHT", + "safeName": "WEIGHT" + }, + "pascalCase": { + "unsafeName": "Weight", + "safeName": "Weight" + } + }, + "wireValue": "weight" + }, + "typeReference": { + "_type": "optional", + "value": { + "_type": "primitive", + "value": "FLOAT" + } + } + }, + { + "name": { + "name": { + "originalName": "metadata", + "camelCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "snakeCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "screamingSnakeCase": { + "unsafeName": "METADATA", + "safeName": "METADATA" + }, + "pascalCase": { + "unsafeName": "Metadata", + "safeName": "Metadata" + } + }, + "wireValue": "metadata" + }, + "typeReference": { + "_type": "optional", + "value": { + "_type": "named", + "value": "type_:Metadata" + } + } + } + ] + }, + "type_:Metadata": { + "type": "undiscriminatedUnion", + "declaration": { + "name": { + "originalName": "Metadata", + "camelCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "snakeCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "screamingSnakeCase": { + "unsafeName": "METADATA", + "safeName": "METADATA" + }, + "pascalCase": { + "unsafeName": "Metadata", + "safeName": "Metadata" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + } + }, + "types": [ + { + "_type": "map", + "key": { + "_type": "primitive", + "value": "STRING" + }, + "value": { + "_type": "named", + "value": "type_:MetadataValue" + } + }, + { + "_type": "map", + "key": { + "_type": "primitive", + "value": "STRING" + }, + "value": { + "_type": "unknown" + } + } + ] + }, + "type_:MetadataValue": { + "type": "undiscriminatedUnion", + "declaration": { + "name": { + "originalName": "MetadataValue", + "camelCase": { + "unsafeName": "metadataValue", + "safeName": "metadataValue" + }, + "snakeCase": { + "unsafeName": "metadata_value", + "safeName": "metadata_value" + }, + "screamingSnakeCase": { + "unsafeName": "METADATA_VALUE", + "safeName": "METADATA_VALUE" + }, + "pascalCase": { + "unsafeName": "MetadataValue", + "safeName": "MetadataValue" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + } + }, + "types": [ + { + "_type": "primitive", + "value": "DOUBLE" + }, + { + "_type": "primitive", + "value": "STRING" + }, + { + "_type": "primitive", + "value": "BOOLEAN" + } + ] + } + }, + "headers": [], + "endpoints": { + "endpoint_userservice.create": { + "auth": null, + "declaration": { + "name": { + "originalName": "create", + "camelCase": { + "unsafeName": "create", + "safeName": "create" + }, + "snakeCase": { + "unsafeName": "create", + "safeName": "create" + }, + "screamingSnakeCase": { + "unsafeName": "CREATE", + "safeName": "CREATE" + }, + "pascalCase": { + "unsafeName": "Create", + "safeName": "Create" + } + }, + "fernFilepath": { + "allParts": [ + { + "originalName": "userservice", + "camelCase": { + "unsafeName": "userservice", + "safeName": "userservice" + }, + "snakeCase": { + "unsafeName": "userservice", + "safeName": "userservice" + }, + "screamingSnakeCase": { + "unsafeName": "USERSERVICE", + "safeName": "USERSERVICE" + }, + "pascalCase": { + "unsafeName": "Userservice", + "safeName": "Userservice" + } + } + ], + "packagePath": [], + "file": { + "originalName": "userservice", + "camelCase": { + "unsafeName": "userservice", + "safeName": "userservice" + }, + "snakeCase": { + "unsafeName": "userservice", + "safeName": "userservice" + }, + "screamingSnakeCase": { + "unsafeName": "USERSERVICE", + "safeName": "USERSERVICE" + }, + "pascalCase": { + "unsafeName": "Userservice", + "safeName": "Userservice" + } + } + } + }, + "location": { + "method": "POST", + "path": "/users" + }, + "request": { + "type": "inlined", + "declaration": { + "name": { + "originalName": "CreateRequest", + "camelCase": { + "unsafeName": "createRequest", + "safeName": "createRequest" + }, + "snakeCase": { + "unsafeName": "create_request", + "safeName": "create_request" + }, + "screamingSnakeCase": { + "unsafeName": "CREATE_REQUEST", + "safeName": "CREATE_REQUEST" + }, + "pascalCase": { + "unsafeName": "CreateRequest", + "safeName": "CreateRequest" + } + }, + "fernFilepath": { + "allParts": [ + { + "originalName": "userservice", + "camelCase": { + "unsafeName": "userservice", + "safeName": "userservice" + }, + "snakeCase": { + "unsafeName": "userservice", + "safeName": "userservice" + }, + "screamingSnakeCase": { + "unsafeName": "USERSERVICE", + "safeName": "USERSERVICE" + }, + "pascalCase": { + "unsafeName": "Userservice", + "safeName": "Userservice" + } + } + ], + "packagePath": [], + "file": { + "originalName": "userservice", + "camelCase": { + "unsafeName": "userservice", + "safeName": "userservice" + }, + "snakeCase": { + "unsafeName": "userservice", + "safeName": "userservice" + }, + "screamingSnakeCase": { + "unsafeName": "USERSERVICE", + "safeName": "USERSERVICE" + }, + "pascalCase": { + "unsafeName": "Userservice", + "safeName": "Userservice" + } + } + } + }, + "pathParameters": [], + "queryParameters": [], + "headers": [], + "body": { + "type": "properties", + "value": [ + { + "name": { + "name": { + "originalName": "username", + "camelCase": { + "unsafeName": "username", + "safeName": "username" + }, + "snakeCase": { + "unsafeName": "username", + "safeName": "username" + }, + "screamingSnakeCase": { + "unsafeName": "USERNAME", + "safeName": "USERNAME" + }, + "pascalCase": { + "unsafeName": "Username", + "safeName": "Username" + } + }, + "wireValue": "username" + }, + "typeReference": { + "_type": "optional", + "value": { + "_type": "primitive", + "value": "STRING" + } + } + }, + { + "name": { + "name": { + "originalName": "email", + "camelCase": { + "unsafeName": "email", + "safeName": "email" + }, + "snakeCase": { + "unsafeName": "email", + "safeName": "email" + }, + "screamingSnakeCase": { + "unsafeName": "EMAIL", + "safeName": "EMAIL" + }, + "pascalCase": { + "unsafeName": "Email", + "safeName": "Email" + } + }, + "wireValue": "email" + }, + "typeReference": { + "_type": "optional", + "value": { + "_type": "primitive", + "value": "STRING" + } + } + }, + { + "name": { + "name": { + "originalName": "age", + "camelCase": { + "unsafeName": "age", + "safeName": "age" + }, + "snakeCase": { + "unsafeName": "age", + "safeName": "age" + }, + "screamingSnakeCase": { + "unsafeName": "AGE", + "safeName": "AGE" + }, + "pascalCase": { + "unsafeName": "Age", + "safeName": "Age" + } + }, + "wireValue": "age" + }, + "typeReference": { + "_type": "optional", + "value": { + "_type": "primitive", + "value": "UINT" + } + } + }, + { + "name": { + "name": { + "originalName": "weight", + "camelCase": { + "unsafeName": "weight", + "safeName": "weight" + }, + "snakeCase": { + "unsafeName": "weight", + "safeName": "weight" + }, + "screamingSnakeCase": { + "unsafeName": "WEIGHT", + "safeName": "WEIGHT" + }, + "pascalCase": { + "unsafeName": "Weight", + "safeName": "Weight" + } + }, + "wireValue": "weight" + }, + "typeReference": { + "_type": "optional", + "value": { + "_type": "primitive", + "value": "FLOAT" + } + } + }, + { + "name": { + "name": { + "originalName": "metadata", + "camelCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "snakeCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "screamingSnakeCase": { + "unsafeName": "METADATA", + "safeName": "METADATA" + }, + "pascalCase": { + "unsafeName": "Metadata", + "safeName": "Metadata" + } + }, + "wireValue": "metadata" + }, + "typeReference": { + "_type": "optional", + "value": { + "_type": "named", + "value": "type_:Metadata" + } + } + } + ] + } + }, + "response": { + "type": "json" + } + } + } +} \ No newline at end of file diff --git a/packages/cli/fern-definition/ir-to-jsonschema/src/__test__/__snapshots__/csharp-grpc-proto-exhaustive/type__Column.json b/packages/cli/fern-definition/ir-to-jsonschema/src/__test__/__snapshots__/csharp-grpc-proto-exhaustive/type__Column.json new file mode 100644 index 00000000000..2e037c2df9c --- /dev/null +++ b/packages/cli/fern-definition/ir-to-jsonschema/src/__test__/__snapshots__/csharp-grpc-proto-exhaustive/type__Column.json @@ -0,0 +1,100 @@ +{ + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "values": { + "type": "array", + "items": { + "type": "number" + } + }, + "metadata": { + "oneOf": [ + { + "$ref": "#/definitions/Metadata" + }, + { + "type": "null" + } + ] + }, + "indexedData": { + "oneOf": [ + { + "$ref": "#/definitions/IndexedData" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "id", + "values" + ], + "additionalProperties": false, + "definitions": { + "MetadataValue": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "string" + }, + { + "type": "boolean" + } + ] + }, + "Metadata": { + "anyOf": [ + { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/MetadataValue" + } + }, + { + "type": "object", + "additionalProperties": { + "type": [ + "string", + "number", + "boolean", + "object", + "array", + "null" + ] + } + } + ] + }, + "IndexedData": { + "type": "object", + "properties": { + "indices": { + "type": "array", + "items": { + "type": "integer", + "minimum": 0 + } + }, + "values": { + "type": "array", + "items": { + "type": "number" + } + } + }, + "required": [ + "indices", + "values" + ], + "additionalProperties": false + } + } +} \ No newline at end of file diff --git a/packages/cli/fern-definition/ir-to-jsonschema/src/__test__/__snapshots__/csharp-grpc-proto-exhaustive/type__DeleteResponse.json b/packages/cli/fern-definition/ir-to-jsonschema/src/__test__/__snapshots__/csharp-grpc-proto-exhaustive/type__DeleteResponse.json new file mode 100644 index 00000000000..2b13c5c0434 --- /dev/null +++ b/packages/cli/fern-definition/ir-to-jsonschema/src/__test__/__snapshots__/csharp-grpc-proto-exhaustive/type__DeleteResponse.json @@ -0,0 +1,5 @@ +{ + "type": "object", + "additionalProperties": false, + "definitions": {} +} \ No newline at end of file diff --git a/packages/cli/fern-definition/ir-to-jsonschema/src/__test__/__snapshots__/csharp-grpc-proto-exhaustive/type__DescribeResponse.json b/packages/cli/fern-definition/ir-to-jsonschema/src/__test__/__snapshots__/csharp-grpc-proto-exhaustive/type__DescribeResponse.json new file mode 100644 index 00000000000..ff833e2184b --- /dev/null +++ b/packages/cli/fern-definition/ir-to-jsonschema/src/__test__/__snapshots__/csharp-grpc-proto-exhaustive/type__DescribeResponse.json @@ -0,0 +1,70 @@ +{ + "type": "object", + "properties": { + "namespaces": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/NamespaceSummary" + } + }, + { + "type": "null" + } + ] + }, + "dimension": { + "oneOf": [ + { + "type": "integer", + "minimum": 0 + }, + { + "type": "null" + } + ] + }, + "fullness": { + "oneOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "totalCount": { + "oneOf": [ + { + "type": "integer", + "minimum": 0 + }, + { + "type": "null" + } + ] + } + }, + "additionalProperties": false, + "definitions": { + "NamespaceSummary": { + "type": "object", + "properties": { + "count": { + "oneOf": [ + { + "type": "integer", + "minimum": 0 + }, + { + "type": "null" + } + ] + } + }, + "additionalProperties": false + } + } +} \ No newline at end of file diff --git a/packages/cli/fern-definition/ir-to-jsonschema/src/__test__/__snapshots__/csharp-grpc-proto-exhaustive/type__FetchResponse.json b/packages/cli/fern-definition/ir-to-jsonschema/src/__test__/__snapshots__/csharp-grpc-proto-exhaustive/type__FetchResponse.json new file mode 100644 index 00000000000..c08d8b8b3b8 --- /dev/null +++ b/packages/cli/fern-definition/ir-to-jsonschema/src/__test__/__snapshots__/csharp-grpc-proto-exhaustive/type__FetchResponse.json @@ -0,0 +1,156 @@ +{ + "type": "object", + "properties": { + "columns": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/Column" + } + }, + { + "type": "null" + } + ] + }, + "namespace": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "usage": { + "oneOf": [ + { + "$ref": "#/definitions/Usage" + }, + { + "type": "null" + } + ] + } + }, + "additionalProperties": false, + "definitions": { + "MetadataValue": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "string" + }, + { + "type": "boolean" + } + ] + }, + "Metadata": { + "anyOf": [ + { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/MetadataValue" + } + }, + { + "type": "object", + "additionalProperties": { + "type": [ + "string", + "number", + "boolean", + "object", + "array", + "null" + ] + } + } + ] + }, + "IndexedData": { + "type": "object", + "properties": { + "indices": { + "type": "array", + "items": { + "type": "integer", + "minimum": 0 + } + }, + "values": { + "type": "array", + "items": { + "type": "number" + } + } + }, + "required": [ + "indices", + "values" + ], + "additionalProperties": false + }, + "Column": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "values": { + "type": "array", + "items": { + "type": "number" + } + }, + "metadata": { + "oneOf": [ + { + "$ref": "#/definitions/Metadata" + }, + { + "type": "null" + } + ] + }, + "indexedData": { + "oneOf": [ + { + "$ref": "#/definitions/IndexedData" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "id", + "values" + ], + "additionalProperties": false + }, + "Usage": { + "type": "object", + "properties": { + "units": { + "oneOf": [ + { + "type": "integer", + "minimum": 0 + }, + { + "type": "null" + } + ] + } + }, + "additionalProperties": false + } + } +} \ No newline at end of file diff --git a/packages/cli/fern-definition/ir-to-jsonschema/src/__test__/__snapshots__/csharp-grpc-proto-exhaustive/type__IndexedData.json b/packages/cli/fern-definition/ir-to-jsonschema/src/__test__/__snapshots__/csharp-grpc-proto-exhaustive/type__IndexedData.json new file mode 100644 index 00000000000..1825538ce91 --- /dev/null +++ b/packages/cli/fern-definition/ir-to-jsonschema/src/__test__/__snapshots__/csharp-grpc-proto-exhaustive/type__IndexedData.json @@ -0,0 +1,24 @@ +{ + "type": "object", + "properties": { + "indices": { + "type": "array", + "items": { + "type": "integer", + "minimum": 0 + } + }, + "values": { + "type": "array", + "items": { + "type": "number" + } + } + }, + "required": [ + "indices", + "values" + ], + "additionalProperties": false, + "definitions": {} +} \ No newline at end of file diff --git a/packages/cli/fern-definition/ir-to-jsonschema/src/__test__/__snapshots__/csharp-grpc-proto-exhaustive/type__ListElement.json b/packages/cli/fern-definition/ir-to-jsonschema/src/__test__/__snapshots__/csharp-grpc-proto-exhaustive/type__ListElement.json new file mode 100644 index 00000000000..05f2b9661f6 --- /dev/null +++ b/packages/cli/fern-definition/ir-to-jsonschema/src/__test__/__snapshots__/csharp-grpc-proto-exhaustive/type__ListElement.json @@ -0,0 +1,17 @@ +{ + "type": "object", + "properties": { + "id": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "additionalProperties": false, + "definitions": {} +} \ No newline at end of file diff --git a/packages/cli/fern-definition/ir-to-jsonschema/src/__test__/__snapshots__/csharp-grpc-proto-exhaustive/type__ListResponse.json b/packages/cli/fern-definition/ir-to-jsonschema/src/__test__/__snapshots__/csharp-grpc-proto-exhaustive/type__ListResponse.json new file mode 100644 index 00000000000..d88fde68362 --- /dev/null +++ b/packages/cli/fern-definition/ir-to-jsonschema/src/__test__/__snapshots__/csharp-grpc-proto-exhaustive/type__ListResponse.json @@ -0,0 +1,100 @@ +{ + "type": "object", + "properties": { + "columns": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/ListElement" + } + }, + { + "type": "null" + } + ] + }, + "pagination": { + "oneOf": [ + { + "$ref": "#/definitions/Pagination" + }, + { + "type": "null" + } + ] + }, + "namespace": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "usage": { + "oneOf": [ + { + "$ref": "#/definitions/Usage" + }, + { + "type": "null" + } + ] + } + }, + "additionalProperties": false, + "definitions": { + "ListElement": { + "type": "object", + "properties": { + "id": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "additionalProperties": false + }, + "Pagination": { + "type": "object", + "properties": { + "next": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "additionalProperties": false + }, + "Usage": { + "type": "object", + "properties": { + "units": { + "oneOf": [ + { + "type": "integer", + "minimum": 0 + }, + { + "type": "null" + } + ] + } + }, + "additionalProperties": false + } + } +} \ No newline at end of file diff --git a/packages/cli/fern-definition/ir-to-jsonschema/src/__test__/__snapshots__/csharp-grpc-proto-exhaustive/type__Metadata.json b/packages/cli/fern-definition/ir-to-jsonschema/src/__test__/__snapshots__/csharp-grpc-proto-exhaustive/type__Metadata.json new file mode 100644 index 00000000000..cb86dba2f66 --- /dev/null +++ b/packages/cli/fern-definition/ir-to-jsonschema/src/__test__/__snapshots__/csharp-grpc-proto-exhaustive/type__Metadata.json @@ -0,0 +1,38 @@ +{ + "anyOf": [ + { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/MetadataValue" + } + }, + { + "type": "object", + "additionalProperties": { + "type": [ + "string", + "number", + "boolean", + "object", + "array", + "null" + ] + } + } + ], + "definitions": { + "MetadataValue": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "string" + }, + { + "type": "boolean" + } + ] + } + } +} \ No newline at end of file diff --git a/packages/cli/fern-definition/ir-to-jsonschema/src/__test__/__snapshots__/csharp-grpc-proto-exhaustive/type__MetadataValue.json b/packages/cli/fern-definition/ir-to-jsonschema/src/__test__/__snapshots__/csharp-grpc-proto-exhaustive/type__MetadataValue.json new file mode 100644 index 00000000000..8eadd5b7552 --- /dev/null +++ b/packages/cli/fern-definition/ir-to-jsonschema/src/__test__/__snapshots__/csharp-grpc-proto-exhaustive/type__MetadataValue.json @@ -0,0 +1,14 @@ +{ + "anyOf": [ + { + "type": "number" + }, + { + "type": "string" + }, + { + "type": "boolean" + } + ], + "definitions": {} +} \ No newline at end of file diff --git a/packages/cli/fern-definition/ir-to-jsonschema/src/__test__/__snapshots__/csharp-grpc-proto-exhaustive/type__NamespaceSummary.json b/packages/cli/fern-definition/ir-to-jsonschema/src/__test__/__snapshots__/csharp-grpc-proto-exhaustive/type__NamespaceSummary.json new file mode 100644 index 00000000000..8643c2cec21 --- /dev/null +++ b/packages/cli/fern-definition/ir-to-jsonschema/src/__test__/__snapshots__/csharp-grpc-proto-exhaustive/type__NamespaceSummary.json @@ -0,0 +1,18 @@ +{ + "type": "object", + "properties": { + "count": { + "oneOf": [ + { + "type": "integer", + "minimum": 0 + }, + { + "type": "null" + } + ] + } + }, + "additionalProperties": false, + "definitions": {} +} \ No newline at end of file diff --git a/packages/cli/fern-definition/ir-to-jsonschema/src/__test__/__snapshots__/csharp-grpc-proto-exhaustive/type__Pagination.json b/packages/cli/fern-definition/ir-to-jsonschema/src/__test__/__snapshots__/csharp-grpc-proto-exhaustive/type__Pagination.json new file mode 100644 index 00000000000..2ab3ed4b018 --- /dev/null +++ b/packages/cli/fern-definition/ir-to-jsonschema/src/__test__/__snapshots__/csharp-grpc-proto-exhaustive/type__Pagination.json @@ -0,0 +1,17 @@ +{ + "type": "object", + "properties": { + "next": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "additionalProperties": false, + "definitions": {} +} \ No newline at end of file diff --git a/packages/cli/fern-definition/ir-to-jsonschema/src/__test__/__snapshots__/csharp-grpc-proto-exhaustive/type__QueryColumn.json b/packages/cli/fern-definition/ir-to-jsonschema/src/__test__/__snapshots__/csharp-grpc-proto-exhaustive/type__QueryColumn.json new file mode 100644 index 00000000000..e8b51935264 --- /dev/null +++ b/packages/cli/fern-definition/ir-to-jsonschema/src/__test__/__snapshots__/csharp-grpc-proto-exhaustive/type__QueryColumn.json @@ -0,0 +1,117 @@ +{ + "type": "object", + "properties": { + "values": { + "type": "array", + "items": { + "type": "number" + } + }, + "topK": { + "oneOf": [ + { + "type": "integer", + "minimum": 0 + }, + { + "type": "null" + } + ] + }, + "namespace": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "filter": { + "oneOf": [ + { + "$ref": "#/definitions/Metadata" + }, + { + "type": "null" + } + ] + }, + "indexedData": { + "oneOf": [ + { + "$ref": "#/definitions/IndexedData" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "values" + ], + "additionalProperties": false, + "definitions": { + "MetadataValue": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "string" + }, + { + "type": "boolean" + } + ] + }, + "Metadata": { + "anyOf": [ + { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/MetadataValue" + } + }, + { + "type": "object", + "additionalProperties": { + "type": [ + "string", + "number", + "boolean", + "object", + "array", + "null" + ] + } + } + ] + }, + "IndexedData": { + "type": "object", + "properties": { + "indices": { + "type": "array", + "items": { + "type": "integer", + "minimum": 0 + } + }, + "values": { + "type": "array", + "items": { + "type": "number" + } + } + }, + "required": [ + "indices", + "values" + ], + "additionalProperties": false + } + } +} \ No newline at end of file diff --git a/packages/cli/fern-definition/ir-to-jsonschema/src/__test__/__snapshots__/csharp-grpc-proto-exhaustive/type__QueryResponse.json b/packages/cli/fern-definition/ir-to-jsonschema/src/__test__/__snapshots__/csharp-grpc-proto-exhaustive/type__QueryResponse.json new file mode 100644 index 00000000000..10daf0c5fd8 --- /dev/null +++ b/packages/cli/fern-definition/ir-to-jsonschema/src/__test__/__snapshots__/csharp-grpc-proto-exhaustive/type__QueryResponse.json @@ -0,0 +1,214 @@ +{ + "type": "object", + "properties": { + "results": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/QueryResult" + } + }, + { + "type": "null" + } + ] + }, + "matches": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/ScoredColumn" + } + }, + { + "type": "null" + } + ] + }, + "namespace": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "usage": { + "oneOf": [ + { + "$ref": "#/definitions/Usage" + }, + { + "type": "null" + } + ] + } + }, + "additionalProperties": false, + "definitions": { + "MetadataValue": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "string" + }, + { + "type": "boolean" + } + ] + }, + "Metadata": { + "anyOf": [ + { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/MetadataValue" + } + }, + { + "type": "object", + "additionalProperties": { + "type": [ + "string", + "number", + "boolean", + "object", + "array", + "null" + ] + } + } + ] + }, + "IndexedData": { + "type": "object", + "properties": { + "indices": { + "type": "array", + "items": { + "type": "integer", + "minimum": 0 + } + }, + "values": { + "type": "array", + "items": { + "type": "number" + } + } + }, + "required": [ + "indices", + "values" + ], + "additionalProperties": false + }, + "ScoredColumn": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "score": { + "oneOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "values": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "number" + } + }, + { + "type": "null" + } + ] + }, + "metadata": { + "oneOf": [ + { + "$ref": "#/definitions/Metadata" + }, + { + "type": "null" + } + ] + }, + "indexedData": { + "oneOf": [ + { + "$ref": "#/definitions/IndexedData" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "id" + ], + "additionalProperties": false + }, + "QueryResult": { + "type": "object", + "properties": { + "matches": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/ScoredColumn" + } + }, + { + "type": "null" + } + ] + }, + "namespace": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "additionalProperties": false + }, + "Usage": { + "type": "object", + "properties": { + "units": { + "oneOf": [ + { + "type": "integer", + "minimum": 0 + }, + { + "type": "null" + } + ] + } + }, + "additionalProperties": false + } + } +} \ No newline at end of file diff --git a/packages/cli/fern-definition/ir-to-jsonschema/src/__test__/__snapshots__/csharp-grpc-proto-exhaustive/type__QueryResult.json b/packages/cli/fern-definition/ir-to-jsonschema/src/__test__/__snapshots__/csharp-grpc-proto-exhaustive/type__QueryResult.json new file mode 100644 index 00000000000..7e4ebc95350 --- /dev/null +++ b/packages/cli/fern-definition/ir-to-jsonschema/src/__test__/__snapshots__/csharp-grpc-proto-exhaustive/type__QueryResult.json @@ -0,0 +1,145 @@ +{ + "type": "object", + "properties": { + "matches": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/ScoredColumn" + } + }, + { + "type": "null" + } + ] + }, + "namespace": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "additionalProperties": false, + "definitions": { + "MetadataValue": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "string" + }, + { + "type": "boolean" + } + ] + }, + "Metadata": { + "anyOf": [ + { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/MetadataValue" + } + }, + { + "type": "object", + "additionalProperties": { + "type": [ + "string", + "number", + "boolean", + "object", + "array", + "null" + ] + } + } + ] + }, + "IndexedData": { + "type": "object", + "properties": { + "indices": { + "type": "array", + "items": { + "type": "integer", + "minimum": 0 + } + }, + "values": { + "type": "array", + "items": { + "type": "number" + } + } + }, + "required": [ + "indices", + "values" + ], + "additionalProperties": false + }, + "ScoredColumn": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "score": { + "oneOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "values": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "number" + } + }, + { + "type": "null" + } + ] + }, + "metadata": { + "oneOf": [ + { + "$ref": "#/definitions/Metadata" + }, + { + "type": "null" + } + ] + }, + "indexedData": { + "oneOf": [ + { + "$ref": "#/definitions/IndexedData" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "id" + ], + "additionalProperties": false + } + } +} \ No newline at end of file diff --git a/packages/cli/fern-definition/ir-to-jsonschema/src/__test__/__snapshots__/csharp-grpc-proto-exhaustive/type__ScoredColumn.json b/packages/cli/fern-definition/ir-to-jsonschema/src/__test__/__snapshots__/csharp-grpc-proto-exhaustive/type__ScoredColumn.json new file mode 100644 index 00000000000..4667e397cdc --- /dev/null +++ b/packages/cli/fern-definition/ir-to-jsonschema/src/__test__/__snapshots__/csharp-grpc-proto-exhaustive/type__ScoredColumn.json @@ -0,0 +1,116 @@ +{ + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "score": { + "oneOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "values": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "number" + } + }, + { + "type": "null" + } + ] + }, + "metadata": { + "oneOf": [ + { + "$ref": "#/definitions/Metadata" + }, + { + "type": "null" + } + ] + }, + "indexedData": { + "oneOf": [ + { + "$ref": "#/definitions/IndexedData" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "id" + ], + "additionalProperties": false, + "definitions": { + "MetadataValue": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "string" + }, + { + "type": "boolean" + } + ] + }, + "Metadata": { + "anyOf": [ + { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/MetadataValue" + } + }, + { + "type": "object", + "additionalProperties": { + "type": [ + "string", + "number", + "boolean", + "object", + "array", + "null" + ] + } + } + ] + }, + "IndexedData": { + "type": "object", + "properties": { + "indices": { + "type": "array", + "items": { + "type": "integer", + "minimum": 0 + } + }, + "values": { + "type": "array", + "items": { + "type": "number" + } + } + }, + "required": [ + "indices", + "values" + ], + "additionalProperties": false + } + } +} \ No newline at end of file diff --git a/packages/cli/fern-definition/ir-to-jsonschema/src/__test__/__snapshots__/csharp-grpc-proto-exhaustive/type__UpdateResponse.json b/packages/cli/fern-definition/ir-to-jsonschema/src/__test__/__snapshots__/csharp-grpc-proto-exhaustive/type__UpdateResponse.json new file mode 100644 index 00000000000..2b13c5c0434 --- /dev/null +++ b/packages/cli/fern-definition/ir-to-jsonschema/src/__test__/__snapshots__/csharp-grpc-proto-exhaustive/type__UpdateResponse.json @@ -0,0 +1,5 @@ +{ + "type": "object", + "additionalProperties": false, + "definitions": {} +} \ No newline at end of file diff --git a/packages/cli/fern-definition/ir-to-jsonschema/src/__test__/__snapshots__/csharp-grpc-proto-exhaustive/type__UploadResponse.json b/packages/cli/fern-definition/ir-to-jsonschema/src/__test__/__snapshots__/csharp-grpc-proto-exhaustive/type__UploadResponse.json new file mode 100644 index 00000000000..8643c2cec21 --- /dev/null +++ b/packages/cli/fern-definition/ir-to-jsonschema/src/__test__/__snapshots__/csharp-grpc-proto-exhaustive/type__UploadResponse.json @@ -0,0 +1,18 @@ +{ + "type": "object", + "properties": { + "count": { + "oneOf": [ + { + "type": "integer", + "minimum": 0 + }, + { + "type": "null" + } + ] + } + }, + "additionalProperties": false, + "definitions": {} +} \ No newline at end of file diff --git a/packages/cli/fern-definition/ir-to-jsonschema/src/__test__/__snapshots__/csharp-grpc-proto-exhaustive/type__Usage.json b/packages/cli/fern-definition/ir-to-jsonschema/src/__test__/__snapshots__/csharp-grpc-proto-exhaustive/type__Usage.json new file mode 100644 index 00000000000..654daa628c2 --- /dev/null +++ b/packages/cli/fern-definition/ir-to-jsonschema/src/__test__/__snapshots__/csharp-grpc-proto-exhaustive/type__Usage.json @@ -0,0 +1,18 @@ +{ + "type": "object", + "properties": { + "units": { + "oneOf": [ + { + "type": "integer", + "minimum": 0 + }, + { + "type": "null" + } + ] + } + }, + "additionalProperties": false, + "definitions": {} +} \ No newline at end of file diff --git a/packages/cli/fern-definition/ir-to-jsonschema/src/__test__/__snapshots__/csharp-grpc-proto/type__CreateResponse.json b/packages/cli/fern-definition/ir-to-jsonschema/src/__test__/__snapshots__/csharp-grpc-proto/type__CreateResponse.json new file mode 100644 index 00000000000..e0ed89188b9 --- /dev/null +++ b/packages/cli/fern-definition/ir-to-jsonschema/src/__test__/__snapshots__/csharp-grpc-proto/type__CreateResponse.json @@ -0,0 +1,111 @@ +{ + "type": "object", + "properties": { + "user": { + "oneOf": [ + { + "$ref": "#/definitions/UserModel" + }, + { + "type": "null" + } + ] + } + }, + "additionalProperties": false, + "definitions": { + "MetadataValue": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "string" + }, + { + "type": "boolean" + } + ] + }, + "Metadata": { + "anyOf": [ + { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/MetadataValue" + } + }, + { + "type": "object", + "additionalProperties": { + "type": [ + "string", + "number", + "boolean", + "object", + "array", + "null" + ] + } + } + ] + }, + "UserModel": { + "type": "object", + "properties": { + "username": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "email": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "age": { + "oneOf": [ + { + "type": "integer", + "minimum": 0 + }, + { + "type": "null" + } + ] + }, + "weight": { + "oneOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "metadata": { + "oneOf": [ + { + "$ref": "#/definitions/Metadata" + }, + { + "type": "null" + } + ] + } + }, + "additionalProperties": false + } + } +} \ No newline at end of file diff --git a/packages/cli/fern-definition/ir-to-jsonschema/src/__test__/__snapshots__/csharp-grpc-proto/type__Metadata.json b/packages/cli/fern-definition/ir-to-jsonschema/src/__test__/__snapshots__/csharp-grpc-proto/type__Metadata.json new file mode 100644 index 00000000000..cb86dba2f66 --- /dev/null +++ b/packages/cli/fern-definition/ir-to-jsonschema/src/__test__/__snapshots__/csharp-grpc-proto/type__Metadata.json @@ -0,0 +1,38 @@ +{ + "anyOf": [ + { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/MetadataValue" + } + }, + { + "type": "object", + "additionalProperties": { + "type": [ + "string", + "number", + "boolean", + "object", + "array", + "null" + ] + } + } + ], + "definitions": { + "MetadataValue": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "string" + }, + { + "type": "boolean" + } + ] + } + } +} \ No newline at end of file diff --git a/packages/cli/fern-definition/ir-to-jsonschema/src/__test__/__snapshots__/csharp-grpc-proto/type__MetadataValue.json b/packages/cli/fern-definition/ir-to-jsonschema/src/__test__/__snapshots__/csharp-grpc-proto/type__MetadataValue.json new file mode 100644 index 00000000000..8eadd5b7552 --- /dev/null +++ b/packages/cli/fern-definition/ir-to-jsonschema/src/__test__/__snapshots__/csharp-grpc-proto/type__MetadataValue.json @@ -0,0 +1,14 @@ +{ + "anyOf": [ + { + "type": "number" + }, + { + "type": "string" + }, + { + "type": "boolean" + } + ], + "definitions": {} +} \ No newline at end of file diff --git a/packages/cli/fern-definition/ir-to-jsonschema/src/__test__/__snapshots__/csharp-grpc-proto/type__UserModel.json b/packages/cli/fern-definition/ir-to-jsonschema/src/__test__/__snapshots__/csharp-grpc-proto/type__UserModel.json new file mode 100644 index 00000000000..8dc0dd513eb --- /dev/null +++ b/packages/cli/fern-definition/ir-to-jsonschema/src/__test__/__snapshots__/csharp-grpc-proto/type__UserModel.json @@ -0,0 +1,95 @@ +{ + "type": "object", + "properties": { + "username": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "email": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "age": { + "oneOf": [ + { + "type": "integer", + "minimum": 0 + }, + { + "type": "null" + } + ] + }, + "weight": { + "oneOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "metadata": { + "oneOf": [ + { + "$ref": "#/definitions/Metadata" + }, + { + "type": "null" + } + ] + } + }, + "additionalProperties": false, + "definitions": { + "MetadataValue": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "string" + }, + { + "type": "boolean" + } + ] + }, + "Metadata": { + "anyOf": [ + { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/MetadataValue" + } + }, + { + "type": "object", + "additionalProperties": { + "type": [ + "string", + "number", + "boolean", + "object", + "array", + "null" + ] + } + } + ] + } + } +} \ No newline at end of file diff --git a/packages/cli/generation/ir-generator/src/__test__/test-definitions/csharp-grpc-proto-exhaustive.json b/packages/cli/generation/ir-generator/src/__test__/test-definitions/csharp-grpc-proto-exhaustive.json new file mode 100644 index 00000000000..5578d6d5136 --- /dev/null +++ b/packages/cli/generation/ir-generator/src/__test__/test-definitions/csharp-grpc-proto-exhaustive.json @@ -0,0 +1,23882 @@ +{ + "fdrApiDefinitionId": null, + "apiVersion": null, + "apiName": { + "originalName": "api", + "camelCase": { + "unsafeName": "api", + "safeName": "api" + }, + "snakeCase": { + "unsafeName": "api", + "safeName": "api" + }, + "screamingSnakeCase": { + "unsafeName": "API", + "safeName": "API" + }, + "pascalCase": { + "unsafeName": "API", + "safeName": "API" + } + }, + "apiDisplayName": "Test API", + "apiDocs": null, + "auth": { + "requirement": "ALL", + "schemes": [], + "docs": null + }, + "headers": [], + "idempotencyHeaders": [], + "types": { + "type_:Column": { + "inline": false, + "name": { + "name": { + "originalName": "Column", + "camelCase": { + "unsafeName": "column", + "safeName": "column" + }, + "snakeCase": { + "unsafeName": "column", + "safeName": "column" + }, + "screamingSnakeCase": { + "unsafeName": "COLUMN", + "safeName": "COLUMN" + }, + "pascalCase": { + "unsafeName": "Column", + "safeName": "Column" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:Column" + }, + "shape": { + "_type": "object", + "extends": [], + "properties": [ + { + "name": { + "name": { + "originalName": "id", + "camelCase": { + "unsafeName": "id", + "safeName": "id" + }, + "snakeCase": { + "unsafeName": "id", + "safeName": "id" + }, + "screamingSnakeCase": { + "unsafeName": "ID", + "safeName": "ID" + }, + "pascalCase": { + "unsafeName": "ID", + "safeName": "ID" + } + }, + "wireValue": "id" + }, + "valueType": { + "_type": "primitive", + "primitive": { + "v1": "STRING", + "v2": { + "type": "string", + "default": null, + "validation": null + } + } + }, + "availability": null, + "docs": null + }, + { + "name": { + "name": { + "originalName": "values", + "camelCase": { + "unsafeName": "values", + "safeName": "values" + }, + "snakeCase": { + "unsafeName": "values", + "safeName": "values" + }, + "screamingSnakeCase": { + "unsafeName": "VALUES", + "safeName": "VALUES" + }, + "pascalCase": { + "unsafeName": "Values", + "safeName": "Values" + } + }, + "wireValue": "values" + }, + "valueType": { + "_type": "container", + "container": { + "_type": "list", + "list": { + "_type": "primitive", + "primitive": { + "v1": "FLOAT", + "v2": null + } + } + } + }, + "availability": null, + "docs": null + }, + { + "name": { + "name": { + "originalName": "metadata", + "camelCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "snakeCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "screamingSnakeCase": { + "unsafeName": "METADATA", + "safeName": "METADATA" + }, + "pascalCase": { + "unsafeName": "Metadata", + "safeName": "Metadata" + } + }, + "wireValue": "metadata" + }, + "valueType": { + "_type": "container", + "container": { + "_type": "optional", + "optional": { + "_type": "named", + "name": { + "originalName": "Metadata", + "camelCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "snakeCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "screamingSnakeCase": { + "unsafeName": "METADATA", + "safeName": "METADATA" + }, + "pascalCase": { + "unsafeName": "Metadata", + "safeName": "Metadata" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:Metadata", + "default": null, + "inline": null + } + } + }, + "availability": null, + "docs": null + }, + { + "name": { + "name": { + "originalName": "indexedData", + "camelCase": { + "unsafeName": "indexedData", + "safeName": "indexedData" + }, + "snakeCase": { + "unsafeName": "indexed_data", + "safeName": "indexed_data" + }, + "screamingSnakeCase": { + "unsafeName": "INDEXED_DATA", + "safeName": "INDEXED_DATA" + }, + "pascalCase": { + "unsafeName": "IndexedData", + "safeName": "IndexedData" + } + }, + "wireValue": "indexedData" + }, + "valueType": { + "_type": "container", + "container": { + "_type": "optional", + "optional": { + "_type": "named", + "name": { + "originalName": "IndexedData", + "camelCase": { + "unsafeName": "indexedData", + "safeName": "indexedData" + }, + "snakeCase": { + "unsafeName": "indexed_data", + "safeName": "indexed_data" + }, + "screamingSnakeCase": { + "unsafeName": "INDEXED_DATA", + "safeName": "INDEXED_DATA" + }, + "pascalCase": { + "unsafeName": "IndexedData", + "safeName": "IndexedData" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:IndexedData", + "default": null, + "inline": null + } + } + }, + "availability": null, + "docs": null + } + ], + "extra-properties": false, + "extendedProperties": [] + }, + "referencedTypes": [ + "type_:Metadata", + "type_:MetadataValue", + "type_:IndexedData" + ], + "encoding": { + "json": null, + "proto": {} + }, + "source": { + "type": "proto", + "value": { + "type": "userDefined", + "file": { + "filepath": "proto/data/v1/data.proto", + "packageName": "data.v1", + "options": { + "csharp": { + "namespace": "Data.V1.Grpc" + } + } + }, + "name": { + "originalName": "Column", + "camelCase": { + "unsafeName": "column", + "safeName": "column" + }, + "snakeCase": { + "unsafeName": "column", + "safeName": "column" + }, + "screamingSnakeCase": { + "unsafeName": "COLUMN", + "safeName": "COLUMN" + }, + "pascalCase": { + "unsafeName": "Column", + "safeName": "Column" + } + } + } + }, + "userProvidedExamples": [], + "autogeneratedExamples": [], + "availability": null, + "docs": null + }, + "type_:DeleteResponse": { + "inline": false, + "name": { + "name": { + "originalName": "DeleteResponse", + "camelCase": { + "unsafeName": "deleteResponse", + "safeName": "deleteResponse" + }, + "snakeCase": { + "unsafeName": "delete_response", + "safeName": "delete_response" + }, + "screamingSnakeCase": { + "unsafeName": "DELETE_RESPONSE", + "safeName": "DELETE_RESPONSE" + }, + "pascalCase": { + "unsafeName": "DeleteResponse", + "safeName": "DeleteResponse" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:DeleteResponse" + }, + "shape": { + "_type": "object", + "extends": [], + "properties": [], + "extra-properties": false, + "extendedProperties": [] + }, + "referencedTypes": [], + "encoding": { + "json": null, + "proto": {} + }, + "source": { + "type": "proto", + "value": { + "type": "userDefined", + "file": { + "filepath": "proto/data/v1/data.proto", + "packageName": "data.v1", + "options": { + "csharp": { + "namespace": "Data.V1.Grpc" + } + } + }, + "name": { + "originalName": "DeleteResponse", + "camelCase": { + "unsafeName": "deleteResponse", + "safeName": "deleteResponse" + }, + "snakeCase": { + "unsafeName": "delete_response", + "safeName": "delete_response" + }, + "screamingSnakeCase": { + "unsafeName": "DELETE_RESPONSE", + "safeName": "DELETE_RESPONSE" + }, + "pascalCase": { + "unsafeName": "DeleteResponse", + "safeName": "DeleteResponse" + } + } + } + }, + "userProvidedExamples": [], + "autogeneratedExamples": [], + "availability": null, + "docs": null + }, + "type_:DescribeResponse": { + "inline": false, + "name": { + "name": { + "originalName": "DescribeResponse", + "camelCase": { + "unsafeName": "describeResponse", + "safeName": "describeResponse" + }, + "snakeCase": { + "unsafeName": "describe_response", + "safeName": "describe_response" + }, + "screamingSnakeCase": { + "unsafeName": "DESCRIBE_RESPONSE", + "safeName": "DESCRIBE_RESPONSE" + }, + "pascalCase": { + "unsafeName": "DescribeResponse", + "safeName": "DescribeResponse" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:DescribeResponse" + }, + "shape": { + "_type": "object", + "extends": [], + "properties": [ + { + "name": { + "name": { + "originalName": "namespaces", + "camelCase": { + "unsafeName": "namespaces", + "safeName": "namespaces" + }, + "snakeCase": { + "unsafeName": "namespaces", + "safeName": "namespaces" + }, + "screamingSnakeCase": { + "unsafeName": "NAMESPACES", + "safeName": "NAMESPACES" + }, + "pascalCase": { + "unsafeName": "Namespaces", + "safeName": "Namespaces" + } + }, + "wireValue": "namespaces" + }, + "valueType": { + "_type": "container", + "container": { + "_type": "optional", + "optional": { + "_type": "container", + "container": { + "_type": "map", + "keyType": { + "_type": "primitive", + "primitive": { + "v1": "STRING", + "v2": { + "type": "string", + "default": null, + "validation": null + } + } + }, + "valueType": { + "_type": "named", + "name": { + "originalName": "NamespaceSummary", + "camelCase": { + "unsafeName": "namespaceSummary", + "safeName": "namespaceSummary" + }, + "snakeCase": { + "unsafeName": "namespace_summary", + "safeName": "namespace_summary" + }, + "screamingSnakeCase": { + "unsafeName": "NAMESPACE_SUMMARY", + "safeName": "NAMESPACE_SUMMARY" + }, + "pascalCase": { + "unsafeName": "NamespaceSummary", + "safeName": "NamespaceSummary" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:NamespaceSummary", + "default": null, + "inline": null + } + } + } + } + }, + "availability": null, + "docs": null + }, + { + "name": { + "name": { + "originalName": "dimension", + "camelCase": { + "unsafeName": "dimension", + "safeName": "dimension" + }, + "snakeCase": { + "unsafeName": "dimension", + "safeName": "dimension" + }, + "screamingSnakeCase": { + "unsafeName": "DIMENSION", + "safeName": "DIMENSION" + }, + "pascalCase": { + "unsafeName": "Dimension", + "safeName": "Dimension" + } + }, + "wireValue": "dimension" + }, + "valueType": { + "_type": "container", + "container": { + "_type": "optional", + "optional": { + "_type": "primitive", + "primitive": { + "v1": "UINT", + "v2": null + } + } + } + }, + "availability": null, + "docs": null + }, + { + "name": { + "name": { + "originalName": "fullness", + "camelCase": { + "unsafeName": "fullness", + "safeName": "fullness" + }, + "snakeCase": { + "unsafeName": "fullness", + "safeName": "fullness" + }, + "screamingSnakeCase": { + "unsafeName": "FULLNESS", + "safeName": "FULLNESS" + }, + "pascalCase": { + "unsafeName": "Fullness", + "safeName": "Fullness" + } + }, + "wireValue": "fullness" + }, + "valueType": { + "_type": "container", + "container": { + "_type": "optional", + "optional": { + "_type": "primitive", + "primitive": { + "v1": "FLOAT", + "v2": null + } + } + } + }, + "availability": null, + "docs": null + }, + { + "name": { + "name": { + "originalName": "totalCount", + "camelCase": { + "unsafeName": "totalCount", + "safeName": "totalCount" + }, + "snakeCase": { + "unsafeName": "total_count", + "safeName": "total_count" + }, + "screamingSnakeCase": { + "unsafeName": "TOTAL_COUNT", + "safeName": "TOTAL_COUNT" + }, + "pascalCase": { + "unsafeName": "TotalCount", + "safeName": "TotalCount" + } + }, + "wireValue": "totalCount" + }, + "valueType": { + "_type": "container", + "container": { + "_type": "optional", + "optional": { + "_type": "primitive", + "primitive": { + "v1": "UINT", + "v2": null + } + } + } + }, + "availability": null, + "docs": null + } + ], + "extra-properties": false, + "extendedProperties": [] + }, + "referencedTypes": [ + "type_:NamespaceSummary" + ], + "encoding": { + "json": null, + "proto": {} + }, + "source": { + "type": "proto", + "value": { + "type": "userDefined", + "file": { + "filepath": "proto/data/v1/data.proto", + "packageName": "data.v1", + "options": { + "csharp": { + "namespace": "Data.V1.Grpc" + } + } + }, + "name": { + "originalName": "DescribeResponse", + "camelCase": { + "unsafeName": "describeResponse", + "safeName": "describeResponse" + }, + "snakeCase": { + "unsafeName": "describe_response", + "safeName": "describe_response" + }, + "screamingSnakeCase": { + "unsafeName": "DESCRIBE_RESPONSE", + "safeName": "DESCRIBE_RESPONSE" + }, + "pascalCase": { + "unsafeName": "DescribeResponse", + "safeName": "DescribeResponse" + } + } + } + }, + "userProvidedExamples": [], + "autogeneratedExamples": [], + "availability": null, + "docs": null + }, + "type_:FetchResponse": { + "inline": false, + "name": { + "name": { + "originalName": "FetchResponse", + "camelCase": { + "unsafeName": "fetchResponse", + "safeName": "fetchResponse" + }, + "snakeCase": { + "unsafeName": "fetch_response", + "safeName": "fetch_response" + }, + "screamingSnakeCase": { + "unsafeName": "FETCH_RESPONSE", + "safeName": "FETCH_RESPONSE" + }, + "pascalCase": { + "unsafeName": "FetchResponse", + "safeName": "FetchResponse" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:FetchResponse" + }, + "shape": { + "_type": "object", + "extends": [], + "properties": [ + { + "name": { + "name": { + "originalName": "columns", + "camelCase": { + "unsafeName": "columns", + "safeName": "columns" + }, + "snakeCase": { + "unsafeName": "columns", + "safeName": "columns" + }, + "screamingSnakeCase": { + "unsafeName": "COLUMNS", + "safeName": "COLUMNS" + }, + "pascalCase": { + "unsafeName": "Columns", + "safeName": "Columns" + } + }, + "wireValue": "columns" + }, + "valueType": { + "_type": "container", + "container": { + "_type": "optional", + "optional": { + "_type": "container", + "container": { + "_type": "map", + "keyType": { + "_type": "primitive", + "primitive": { + "v1": "STRING", + "v2": { + "type": "string", + "default": null, + "validation": null + } + } + }, + "valueType": { + "_type": "named", + "name": { + "originalName": "Column", + "camelCase": { + "unsafeName": "column", + "safeName": "column" + }, + "snakeCase": { + "unsafeName": "column", + "safeName": "column" + }, + "screamingSnakeCase": { + "unsafeName": "COLUMN", + "safeName": "COLUMN" + }, + "pascalCase": { + "unsafeName": "Column", + "safeName": "Column" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:Column", + "default": null, + "inline": null + } + } + } + } + }, + "availability": null, + "docs": null + }, + { + "name": { + "name": { + "originalName": "namespace", + "camelCase": { + "unsafeName": "namespace", + "safeName": "namespace" + }, + "snakeCase": { + "unsafeName": "namespace", + "safeName": "namespace" + }, + "screamingSnakeCase": { + "unsafeName": "NAMESPACE", + "safeName": "NAMESPACE" + }, + "pascalCase": { + "unsafeName": "Namespace", + "safeName": "Namespace" + } + }, + "wireValue": "namespace" + }, + "valueType": { + "_type": "container", + "container": { + "_type": "optional", + "optional": { + "_type": "primitive", + "primitive": { + "v1": "STRING", + "v2": { + "type": "string", + "default": null, + "validation": null + } + } + } + } + }, + "availability": null, + "docs": null + }, + { + "name": { + "name": { + "originalName": "usage", + "camelCase": { + "unsafeName": "usage", + "safeName": "usage" + }, + "snakeCase": { + "unsafeName": "usage", + "safeName": "usage" + }, + "screamingSnakeCase": { + "unsafeName": "USAGE", + "safeName": "USAGE" + }, + "pascalCase": { + "unsafeName": "Usage", + "safeName": "Usage" + } + }, + "wireValue": "usage" + }, + "valueType": { + "_type": "container", + "container": { + "_type": "optional", + "optional": { + "_type": "named", + "name": { + "originalName": "Usage", + "camelCase": { + "unsafeName": "usage", + "safeName": "usage" + }, + "snakeCase": { + "unsafeName": "usage", + "safeName": "usage" + }, + "screamingSnakeCase": { + "unsafeName": "USAGE", + "safeName": "USAGE" + }, + "pascalCase": { + "unsafeName": "Usage", + "safeName": "Usage" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:Usage", + "default": null, + "inline": null + } + } + }, + "availability": null, + "docs": null + } + ], + "extra-properties": false, + "extendedProperties": [] + }, + "referencedTypes": [ + "type_:Column", + "type_:Metadata", + "type_:MetadataValue", + "type_:IndexedData", + "type_:Usage" + ], + "encoding": { + "json": null, + "proto": {} + }, + "source": { + "type": "proto", + "value": { + "type": "userDefined", + "file": { + "filepath": "proto/data/v1/data.proto", + "packageName": "data.v1", + "options": { + "csharp": { + "namespace": "Data.V1.Grpc" + } + } + }, + "name": { + "originalName": "FetchResponse", + "camelCase": { + "unsafeName": "fetchResponse", + "safeName": "fetchResponse" + }, + "snakeCase": { + "unsafeName": "fetch_response", + "safeName": "fetch_response" + }, + "screamingSnakeCase": { + "unsafeName": "FETCH_RESPONSE", + "safeName": "FETCH_RESPONSE" + }, + "pascalCase": { + "unsafeName": "FetchResponse", + "safeName": "FetchResponse" + } + } + } + }, + "userProvidedExamples": [], + "autogeneratedExamples": [], + "availability": null, + "docs": null + }, + "type_:IndexedData": { + "inline": false, + "name": { + "name": { + "originalName": "IndexedData", + "camelCase": { + "unsafeName": "indexedData", + "safeName": "indexedData" + }, + "snakeCase": { + "unsafeName": "indexed_data", + "safeName": "indexed_data" + }, + "screamingSnakeCase": { + "unsafeName": "INDEXED_DATA", + "safeName": "INDEXED_DATA" + }, + "pascalCase": { + "unsafeName": "IndexedData", + "safeName": "IndexedData" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:IndexedData" + }, + "shape": { + "_type": "object", + "extends": [], + "properties": [ + { + "name": { + "name": { + "originalName": "indices", + "camelCase": { + "unsafeName": "indices", + "safeName": "indices" + }, + "snakeCase": { + "unsafeName": "indices", + "safeName": "indices" + }, + "screamingSnakeCase": { + "unsafeName": "INDICES", + "safeName": "INDICES" + }, + "pascalCase": { + "unsafeName": "Indices", + "safeName": "Indices" + } + }, + "wireValue": "indices" + }, + "valueType": { + "_type": "container", + "container": { + "_type": "list", + "list": { + "_type": "primitive", + "primitive": { + "v1": "UINT", + "v2": null + } + } + } + }, + "availability": null, + "docs": null + }, + { + "name": { + "name": { + "originalName": "values", + "camelCase": { + "unsafeName": "values", + "safeName": "values" + }, + "snakeCase": { + "unsafeName": "values", + "safeName": "values" + }, + "screamingSnakeCase": { + "unsafeName": "VALUES", + "safeName": "VALUES" + }, + "pascalCase": { + "unsafeName": "Values", + "safeName": "Values" + } + }, + "wireValue": "values" + }, + "valueType": { + "_type": "container", + "container": { + "_type": "list", + "list": { + "_type": "primitive", + "primitive": { + "v1": "FLOAT", + "v2": null + } + } + } + }, + "availability": null, + "docs": null + } + ], + "extra-properties": false, + "extendedProperties": [] + }, + "referencedTypes": [], + "encoding": { + "json": null, + "proto": {} + }, + "source": { + "type": "proto", + "value": { + "type": "userDefined", + "file": { + "filepath": "proto/data/v1/data.proto", + "packageName": "data.v1", + "options": { + "csharp": { + "namespace": "Data.V1.Grpc" + } + } + }, + "name": { + "originalName": "IndexedData", + "camelCase": { + "unsafeName": "indexedData", + "safeName": "indexedData" + }, + "snakeCase": { + "unsafeName": "indexed_data", + "safeName": "indexed_data" + }, + "screamingSnakeCase": { + "unsafeName": "INDEXED_DATA", + "safeName": "INDEXED_DATA" + }, + "pascalCase": { + "unsafeName": "IndexedData", + "safeName": "IndexedData" + } + } + } + }, + "userProvidedExamples": [], + "autogeneratedExamples": [], + "availability": null, + "docs": null + }, + "type_:ListElement": { + "inline": false, + "name": { + "name": { + "originalName": "ListElement", + "camelCase": { + "unsafeName": "listElement", + "safeName": "listElement" + }, + "snakeCase": { + "unsafeName": "list_element", + "safeName": "list_element" + }, + "screamingSnakeCase": { + "unsafeName": "LIST_ELEMENT", + "safeName": "LIST_ELEMENT" + }, + "pascalCase": { + "unsafeName": "ListElement", + "safeName": "ListElement" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:ListElement" + }, + "shape": { + "_type": "object", + "extends": [], + "properties": [ + { + "name": { + "name": { + "originalName": "id", + "camelCase": { + "unsafeName": "id", + "safeName": "id" + }, + "snakeCase": { + "unsafeName": "id", + "safeName": "id" + }, + "screamingSnakeCase": { + "unsafeName": "ID", + "safeName": "ID" + }, + "pascalCase": { + "unsafeName": "ID", + "safeName": "ID" + } + }, + "wireValue": "id" + }, + "valueType": { + "_type": "container", + "container": { + "_type": "optional", + "optional": { + "_type": "primitive", + "primitive": { + "v1": "STRING", + "v2": { + "type": "string", + "default": null, + "validation": null + } + } + } + } + }, + "availability": null, + "docs": null + } + ], + "extra-properties": false, + "extendedProperties": [] + }, + "referencedTypes": [], + "encoding": { + "json": null, + "proto": {} + }, + "source": { + "type": "proto", + "value": { + "type": "userDefined", + "file": { + "filepath": "proto/data/v1/data.proto", + "packageName": "data.v1", + "options": { + "csharp": { + "namespace": "Data.V1.Grpc" + } + } + }, + "name": { + "originalName": "ListElement", + "camelCase": { + "unsafeName": "listElement", + "safeName": "listElement" + }, + "snakeCase": { + "unsafeName": "list_element", + "safeName": "list_element" + }, + "screamingSnakeCase": { + "unsafeName": "LIST_ELEMENT", + "safeName": "LIST_ELEMENT" + }, + "pascalCase": { + "unsafeName": "ListElement", + "safeName": "ListElement" + } + } + } + }, + "userProvidedExamples": [], + "autogeneratedExamples": [], + "availability": null, + "docs": null + }, + "type_:ListResponse": { + "inline": false, + "name": { + "name": { + "originalName": "ListResponse", + "camelCase": { + "unsafeName": "listResponse", + "safeName": "listResponse" + }, + "snakeCase": { + "unsafeName": "list_response", + "safeName": "list_response" + }, + "screamingSnakeCase": { + "unsafeName": "LIST_RESPONSE", + "safeName": "LIST_RESPONSE" + }, + "pascalCase": { + "unsafeName": "ListResponse", + "safeName": "ListResponse" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:ListResponse" + }, + "shape": { + "_type": "object", + "extends": [], + "properties": [ + { + "name": { + "name": { + "originalName": "columns", + "camelCase": { + "unsafeName": "columns", + "safeName": "columns" + }, + "snakeCase": { + "unsafeName": "columns", + "safeName": "columns" + }, + "screamingSnakeCase": { + "unsafeName": "COLUMNS", + "safeName": "COLUMNS" + }, + "pascalCase": { + "unsafeName": "Columns", + "safeName": "Columns" + } + }, + "wireValue": "columns" + }, + "valueType": { + "_type": "container", + "container": { + "_type": "optional", + "optional": { + "_type": "container", + "container": { + "_type": "list", + "list": { + "_type": "named", + "name": { + "originalName": "ListElement", + "camelCase": { + "unsafeName": "listElement", + "safeName": "listElement" + }, + "snakeCase": { + "unsafeName": "list_element", + "safeName": "list_element" + }, + "screamingSnakeCase": { + "unsafeName": "LIST_ELEMENT", + "safeName": "LIST_ELEMENT" + }, + "pascalCase": { + "unsafeName": "ListElement", + "safeName": "ListElement" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:ListElement", + "default": null, + "inline": null + } + } + } + } + }, + "availability": null, + "docs": null + }, + { + "name": { + "name": { + "originalName": "pagination", + "camelCase": { + "unsafeName": "pagination", + "safeName": "pagination" + }, + "snakeCase": { + "unsafeName": "pagination", + "safeName": "pagination" + }, + "screamingSnakeCase": { + "unsafeName": "PAGINATION", + "safeName": "PAGINATION" + }, + "pascalCase": { + "unsafeName": "Pagination", + "safeName": "Pagination" + } + }, + "wireValue": "pagination" + }, + "valueType": { + "_type": "container", + "container": { + "_type": "optional", + "optional": { + "_type": "named", + "name": { + "originalName": "Pagination", + "camelCase": { + "unsafeName": "pagination", + "safeName": "pagination" + }, + "snakeCase": { + "unsafeName": "pagination", + "safeName": "pagination" + }, + "screamingSnakeCase": { + "unsafeName": "PAGINATION", + "safeName": "PAGINATION" + }, + "pascalCase": { + "unsafeName": "Pagination", + "safeName": "Pagination" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:Pagination", + "default": null, + "inline": null + } + } + }, + "availability": null, + "docs": null + }, + { + "name": { + "name": { + "originalName": "namespace", + "camelCase": { + "unsafeName": "namespace", + "safeName": "namespace" + }, + "snakeCase": { + "unsafeName": "namespace", + "safeName": "namespace" + }, + "screamingSnakeCase": { + "unsafeName": "NAMESPACE", + "safeName": "NAMESPACE" + }, + "pascalCase": { + "unsafeName": "Namespace", + "safeName": "Namespace" + } + }, + "wireValue": "namespace" + }, + "valueType": { + "_type": "container", + "container": { + "_type": "optional", + "optional": { + "_type": "primitive", + "primitive": { + "v1": "STRING", + "v2": { + "type": "string", + "default": null, + "validation": null + } + } + } + } + }, + "availability": null, + "docs": null + }, + { + "name": { + "name": { + "originalName": "usage", + "camelCase": { + "unsafeName": "usage", + "safeName": "usage" + }, + "snakeCase": { + "unsafeName": "usage", + "safeName": "usage" + }, + "screamingSnakeCase": { + "unsafeName": "USAGE", + "safeName": "USAGE" + }, + "pascalCase": { + "unsafeName": "Usage", + "safeName": "Usage" + } + }, + "wireValue": "usage" + }, + "valueType": { + "_type": "container", + "container": { + "_type": "optional", + "optional": { + "_type": "named", + "name": { + "originalName": "Usage", + "camelCase": { + "unsafeName": "usage", + "safeName": "usage" + }, + "snakeCase": { + "unsafeName": "usage", + "safeName": "usage" + }, + "screamingSnakeCase": { + "unsafeName": "USAGE", + "safeName": "USAGE" + }, + "pascalCase": { + "unsafeName": "Usage", + "safeName": "Usage" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:Usage", + "default": null, + "inline": null + } + } + }, + "availability": null, + "docs": null + } + ], + "extra-properties": false, + "extendedProperties": [] + }, + "referencedTypes": [ + "type_:ListElement", + "type_:Pagination", + "type_:Usage" + ], + "encoding": { + "json": null, + "proto": {} + }, + "source": { + "type": "proto", + "value": { + "type": "userDefined", + "file": { + "filepath": "proto/data/v1/data.proto", + "packageName": "data.v1", + "options": { + "csharp": { + "namespace": "Data.V1.Grpc" + } + } + }, + "name": { + "originalName": "ListResponse", + "camelCase": { + "unsafeName": "listResponse", + "safeName": "listResponse" + }, + "snakeCase": { + "unsafeName": "list_response", + "safeName": "list_response" + }, + "screamingSnakeCase": { + "unsafeName": "LIST_RESPONSE", + "safeName": "LIST_RESPONSE" + }, + "pascalCase": { + "unsafeName": "ListResponse", + "safeName": "ListResponse" + } + } + } + }, + "userProvidedExamples": [], + "autogeneratedExamples": [], + "availability": null, + "docs": null + }, + "type_:NamespaceSummary": { + "inline": false, + "name": { + "name": { + "originalName": "NamespaceSummary", + "camelCase": { + "unsafeName": "namespaceSummary", + "safeName": "namespaceSummary" + }, + "snakeCase": { + "unsafeName": "namespace_summary", + "safeName": "namespace_summary" + }, + "screamingSnakeCase": { + "unsafeName": "NAMESPACE_SUMMARY", + "safeName": "NAMESPACE_SUMMARY" + }, + "pascalCase": { + "unsafeName": "NamespaceSummary", + "safeName": "NamespaceSummary" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:NamespaceSummary" + }, + "shape": { + "_type": "object", + "extends": [], + "properties": [ + { + "name": { + "name": { + "originalName": "count", + "camelCase": { + "unsafeName": "count", + "safeName": "count" + }, + "snakeCase": { + "unsafeName": "count", + "safeName": "count" + }, + "screamingSnakeCase": { + "unsafeName": "COUNT", + "safeName": "COUNT" + }, + "pascalCase": { + "unsafeName": "Count", + "safeName": "Count" + } + }, + "wireValue": "count" + }, + "valueType": { + "_type": "container", + "container": { + "_type": "optional", + "optional": { + "_type": "primitive", + "primitive": { + "v1": "UINT", + "v2": null + } + } + } + }, + "availability": null, + "docs": null + } + ], + "extra-properties": false, + "extendedProperties": [] + }, + "referencedTypes": [], + "encoding": { + "json": null, + "proto": {} + }, + "source": { + "type": "proto", + "value": { + "type": "userDefined", + "file": { + "filepath": "proto/data/v1/data.proto", + "packageName": "data.v1", + "options": { + "csharp": { + "namespace": "Data.V1.Grpc" + } + } + }, + "name": { + "originalName": "NamespaceSummary", + "camelCase": { + "unsafeName": "namespaceSummary", + "safeName": "namespaceSummary" + }, + "snakeCase": { + "unsafeName": "namespace_summary", + "safeName": "namespace_summary" + }, + "screamingSnakeCase": { + "unsafeName": "NAMESPACE_SUMMARY", + "safeName": "NAMESPACE_SUMMARY" + }, + "pascalCase": { + "unsafeName": "NamespaceSummary", + "safeName": "NamespaceSummary" + } + } + } + }, + "userProvidedExamples": [], + "autogeneratedExamples": [], + "availability": null, + "docs": null + }, + "type_:Pagination": { + "inline": false, + "name": { + "name": { + "originalName": "Pagination", + "camelCase": { + "unsafeName": "pagination", + "safeName": "pagination" + }, + "snakeCase": { + "unsafeName": "pagination", + "safeName": "pagination" + }, + "screamingSnakeCase": { + "unsafeName": "PAGINATION", + "safeName": "PAGINATION" + }, + "pascalCase": { + "unsafeName": "Pagination", + "safeName": "Pagination" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:Pagination" + }, + "shape": { + "_type": "object", + "extends": [], + "properties": [ + { + "name": { + "name": { + "originalName": "next", + "camelCase": { + "unsafeName": "next", + "safeName": "next" + }, + "snakeCase": { + "unsafeName": "next", + "safeName": "next" + }, + "screamingSnakeCase": { + "unsafeName": "NEXT", + "safeName": "NEXT" + }, + "pascalCase": { + "unsafeName": "Next", + "safeName": "Next" + } + }, + "wireValue": "next" + }, + "valueType": { + "_type": "container", + "container": { + "_type": "optional", + "optional": { + "_type": "primitive", + "primitive": { + "v1": "STRING", + "v2": { + "type": "string", + "default": null, + "validation": null + } + } + } + } + }, + "availability": null, + "docs": null + } + ], + "extra-properties": false, + "extendedProperties": [] + }, + "referencedTypes": [], + "encoding": { + "json": null, + "proto": {} + }, + "source": { + "type": "proto", + "value": { + "type": "userDefined", + "file": { + "filepath": "proto/data/v1/data.proto", + "packageName": "data.v1", + "options": { + "csharp": { + "namespace": "Data.V1.Grpc" + } + } + }, + "name": { + "originalName": "Pagination", + "camelCase": { + "unsafeName": "pagination", + "safeName": "pagination" + }, + "snakeCase": { + "unsafeName": "pagination", + "safeName": "pagination" + }, + "screamingSnakeCase": { + "unsafeName": "PAGINATION", + "safeName": "PAGINATION" + }, + "pascalCase": { + "unsafeName": "Pagination", + "safeName": "Pagination" + } + } + } + }, + "userProvidedExamples": [], + "autogeneratedExamples": [], + "availability": null, + "docs": null + }, + "type_:QueryColumn": { + "inline": false, + "name": { + "name": { + "originalName": "QueryColumn", + "camelCase": { + "unsafeName": "queryColumn", + "safeName": "queryColumn" + }, + "snakeCase": { + "unsafeName": "query_column", + "safeName": "query_column" + }, + "screamingSnakeCase": { + "unsafeName": "QUERY_COLUMN", + "safeName": "QUERY_COLUMN" + }, + "pascalCase": { + "unsafeName": "QueryColumn", + "safeName": "QueryColumn" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:QueryColumn" + }, + "shape": { + "_type": "object", + "extends": [], + "properties": [ + { + "name": { + "name": { + "originalName": "values", + "camelCase": { + "unsafeName": "values", + "safeName": "values" + }, + "snakeCase": { + "unsafeName": "values", + "safeName": "values" + }, + "screamingSnakeCase": { + "unsafeName": "VALUES", + "safeName": "VALUES" + }, + "pascalCase": { + "unsafeName": "Values", + "safeName": "Values" + } + }, + "wireValue": "values" + }, + "valueType": { + "_type": "container", + "container": { + "_type": "list", + "list": { + "_type": "primitive", + "primitive": { + "v1": "FLOAT", + "v2": null + } + } + } + }, + "availability": null, + "docs": null + }, + { + "name": { + "name": { + "originalName": "topK", + "camelCase": { + "unsafeName": "topK", + "safeName": "topK" + }, + "snakeCase": { + "unsafeName": "top_k", + "safeName": "top_k" + }, + "screamingSnakeCase": { + "unsafeName": "TOP_K", + "safeName": "TOP_K" + }, + "pascalCase": { + "unsafeName": "TopK", + "safeName": "TopK" + } + }, + "wireValue": "topK" + }, + "valueType": { + "_type": "container", + "container": { + "_type": "optional", + "optional": { + "_type": "primitive", + "primitive": { + "v1": "UINT", + "v2": null + } + } + } + }, + "availability": null, + "docs": null + }, + { + "name": { + "name": { + "originalName": "namespace", + "camelCase": { + "unsafeName": "namespace", + "safeName": "namespace" + }, + "snakeCase": { + "unsafeName": "namespace", + "safeName": "namespace" + }, + "screamingSnakeCase": { + "unsafeName": "NAMESPACE", + "safeName": "NAMESPACE" + }, + "pascalCase": { + "unsafeName": "Namespace", + "safeName": "Namespace" + } + }, + "wireValue": "namespace" + }, + "valueType": { + "_type": "container", + "container": { + "_type": "optional", + "optional": { + "_type": "primitive", + "primitive": { + "v1": "STRING", + "v2": { + "type": "string", + "default": null, + "validation": null + } + } + } + } + }, + "availability": null, + "docs": null + }, + { + "name": { + "name": { + "originalName": "filter", + "camelCase": { + "unsafeName": "filter", + "safeName": "filter" + }, + "snakeCase": { + "unsafeName": "filter", + "safeName": "filter" + }, + "screamingSnakeCase": { + "unsafeName": "FILTER", + "safeName": "FILTER" + }, + "pascalCase": { + "unsafeName": "Filter", + "safeName": "Filter" + } + }, + "wireValue": "filter" + }, + "valueType": { + "_type": "container", + "container": { + "_type": "optional", + "optional": { + "_type": "named", + "name": { + "originalName": "Metadata", + "camelCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "snakeCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "screamingSnakeCase": { + "unsafeName": "METADATA", + "safeName": "METADATA" + }, + "pascalCase": { + "unsafeName": "Metadata", + "safeName": "Metadata" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:Metadata", + "default": null, + "inline": null + } + } + }, + "availability": null, + "docs": null + }, + { + "name": { + "name": { + "originalName": "indexedData", + "camelCase": { + "unsafeName": "indexedData", + "safeName": "indexedData" + }, + "snakeCase": { + "unsafeName": "indexed_data", + "safeName": "indexed_data" + }, + "screamingSnakeCase": { + "unsafeName": "INDEXED_DATA", + "safeName": "INDEXED_DATA" + }, + "pascalCase": { + "unsafeName": "IndexedData", + "safeName": "IndexedData" + } + }, + "wireValue": "indexedData" + }, + "valueType": { + "_type": "container", + "container": { + "_type": "optional", + "optional": { + "_type": "named", + "name": { + "originalName": "IndexedData", + "camelCase": { + "unsafeName": "indexedData", + "safeName": "indexedData" + }, + "snakeCase": { + "unsafeName": "indexed_data", + "safeName": "indexed_data" + }, + "screamingSnakeCase": { + "unsafeName": "INDEXED_DATA", + "safeName": "INDEXED_DATA" + }, + "pascalCase": { + "unsafeName": "IndexedData", + "safeName": "IndexedData" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:IndexedData", + "default": null, + "inline": null + } + } + }, + "availability": null, + "docs": null + } + ], + "extra-properties": false, + "extendedProperties": [] + }, + "referencedTypes": [ + "type_:Metadata", + "type_:MetadataValue", + "type_:IndexedData" + ], + "encoding": { + "json": null, + "proto": {} + }, + "source": { + "type": "proto", + "value": { + "type": "userDefined", + "file": { + "filepath": "proto/data/v1/data.proto", + "packageName": "data.v1", + "options": { + "csharp": { + "namespace": "Data.V1.Grpc" + } + } + }, + "name": { + "originalName": "QueryColumn", + "camelCase": { + "unsafeName": "queryColumn", + "safeName": "queryColumn" + }, + "snakeCase": { + "unsafeName": "query_column", + "safeName": "query_column" + }, + "screamingSnakeCase": { + "unsafeName": "QUERY_COLUMN", + "safeName": "QUERY_COLUMN" + }, + "pascalCase": { + "unsafeName": "QueryColumn", + "safeName": "QueryColumn" + } + } + } + }, + "userProvidedExamples": [], + "autogeneratedExamples": [], + "availability": null, + "docs": null + }, + "type_:QueryResponse": { + "inline": false, + "name": { + "name": { + "originalName": "QueryResponse", + "camelCase": { + "unsafeName": "queryResponse", + "safeName": "queryResponse" + }, + "snakeCase": { + "unsafeName": "query_response", + "safeName": "query_response" + }, + "screamingSnakeCase": { + "unsafeName": "QUERY_RESPONSE", + "safeName": "QUERY_RESPONSE" + }, + "pascalCase": { + "unsafeName": "QueryResponse", + "safeName": "QueryResponse" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:QueryResponse" + }, + "shape": { + "_type": "object", + "extends": [], + "properties": [ + { + "name": { + "name": { + "originalName": "results", + "camelCase": { + "unsafeName": "results", + "safeName": "results" + }, + "snakeCase": { + "unsafeName": "results", + "safeName": "results" + }, + "screamingSnakeCase": { + "unsafeName": "RESULTS", + "safeName": "RESULTS" + }, + "pascalCase": { + "unsafeName": "Results", + "safeName": "Results" + } + }, + "wireValue": "results" + }, + "valueType": { + "_type": "container", + "container": { + "_type": "optional", + "optional": { + "_type": "container", + "container": { + "_type": "list", + "list": { + "_type": "named", + "name": { + "originalName": "QueryResult", + "camelCase": { + "unsafeName": "queryResult", + "safeName": "queryResult" + }, + "snakeCase": { + "unsafeName": "query_result", + "safeName": "query_result" + }, + "screamingSnakeCase": { + "unsafeName": "QUERY_RESULT", + "safeName": "QUERY_RESULT" + }, + "pascalCase": { + "unsafeName": "QueryResult", + "safeName": "QueryResult" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:QueryResult", + "default": null, + "inline": null + } + } + } + } + }, + "availability": null, + "docs": null + }, + { + "name": { + "name": { + "originalName": "matches", + "camelCase": { + "unsafeName": "matches", + "safeName": "matches" + }, + "snakeCase": { + "unsafeName": "matches", + "safeName": "matches" + }, + "screamingSnakeCase": { + "unsafeName": "MATCHES", + "safeName": "MATCHES" + }, + "pascalCase": { + "unsafeName": "Matches", + "safeName": "Matches" + } + }, + "wireValue": "matches" + }, + "valueType": { + "_type": "container", + "container": { + "_type": "optional", + "optional": { + "_type": "container", + "container": { + "_type": "list", + "list": { + "_type": "named", + "name": { + "originalName": "ScoredColumn", + "camelCase": { + "unsafeName": "scoredColumn", + "safeName": "scoredColumn" + }, + "snakeCase": { + "unsafeName": "scored_column", + "safeName": "scored_column" + }, + "screamingSnakeCase": { + "unsafeName": "SCORED_COLUMN", + "safeName": "SCORED_COLUMN" + }, + "pascalCase": { + "unsafeName": "ScoredColumn", + "safeName": "ScoredColumn" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:ScoredColumn", + "default": null, + "inline": null + } + } + } + } + }, + "availability": null, + "docs": null + }, + { + "name": { + "name": { + "originalName": "namespace", + "camelCase": { + "unsafeName": "namespace", + "safeName": "namespace" + }, + "snakeCase": { + "unsafeName": "namespace", + "safeName": "namespace" + }, + "screamingSnakeCase": { + "unsafeName": "NAMESPACE", + "safeName": "NAMESPACE" + }, + "pascalCase": { + "unsafeName": "Namespace", + "safeName": "Namespace" + } + }, + "wireValue": "namespace" + }, + "valueType": { + "_type": "container", + "container": { + "_type": "optional", + "optional": { + "_type": "primitive", + "primitive": { + "v1": "STRING", + "v2": { + "type": "string", + "default": null, + "validation": null + } + } + } + } + }, + "availability": null, + "docs": null + }, + { + "name": { + "name": { + "originalName": "usage", + "camelCase": { + "unsafeName": "usage", + "safeName": "usage" + }, + "snakeCase": { + "unsafeName": "usage", + "safeName": "usage" + }, + "screamingSnakeCase": { + "unsafeName": "USAGE", + "safeName": "USAGE" + }, + "pascalCase": { + "unsafeName": "Usage", + "safeName": "Usage" + } + }, + "wireValue": "usage" + }, + "valueType": { + "_type": "container", + "container": { + "_type": "optional", + "optional": { + "_type": "named", + "name": { + "originalName": "Usage", + "camelCase": { + "unsafeName": "usage", + "safeName": "usage" + }, + "snakeCase": { + "unsafeName": "usage", + "safeName": "usage" + }, + "screamingSnakeCase": { + "unsafeName": "USAGE", + "safeName": "USAGE" + }, + "pascalCase": { + "unsafeName": "Usage", + "safeName": "Usage" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:Usage", + "default": null, + "inline": null + } + } + }, + "availability": null, + "docs": null + } + ], + "extra-properties": false, + "extendedProperties": [] + }, + "referencedTypes": [ + "type_:QueryResult", + "type_:ScoredColumn", + "type_:Metadata", + "type_:MetadataValue", + "type_:IndexedData", + "type_:Usage" + ], + "encoding": { + "json": null, + "proto": {} + }, + "source": { + "type": "proto", + "value": { + "type": "userDefined", + "file": { + "filepath": "proto/data/v1/data.proto", + "packageName": "data.v1", + "options": { + "csharp": { + "namespace": "Data.V1.Grpc" + } + } + }, + "name": { + "originalName": "QueryResponse", + "camelCase": { + "unsafeName": "queryResponse", + "safeName": "queryResponse" + }, + "snakeCase": { + "unsafeName": "query_response", + "safeName": "query_response" + }, + "screamingSnakeCase": { + "unsafeName": "QUERY_RESPONSE", + "safeName": "QUERY_RESPONSE" + }, + "pascalCase": { + "unsafeName": "QueryResponse", + "safeName": "QueryResponse" + } + } + } + }, + "userProvidedExamples": [], + "autogeneratedExamples": [], + "availability": null, + "docs": null + }, + "type_:QueryResult": { + "inline": false, + "name": { + "name": { + "originalName": "QueryResult", + "camelCase": { + "unsafeName": "queryResult", + "safeName": "queryResult" + }, + "snakeCase": { + "unsafeName": "query_result", + "safeName": "query_result" + }, + "screamingSnakeCase": { + "unsafeName": "QUERY_RESULT", + "safeName": "QUERY_RESULT" + }, + "pascalCase": { + "unsafeName": "QueryResult", + "safeName": "QueryResult" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:QueryResult" + }, + "shape": { + "_type": "object", + "extends": [], + "properties": [ + { + "name": { + "name": { + "originalName": "matches", + "camelCase": { + "unsafeName": "matches", + "safeName": "matches" + }, + "snakeCase": { + "unsafeName": "matches", + "safeName": "matches" + }, + "screamingSnakeCase": { + "unsafeName": "MATCHES", + "safeName": "MATCHES" + }, + "pascalCase": { + "unsafeName": "Matches", + "safeName": "Matches" + } + }, + "wireValue": "matches" + }, + "valueType": { + "_type": "container", + "container": { + "_type": "optional", + "optional": { + "_type": "container", + "container": { + "_type": "list", + "list": { + "_type": "named", + "name": { + "originalName": "ScoredColumn", + "camelCase": { + "unsafeName": "scoredColumn", + "safeName": "scoredColumn" + }, + "snakeCase": { + "unsafeName": "scored_column", + "safeName": "scored_column" + }, + "screamingSnakeCase": { + "unsafeName": "SCORED_COLUMN", + "safeName": "SCORED_COLUMN" + }, + "pascalCase": { + "unsafeName": "ScoredColumn", + "safeName": "ScoredColumn" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:ScoredColumn", + "default": null, + "inline": null + } + } + } + } + }, + "availability": null, + "docs": null + }, + { + "name": { + "name": { + "originalName": "namespace", + "camelCase": { + "unsafeName": "namespace", + "safeName": "namespace" + }, + "snakeCase": { + "unsafeName": "namespace", + "safeName": "namespace" + }, + "screamingSnakeCase": { + "unsafeName": "NAMESPACE", + "safeName": "NAMESPACE" + }, + "pascalCase": { + "unsafeName": "Namespace", + "safeName": "Namespace" + } + }, + "wireValue": "namespace" + }, + "valueType": { + "_type": "container", + "container": { + "_type": "optional", + "optional": { + "_type": "primitive", + "primitive": { + "v1": "STRING", + "v2": { + "type": "string", + "default": null, + "validation": null + } + } + } + } + }, + "availability": null, + "docs": null + } + ], + "extra-properties": false, + "extendedProperties": [] + }, + "referencedTypes": [ + "type_:ScoredColumn", + "type_:Metadata", + "type_:MetadataValue", + "type_:IndexedData" + ], + "encoding": { + "json": null, + "proto": {} + }, + "source": { + "type": "proto", + "value": { + "type": "userDefined", + "file": { + "filepath": "proto/data/v1/data.proto", + "packageName": "data.v1", + "options": { + "csharp": { + "namespace": "Data.V1.Grpc" + } + } + }, + "name": { + "originalName": "QueryResult", + "camelCase": { + "unsafeName": "queryResult", + "safeName": "queryResult" + }, + "snakeCase": { + "unsafeName": "query_result", + "safeName": "query_result" + }, + "screamingSnakeCase": { + "unsafeName": "QUERY_RESULT", + "safeName": "QUERY_RESULT" + }, + "pascalCase": { + "unsafeName": "QueryResult", + "safeName": "QueryResult" + } + } + } + }, + "userProvidedExamples": [], + "autogeneratedExamples": [], + "availability": null, + "docs": null + }, + "type_:ScoredColumn": { + "inline": false, + "name": { + "name": { + "originalName": "ScoredColumn", + "camelCase": { + "unsafeName": "scoredColumn", + "safeName": "scoredColumn" + }, + "snakeCase": { + "unsafeName": "scored_column", + "safeName": "scored_column" + }, + "screamingSnakeCase": { + "unsafeName": "SCORED_COLUMN", + "safeName": "SCORED_COLUMN" + }, + "pascalCase": { + "unsafeName": "ScoredColumn", + "safeName": "ScoredColumn" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:ScoredColumn" + }, + "shape": { + "_type": "object", + "extends": [], + "properties": [ + { + "name": { + "name": { + "originalName": "id", + "camelCase": { + "unsafeName": "id", + "safeName": "id" + }, + "snakeCase": { + "unsafeName": "id", + "safeName": "id" + }, + "screamingSnakeCase": { + "unsafeName": "ID", + "safeName": "ID" + }, + "pascalCase": { + "unsafeName": "ID", + "safeName": "ID" + } + }, + "wireValue": "id" + }, + "valueType": { + "_type": "primitive", + "primitive": { + "v1": "STRING", + "v2": { + "type": "string", + "default": null, + "validation": null + } + } + }, + "availability": null, + "docs": null + }, + { + "name": { + "name": { + "originalName": "score", + "camelCase": { + "unsafeName": "score", + "safeName": "score" + }, + "snakeCase": { + "unsafeName": "score", + "safeName": "score" + }, + "screamingSnakeCase": { + "unsafeName": "SCORE", + "safeName": "SCORE" + }, + "pascalCase": { + "unsafeName": "Score", + "safeName": "Score" + } + }, + "wireValue": "score" + }, + "valueType": { + "_type": "container", + "container": { + "_type": "optional", + "optional": { + "_type": "primitive", + "primitive": { + "v1": "FLOAT", + "v2": null + } + } + } + }, + "availability": null, + "docs": null + }, + { + "name": { + "name": { + "originalName": "values", + "camelCase": { + "unsafeName": "values", + "safeName": "values" + }, + "snakeCase": { + "unsafeName": "values", + "safeName": "values" + }, + "screamingSnakeCase": { + "unsafeName": "VALUES", + "safeName": "VALUES" + }, + "pascalCase": { + "unsafeName": "Values", + "safeName": "Values" + } + }, + "wireValue": "values" + }, + "valueType": { + "_type": "container", + "container": { + "_type": "optional", + "optional": { + "_type": "container", + "container": { + "_type": "list", + "list": { + "_type": "primitive", + "primitive": { + "v1": "FLOAT", + "v2": null + } + } + } + } + } + }, + "availability": null, + "docs": null + }, + { + "name": { + "name": { + "originalName": "metadata", + "camelCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "snakeCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "screamingSnakeCase": { + "unsafeName": "METADATA", + "safeName": "METADATA" + }, + "pascalCase": { + "unsafeName": "Metadata", + "safeName": "Metadata" + } + }, + "wireValue": "metadata" + }, + "valueType": { + "_type": "container", + "container": { + "_type": "optional", + "optional": { + "_type": "named", + "name": { + "originalName": "Metadata", + "camelCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "snakeCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "screamingSnakeCase": { + "unsafeName": "METADATA", + "safeName": "METADATA" + }, + "pascalCase": { + "unsafeName": "Metadata", + "safeName": "Metadata" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:Metadata", + "default": null, + "inline": null + } + } + }, + "availability": null, + "docs": null + }, + { + "name": { + "name": { + "originalName": "indexedData", + "camelCase": { + "unsafeName": "indexedData", + "safeName": "indexedData" + }, + "snakeCase": { + "unsafeName": "indexed_data", + "safeName": "indexed_data" + }, + "screamingSnakeCase": { + "unsafeName": "INDEXED_DATA", + "safeName": "INDEXED_DATA" + }, + "pascalCase": { + "unsafeName": "IndexedData", + "safeName": "IndexedData" + } + }, + "wireValue": "indexedData" + }, + "valueType": { + "_type": "container", + "container": { + "_type": "optional", + "optional": { + "_type": "named", + "name": { + "originalName": "IndexedData", + "camelCase": { + "unsafeName": "indexedData", + "safeName": "indexedData" + }, + "snakeCase": { + "unsafeName": "indexed_data", + "safeName": "indexed_data" + }, + "screamingSnakeCase": { + "unsafeName": "INDEXED_DATA", + "safeName": "INDEXED_DATA" + }, + "pascalCase": { + "unsafeName": "IndexedData", + "safeName": "IndexedData" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:IndexedData", + "default": null, + "inline": null + } + } + }, + "availability": null, + "docs": null + } + ], + "extra-properties": false, + "extendedProperties": [] + }, + "referencedTypes": [ + "type_:Metadata", + "type_:MetadataValue", + "type_:IndexedData" + ], + "encoding": { + "json": null, + "proto": {} + }, + "source": { + "type": "proto", + "value": { + "type": "userDefined", + "file": { + "filepath": "proto/data/v1/data.proto", + "packageName": "data.v1", + "options": { + "csharp": { + "namespace": "Data.V1.Grpc" + } + } + }, + "name": { + "originalName": "ScoredColumn", + "camelCase": { + "unsafeName": "scoredColumn", + "safeName": "scoredColumn" + }, + "snakeCase": { + "unsafeName": "scored_column", + "safeName": "scored_column" + }, + "screamingSnakeCase": { + "unsafeName": "SCORED_COLUMN", + "safeName": "SCORED_COLUMN" + }, + "pascalCase": { + "unsafeName": "ScoredColumn", + "safeName": "ScoredColumn" + } + } + } + }, + "userProvidedExamples": [], + "autogeneratedExamples": [], + "availability": null, + "docs": null + }, + "type_:UpdateResponse": { + "inline": false, + "name": { + "name": { + "originalName": "UpdateResponse", + "camelCase": { + "unsafeName": "updateResponse", + "safeName": "updateResponse" + }, + "snakeCase": { + "unsafeName": "update_response", + "safeName": "update_response" + }, + "screamingSnakeCase": { + "unsafeName": "UPDATE_RESPONSE", + "safeName": "UPDATE_RESPONSE" + }, + "pascalCase": { + "unsafeName": "UpdateResponse", + "safeName": "UpdateResponse" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:UpdateResponse" + }, + "shape": { + "_type": "object", + "extends": [], + "properties": [], + "extra-properties": false, + "extendedProperties": [] + }, + "referencedTypes": [], + "encoding": { + "json": null, + "proto": {} + }, + "source": { + "type": "proto", + "value": { + "type": "userDefined", + "file": { + "filepath": "proto/data/v1/data.proto", + "packageName": "data.v1", + "options": { + "csharp": { + "namespace": "Data.V1.Grpc" + } + } + }, + "name": { + "originalName": "UpdateResponse", + "camelCase": { + "unsafeName": "updateResponse", + "safeName": "updateResponse" + }, + "snakeCase": { + "unsafeName": "update_response", + "safeName": "update_response" + }, + "screamingSnakeCase": { + "unsafeName": "UPDATE_RESPONSE", + "safeName": "UPDATE_RESPONSE" + }, + "pascalCase": { + "unsafeName": "UpdateResponse", + "safeName": "UpdateResponse" + } + } + } + }, + "userProvidedExamples": [], + "autogeneratedExamples": [], + "availability": null, + "docs": null + }, + "type_:UploadResponse": { + "inline": false, + "name": { + "name": { + "originalName": "UploadResponse", + "camelCase": { + "unsafeName": "uploadResponse", + "safeName": "uploadResponse" + }, + "snakeCase": { + "unsafeName": "upload_response", + "safeName": "upload_response" + }, + "screamingSnakeCase": { + "unsafeName": "UPLOAD_RESPONSE", + "safeName": "UPLOAD_RESPONSE" + }, + "pascalCase": { + "unsafeName": "UploadResponse", + "safeName": "UploadResponse" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:UploadResponse" + }, + "shape": { + "_type": "object", + "extends": [], + "properties": [ + { + "name": { + "name": { + "originalName": "count", + "camelCase": { + "unsafeName": "count", + "safeName": "count" + }, + "snakeCase": { + "unsafeName": "count", + "safeName": "count" + }, + "screamingSnakeCase": { + "unsafeName": "COUNT", + "safeName": "COUNT" + }, + "pascalCase": { + "unsafeName": "Count", + "safeName": "Count" + } + }, + "wireValue": "count" + }, + "valueType": { + "_type": "container", + "container": { + "_type": "optional", + "optional": { + "_type": "primitive", + "primitive": { + "v1": "UINT", + "v2": null + } + } + } + }, + "availability": null, + "docs": null + } + ], + "extra-properties": false, + "extendedProperties": [] + }, + "referencedTypes": [], + "encoding": { + "json": null, + "proto": {} + }, + "source": { + "type": "proto", + "value": { + "type": "userDefined", + "file": { + "filepath": "proto/data/v1/data.proto", + "packageName": "data.v1", + "options": { + "csharp": { + "namespace": "Data.V1.Grpc" + } + } + }, + "name": { + "originalName": "UploadResponse", + "camelCase": { + "unsafeName": "uploadResponse", + "safeName": "uploadResponse" + }, + "snakeCase": { + "unsafeName": "upload_response", + "safeName": "upload_response" + }, + "screamingSnakeCase": { + "unsafeName": "UPLOAD_RESPONSE", + "safeName": "UPLOAD_RESPONSE" + }, + "pascalCase": { + "unsafeName": "UploadResponse", + "safeName": "UploadResponse" + } + } + } + }, + "userProvidedExamples": [], + "autogeneratedExamples": [], + "availability": null, + "docs": null + }, + "type_:Usage": { + "inline": false, + "name": { + "name": { + "originalName": "Usage", + "camelCase": { + "unsafeName": "usage", + "safeName": "usage" + }, + "snakeCase": { + "unsafeName": "usage", + "safeName": "usage" + }, + "screamingSnakeCase": { + "unsafeName": "USAGE", + "safeName": "USAGE" + }, + "pascalCase": { + "unsafeName": "Usage", + "safeName": "Usage" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:Usage" + }, + "shape": { + "_type": "object", + "extends": [], + "properties": [ + { + "name": { + "name": { + "originalName": "units", + "camelCase": { + "unsafeName": "units", + "safeName": "units" + }, + "snakeCase": { + "unsafeName": "units", + "safeName": "units" + }, + "screamingSnakeCase": { + "unsafeName": "UNITS", + "safeName": "UNITS" + }, + "pascalCase": { + "unsafeName": "Units", + "safeName": "Units" + } + }, + "wireValue": "units" + }, + "valueType": { + "_type": "container", + "container": { + "_type": "optional", + "optional": { + "_type": "primitive", + "primitive": { + "v1": "UINT", + "v2": null + } + } + } + }, + "availability": null, + "docs": null + } + ], + "extra-properties": false, + "extendedProperties": [] + }, + "referencedTypes": [], + "encoding": { + "json": null, + "proto": {} + }, + "source": { + "type": "proto", + "value": { + "type": "userDefined", + "file": { + "filepath": "proto/data/v1/data.proto", + "packageName": "data.v1", + "options": { + "csharp": { + "namespace": "Data.V1.Grpc" + } + } + }, + "name": { + "originalName": "Usage", + "camelCase": { + "unsafeName": "usage", + "safeName": "usage" + }, + "snakeCase": { + "unsafeName": "usage", + "safeName": "usage" + }, + "screamingSnakeCase": { + "unsafeName": "USAGE", + "safeName": "USAGE" + }, + "pascalCase": { + "unsafeName": "Usage", + "safeName": "Usage" + } + } + } + }, + "userProvidedExamples": [], + "autogeneratedExamples": [], + "availability": null, + "docs": null + }, + "type_:Metadata": { + "inline": false, + "name": { + "name": { + "originalName": "Metadata", + "camelCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "snakeCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "screamingSnakeCase": { + "unsafeName": "METADATA", + "safeName": "METADATA" + }, + "pascalCase": { + "unsafeName": "Metadata", + "safeName": "Metadata" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:Metadata" + }, + "shape": { + "_type": "undiscriminatedUnion", + "members": [ + { + "type": { + "_type": "container", + "container": { + "_type": "map", + "keyType": { + "_type": "primitive", + "primitive": { + "v1": "STRING", + "v2": { + "type": "string", + "default": null, + "validation": null + } + } + }, + "valueType": { + "_type": "named", + "name": { + "originalName": "MetadataValue", + "camelCase": { + "unsafeName": "metadataValue", + "safeName": "metadataValue" + }, + "snakeCase": { + "unsafeName": "metadata_value", + "safeName": "metadata_value" + }, + "screamingSnakeCase": { + "unsafeName": "METADATA_VALUE", + "safeName": "METADATA_VALUE" + }, + "pascalCase": { + "unsafeName": "MetadataValue", + "safeName": "MetadataValue" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:MetadataValue", + "default": null, + "inline": null + } + } + }, + "docs": null + }, + { + "type": { + "_type": "container", + "container": { + "_type": "map", + "keyType": { + "_type": "primitive", + "primitive": { + "v1": "STRING", + "v2": { + "type": "string", + "default": null, + "validation": null + } + } + }, + "valueType": { + "_type": "unknown" + } + } + }, + "docs": null + } + ] + }, + "referencedTypes": [ + "type_:MetadataValue" + ], + "encoding": { + "json": null, + "proto": {} + }, + "source": { + "type": "proto", + "value": { + "type": "wellKnown", + "value": { + "type": "struct" + } + } + }, + "userProvidedExamples": [], + "autogeneratedExamples": [], + "availability": null, + "docs": null + }, + "type_:MetadataValue": { + "inline": false, + "name": { + "name": { + "originalName": "MetadataValue", + "camelCase": { + "unsafeName": "metadataValue", + "safeName": "metadataValue" + }, + "snakeCase": { + "unsafeName": "metadata_value", + "safeName": "metadata_value" + }, + "screamingSnakeCase": { + "unsafeName": "METADATA_VALUE", + "safeName": "METADATA_VALUE" + }, + "pascalCase": { + "unsafeName": "MetadataValue", + "safeName": "MetadataValue" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:MetadataValue" + }, + "shape": { + "_type": "undiscriminatedUnion", + "members": [ + { + "type": { + "_type": "primitive", + "primitive": { + "v1": "DOUBLE", + "v2": { + "type": "double", + "default": null, + "validation": null + } + } + }, + "docs": null + }, + { + "type": { + "_type": "primitive", + "primitive": { + "v1": "STRING", + "v2": { + "type": "string", + "default": null, + "validation": null + } + } + }, + "docs": null + }, + { + "type": { + "_type": "primitive", + "primitive": { + "v1": "BOOLEAN", + "v2": null + } + }, + "docs": null + } + ] + }, + "referencedTypes": [], + "encoding": { + "json": null, + "proto": {} + }, + "source": { + "type": "proto", + "value": { + "type": "wellKnown", + "value": { + "type": "value" + } + } + }, + "userProvidedExamples": [], + "autogeneratedExamples": [], + "availability": null, + "docs": null + } + }, + "errors": {}, + "services": { + "service_dataservice": { + "availability": null, + "name": { + "fernFilepath": { + "allParts": [ + { + "originalName": "dataservice", + "camelCase": { + "unsafeName": "dataservice", + "safeName": "dataservice" + }, + "snakeCase": { + "unsafeName": "dataservice", + "safeName": "dataservice" + }, + "screamingSnakeCase": { + "unsafeName": "DATASERVICE", + "safeName": "DATASERVICE" + }, + "pascalCase": { + "unsafeName": "Dataservice", + "safeName": "Dataservice" + } + } + ], + "packagePath": [], + "file": { + "originalName": "dataservice", + "camelCase": { + "unsafeName": "dataservice", + "safeName": "dataservice" + }, + "snakeCase": { + "unsafeName": "dataservice", + "safeName": "dataservice" + }, + "screamingSnakeCase": { + "unsafeName": "DATASERVICE", + "safeName": "DATASERVICE" + }, + "pascalCase": { + "unsafeName": "Dataservice", + "safeName": "Dataservice" + } + } + } + }, + "displayName": "DataService", + "basePath": { + "head": "", + "parts": [] + }, + "headers": [], + "pathParameters": [], + "encoding": { + "json": null, + "proto": {} + }, + "transport": { + "type": "grpc", + "service": { + "file": { + "filepath": "proto/data/v1/data.proto", + "packageName": "data.v1", + "options": { + "csharp": { + "namespace": "Data.V1.Grpc" + } + } + }, + "name": { + "originalName": "DataService", + "camelCase": { + "unsafeName": "dataService", + "safeName": "dataService" + }, + "snakeCase": { + "unsafeName": "data_service", + "safeName": "data_service" + }, + "screamingSnakeCase": { + "unsafeName": "DATA_SERVICE", + "safeName": "DATA_SERVICE" + }, + "pascalCase": { + "unsafeName": "DataService", + "safeName": "DataService" + } + } + } + }, + "endpoints": [ + { + "id": "endpoint_dataservice.foo", + "name": { + "originalName": "foo", + "camelCase": { + "unsafeName": "foo", + "safeName": "foo" + }, + "snakeCase": { + "unsafeName": "foo", + "safeName": "foo" + }, + "screamingSnakeCase": { + "unsafeName": "FOO", + "safeName": "FOO" + }, + "pascalCase": { + "unsafeName": "Foo", + "safeName": "Foo" + } + }, + "displayName": null, + "auth": false, + "idempotent": false, + "baseUrl": null, + "method": "POST", + "basePath": null, + "path": { + "head": "/foo", + "parts": [] + }, + "fullPath": { + "head": "foo", + "parts": [] + }, + "pathParameters": [], + "allPathParameters": [], + "queryParameters": [], + "headers": [], + "requestBody": null, + "sdkRequest": null, + "response": { + "body": { + "type": "json", + "value": { + "type": "response", + "responseBodyType": { + "_type": "container", + "container": { + "_type": "map", + "keyType": { + "_type": "primitive", + "primitive": { + "v1": "STRING", + "v2": { + "type": "string", + "default": null, + "validation": null + } + } + }, + "valueType": { + "_type": "unknown" + } + } + }, + "docs": null + } + }, + "status-code": null + }, + "errors": [], + "userSpecifiedExamples": [ + { + "example": { + "id": "3da1df2e522ba96c14c10c68b745bdfb3bff9e3de4ae562c45addca35de12df9", + "name": null, + "url": "/foo", + "rootPathParameters": [], + "endpointPathParameters": [], + "servicePathParameters": [], + "endpointHeaders": [], + "serviceHeaders": [], + "queryParameters": [], + "request": null, + "response": { + "type": "ok", + "value": { + "type": "body", + "value": { + "shape": { + "type": "container", + "container": { + "type": "map", + "map": [ + { + "key": { + "shape": { + "type": "primitive", + "primitive": { + "type": "string", + "string": { + "original": "key" + } + } + }, + "jsonExample": "key" + }, + "value": { + "shape": { + "type": "unknown", + "unknown": "value" + }, + "jsonExample": "value" + } + } + ], + "keyType": { + "_type": "primitive", + "primitive": { + "v1": "STRING", + "v2": { + "type": "string", + "default": null, + "validation": null + } + } + }, + "valueType": { + "_type": "unknown" + } + } + }, + "jsonExample": { + "key": "value" + } + } + } + }, + "docs": null + }, + "codeSamples": null + } + ], + "autogeneratedExamples": [ + { + "example": { + "id": "a6ed54576c86109c3acea4e10911bd296a87ae7e", + "url": "/foo", + "name": null, + "endpointHeaders": [], + "endpointPathParameters": [], + "queryParameters": [], + "servicePathParameters": [], + "serviceHeaders": [], + "rootPathParameters": [], + "request": null, + "response": { + "type": "ok", + "value": { + "type": "body", + "value": { + "shape": { + "type": "container", + "container": { + "type": "map", + "map": [ + { + "key": { + "shape": { + "type": "primitive", + "primitive": { + "type": "string", + "string": { + "original": "string" + } + } + }, + "jsonExample": "string" + }, + "value": { + "shape": { + "type": "unknown", + "unknown": { + "key": "value" + } + }, + "jsonExample": { + "key": "value" + } + } + } + ], + "keyType": { + "_type": "primitive", + "primitive": { + "v1": "STRING", + "v2": { + "type": "string", + "default": null, + "validation": null + } + } + }, + "valueType": { + "_type": "unknown" + } + } + }, + "jsonExample": { + "string": { + "key": "value" + } + } + } + } + }, + "docs": null + } + } + ], + "pagination": null, + "transport": { + "type": "http" + }, + "availability": null, + "docs": null + }, + { + "id": "endpoint_dataservice.upload", + "name": { + "originalName": "upload", + "camelCase": { + "unsafeName": "upload", + "safeName": "upload" + }, + "snakeCase": { + "unsafeName": "upload", + "safeName": "upload" + }, + "screamingSnakeCase": { + "unsafeName": "UPLOAD", + "safeName": "UPLOAD" + }, + "pascalCase": { + "unsafeName": "Upload", + "safeName": "Upload" + } + }, + "displayName": null, + "auth": false, + "idempotent": false, + "baseUrl": null, + "method": "POST", + "basePath": null, + "path": { + "head": "/data", + "parts": [] + }, + "fullPath": { + "head": "data", + "parts": [] + }, + "pathParameters": [], + "allPathParameters": [], + "queryParameters": [], + "headers": [], + "requestBody": { + "type": "inlinedRequestBody", + "name": { + "originalName": "UploadRequest", + "camelCase": { + "unsafeName": "uploadRequest", + "safeName": "uploadRequest" + }, + "snakeCase": { + "unsafeName": "upload_request", + "safeName": "upload_request" + }, + "screamingSnakeCase": { + "unsafeName": "UPLOAD_REQUEST", + "safeName": "UPLOAD_REQUEST" + }, + "pascalCase": { + "unsafeName": "UploadRequest", + "safeName": "UploadRequest" + } + }, + "extends": [], + "contentType": "application/json", + "properties": [ + { + "name": { + "name": { + "originalName": "columns", + "camelCase": { + "unsafeName": "columns", + "safeName": "columns" + }, + "snakeCase": { + "unsafeName": "columns", + "safeName": "columns" + }, + "screamingSnakeCase": { + "unsafeName": "COLUMNS", + "safeName": "COLUMNS" + }, + "pascalCase": { + "unsafeName": "Columns", + "safeName": "Columns" + } + }, + "wireValue": "columns" + }, + "valueType": { + "_type": "container", + "container": { + "_type": "list", + "list": { + "_type": "named", + "name": { + "originalName": "Column", + "camelCase": { + "unsafeName": "column", + "safeName": "column" + }, + "snakeCase": { + "unsafeName": "column", + "safeName": "column" + }, + "screamingSnakeCase": { + "unsafeName": "COLUMN", + "safeName": "COLUMN" + }, + "pascalCase": { + "unsafeName": "Column", + "safeName": "Column" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:Column", + "default": null, + "inline": null + } + } + }, + "availability": null, + "docs": null + }, + { + "name": { + "name": { + "originalName": "namespace", + "camelCase": { + "unsafeName": "namespace", + "safeName": "namespace" + }, + "snakeCase": { + "unsafeName": "namespace", + "safeName": "namespace" + }, + "screamingSnakeCase": { + "unsafeName": "NAMESPACE", + "safeName": "NAMESPACE" + }, + "pascalCase": { + "unsafeName": "Namespace", + "safeName": "Namespace" + } + }, + "wireValue": "namespace" + }, + "valueType": { + "_type": "container", + "container": { + "_type": "optional", + "optional": { + "_type": "primitive", + "primitive": { + "v1": "STRING", + "v2": { + "type": "string", + "default": null, + "validation": null + } + } + } + } + }, + "availability": null, + "docs": null + } + ], + "extra-properties": false, + "extendedProperties": [], + "docs": null + }, + "sdkRequest": { + "shape": { + "type": "wrapper", + "wrapperName": { + "originalName": "UploadRequest", + "camelCase": { + "unsafeName": "uploadRequest", + "safeName": "uploadRequest" + }, + "snakeCase": { + "unsafeName": "upload_request", + "safeName": "upload_request" + }, + "screamingSnakeCase": { + "unsafeName": "UPLOAD_REQUEST", + "safeName": "UPLOAD_REQUEST" + }, + "pascalCase": { + "unsafeName": "UploadRequest", + "safeName": "UploadRequest" + } + }, + "bodyKey": { + "originalName": "body", + "camelCase": { + "unsafeName": "body", + "safeName": "body" + }, + "snakeCase": { + "unsafeName": "body", + "safeName": "body" + }, + "screamingSnakeCase": { + "unsafeName": "BODY", + "safeName": "BODY" + }, + "pascalCase": { + "unsafeName": "Body", + "safeName": "Body" + } + } + }, + "requestParameterName": { + "originalName": "request", + "camelCase": { + "unsafeName": "request", + "safeName": "request" + }, + "snakeCase": { + "unsafeName": "request", + "safeName": "request" + }, + "screamingSnakeCase": { + "unsafeName": "REQUEST", + "safeName": "REQUEST" + }, + "pascalCase": { + "unsafeName": "Request", + "safeName": "Request" + } + }, + "streamParameter": null + }, + "response": { + "body": { + "type": "json", + "value": { + "type": "response", + "responseBodyType": { + "_type": "named", + "name": { + "originalName": "UploadResponse", + "camelCase": { + "unsafeName": "uploadResponse", + "safeName": "uploadResponse" + }, + "snakeCase": { + "unsafeName": "upload_response", + "safeName": "upload_response" + }, + "screamingSnakeCase": { + "unsafeName": "UPLOAD_RESPONSE", + "safeName": "UPLOAD_RESPONSE" + }, + "pascalCase": { + "unsafeName": "UploadResponse", + "safeName": "UploadResponse" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:UploadResponse", + "default": null, + "inline": null + }, + "docs": "OK" + } + }, + "status-code": null + }, + "errors": [], + "userSpecifiedExamples": [ + { + "example": { + "id": "e86e562096070c8391794a0e71b5a997edee015f7c2fed9ce955ab36cc14df3d", + "name": null, + "url": "/data", + "rootPathParameters": [], + "endpointPathParameters": [], + "servicePathParameters": [], + "endpointHeaders": [], + "serviceHeaders": [], + "queryParameters": [], + "request": { + "type": "inlinedRequestBody", + "properties": [ + { + "name": { + "name": { + "originalName": "columns", + "camelCase": { + "unsafeName": "columns", + "safeName": "columns" + }, + "snakeCase": { + "unsafeName": "columns", + "safeName": "columns" + }, + "screamingSnakeCase": { + "unsafeName": "COLUMNS", + "safeName": "COLUMNS" + }, + "pascalCase": { + "unsafeName": "Columns", + "safeName": "Columns" + } + }, + "wireValue": "columns" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "list", + "list": [ + { + "shape": { + "type": "named", + "typeName": { + "typeId": "type_:Column", + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "name": { + "originalName": "Column", + "camelCase": { + "unsafeName": "column", + "safeName": "column" + }, + "snakeCase": { + "unsafeName": "column", + "safeName": "column" + }, + "screamingSnakeCase": { + "unsafeName": "COLUMN", + "safeName": "COLUMN" + }, + "pascalCase": { + "unsafeName": "Column", + "safeName": "Column" + } + } + }, + "shape": { + "type": "object", + "properties": [ + { + "name": { + "name": { + "originalName": "id", + "camelCase": { + "unsafeName": "id", + "safeName": "id" + }, + "snakeCase": { + "unsafeName": "id", + "safeName": "id" + }, + "screamingSnakeCase": { + "unsafeName": "ID", + "safeName": "ID" + }, + "pascalCase": { + "unsafeName": "ID", + "safeName": "ID" + } + }, + "wireValue": "id" + }, + "value": { + "shape": { + "type": "primitive", + "primitive": { + "type": "string", + "string": { + "original": "id" + } + } + }, + "jsonExample": "id" + }, + "originalTypeDeclaration": { + "typeId": "type_:Column", + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "name": { + "originalName": "Column", + "camelCase": { + "unsafeName": "column", + "safeName": "column" + }, + "snakeCase": { + "unsafeName": "column", + "safeName": "column" + }, + "screamingSnakeCase": { + "unsafeName": "COLUMN", + "safeName": "COLUMN" + }, + "pascalCase": { + "unsafeName": "Column", + "safeName": "Column" + } + } + } + }, + { + "name": { + "name": { + "originalName": "values", + "camelCase": { + "unsafeName": "values", + "safeName": "values" + }, + "snakeCase": { + "unsafeName": "values", + "safeName": "values" + }, + "screamingSnakeCase": { + "unsafeName": "VALUES", + "safeName": "VALUES" + }, + "pascalCase": { + "unsafeName": "Values", + "safeName": "Values" + } + }, + "wireValue": "values" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "list", + "list": [ + { + "shape": { + "type": "primitive", + "primitive": { + "type": "float", + "float": 1.1 + } + }, + "jsonExample": 1.1 + } + ], + "itemType": { + "_type": "primitive", + "primitive": { + "v1": "FLOAT", + "v2": null + } + } + } + }, + "jsonExample": [ + 1.1 + ] + }, + "originalTypeDeclaration": { + "typeId": "type_:Column", + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "name": { + "originalName": "Column", + "camelCase": { + "unsafeName": "column", + "safeName": "column" + }, + "snakeCase": { + "unsafeName": "column", + "safeName": "column" + }, + "screamingSnakeCase": { + "unsafeName": "COLUMN", + "safeName": "COLUMN" + }, + "pascalCase": { + "unsafeName": "Column", + "safeName": "Column" + } + } + } + } + ] + } + }, + "jsonExample": { + "id": "id", + "values": [ + 1.1 + ] + } + } + ], + "itemType": { + "_type": "named", + "name": { + "originalName": "Column", + "camelCase": { + "unsafeName": "column", + "safeName": "column" + }, + "snakeCase": { + "unsafeName": "column", + "safeName": "column" + }, + "screamingSnakeCase": { + "unsafeName": "COLUMN", + "safeName": "COLUMN" + }, + "pascalCase": { + "unsafeName": "Column", + "safeName": "Column" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:Column", + "default": null, + "inline": null + } + } + }, + "jsonExample": [ + { + "id": "id", + "values": [ + 1.1 + ] + } + ] + }, + "originalTypeDeclaration": null + } + ], + "jsonExample": { + "columns": [ + { + "id": "id", + "values": [ + 1.1 + ] + } + ] + } + }, + "response": { + "type": "ok", + "value": { + "type": "body", + "value": { + "shape": { + "type": "named", + "typeName": { + "typeId": "type_:UploadResponse", + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "name": { + "originalName": "UploadResponse", + "camelCase": { + "unsafeName": "uploadResponse", + "safeName": "uploadResponse" + }, + "snakeCase": { + "unsafeName": "upload_response", + "safeName": "upload_response" + }, + "screamingSnakeCase": { + "unsafeName": "UPLOAD_RESPONSE", + "safeName": "UPLOAD_RESPONSE" + }, + "pascalCase": { + "unsafeName": "UploadResponse", + "safeName": "UploadResponse" + } + } + }, + "shape": { + "type": "object", + "properties": [ + { + "name": { + "name": { + "originalName": "count", + "camelCase": { + "unsafeName": "count", + "safeName": "count" + }, + "snakeCase": { + "unsafeName": "count", + "safeName": "count" + }, + "screamingSnakeCase": { + "unsafeName": "COUNT", + "safeName": "COUNT" + }, + "pascalCase": { + "unsafeName": "Count", + "safeName": "Count" + } + }, + "wireValue": "count" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": { + "shape": { + "type": "primitive", + "primitive": { + "type": "uint", + "uint": 1 + } + }, + "jsonExample": 1 + }, + "valueType": { + "_type": "primitive", + "primitive": { + "v1": "UINT", + "v2": null + } + } + } + }, + "jsonExample": 1 + }, + "originalTypeDeclaration": { + "typeId": "type_:UploadResponse", + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "name": { + "originalName": "UploadResponse", + "camelCase": { + "unsafeName": "uploadResponse", + "safeName": "uploadResponse" + }, + "snakeCase": { + "unsafeName": "upload_response", + "safeName": "upload_response" + }, + "screamingSnakeCase": { + "unsafeName": "UPLOAD_RESPONSE", + "safeName": "UPLOAD_RESPONSE" + }, + "pascalCase": { + "unsafeName": "UploadResponse", + "safeName": "UploadResponse" + } + } + } + } + ] + } + }, + "jsonExample": { + "count": 1 + } + } + } + }, + "docs": null + }, + "codeSamples": null + } + ], + "autogeneratedExamples": [ + { + "example": { + "id": "d7bb93ad7d65d43ac8f94d109b2d0c8d5fb6f3df", + "url": "/data", + "name": null, + "endpointHeaders": [], + "endpointPathParameters": [], + "queryParameters": [], + "servicePathParameters": [], + "serviceHeaders": [], + "rootPathParameters": [], + "request": { + "type": "inlinedRequestBody", + "properties": [ + { + "name": { + "name": { + "originalName": "columns", + "camelCase": { + "unsafeName": "columns", + "safeName": "columns" + }, + "snakeCase": { + "unsafeName": "columns", + "safeName": "columns" + }, + "screamingSnakeCase": { + "unsafeName": "COLUMNS", + "safeName": "COLUMNS" + }, + "pascalCase": { + "unsafeName": "Columns", + "safeName": "Columns" + } + }, + "wireValue": "columns" + }, + "originalTypeDeclaration": null, + "value": { + "shape": { + "type": "container", + "container": { + "type": "list", + "list": [ + { + "shape": { + "type": "named", + "shape": { + "type": "object", + "properties": [ + { + "name": { + "name": { + "originalName": "id", + "camelCase": { + "unsafeName": "id", + "safeName": "id" + }, + "snakeCase": { + "unsafeName": "id", + "safeName": "id" + }, + "screamingSnakeCase": { + "unsafeName": "ID", + "safeName": "ID" + }, + "pascalCase": { + "unsafeName": "ID", + "safeName": "ID" + } + }, + "wireValue": "id" + }, + "originalTypeDeclaration": { + "name": { + "originalName": "Column", + "camelCase": { + "unsafeName": "column", + "safeName": "column" + }, + "snakeCase": { + "unsafeName": "column", + "safeName": "column" + }, + "screamingSnakeCase": { + "unsafeName": "COLUMN", + "safeName": "COLUMN" + }, + "pascalCase": { + "unsafeName": "Column", + "safeName": "Column" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:Column" + }, + "value": { + "shape": { + "type": "primitive", + "primitive": { + "type": "string", + "string": { + "original": "id" + } + } + }, + "jsonExample": "id" + } + }, + { + "name": { + "name": { + "originalName": "values", + "camelCase": { + "unsafeName": "values", + "safeName": "values" + }, + "snakeCase": { + "unsafeName": "values", + "safeName": "values" + }, + "screamingSnakeCase": { + "unsafeName": "VALUES", + "safeName": "VALUES" + }, + "pascalCase": { + "unsafeName": "Values", + "safeName": "Values" + } + }, + "wireValue": "values" + }, + "originalTypeDeclaration": { + "name": { + "originalName": "Column", + "camelCase": { + "unsafeName": "column", + "safeName": "column" + }, + "snakeCase": { + "unsafeName": "column", + "safeName": "column" + }, + "screamingSnakeCase": { + "unsafeName": "COLUMN", + "safeName": "COLUMN" + }, + "pascalCase": { + "unsafeName": "Column", + "safeName": "Column" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:Column" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "list", + "list": [ + { + "shape": { + "type": "primitive", + "primitive": { + "type": "float", + "float": 1.1 + } + }, + "jsonExample": 1.1 + }, + { + "shape": { + "type": "primitive", + "primitive": { + "type": "float", + "float": 1.1 + } + }, + "jsonExample": 1.1 + } + ], + "itemType": { + "_type": "primitive", + "primitive": { + "v1": "FLOAT", + "v2": null + } + } + } + }, + "jsonExample": [ + 1.1, + 1.1 + ] + } + }, + { + "name": { + "name": { + "originalName": "metadata", + "camelCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "snakeCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "screamingSnakeCase": { + "unsafeName": "METADATA", + "safeName": "METADATA" + }, + "pascalCase": { + "unsafeName": "Metadata", + "safeName": "Metadata" + } + }, + "wireValue": "metadata" + }, + "originalTypeDeclaration": { + "name": { + "originalName": "Column", + "camelCase": { + "unsafeName": "column", + "safeName": "column" + }, + "snakeCase": { + "unsafeName": "column", + "safeName": "column" + }, + "screamingSnakeCase": { + "unsafeName": "COLUMN", + "safeName": "COLUMN" + }, + "pascalCase": { + "unsafeName": "Column", + "safeName": "Column" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:Column" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": null, + "valueType": { + "_type": "named", + "name": { + "originalName": "Metadata", + "camelCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "snakeCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "screamingSnakeCase": { + "unsafeName": "METADATA", + "safeName": "METADATA" + }, + "pascalCase": { + "unsafeName": "Metadata", + "safeName": "Metadata" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:Metadata", + "default": null, + "inline": null + } + } + } + } + }, + { + "name": { + "name": { + "originalName": "indexedData", + "camelCase": { + "unsafeName": "indexedData", + "safeName": "indexedData" + }, + "snakeCase": { + "unsafeName": "indexed_data", + "safeName": "indexed_data" + }, + "screamingSnakeCase": { + "unsafeName": "INDEXED_DATA", + "safeName": "INDEXED_DATA" + }, + "pascalCase": { + "unsafeName": "IndexedData", + "safeName": "IndexedData" + } + }, + "wireValue": "indexedData" + }, + "originalTypeDeclaration": { + "name": { + "originalName": "Column", + "camelCase": { + "unsafeName": "column", + "safeName": "column" + }, + "snakeCase": { + "unsafeName": "column", + "safeName": "column" + }, + "screamingSnakeCase": { + "unsafeName": "COLUMN", + "safeName": "COLUMN" + }, + "pascalCase": { + "unsafeName": "Column", + "safeName": "Column" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:Column" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": null, + "valueType": { + "_type": "named", + "name": { + "originalName": "IndexedData", + "camelCase": { + "unsafeName": "indexedData", + "safeName": "indexedData" + }, + "snakeCase": { + "unsafeName": "indexed_data", + "safeName": "indexed_data" + }, + "screamingSnakeCase": { + "unsafeName": "INDEXED_DATA", + "safeName": "INDEXED_DATA" + }, + "pascalCase": { + "unsafeName": "IndexedData", + "safeName": "IndexedData" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:IndexedData", + "default": null, + "inline": null + } + } + } + } + } + ] + }, + "typeName": { + "name": { + "originalName": "Column", + "camelCase": { + "unsafeName": "column", + "safeName": "column" + }, + "snakeCase": { + "unsafeName": "column", + "safeName": "column" + }, + "screamingSnakeCase": { + "unsafeName": "COLUMN", + "safeName": "COLUMN" + }, + "pascalCase": { + "unsafeName": "Column", + "safeName": "Column" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:Column" + } + }, + "jsonExample": { + "id": "id", + "values": [ + 1.1, + 1.1 + ] + } + }, + { + "shape": { + "type": "named", + "shape": { + "type": "object", + "properties": [ + { + "name": { + "name": { + "originalName": "id", + "camelCase": { + "unsafeName": "id", + "safeName": "id" + }, + "snakeCase": { + "unsafeName": "id", + "safeName": "id" + }, + "screamingSnakeCase": { + "unsafeName": "ID", + "safeName": "ID" + }, + "pascalCase": { + "unsafeName": "ID", + "safeName": "ID" + } + }, + "wireValue": "id" + }, + "originalTypeDeclaration": { + "name": { + "originalName": "Column", + "camelCase": { + "unsafeName": "column", + "safeName": "column" + }, + "snakeCase": { + "unsafeName": "column", + "safeName": "column" + }, + "screamingSnakeCase": { + "unsafeName": "COLUMN", + "safeName": "COLUMN" + }, + "pascalCase": { + "unsafeName": "Column", + "safeName": "Column" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:Column" + }, + "value": { + "shape": { + "type": "primitive", + "primitive": { + "type": "string", + "string": { + "original": "id" + } + } + }, + "jsonExample": "id" + } + }, + { + "name": { + "name": { + "originalName": "values", + "camelCase": { + "unsafeName": "values", + "safeName": "values" + }, + "snakeCase": { + "unsafeName": "values", + "safeName": "values" + }, + "screamingSnakeCase": { + "unsafeName": "VALUES", + "safeName": "VALUES" + }, + "pascalCase": { + "unsafeName": "Values", + "safeName": "Values" + } + }, + "wireValue": "values" + }, + "originalTypeDeclaration": { + "name": { + "originalName": "Column", + "camelCase": { + "unsafeName": "column", + "safeName": "column" + }, + "snakeCase": { + "unsafeName": "column", + "safeName": "column" + }, + "screamingSnakeCase": { + "unsafeName": "COLUMN", + "safeName": "COLUMN" + }, + "pascalCase": { + "unsafeName": "Column", + "safeName": "Column" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:Column" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "list", + "list": [ + { + "shape": { + "type": "primitive", + "primitive": { + "type": "float", + "float": 1.1 + } + }, + "jsonExample": 1.1 + }, + { + "shape": { + "type": "primitive", + "primitive": { + "type": "float", + "float": 1.1 + } + }, + "jsonExample": 1.1 + } + ], + "itemType": { + "_type": "primitive", + "primitive": { + "v1": "FLOAT", + "v2": null + } + } + } + }, + "jsonExample": [ + 1.1, + 1.1 + ] + } + }, + { + "name": { + "name": { + "originalName": "metadata", + "camelCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "snakeCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "screamingSnakeCase": { + "unsafeName": "METADATA", + "safeName": "METADATA" + }, + "pascalCase": { + "unsafeName": "Metadata", + "safeName": "Metadata" + } + }, + "wireValue": "metadata" + }, + "originalTypeDeclaration": { + "name": { + "originalName": "Column", + "camelCase": { + "unsafeName": "column", + "safeName": "column" + }, + "snakeCase": { + "unsafeName": "column", + "safeName": "column" + }, + "screamingSnakeCase": { + "unsafeName": "COLUMN", + "safeName": "COLUMN" + }, + "pascalCase": { + "unsafeName": "Column", + "safeName": "Column" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:Column" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": null, + "valueType": { + "_type": "named", + "name": { + "originalName": "Metadata", + "camelCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "snakeCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "screamingSnakeCase": { + "unsafeName": "METADATA", + "safeName": "METADATA" + }, + "pascalCase": { + "unsafeName": "Metadata", + "safeName": "Metadata" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:Metadata", + "default": null, + "inline": null + } + } + } + } + }, + { + "name": { + "name": { + "originalName": "indexedData", + "camelCase": { + "unsafeName": "indexedData", + "safeName": "indexedData" + }, + "snakeCase": { + "unsafeName": "indexed_data", + "safeName": "indexed_data" + }, + "screamingSnakeCase": { + "unsafeName": "INDEXED_DATA", + "safeName": "INDEXED_DATA" + }, + "pascalCase": { + "unsafeName": "IndexedData", + "safeName": "IndexedData" + } + }, + "wireValue": "indexedData" + }, + "originalTypeDeclaration": { + "name": { + "originalName": "Column", + "camelCase": { + "unsafeName": "column", + "safeName": "column" + }, + "snakeCase": { + "unsafeName": "column", + "safeName": "column" + }, + "screamingSnakeCase": { + "unsafeName": "COLUMN", + "safeName": "COLUMN" + }, + "pascalCase": { + "unsafeName": "Column", + "safeName": "Column" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:Column" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": null, + "valueType": { + "_type": "named", + "name": { + "originalName": "IndexedData", + "camelCase": { + "unsafeName": "indexedData", + "safeName": "indexedData" + }, + "snakeCase": { + "unsafeName": "indexed_data", + "safeName": "indexed_data" + }, + "screamingSnakeCase": { + "unsafeName": "INDEXED_DATA", + "safeName": "INDEXED_DATA" + }, + "pascalCase": { + "unsafeName": "IndexedData", + "safeName": "IndexedData" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:IndexedData", + "default": null, + "inline": null + } + } + } + } + } + ] + }, + "typeName": { + "name": { + "originalName": "Column", + "camelCase": { + "unsafeName": "column", + "safeName": "column" + }, + "snakeCase": { + "unsafeName": "column", + "safeName": "column" + }, + "screamingSnakeCase": { + "unsafeName": "COLUMN", + "safeName": "COLUMN" + }, + "pascalCase": { + "unsafeName": "Column", + "safeName": "Column" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:Column" + } + }, + "jsonExample": { + "id": "id", + "values": [ + 1.1, + 1.1 + ] + } + } + ], + "itemType": { + "_type": "named", + "name": { + "originalName": "Column", + "camelCase": { + "unsafeName": "column", + "safeName": "column" + }, + "snakeCase": { + "unsafeName": "column", + "safeName": "column" + }, + "screamingSnakeCase": { + "unsafeName": "COLUMN", + "safeName": "COLUMN" + }, + "pascalCase": { + "unsafeName": "Column", + "safeName": "Column" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:Column", + "default": null, + "inline": null + } + } + }, + "jsonExample": [ + { + "id": "id", + "values": [ + 1.1, + 1.1 + ] + }, + { + "id": "id", + "values": [ + 1.1, + 1.1 + ] + } + ] + } + }, + { + "name": { + "name": { + "originalName": "namespace", + "camelCase": { + "unsafeName": "namespace", + "safeName": "namespace" + }, + "snakeCase": { + "unsafeName": "namespace", + "safeName": "namespace" + }, + "screamingSnakeCase": { + "unsafeName": "NAMESPACE", + "safeName": "NAMESPACE" + }, + "pascalCase": { + "unsafeName": "Namespace", + "safeName": "Namespace" + } + }, + "wireValue": "namespace" + }, + "originalTypeDeclaration": null, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": null, + "valueType": { + "_type": "primitive", + "primitive": { + "v1": "STRING", + "v2": { + "type": "string", + "default": null, + "validation": null + } + } + } + } + } + } + } + ], + "jsonExample": { + "columns": [ + { + "id": "id", + "values": [ + 1.1, + 1.1 + ] + }, + { + "id": "id", + "values": [ + 1.1, + 1.1 + ] + } + ] + } + }, + "response": { + "type": "ok", + "value": { + "type": "body", + "value": { + "shape": { + "type": "named", + "shape": { + "type": "object", + "properties": [ + { + "name": { + "name": { + "originalName": "count", + "camelCase": { + "unsafeName": "count", + "safeName": "count" + }, + "snakeCase": { + "unsafeName": "count", + "safeName": "count" + }, + "screamingSnakeCase": { + "unsafeName": "COUNT", + "safeName": "COUNT" + }, + "pascalCase": { + "unsafeName": "Count", + "safeName": "Count" + } + }, + "wireValue": "count" + }, + "originalTypeDeclaration": { + "name": { + "originalName": "UploadResponse", + "camelCase": { + "unsafeName": "uploadResponse", + "safeName": "uploadResponse" + }, + "snakeCase": { + "unsafeName": "upload_response", + "safeName": "upload_response" + }, + "screamingSnakeCase": { + "unsafeName": "UPLOAD_RESPONSE", + "safeName": "UPLOAD_RESPONSE" + }, + "pascalCase": { + "unsafeName": "UploadResponse", + "safeName": "UploadResponse" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:UploadResponse" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": { + "shape": { + "type": "primitive", + "primitive": { + "type": "uint", + "uint": 1 + } + }, + "jsonExample": 1 + }, + "valueType": { + "_type": "primitive", + "primitive": { + "v1": "UINT", + "v2": null + } + } + } + }, + "jsonExample": 1 + } + } + ] + }, + "typeName": { + "name": { + "originalName": "UploadResponse", + "camelCase": { + "unsafeName": "uploadResponse", + "safeName": "uploadResponse" + }, + "snakeCase": { + "unsafeName": "upload_response", + "safeName": "upload_response" + }, + "screamingSnakeCase": { + "unsafeName": "UPLOAD_RESPONSE", + "safeName": "UPLOAD_RESPONSE" + }, + "pascalCase": { + "unsafeName": "UploadResponse", + "safeName": "UploadResponse" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:UploadResponse" + } + }, + "jsonExample": { + "count": 1 + } + } + } + }, + "docs": null + } + } + ], + "pagination": null, + "transport": null, + "availability": null, + "docs": null + }, + { + "id": "endpoint_dataservice.delete", + "name": { + "originalName": "delete", + "camelCase": { + "unsafeName": "delete", + "safeName": "delete" + }, + "snakeCase": { + "unsafeName": "delete", + "safeName": "delete" + }, + "screamingSnakeCase": { + "unsafeName": "DELETE", + "safeName": "DELETE" + }, + "pascalCase": { + "unsafeName": "Delete", + "safeName": "Delete" + } + }, + "displayName": null, + "auth": false, + "idempotent": false, + "baseUrl": null, + "method": "POST", + "basePath": null, + "path": { + "head": "/data/delete", + "parts": [] + }, + "fullPath": { + "head": "data/delete", + "parts": [] + }, + "pathParameters": [], + "allPathParameters": [], + "queryParameters": [], + "headers": [], + "requestBody": { + "type": "inlinedRequestBody", + "name": { + "originalName": "DeleteRequest", + "camelCase": { + "unsafeName": "deleteRequest", + "safeName": "deleteRequest" + }, + "snakeCase": { + "unsafeName": "delete_request", + "safeName": "delete_request" + }, + "screamingSnakeCase": { + "unsafeName": "DELETE_REQUEST", + "safeName": "DELETE_REQUEST" + }, + "pascalCase": { + "unsafeName": "DeleteRequest", + "safeName": "DeleteRequest" + } + }, + "extends": [], + "contentType": "application/json", + "properties": [ + { + "name": { + "name": { + "originalName": "ids", + "camelCase": { + "unsafeName": "ids", + "safeName": "ids" + }, + "snakeCase": { + "unsafeName": "ids", + "safeName": "ids" + }, + "screamingSnakeCase": { + "unsafeName": "IDS", + "safeName": "IDS" + }, + "pascalCase": { + "unsafeName": "IDs", + "safeName": "IDs" + } + }, + "wireValue": "ids" + }, + "valueType": { + "_type": "container", + "container": { + "_type": "optional", + "optional": { + "_type": "container", + "container": { + "_type": "list", + "list": { + "_type": "primitive", + "primitive": { + "v1": "STRING", + "v2": { + "type": "string", + "default": null, + "validation": null + } + } + } + } + } + } + }, + "availability": null, + "docs": null + }, + { + "name": { + "name": { + "originalName": "deleteAll", + "camelCase": { + "unsafeName": "deleteAll", + "safeName": "deleteAll" + }, + "snakeCase": { + "unsafeName": "delete_all", + "safeName": "delete_all" + }, + "screamingSnakeCase": { + "unsafeName": "DELETE_ALL", + "safeName": "DELETE_ALL" + }, + "pascalCase": { + "unsafeName": "DeleteAll", + "safeName": "DeleteAll" + } + }, + "wireValue": "deleteAll" + }, + "valueType": { + "_type": "container", + "container": { + "_type": "optional", + "optional": { + "_type": "primitive", + "primitive": { + "v1": "BOOLEAN", + "v2": null + } + } + } + }, + "availability": null, + "docs": null + }, + { + "name": { + "name": { + "originalName": "namespace", + "camelCase": { + "unsafeName": "namespace", + "safeName": "namespace" + }, + "snakeCase": { + "unsafeName": "namespace", + "safeName": "namespace" + }, + "screamingSnakeCase": { + "unsafeName": "NAMESPACE", + "safeName": "NAMESPACE" + }, + "pascalCase": { + "unsafeName": "Namespace", + "safeName": "Namespace" + } + }, + "wireValue": "namespace" + }, + "valueType": { + "_type": "container", + "container": { + "_type": "optional", + "optional": { + "_type": "primitive", + "primitive": { + "v1": "STRING", + "v2": { + "type": "string", + "default": null, + "validation": null + } + } + } + } + }, + "availability": null, + "docs": null + }, + { + "name": { + "name": { + "originalName": "filter", + "camelCase": { + "unsafeName": "filter", + "safeName": "filter" + }, + "snakeCase": { + "unsafeName": "filter", + "safeName": "filter" + }, + "screamingSnakeCase": { + "unsafeName": "FILTER", + "safeName": "FILTER" + }, + "pascalCase": { + "unsafeName": "Filter", + "safeName": "Filter" + } + }, + "wireValue": "filter" + }, + "valueType": { + "_type": "container", + "container": { + "_type": "optional", + "optional": { + "_type": "named", + "name": { + "originalName": "Metadata", + "camelCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "snakeCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "screamingSnakeCase": { + "unsafeName": "METADATA", + "safeName": "METADATA" + }, + "pascalCase": { + "unsafeName": "Metadata", + "safeName": "Metadata" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:Metadata", + "default": null, + "inline": null + } + } + }, + "availability": null, + "docs": null + } + ], + "extra-properties": false, + "extendedProperties": [], + "docs": null + }, + "sdkRequest": { + "shape": { + "type": "wrapper", + "wrapperName": { + "originalName": "DeleteRequest", + "camelCase": { + "unsafeName": "deleteRequest", + "safeName": "deleteRequest" + }, + "snakeCase": { + "unsafeName": "delete_request", + "safeName": "delete_request" + }, + "screamingSnakeCase": { + "unsafeName": "DELETE_REQUEST", + "safeName": "DELETE_REQUEST" + }, + "pascalCase": { + "unsafeName": "DeleteRequest", + "safeName": "DeleteRequest" + } + }, + "bodyKey": { + "originalName": "body", + "camelCase": { + "unsafeName": "body", + "safeName": "body" + }, + "snakeCase": { + "unsafeName": "body", + "safeName": "body" + }, + "screamingSnakeCase": { + "unsafeName": "BODY", + "safeName": "BODY" + }, + "pascalCase": { + "unsafeName": "Body", + "safeName": "Body" + } + } + }, + "requestParameterName": { + "originalName": "request", + "camelCase": { + "unsafeName": "request", + "safeName": "request" + }, + "snakeCase": { + "unsafeName": "request", + "safeName": "request" + }, + "screamingSnakeCase": { + "unsafeName": "REQUEST", + "safeName": "REQUEST" + }, + "pascalCase": { + "unsafeName": "Request", + "safeName": "Request" + } + }, + "streamParameter": null + }, + "response": { + "body": { + "type": "json", + "value": { + "type": "response", + "responseBodyType": { + "_type": "named", + "name": { + "originalName": "DeleteResponse", + "camelCase": { + "unsafeName": "deleteResponse", + "safeName": "deleteResponse" + }, + "snakeCase": { + "unsafeName": "delete_response", + "safeName": "delete_response" + }, + "screamingSnakeCase": { + "unsafeName": "DELETE_RESPONSE", + "safeName": "DELETE_RESPONSE" + }, + "pascalCase": { + "unsafeName": "DeleteResponse", + "safeName": "DeleteResponse" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:DeleteResponse", + "default": null, + "inline": null + }, + "docs": "OK" + } + }, + "status-code": null + }, + "errors": [], + "userSpecifiedExamples": [ + { + "example": { + "id": "1ad45f4885c23156a886a05b3f8322b0771f825d688aca4279afa1125fbd190d", + "name": null, + "url": "/data/delete", + "rootPathParameters": [], + "endpointPathParameters": [], + "servicePathParameters": [], + "endpointHeaders": [], + "serviceHeaders": [], + "queryParameters": [], + "request": { + "type": "inlinedRequestBody", + "properties": [], + "jsonExample": {} + }, + "response": { + "type": "ok", + "value": { + "type": "body", + "value": { + "shape": { + "type": "named", + "typeName": { + "typeId": "type_:DeleteResponse", + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "name": { + "originalName": "DeleteResponse", + "camelCase": { + "unsafeName": "deleteResponse", + "safeName": "deleteResponse" + }, + "snakeCase": { + "unsafeName": "delete_response", + "safeName": "delete_response" + }, + "screamingSnakeCase": { + "unsafeName": "DELETE_RESPONSE", + "safeName": "DELETE_RESPONSE" + }, + "pascalCase": { + "unsafeName": "DeleteResponse", + "safeName": "DeleteResponse" + } + } + }, + "shape": { + "type": "object", + "properties": [] + } + }, + "jsonExample": {} + } + } + }, + "docs": null + }, + "codeSamples": null + } + ], + "autogeneratedExamples": [ + { + "example": { + "id": "005237105b93ad65d88134071ca2be649618351d", + "url": "/data/delete", + "name": null, + "endpointHeaders": [], + "endpointPathParameters": [], + "queryParameters": [], + "servicePathParameters": [], + "serviceHeaders": [], + "rootPathParameters": [], + "request": { + "type": "inlinedRequestBody", + "properties": [ + { + "name": { + "name": { + "originalName": "ids", + "camelCase": { + "unsafeName": "ids", + "safeName": "ids" + }, + "snakeCase": { + "unsafeName": "ids", + "safeName": "ids" + }, + "screamingSnakeCase": { + "unsafeName": "IDS", + "safeName": "IDS" + }, + "pascalCase": { + "unsafeName": "IDs", + "safeName": "IDs" + } + }, + "wireValue": "ids" + }, + "originalTypeDeclaration": null, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": null, + "valueType": { + "_type": "container", + "container": { + "_type": "list", + "list": { + "_type": "primitive", + "primitive": { + "v1": "STRING", + "v2": { + "type": "string", + "default": null, + "validation": null + } + } + } + } + } + } + } + } + }, + { + "name": { + "name": { + "originalName": "deleteAll", + "camelCase": { + "unsafeName": "deleteAll", + "safeName": "deleteAll" + }, + "snakeCase": { + "unsafeName": "delete_all", + "safeName": "delete_all" + }, + "screamingSnakeCase": { + "unsafeName": "DELETE_ALL", + "safeName": "DELETE_ALL" + }, + "pascalCase": { + "unsafeName": "DeleteAll", + "safeName": "DeleteAll" + } + }, + "wireValue": "deleteAll" + }, + "originalTypeDeclaration": null, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": null, + "valueType": { + "_type": "primitive", + "primitive": { + "v1": "BOOLEAN", + "v2": null + } + } + } + } + } + }, + { + "name": { + "name": { + "originalName": "namespace", + "camelCase": { + "unsafeName": "namespace", + "safeName": "namespace" + }, + "snakeCase": { + "unsafeName": "namespace", + "safeName": "namespace" + }, + "screamingSnakeCase": { + "unsafeName": "NAMESPACE", + "safeName": "NAMESPACE" + }, + "pascalCase": { + "unsafeName": "Namespace", + "safeName": "Namespace" + } + }, + "wireValue": "namespace" + }, + "originalTypeDeclaration": null, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": null, + "valueType": { + "_type": "primitive", + "primitive": { + "v1": "STRING", + "v2": { + "type": "string", + "default": null, + "validation": null + } + } + } + } + } + } + }, + { + "name": { + "name": { + "originalName": "filter", + "camelCase": { + "unsafeName": "filter", + "safeName": "filter" + }, + "snakeCase": { + "unsafeName": "filter", + "safeName": "filter" + }, + "screamingSnakeCase": { + "unsafeName": "FILTER", + "safeName": "FILTER" + }, + "pascalCase": { + "unsafeName": "Filter", + "safeName": "Filter" + } + }, + "wireValue": "filter" + }, + "originalTypeDeclaration": null, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": null, + "valueType": { + "_type": "named", + "name": { + "originalName": "Metadata", + "camelCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "snakeCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "screamingSnakeCase": { + "unsafeName": "METADATA", + "safeName": "METADATA" + }, + "pascalCase": { + "unsafeName": "Metadata", + "safeName": "Metadata" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:Metadata", + "default": null, + "inline": null + } + } + } + } + } + ], + "jsonExample": {} + }, + "response": { + "type": "ok", + "value": { + "type": "body", + "value": { + "shape": { + "type": "named", + "shape": { + "type": "object", + "properties": [] + }, + "typeName": { + "name": { + "originalName": "DeleteResponse", + "camelCase": { + "unsafeName": "deleteResponse", + "safeName": "deleteResponse" + }, + "snakeCase": { + "unsafeName": "delete_response", + "safeName": "delete_response" + }, + "screamingSnakeCase": { + "unsafeName": "DELETE_RESPONSE", + "safeName": "DELETE_RESPONSE" + }, + "pascalCase": { + "unsafeName": "DeleteResponse", + "safeName": "DeleteResponse" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:DeleteResponse" + } + }, + "jsonExample": {} + } + } + }, + "docs": null + } + } + ], + "pagination": null, + "transport": null, + "availability": null, + "docs": null + }, + { + "id": "endpoint_dataservice.describe", + "name": { + "originalName": "describe", + "camelCase": { + "unsafeName": "describe", + "safeName": "describe" + }, + "snakeCase": { + "unsafeName": "describe", + "safeName": "describe" + }, + "screamingSnakeCase": { + "unsafeName": "DESCRIBE", + "safeName": "DESCRIBE" + }, + "pascalCase": { + "unsafeName": "Describe", + "safeName": "Describe" + } + }, + "displayName": null, + "auth": false, + "idempotent": false, + "baseUrl": null, + "method": "POST", + "basePath": null, + "path": { + "head": "/data/describe", + "parts": [] + }, + "fullPath": { + "head": "data/describe", + "parts": [] + }, + "pathParameters": [], + "allPathParameters": [], + "queryParameters": [], + "headers": [], + "requestBody": { + "type": "inlinedRequestBody", + "name": { + "originalName": "DescribeRequest", + "camelCase": { + "unsafeName": "describeRequest", + "safeName": "describeRequest" + }, + "snakeCase": { + "unsafeName": "describe_request", + "safeName": "describe_request" + }, + "screamingSnakeCase": { + "unsafeName": "DESCRIBE_REQUEST", + "safeName": "DESCRIBE_REQUEST" + }, + "pascalCase": { + "unsafeName": "DescribeRequest", + "safeName": "DescribeRequest" + } + }, + "extends": [], + "contentType": "application/json", + "properties": [ + { + "name": { + "name": { + "originalName": "filter", + "camelCase": { + "unsafeName": "filter", + "safeName": "filter" + }, + "snakeCase": { + "unsafeName": "filter", + "safeName": "filter" + }, + "screamingSnakeCase": { + "unsafeName": "FILTER", + "safeName": "FILTER" + }, + "pascalCase": { + "unsafeName": "Filter", + "safeName": "Filter" + } + }, + "wireValue": "filter" + }, + "valueType": { + "_type": "container", + "container": { + "_type": "optional", + "optional": { + "_type": "named", + "name": { + "originalName": "Metadata", + "camelCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "snakeCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "screamingSnakeCase": { + "unsafeName": "METADATA", + "safeName": "METADATA" + }, + "pascalCase": { + "unsafeName": "Metadata", + "safeName": "Metadata" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:Metadata", + "default": null, + "inline": null + } + } + }, + "availability": null, + "docs": null + } + ], + "extra-properties": false, + "extendedProperties": [], + "docs": null + }, + "sdkRequest": { + "shape": { + "type": "wrapper", + "wrapperName": { + "originalName": "DescribeRequest", + "camelCase": { + "unsafeName": "describeRequest", + "safeName": "describeRequest" + }, + "snakeCase": { + "unsafeName": "describe_request", + "safeName": "describe_request" + }, + "screamingSnakeCase": { + "unsafeName": "DESCRIBE_REQUEST", + "safeName": "DESCRIBE_REQUEST" + }, + "pascalCase": { + "unsafeName": "DescribeRequest", + "safeName": "DescribeRequest" + } + }, + "bodyKey": { + "originalName": "body", + "camelCase": { + "unsafeName": "body", + "safeName": "body" + }, + "snakeCase": { + "unsafeName": "body", + "safeName": "body" + }, + "screamingSnakeCase": { + "unsafeName": "BODY", + "safeName": "BODY" + }, + "pascalCase": { + "unsafeName": "Body", + "safeName": "Body" + } + } + }, + "requestParameterName": { + "originalName": "request", + "camelCase": { + "unsafeName": "request", + "safeName": "request" + }, + "snakeCase": { + "unsafeName": "request", + "safeName": "request" + }, + "screamingSnakeCase": { + "unsafeName": "REQUEST", + "safeName": "REQUEST" + }, + "pascalCase": { + "unsafeName": "Request", + "safeName": "Request" + } + }, + "streamParameter": null + }, + "response": { + "body": { + "type": "json", + "value": { + "type": "response", + "responseBodyType": { + "_type": "named", + "name": { + "originalName": "DescribeResponse", + "camelCase": { + "unsafeName": "describeResponse", + "safeName": "describeResponse" + }, + "snakeCase": { + "unsafeName": "describe_response", + "safeName": "describe_response" + }, + "screamingSnakeCase": { + "unsafeName": "DESCRIBE_RESPONSE", + "safeName": "DESCRIBE_RESPONSE" + }, + "pascalCase": { + "unsafeName": "DescribeResponse", + "safeName": "DescribeResponse" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:DescribeResponse", + "default": null, + "inline": null + }, + "docs": "OK" + } + }, + "status-code": null + }, + "errors": [], + "userSpecifiedExamples": [ + { + "example": { + "id": "f4fc880cf2279479ac90097ade3ddc327575519d7e8ce9d7a218e40339ad1b45", + "name": null, + "url": "/data/describe", + "rootPathParameters": [], + "endpointPathParameters": [], + "servicePathParameters": [], + "endpointHeaders": [], + "serviceHeaders": [], + "queryParameters": [], + "request": { + "type": "inlinedRequestBody", + "properties": [], + "jsonExample": {} + }, + "response": { + "type": "ok", + "value": { + "type": "body", + "value": { + "shape": { + "type": "named", + "typeName": { + "typeId": "type_:DescribeResponse", + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "name": { + "originalName": "DescribeResponse", + "camelCase": { + "unsafeName": "describeResponse", + "safeName": "describeResponse" + }, + "snakeCase": { + "unsafeName": "describe_response", + "safeName": "describe_response" + }, + "screamingSnakeCase": { + "unsafeName": "DESCRIBE_RESPONSE", + "safeName": "DESCRIBE_RESPONSE" + }, + "pascalCase": { + "unsafeName": "DescribeResponse", + "safeName": "DescribeResponse" + } + } + }, + "shape": { + "type": "object", + "properties": [ + { + "name": { + "name": { + "originalName": "namespaces", + "camelCase": { + "unsafeName": "namespaces", + "safeName": "namespaces" + }, + "snakeCase": { + "unsafeName": "namespaces", + "safeName": "namespaces" + }, + "screamingSnakeCase": { + "unsafeName": "NAMESPACES", + "safeName": "NAMESPACES" + }, + "pascalCase": { + "unsafeName": "Namespaces", + "safeName": "Namespaces" + } + }, + "wireValue": "namespaces" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": { + "shape": { + "type": "container", + "container": { + "type": "map", + "map": [ + { + "key": { + "shape": { + "type": "primitive", + "primitive": { + "type": "string", + "string": { + "original": "key" + } + } + }, + "jsonExample": "key" + }, + "value": { + "shape": { + "type": "named", + "typeName": { + "typeId": "type_:NamespaceSummary", + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "name": { + "originalName": "NamespaceSummary", + "camelCase": { + "unsafeName": "namespaceSummary", + "safeName": "namespaceSummary" + }, + "snakeCase": { + "unsafeName": "namespace_summary", + "safeName": "namespace_summary" + }, + "screamingSnakeCase": { + "unsafeName": "NAMESPACE_SUMMARY", + "safeName": "NAMESPACE_SUMMARY" + }, + "pascalCase": { + "unsafeName": "NamespaceSummary", + "safeName": "NamespaceSummary" + } + } + }, + "shape": { + "type": "object", + "properties": [ + { + "name": { + "name": { + "originalName": "count", + "camelCase": { + "unsafeName": "count", + "safeName": "count" + }, + "snakeCase": { + "unsafeName": "count", + "safeName": "count" + }, + "screamingSnakeCase": { + "unsafeName": "COUNT", + "safeName": "COUNT" + }, + "pascalCase": { + "unsafeName": "Count", + "safeName": "Count" + } + }, + "wireValue": "count" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": { + "shape": { + "type": "primitive", + "primitive": { + "type": "uint", + "uint": 1 + } + }, + "jsonExample": 1 + }, + "valueType": { + "_type": "primitive", + "primitive": { + "v1": "UINT", + "v2": null + } + } + } + }, + "jsonExample": 1 + }, + "originalTypeDeclaration": { + "typeId": "type_:NamespaceSummary", + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "name": { + "originalName": "NamespaceSummary", + "camelCase": { + "unsafeName": "namespaceSummary", + "safeName": "namespaceSummary" + }, + "snakeCase": { + "unsafeName": "namespace_summary", + "safeName": "namespace_summary" + }, + "screamingSnakeCase": { + "unsafeName": "NAMESPACE_SUMMARY", + "safeName": "NAMESPACE_SUMMARY" + }, + "pascalCase": { + "unsafeName": "NamespaceSummary", + "safeName": "NamespaceSummary" + } + } + } + } + ] + } + }, + "jsonExample": { + "count": 1 + } + } + } + ], + "keyType": { + "_type": "primitive", + "primitive": { + "v1": "STRING", + "v2": { + "type": "string", + "default": null, + "validation": null + } + } + }, + "valueType": { + "_type": "named", + "name": { + "originalName": "NamespaceSummary", + "camelCase": { + "unsafeName": "namespaceSummary", + "safeName": "namespaceSummary" + }, + "snakeCase": { + "unsafeName": "namespace_summary", + "safeName": "namespace_summary" + }, + "screamingSnakeCase": { + "unsafeName": "NAMESPACE_SUMMARY", + "safeName": "NAMESPACE_SUMMARY" + }, + "pascalCase": { + "unsafeName": "NamespaceSummary", + "safeName": "NamespaceSummary" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:NamespaceSummary", + "default": null, + "inline": null + } + } + }, + "jsonExample": { + "key": { + "count": 1 + } + } + }, + "valueType": { + "_type": "container", + "container": { + "_type": "map", + "keyType": { + "_type": "primitive", + "primitive": { + "v1": "STRING", + "v2": { + "type": "string", + "default": null, + "validation": null + } + } + }, + "valueType": { + "_type": "named", + "name": { + "originalName": "NamespaceSummary", + "camelCase": { + "unsafeName": "namespaceSummary", + "safeName": "namespaceSummary" + }, + "snakeCase": { + "unsafeName": "namespace_summary", + "safeName": "namespace_summary" + }, + "screamingSnakeCase": { + "unsafeName": "NAMESPACE_SUMMARY", + "safeName": "NAMESPACE_SUMMARY" + }, + "pascalCase": { + "unsafeName": "NamespaceSummary", + "safeName": "NamespaceSummary" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:NamespaceSummary", + "default": null, + "inline": null + } + } + } + } + }, + "jsonExample": { + "key": { + "count": 1 + } + } + }, + "originalTypeDeclaration": { + "typeId": "type_:DescribeResponse", + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "name": { + "originalName": "DescribeResponse", + "camelCase": { + "unsafeName": "describeResponse", + "safeName": "describeResponse" + }, + "snakeCase": { + "unsafeName": "describe_response", + "safeName": "describe_response" + }, + "screamingSnakeCase": { + "unsafeName": "DESCRIBE_RESPONSE", + "safeName": "DESCRIBE_RESPONSE" + }, + "pascalCase": { + "unsafeName": "DescribeResponse", + "safeName": "DescribeResponse" + } + } + } + }, + { + "name": { + "name": { + "originalName": "dimension", + "camelCase": { + "unsafeName": "dimension", + "safeName": "dimension" + }, + "snakeCase": { + "unsafeName": "dimension", + "safeName": "dimension" + }, + "screamingSnakeCase": { + "unsafeName": "DIMENSION", + "safeName": "DIMENSION" + }, + "pascalCase": { + "unsafeName": "Dimension", + "safeName": "Dimension" + } + }, + "wireValue": "dimension" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": { + "shape": { + "type": "primitive", + "primitive": { + "type": "uint", + "uint": 1 + } + }, + "jsonExample": 1 + }, + "valueType": { + "_type": "primitive", + "primitive": { + "v1": "UINT", + "v2": null + } + } + } + }, + "jsonExample": 1 + }, + "originalTypeDeclaration": { + "typeId": "type_:DescribeResponse", + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "name": { + "originalName": "DescribeResponse", + "camelCase": { + "unsafeName": "describeResponse", + "safeName": "describeResponse" + }, + "snakeCase": { + "unsafeName": "describe_response", + "safeName": "describe_response" + }, + "screamingSnakeCase": { + "unsafeName": "DESCRIBE_RESPONSE", + "safeName": "DESCRIBE_RESPONSE" + }, + "pascalCase": { + "unsafeName": "DescribeResponse", + "safeName": "DescribeResponse" + } + } + } + }, + { + "name": { + "name": { + "originalName": "fullness", + "camelCase": { + "unsafeName": "fullness", + "safeName": "fullness" + }, + "snakeCase": { + "unsafeName": "fullness", + "safeName": "fullness" + }, + "screamingSnakeCase": { + "unsafeName": "FULLNESS", + "safeName": "FULLNESS" + }, + "pascalCase": { + "unsafeName": "Fullness", + "safeName": "Fullness" + } + }, + "wireValue": "fullness" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": { + "shape": { + "type": "primitive", + "primitive": { + "type": "float", + "float": 1.1 + } + }, + "jsonExample": 1.1 + }, + "valueType": { + "_type": "primitive", + "primitive": { + "v1": "FLOAT", + "v2": null + } + } + } + }, + "jsonExample": 1.1 + }, + "originalTypeDeclaration": { + "typeId": "type_:DescribeResponse", + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "name": { + "originalName": "DescribeResponse", + "camelCase": { + "unsafeName": "describeResponse", + "safeName": "describeResponse" + }, + "snakeCase": { + "unsafeName": "describe_response", + "safeName": "describe_response" + }, + "screamingSnakeCase": { + "unsafeName": "DESCRIBE_RESPONSE", + "safeName": "DESCRIBE_RESPONSE" + }, + "pascalCase": { + "unsafeName": "DescribeResponse", + "safeName": "DescribeResponse" + } + } + } + }, + { + "name": { + "name": { + "originalName": "totalCount", + "camelCase": { + "unsafeName": "totalCount", + "safeName": "totalCount" + }, + "snakeCase": { + "unsafeName": "total_count", + "safeName": "total_count" + }, + "screamingSnakeCase": { + "unsafeName": "TOTAL_COUNT", + "safeName": "TOTAL_COUNT" + }, + "pascalCase": { + "unsafeName": "TotalCount", + "safeName": "TotalCount" + } + }, + "wireValue": "totalCount" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": { + "shape": { + "type": "primitive", + "primitive": { + "type": "uint", + "uint": 1 + } + }, + "jsonExample": 1 + }, + "valueType": { + "_type": "primitive", + "primitive": { + "v1": "UINT", + "v2": null + } + } + } + }, + "jsonExample": 1 + }, + "originalTypeDeclaration": { + "typeId": "type_:DescribeResponse", + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "name": { + "originalName": "DescribeResponse", + "camelCase": { + "unsafeName": "describeResponse", + "safeName": "describeResponse" + }, + "snakeCase": { + "unsafeName": "describe_response", + "safeName": "describe_response" + }, + "screamingSnakeCase": { + "unsafeName": "DESCRIBE_RESPONSE", + "safeName": "DESCRIBE_RESPONSE" + }, + "pascalCase": { + "unsafeName": "DescribeResponse", + "safeName": "DescribeResponse" + } + } + } + } + ] + } + }, + "jsonExample": { + "namespaces": { + "key": { + "count": 1 + } + }, + "dimension": 1, + "fullness": 1.1, + "totalCount": 1 + } + } + } + }, + "docs": null + }, + "codeSamples": null + } + ], + "autogeneratedExamples": [ + { + "example": { + "id": "e8371d94fa58f4b125ff5a2680a34dae539c34fd", + "url": "/data/describe", + "name": null, + "endpointHeaders": [], + "endpointPathParameters": [], + "queryParameters": [], + "servicePathParameters": [], + "serviceHeaders": [], + "rootPathParameters": [], + "request": { + "type": "inlinedRequestBody", + "properties": [ + { + "name": { + "name": { + "originalName": "filter", + "camelCase": { + "unsafeName": "filter", + "safeName": "filter" + }, + "snakeCase": { + "unsafeName": "filter", + "safeName": "filter" + }, + "screamingSnakeCase": { + "unsafeName": "FILTER", + "safeName": "FILTER" + }, + "pascalCase": { + "unsafeName": "Filter", + "safeName": "Filter" + } + }, + "wireValue": "filter" + }, + "originalTypeDeclaration": null, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": null, + "valueType": { + "_type": "named", + "name": { + "originalName": "Metadata", + "camelCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "snakeCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "screamingSnakeCase": { + "unsafeName": "METADATA", + "safeName": "METADATA" + }, + "pascalCase": { + "unsafeName": "Metadata", + "safeName": "Metadata" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:Metadata", + "default": null, + "inline": null + } + } + } + } + } + ], + "jsonExample": {} + }, + "response": { + "type": "ok", + "value": { + "type": "body", + "value": { + "shape": { + "type": "named", + "shape": { + "type": "object", + "properties": [ + { + "name": { + "name": { + "originalName": "namespaces", + "camelCase": { + "unsafeName": "namespaces", + "safeName": "namespaces" + }, + "snakeCase": { + "unsafeName": "namespaces", + "safeName": "namespaces" + }, + "screamingSnakeCase": { + "unsafeName": "NAMESPACES", + "safeName": "NAMESPACES" + }, + "pascalCase": { + "unsafeName": "Namespaces", + "safeName": "Namespaces" + } + }, + "wireValue": "namespaces" + }, + "originalTypeDeclaration": { + "name": { + "originalName": "DescribeResponse", + "camelCase": { + "unsafeName": "describeResponse", + "safeName": "describeResponse" + }, + "snakeCase": { + "unsafeName": "describe_response", + "safeName": "describe_response" + }, + "screamingSnakeCase": { + "unsafeName": "DESCRIBE_RESPONSE", + "safeName": "DESCRIBE_RESPONSE" + }, + "pascalCase": { + "unsafeName": "DescribeResponse", + "safeName": "DescribeResponse" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:DescribeResponse" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": { + "shape": { + "type": "container", + "container": { + "type": "map", + "map": [ + { + "key": { + "shape": { + "type": "primitive", + "primitive": { + "type": "string", + "string": { + "original": "namespaces" + } + } + }, + "jsonExample": "namespaces" + }, + "value": { + "shape": { + "type": "named", + "shape": { + "type": "object", + "properties": [ + { + "name": { + "name": { + "originalName": "count", + "camelCase": { + "unsafeName": "count", + "safeName": "count" + }, + "snakeCase": { + "unsafeName": "count", + "safeName": "count" + }, + "screamingSnakeCase": { + "unsafeName": "COUNT", + "safeName": "COUNT" + }, + "pascalCase": { + "unsafeName": "Count", + "safeName": "Count" + } + }, + "wireValue": "count" + }, + "originalTypeDeclaration": { + "name": { + "originalName": "NamespaceSummary", + "camelCase": { + "unsafeName": "namespaceSummary", + "safeName": "namespaceSummary" + }, + "snakeCase": { + "unsafeName": "namespace_summary", + "safeName": "namespace_summary" + }, + "screamingSnakeCase": { + "unsafeName": "NAMESPACE_SUMMARY", + "safeName": "NAMESPACE_SUMMARY" + }, + "pascalCase": { + "unsafeName": "NamespaceSummary", + "safeName": "NamespaceSummary" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:NamespaceSummary" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": { + "shape": { + "type": "primitive", + "primitive": { + "type": "uint", + "uint": 1 + } + }, + "jsonExample": 1 + }, + "valueType": { + "_type": "primitive", + "primitive": { + "v1": "UINT", + "v2": null + } + } + } + }, + "jsonExample": 1 + } + } + ] + }, + "typeName": { + "name": { + "originalName": "NamespaceSummary", + "camelCase": { + "unsafeName": "namespaceSummary", + "safeName": "namespaceSummary" + }, + "snakeCase": { + "unsafeName": "namespace_summary", + "safeName": "namespace_summary" + }, + "screamingSnakeCase": { + "unsafeName": "NAMESPACE_SUMMARY", + "safeName": "NAMESPACE_SUMMARY" + }, + "pascalCase": { + "unsafeName": "NamespaceSummary", + "safeName": "NamespaceSummary" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:NamespaceSummary" + } + }, + "jsonExample": { + "count": 1 + } + } + } + ], + "keyType": { + "_type": "primitive", + "primitive": { + "v1": "STRING", + "v2": { + "type": "string", + "default": null, + "validation": null + } + } + }, + "valueType": { + "_type": "named", + "name": { + "originalName": "NamespaceSummary", + "camelCase": { + "unsafeName": "namespaceSummary", + "safeName": "namespaceSummary" + }, + "snakeCase": { + "unsafeName": "namespace_summary", + "safeName": "namespace_summary" + }, + "screamingSnakeCase": { + "unsafeName": "NAMESPACE_SUMMARY", + "safeName": "NAMESPACE_SUMMARY" + }, + "pascalCase": { + "unsafeName": "NamespaceSummary", + "safeName": "NamespaceSummary" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:NamespaceSummary", + "default": null, + "inline": null + } + } + }, + "jsonExample": { + "namespaces": { + "count": 1 + } + } + }, + "valueType": { + "_type": "container", + "container": { + "_type": "map", + "keyType": { + "_type": "primitive", + "primitive": { + "v1": "STRING", + "v2": { + "type": "string", + "default": null, + "validation": null + } + } + }, + "valueType": { + "_type": "named", + "name": { + "originalName": "NamespaceSummary", + "camelCase": { + "unsafeName": "namespaceSummary", + "safeName": "namespaceSummary" + }, + "snakeCase": { + "unsafeName": "namespace_summary", + "safeName": "namespace_summary" + }, + "screamingSnakeCase": { + "unsafeName": "NAMESPACE_SUMMARY", + "safeName": "NAMESPACE_SUMMARY" + }, + "pascalCase": { + "unsafeName": "NamespaceSummary", + "safeName": "NamespaceSummary" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:NamespaceSummary", + "default": null, + "inline": null + } + } + } + } + }, + "jsonExample": { + "namespaces": { + "count": 1 + } + } + } + }, + { + "name": { + "name": { + "originalName": "dimension", + "camelCase": { + "unsafeName": "dimension", + "safeName": "dimension" + }, + "snakeCase": { + "unsafeName": "dimension", + "safeName": "dimension" + }, + "screamingSnakeCase": { + "unsafeName": "DIMENSION", + "safeName": "DIMENSION" + }, + "pascalCase": { + "unsafeName": "Dimension", + "safeName": "Dimension" + } + }, + "wireValue": "dimension" + }, + "originalTypeDeclaration": { + "name": { + "originalName": "DescribeResponse", + "camelCase": { + "unsafeName": "describeResponse", + "safeName": "describeResponse" + }, + "snakeCase": { + "unsafeName": "describe_response", + "safeName": "describe_response" + }, + "screamingSnakeCase": { + "unsafeName": "DESCRIBE_RESPONSE", + "safeName": "DESCRIBE_RESPONSE" + }, + "pascalCase": { + "unsafeName": "DescribeResponse", + "safeName": "DescribeResponse" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:DescribeResponse" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": { + "shape": { + "type": "primitive", + "primitive": { + "type": "uint", + "uint": 1 + } + }, + "jsonExample": 1 + }, + "valueType": { + "_type": "primitive", + "primitive": { + "v1": "UINT", + "v2": null + } + } + } + }, + "jsonExample": 1 + } + }, + { + "name": { + "name": { + "originalName": "fullness", + "camelCase": { + "unsafeName": "fullness", + "safeName": "fullness" + }, + "snakeCase": { + "unsafeName": "fullness", + "safeName": "fullness" + }, + "screamingSnakeCase": { + "unsafeName": "FULLNESS", + "safeName": "FULLNESS" + }, + "pascalCase": { + "unsafeName": "Fullness", + "safeName": "Fullness" + } + }, + "wireValue": "fullness" + }, + "originalTypeDeclaration": { + "name": { + "originalName": "DescribeResponse", + "camelCase": { + "unsafeName": "describeResponse", + "safeName": "describeResponse" + }, + "snakeCase": { + "unsafeName": "describe_response", + "safeName": "describe_response" + }, + "screamingSnakeCase": { + "unsafeName": "DESCRIBE_RESPONSE", + "safeName": "DESCRIBE_RESPONSE" + }, + "pascalCase": { + "unsafeName": "DescribeResponse", + "safeName": "DescribeResponse" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:DescribeResponse" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": { + "shape": { + "type": "primitive", + "primitive": { + "type": "float", + "float": 1.1 + } + }, + "jsonExample": 1.1 + }, + "valueType": { + "_type": "primitive", + "primitive": { + "v1": "FLOAT", + "v2": null + } + } + } + }, + "jsonExample": 1.1 + } + }, + { + "name": { + "name": { + "originalName": "totalCount", + "camelCase": { + "unsafeName": "totalCount", + "safeName": "totalCount" + }, + "snakeCase": { + "unsafeName": "total_count", + "safeName": "total_count" + }, + "screamingSnakeCase": { + "unsafeName": "TOTAL_COUNT", + "safeName": "TOTAL_COUNT" + }, + "pascalCase": { + "unsafeName": "TotalCount", + "safeName": "TotalCount" + } + }, + "wireValue": "totalCount" + }, + "originalTypeDeclaration": { + "name": { + "originalName": "DescribeResponse", + "camelCase": { + "unsafeName": "describeResponse", + "safeName": "describeResponse" + }, + "snakeCase": { + "unsafeName": "describe_response", + "safeName": "describe_response" + }, + "screamingSnakeCase": { + "unsafeName": "DESCRIBE_RESPONSE", + "safeName": "DESCRIBE_RESPONSE" + }, + "pascalCase": { + "unsafeName": "DescribeResponse", + "safeName": "DescribeResponse" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:DescribeResponse" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": { + "shape": { + "type": "primitive", + "primitive": { + "type": "uint", + "uint": 1 + } + }, + "jsonExample": 1 + }, + "valueType": { + "_type": "primitive", + "primitive": { + "v1": "UINT", + "v2": null + } + } + } + }, + "jsonExample": 1 + } + } + ] + }, + "typeName": { + "name": { + "originalName": "DescribeResponse", + "camelCase": { + "unsafeName": "describeResponse", + "safeName": "describeResponse" + }, + "snakeCase": { + "unsafeName": "describe_response", + "safeName": "describe_response" + }, + "screamingSnakeCase": { + "unsafeName": "DESCRIBE_RESPONSE", + "safeName": "DESCRIBE_RESPONSE" + }, + "pascalCase": { + "unsafeName": "DescribeResponse", + "safeName": "DescribeResponse" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:DescribeResponse" + } + }, + "jsonExample": { + "namespaces": { + "namespaces": { + "count": 1 + } + }, + "dimension": 1, + "fullness": 1.1, + "totalCount": 1 + } + } + } + }, + "docs": null + } + } + ], + "pagination": null, + "transport": null, + "availability": null, + "docs": null + }, + { + "id": "endpoint_dataservice.fetch", + "name": { + "originalName": "fetch", + "camelCase": { + "unsafeName": "fetch", + "safeName": "fetch" + }, + "snakeCase": { + "unsafeName": "fetch", + "safeName": "fetch" + }, + "screamingSnakeCase": { + "unsafeName": "FETCH", + "safeName": "FETCH" + }, + "pascalCase": { + "unsafeName": "Fetch", + "safeName": "Fetch" + } + }, + "displayName": null, + "auth": false, + "idempotent": false, + "baseUrl": null, + "method": "GET", + "basePath": null, + "path": { + "head": "/data/fetch", + "parts": [] + }, + "fullPath": { + "head": "data/fetch", + "parts": [] + }, + "pathParameters": [], + "allPathParameters": [], + "queryParameters": [ + { + "name": { + "name": { + "originalName": "ids", + "camelCase": { + "unsafeName": "ids", + "safeName": "ids" + }, + "snakeCase": { + "unsafeName": "ids", + "safeName": "ids" + }, + "screamingSnakeCase": { + "unsafeName": "IDS", + "safeName": "IDS" + }, + "pascalCase": { + "unsafeName": "IDs", + "safeName": "IDs" + } + }, + "wireValue": "ids" + }, + "valueType": { + "_type": "container", + "container": { + "_type": "optional", + "optional": { + "_type": "primitive", + "primitive": { + "v1": "STRING", + "v2": { + "type": "string", + "default": null, + "validation": null + } + } + } + } + }, + "allowMultiple": true, + "availability": null, + "docs": null + }, + { + "name": { + "name": { + "originalName": "namespace", + "camelCase": { + "unsafeName": "namespace", + "safeName": "namespace" + }, + "snakeCase": { + "unsafeName": "namespace", + "safeName": "namespace" + }, + "screamingSnakeCase": { + "unsafeName": "NAMESPACE", + "safeName": "NAMESPACE" + }, + "pascalCase": { + "unsafeName": "Namespace", + "safeName": "Namespace" + } + }, + "wireValue": "namespace" + }, + "valueType": { + "_type": "container", + "container": { + "_type": "optional", + "optional": { + "_type": "primitive", + "primitive": { + "v1": "STRING", + "v2": { + "type": "string", + "default": null, + "validation": null + } + } + } + } + }, + "allowMultiple": false, + "availability": null, + "docs": null + } + ], + "headers": [], + "requestBody": null, + "sdkRequest": { + "shape": { + "type": "wrapper", + "wrapperName": { + "originalName": "FetchRequest", + "camelCase": { + "unsafeName": "fetchRequest", + "safeName": "fetchRequest" + }, + "snakeCase": { + "unsafeName": "fetch_request", + "safeName": "fetch_request" + }, + "screamingSnakeCase": { + "unsafeName": "FETCH_REQUEST", + "safeName": "FETCH_REQUEST" + }, + "pascalCase": { + "unsafeName": "FetchRequest", + "safeName": "FetchRequest" + } + }, + "bodyKey": { + "originalName": "body", + "camelCase": { + "unsafeName": "body", + "safeName": "body" + }, + "snakeCase": { + "unsafeName": "body", + "safeName": "body" + }, + "screamingSnakeCase": { + "unsafeName": "BODY", + "safeName": "BODY" + }, + "pascalCase": { + "unsafeName": "Body", + "safeName": "Body" + } + } + }, + "requestParameterName": { + "originalName": "request", + "camelCase": { + "unsafeName": "request", + "safeName": "request" + }, + "snakeCase": { + "unsafeName": "request", + "safeName": "request" + }, + "screamingSnakeCase": { + "unsafeName": "REQUEST", + "safeName": "REQUEST" + }, + "pascalCase": { + "unsafeName": "Request", + "safeName": "Request" + } + }, + "streamParameter": null + }, + "response": { + "body": { + "type": "json", + "value": { + "type": "response", + "responseBodyType": { + "_type": "named", + "name": { + "originalName": "FetchResponse", + "camelCase": { + "unsafeName": "fetchResponse", + "safeName": "fetchResponse" + }, + "snakeCase": { + "unsafeName": "fetch_response", + "safeName": "fetch_response" + }, + "screamingSnakeCase": { + "unsafeName": "FETCH_RESPONSE", + "safeName": "FETCH_RESPONSE" + }, + "pascalCase": { + "unsafeName": "FetchResponse", + "safeName": "FetchResponse" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:FetchResponse", + "default": null, + "inline": null + }, + "docs": "OK" + } + }, + "status-code": null + }, + "errors": [], + "userSpecifiedExamples": [ + { + "example": { + "id": "44a627940477817fb2cc64c55008bd26a521e40437f96d4d3288df5b33e383b2", + "name": null, + "url": "/data/fetch", + "rootPathParameters": [], + "endpointPathParameters": [], + "servicePathParameters": [], + "endpointHeaders": [], + "serviceHeaders": [], + "queryParameters": [], + "request": null, + "response": { + "type": "ok", + "value": { + "type": "body", + "value": { + "shape": { + "type": "named", + "typeName": { + "typeId": "type_:FetchResponse", + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "name": { + "originalName": "FetchResponse", + "camelCase": { + "unsafeName": "fetchResponse", + "safeName": "fetchResponse" + }, + "snakeCase": { + "unsafeName": "fetch_response", + "safeName": "fetch_response" + }, + "screamingSnakeCase": { + "unsafeName": "FETCH_RESPONSE", + "safeName": "FETCH_RESPONSE" + }, + "pascalCase": { + "unsafeName": "FetchResponse", + "safeName": "FetchResponse" + } + } + }, + "shape": { + "type": "object", + "properties": [ + { + "name": { + "name": { + "originalName": "columns", + "camelCase": { + "unsafeName": "columns", + "safeName": "columns" + }, + "snakeCase": { + "unsafeName": "columns", + "safeName": "columns" + }, + "screamingSnakeCase": { + "unsafeName": "COLUMNS", + "safeName": "COLUMNS" + }, + "pascalCase": { + "unsafeName": "Columns", + "safeName": "Columns" + } + }, + "wireValue": "columns" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": { + "shape": { + "type": "container", + "container": { + "type": "map", + "map": [ + { + "key": { + "shape": { + "type": "primitive", + "primitive": { + "type": "string", + "string": { + "original": "key" + } + } + }, + "jsonExample": "key" + }, + "value": { + "shape": { + "type": "named", + "typeName": { + "typeId": "type_:Column", + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "name": { + "originalName": "Column", + "camelCase": { + "unsafeName": "column", + "safeName": "column" + }, + "snakeCase": { + "unsafeName": "column", + "safeName": "column" + }, + "screamingSnakeCase": { + "unsafeName": "COLUMN", + "safeName": "COLUMN" + }, + "pascalCase": { + "unsafeName": "Column", + "safeName": "Column" + } + } + }, + "shape": { + "type": "object", + "properties": [ + { + "name": { + "name": { + "originalName": "id", + "camelCase": { + "unsafeName": "id", + "safeName": "id" + }, + "snakeCase": { + "unsafeName": "id", + "safeName": "id" + }, + "screamingSnakeCase": { + "unsafeName": "ID", + "safeName": "ID" + }, + "pascalCase": { + "unsafeName": "ID", + "safeName": "ID" + } + }, + "wireValue": "id" + }, + "value": { + "shape": { + "type": "primitive", + "primitive": { + "type": "string", + "string": { + "original": "id" + } + } + }, + "jsonExample": "id" + }, + "originalTypeDeclaration": { + "typeId": "type_:Column", + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "name": { + "originalName": "Column", + "camelCase": { + "unsafeName": "column", + "safeName": "column" + }, + "snakeCase": { + "unsafeName": "column", + "safeName": "column" + }, + "screamingSnakeCase": { + "unsafeName": "COLUMN", + "safeName": "COLUMN" + }, + "pascalCase": { + "unsafeName": "Column", + "safeName": "Column" + } + } + } + }, + { + "name": { + "name": { + "originalName": "values", + "camelCase": { + "unsafeName": "values", + "safeName": "values" + }, + "snakeCase": { + "unsafeName": "values", + "safeName": "values" + }, + "screamingSnakeCase": { + "unsafeName": "VALUES", + "safeName": "VALUES" + }, + "pascalCase": { + "unsafeName": "Values", + "safeName": "Values" + } + }, + "wireValue": "values" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "list", + "list": [ + { + "shape": { + "type": "primitive", + "primitive": { + "type": "float", + "float": 1.1 + } + }, + "jsonExample": 1.1 + } + ], + "itemType": { + "_type": "primitive", + "primitive": { + "v1": "FLOAT", + "v2": null + } + } + } + }, + "jsonExample": [ + 1.1 + ] + }, + "originalTypeDeclaration": { + "typeId": "type_:Column", + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "name": { + "originalName": "Column", + "camelCase": { + "unsafeName": "column", + "safeName": "column" + }, + "snakeCase": { + "unsafeName": "column", + "safeName": "column" + }, + "screamingSnakeCase": { + "unsafeName": "COLUMN", + "safeName": "COLUMN" + }, + "pascalCase": { + "unsafeName": "Column", + "safeName": "Column" + } + } + } + }, + { + "name": { + "name": { + "originalName": "metadata", + "camelCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "snakeCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "screamingSnakeCase": { + "unsafeName": "METADATA", + "safeName": "METADATA" + }, + "pascalCase": { + "unsafeName": "Metadata", + "safeName": "Metadata" + } + }, + "wireValue": "metadata" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": { + "shape": { + "type": "named", + "typeName": { + "typeId": "type_:Metadata", + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "name": { + "originalName": "Metadata", + "camelCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "snakeCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "screamingSnakeCase": { + "unsafeName": "METADATA", + "safeName": "METADATA" + }, + "pascalCase": { + "unsafeName": "Metadata", + "safeName": "Metadata" + } + } + }, + "shape": { + "type": "undiscriminatedUnion", + "index": 0, + "singleUnionType": { + "shape": { + "type": "container", + "container": { + "type": "map", + "map": [ + { + "key": { + "shape": { + "type": "primitive", + "primitive": { + "type": "string", + "string": { + "original": "key" + } + } + }, + "jsonExample": "key" + }, + "value": { + "shape": { + "type": "named", + "typeName": { + "typeId": "type_:MetadataValue", + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "name": { + "originalName": "MetadataValue", + "camelCase": { + "unsafeName": "metadataValue", + "safeName": "metadataValue" + }, + "snakeCase": { + "unsafeName": "metadata_value", + "safeName": "metadata_value" + }, + "screamingSnakeCase": { + "unsafeName": "METADATA_VALUE", + "safeName": "METADATA_VALUE" + }, + "pascalCase": { + "unsafeName": "MetadataValue", + "safeName": "MetadataValue" + } + } + }, + "shape": { + "type": "undiscriminatedUnion", + "index": 0, + "singleUnionType": { + "shape": { + "type": "primitive", + "primitive": { + "type": "double", + "double": 1.1 + } + }, + "jsonExample": 1.1 + } + } + }, + "jsonExample": 1.1 + } + } + ], + "keyType": { + "_type": "primitive", + "primitive": { + "v1": "STRING", + "v2": { + "type": "string", + "default": null, + "validation": null + } + } + }, + "valueType": { + "_type": "named", + "name": { + "originalName": "MetadataValue", + "camelCase": { + "unsafeName": "metadataValue", + "safeName": "metadataValue" + }, + "snakeCase": { + "unsafeName": "metadata_value", + "safeName": "metadata_value" + }, + "screamingSnakeCase": { + "unsafeName": "METADATA_VALUE", + "safeName": "METADATA_VALUE" + }, + "pascalCase": { + "unsafeName": "MetadataValue", + "safeName": "MetadataValue" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:MetadataValue", + "default": null, + "inline": null + } + } + }, + "jsonExample": { + "key": 1.1 + } + } + } + }, + "jsonExample": { + "key": 1.1 + } + }, + "valueType": { + "_type": "named", + "name": { + "originalName": "Metadata", + "camelCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "snakeCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "screamingSnakeCase": { + "unsafeName": "METADATA", + "safeName": "METADATA" + }, + "pascalCase": { + "unsafeName": "Metadata", + "safeName": "Metadata" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:Metadata", + "default": null, + "inline": null + } + } + }, + "jsonExample": { + "key": 1.1 + } + }, + "originalTypeDeclaration": { + "typeId": "type_:Column", + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "name": { + "originalName": "Column", + "camelCase": { + "unsafeName": "column", + "safeName": "column" + }, + "snakeCase": { + "unsafeName": "column", + "safeName": "column" + }, + "screamingSnakeCase": { + "unsafeName": "COLUMN", + "safeName": "COLUMN" + }, + "pascalCase": { + "unsafeName": "Column", + "safeName": "Column" + } + } + } + }, + { + "name": { + "name": { + "originalName": "indexedData", + "camelCase": { + "unsafeName": "indexedData", + "safeName": "indexedData" + }, + "snakeCase": { + "unsafeName": "indexed_data", + "safeName": "indexed_data" + }, + "screamingSnakeCase": { + "unsafeName": "INDEXED_DATA", + "safeName": "INDEXED_DATA" + }, + "pascalCase": { + "unsafeName": "IndexedData", + "safeName": "IndexedData" + } + }, + "wireValue": "indexedData" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": { + "shape": { + "type": "named", + "typeName": { + "typeId": "type_:IndexedData", + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "name": { + "originalName": "IndexedData", + "camelCase": { + "unsafeName": "indexedData", + "safeName": "indexedData" + }, + "snakeCase": { + "unsafeName": "indexed_data", + "safeName": "indexed_data" + }, + "screamingSnakeCase": { + "unsafeName": "INDEXED_DATA", + "safeName": "INDEXED_DATA" + }, + "pascalCase": { + "unsafeName": "IndexedData", + "safeName": "IndexedData" + } + } + }, + "shape": { + "type": "object", + "properties": [ + { + "name": { + "name": { + "originalName": "indices", + "camelCase": { + "unsafeName": "indices", + "safeName": "indices" + }, + "snakeCase": { + "unsafeName": "indices", + "safeName": "indices" + }, + "screamingSnakeCase": { + "unsafeName": "INDICES", + "safeName": "INDICES" + }, + "pascalCase": { + "unsafeName": "Indices", + "safeName": "Indices" + } + }, + "wireValue": "indices" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "list", + "list": [ + { + "shape": { + "type": "primitive", + "primitive": { + "type": "uint", + "uint": 1 + } + }, + "jsonExample": 1 + } + ], + "itemType": { + "_type": "primitive", + "primitive": { + "v1": "UINT", + "v2": null + } + } + } + }, + "jsonExample": [ + 1 + ] + }, + "originalTypeDeclaration": { + "typeId": "type_:IndexedData", + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "name": { + "originalName": "IndexedData", + "camelCase": { + "unsafeName": "indexedData", + "safeName": "indexedData" + }, + "snakeCase": { + "unsafeName": "indexed_data", + "safeName": "indexed_data" + }, + "screamingSnakeCase": { + "unsafeName": "INDEXED_DATA", + "safeName": "INDEXED_DATA" + }, + "pascalCase": { + "unsafeName": "IndexedData", + "safeName": "IndexedData" + } + } + } + }, + { + "name": { + "name": { + "originalName": "values", + "camelCase": { + "unsafeName": "values", + "safeName": "values" + }, + "snakeCase": { + "unsafeName": "values", + "safeName": "values" + }, + "screamingSnakeCase": { + "unsafeName": "VALUES", + "safeName": "VALUES" + }, + "pascalCase": { + "unsafeName": "Values", + "safeName": "Values" + } + }, + "wireValue": "values" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "list", + "list": [ + { + "shape": { + "type": "primitive", + "primitive": { + "type": "float", + "float": 1.1 + } + }, + "jsonExample": 1.1 + } + ], + "itemType": { + "_type": "primitive", + "primitive": { + "v1": "FLOAT", + "v2": null + } + } + } + }, + "jsonExample": [ + 1.1 + ] + }, + "originalTypeDeclaration": { + "typeId": "type_:IndexedData", + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "name": { + "originalName": "IndexedData", + "camelCase": { + "unsafeName": "indexedData", + "safeName": "indexedData" + }, + "snakeCase": { + "unsafeName": "indexed_data", + "safeName": "indexed_data" + }, + "screamingSnakeCase": { + "unsafeName": "INDEXED_DATA", + "safeName": "INDEXED_DATA" + }, + "pascalCase": { + "unsafeName": "IndexedData", + "safeName": "IndexedData" + } + } + } + } + ] + } + }, + "jsonExample": { + "indices": [ + 1 + ], + "values": [ + 1.1 + ] + } + }, + "valueType": { + "_type": "named", + "name": { + "originalName": "IndexedData", + "camelCase": { + "unsafeName": "indexedData", + "safeName": "indexedData" + }, + "snakeCase": { + "unsafeName": "indexed_data", + "safeName": "indexed_data" + }, + "screamingSnakeCase": { + "unsafeName": "INDEXED_DATA", + "safeName": "INDEXED_DATA" + }, + "pascalCase": { + "unsafeName": "IndexedData", + "safeName": "IndexedData" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:IndexedData", + "default": null, + "inline": null + } + } + }, + "jsonExample": { + "indices": [ + 1 + ], + "values": [ + 1.1 + ] + } + }, + "originalTypeDeclaration": { + "typeId": "type_:Column", + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "name": { + "originalName": "Column", + "camelCase": { + "unsafeName": "column", + "safeName": "column" + }, + "snakeCase": { + "unsafeName": "column", + "safeName": "column" + }, + "screamingSnakeCase": { + "unsafeName": "COLUMN", + "safeName": "COLUMN" + }, + "pascalCase": { + "unsafeName": "Column", + "safeName": "Column" + } + } + } + } + ] + } + }, + "jsonExample": { + "id": "id", + "values": [ + 1.1 + ], + "metadata": { + "key": 1.1 + }, + "indexedData": { + "indices": [ + 1 + ], + "values": [ + 1.1 + ] + } + } + } + } + ], + "keyType": { + "_type": "primitive", + "primitive": { + "v1": "STRING", + "v2": { + "type": "string", + "default": null, + "validation": null + } + } + }, + "valueType": { + "_type": "named", + "name": { + "originalName": "Column", + "camelCase": { + "unsafeName": "column", + "safeName": "column" + }, + "snakeCase": { + "unsafeName": "column", + "safeName": "column" + }, + "screamingSnakeCase": { + "unsafeName": "COLUMN", + "safeName": "COLUMN" + }, + "pascalCase": { + "unsafeName": "Column", + "safeName": "Column" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:Column", + "default": null, + "inline": null + } + } + }, + "jsonExample": { + "key": { + "id": "id", + "values": [ + 1.1 + ], + "metadata": { + "key": 1.1 + }, + "indexedData": { + "indices": [ + 1 + ], + "values": [ + 1.1 + ] + } + } + } + }, + "valueType": { + "_type": "container", + "container": { + "_type": "map", + "keyType": { + "_type": "primitive", + "primitive": { + "v1": "STRING", + "v2": { + "type": "string", + "default": null, + "validation": null + } + } + }, + "valueType": { + "_type": "named", + "name": { + "originalName": "Column", + "camelCase": { + "unsafeName": "column", + "safeName": "column" + }, + "snakeCase": { + "unsafeName": "column", + "safeName": "column" + }, + "screamingSnakeCase": { + "unsafeName": "COLUMN", + "safeName": "COLUMN" + }, + "pascalCase": { + "unsafeName": "Column", + "safeName": "Column" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:Column", + "default": null, + "inline": null + } + } + } + } + }, + "jsonExample": { + "key": { + "id": "id", + "values": [ + 1.1 + ], + "metadata": { + "key": 1.1 + }, + "indexedData": { + "indices": [ + 1 + ], + "values": [ + 1.1 + ] + } + } + } + }, + "originalTypeDeclaration": { + "typeId": "type_:FetchResponse", + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "name": { + "originalName": "FetchResponse", + "camelCase": { + "unsafeName": "fetchResponse", + "safeName": "fetchResponse" + }, + "snakeCase": { + "unsafeName": "fetch_response", + "safeName": "fetch_response" + }, + "screamingSnakeCase": { + "unsafeName": "FETCH_RESPONSE", + "safeName": "FETCH_RESPONSE" + }, + "pascalCase": { + "unsafeName": "FetchResponse", + "safeName": "FetchResponse" + } + } + } + }, + { + "name": { + "name": { + "originalName": "namespace", + "camelCase": { + "unsafeName": "namespace", + "safeName": "namespace" + }, + "snakeCase": { + "unsafeName": "namespace", + "safeName": "namespace" + }, + "screamingSnakeCase": { + "unsafeName": "NAMESPACE", + "safeName": "NAMESPACE" + }, + "pascalCase": { + "unsafeName": "Namespace", + "safeName": "Namespace" + } + }, + "wireValue": "namespace" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": { + "shape": { + "type": "primitive", + "primitive": { + "type": "string", + "string": { + "original": "namespace" + } + } + }, + "jsonExample": "namespace" + }, + "valueType": { + "_type": "primitive", + "primitive": { + "v1": "STRING", + "v2": { + "type": "string", + "default": null, + "validation": null + } + } + } + } + }, + "jsonExample": "namespace" + }, + "originalTypeDeclaration": { + "typeId": "type_:FetchResponse", + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "name": { + "originalName": "FetchResponse", + "camelCase": { + "unsafeName": "fetchResponse", + "safeName": "fetchResponse" + }, + "snakeCase": { + "unsafeName": "fetch_response", + "safeName": "fetch_response" + }, + "screamingSnakeCase": { + "unsafeName": "FETCH_RESPONSE", + "safeName": "FETCH_RESPONSE" + }, + "pascalCase": { + "unsafeName": "FetchResponse", + "safeName": "FetchResponse" + } + } + } + }, + { + "name": { + "name": { + "originalName": "usage", + "camelCase": { + "unsafeName": "usage", + "safeName": "usage" + }, + "snakeCase": { + "unsafeName": "usage", + "safeName": "usage" + }, + "screamingSnakeCase": { + "unsafeName": "USAGE", + "safeName": "USAGE" + }, + "pascalCase": { + "unsafeName": "Usage", + "safeName": "Usage" + } + }, + "wireValue": "usage" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": { + "shape": { + "type": "named", + "typeName": { + "typeId": "type_:Usage", + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "name": { + "originalName": "Usage", + "camelCase": { + "unsafeName": "usage", + "safeName": "usage" + }, + "snakeCase": { + "unsafeName": "usage", + "safeName": "usage" + }, + "screamingSnakeCase": { + "unsafeName": "USAGE", + "safeName": "USAGE" + }, + "pascalCase": { + "unsafeName": "Usage", + "safeName": "Usage" + } + } + }, + "shape": { + "type": "object", + "properties": [ + { + "name": { + "name": { + "originalName": "units", + "camelCase": { + "unsafeName": "units", + "safeName": "units" + }, + "snakeCase": { + "unsafeName": "units", + "safeName": "units" + }, + "screamingSnakeCase": { + "unsafeName": "UNITS", + "safeName": "UNITS" + }, + "pascalCase": { + "unsafeName": "Units", + "safeName": "Units" + } + }, + "wireValue": "units" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": { + "shape": { + "type": "primitive", + "primitive": { + "type": "uint", + "uint": 1 + } + }, + "jsonExample": 1 + }, + "valueType": { + "_type": "primitive", + "primitive": { + "v1": "UINT", + "v2": null + } + } + } + }, + "jsonExample": 1 + }, + "originalTypeDeclaration": { + "typeId": "type_:Usage", + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "name": { + "originalName": "Usage", + "camelCase": { + "unsafeName": "usage", + "safeName": "usage" + }, + "snakeCase": { + "unsafeName": "usage", + "safeName": "usage" + }, + "screamingSnakeCase": { + "unsafeName": "USAGE", + "safeName": "USAGE" + }, + "pascalCase": { + "unsafeName": "Usage", + "safeName": "Usage" + } + } + } + } + ] + } + }, + "jsonExample": { + "units": 1 + } + }, + "valueType": { + "_type": "named", + "name": { + "originalName": "Usage", + "camelCase": { + "unsafeName": "usage", + "safeName": "usage" + }, + "snakeCase": { + "unsafeName": "usage", + "safeName": "usage" + }, + "screamingSnakeCase": { + "unsafeName": "USAGE", + "safeName": "USAGE" + }, + "pascalCase": { + "unsafeName": "Usage", + "safeName": "Usage" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:Usage", + "default": null, + "inline": null + } + } + }, + "jsonExample": { + "units": 1 + } + }, + "originalTypeDeclaration": { + "typeId": "type_:FetchResponse", + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "name": { + "originalName": "FetchResponse", + "camelCase": { + "unsafeName": "fetchResponse", + "safeName": "fetchResponse" + }, + "snakeCase": { + "unsafeName": "fetch_response", + "safeName": "fetch_response" + }, + "screamingSnakeCase": { + "unsafeName": "FETCH_RESPONSE", + "safeName": "FETCH_RESPONSE" + }, + "pascalCase": { + "unsafeName": "FetchResponse", + "safeName": "FetchResponse" + } + } + } + } + ] + } + }, + "jsonExample": { + "columns": { + "key": { + "id": "id", + "values": [ + 1.1 + ], + "metadata": { + "key": 1.1 + }, + "indexedData": { + "indices": [ + 1 + ], + "values": [ + 1.1 + ] + } + } + }, + "namespace": "namespace", + "usage": { + "units": 1 + } + } + } + } + }, + "docs": null + }, + "codeSamples": null + } + ], + "autogeneratedExamples": [ + { + "example": { + "id": "b6a313102d6486073540f516aba014ac628d3b6d", + "url": "/data/fetch", + "name": null, + "endpointHeaders": [], + "endpointPathParameters": [], + "queryParameters": [], + "servicePathParameters": [], + "serviceHeaders": [], + "rootPathParameters": [], + "request": null, + "response": { + "type": "ok", + "value": { + "type": "body", + "value": { + "shape": { + "type": "named", + "shape": { + "type": "object", + "properties": [ + { + "name": { + "name": { + "originalName": "columns", + "camelCase": { + "unsafeName": "columns", + "safeName": "columns" + }, + "snakeCase": { + "unsafeName": "columns", + "safeName": "columns" + }, + "screamingSnakeCase": { + "unsafeName": "COLUMNS", + "safeName": "COLUMNS" + }, + "pascalCase": { + "unsafeName": "Columns", + "safeName": "Columns" + } + }, + "wireValue": "columns" + }, + "originalTypeDeclaration": { + "name": { + "originalName": "FetchResponse", + "camelCase": { + "unsafeName": "fetchResponse", + "safeName": "fetchResponse" + }, + "snakeCase": { + "unsafeName": "fetch_response", + "safeName": "fetch_response" + }, + "screamingSnakeCase": { + "unsafeName": "FETCH_RESPONSE", + "safeName": "FETCH_RESPONSE" + }, + "pascalCase": { + "unsafeName": "FetchResponse", + "safeName": "FetchResponse" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:FetchResponse" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": { + "shape": { + "type": "container", + "container": { + "type": "map", + "map": [ + { + "key": { + "shape": { + "type": "primitive", + "primitive": { + "type": "string", + "string": { + "original": "columns" + } + } + }, + "jsonExample": "columns" + }, + "value": { + "shape": { + "type": "named", + "shape": { + "type": "object", + "properties": [ + { + "name": { + "name": { + "originalName": "id", + "camelCase": { + "unsafeName": "id", + "safeName": "id" + }, + "snakeCase": { + "unsafeName": "id", + "safeName": "id" + }, + "screamingSnakeCase": { + "unsafeName": "ID", + "safeName": "ID" + }, + "pascalCase": { + "unsafeName": "ID", + "safeName": "ID" + } + }, + "wireValue": "id" + }, + "originalTypeDeclaration": { + "name": { + "originalName": "Column", + "camelCase": { + "unsafeName": "column", + "safeName": "column" + }, + "snakeCase": { + "unsafeName": "column", + "safeName": "column" + }, + "screamingSnakeCase": { + "unsafeName": "COLUMN", + "safeName": "COLUMN" + }, + "pascalCase": { + "unsafeName": "Column", + "safeName": "Column" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:Column" + }, + "value": { + "shape": { + "type": "primitive", + "primitive": { + "type": "string", + "string": { + "original": "id" + } + } + }, + "jsonExample": "id" + } + }, + { + "name": { + "name": { + "originalName": "values", + "camelCase": { + "unsafeName": "values", + "safeName": "values" + }, + "snakeCase": { + "unsafeName": "values", + "safeName": "values" + }, + "screamingSnakeCase": { + "unsafeName": "VALUES", + "safeName": "VALUES" + }, + "pascalCase": { + "unsafeName": "Values", + "safeName": "Values" + } + }, + "wireValue": "values" + }, + "originalTypeDeclaration": { + "name": { + "originalName": "Column", + "camelCase": { + "unsafeName": "column", + "safeName": "column" + }, + "snakeCase": { + "unsafeName": "column", + "safeName": "column" + }, + "screamingSnakeCase": { + "unsafeName": "COLUMN", + "safeName": "COLUMN" + }, + "pascalCase": { + "unsafeName": "Column", + "safeName": "Column" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:Column" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "list", + "list": [ + { + "shape": { + "type": "primitive", + "primitive": { + "type": "float", + "float": 1.1 + } + }, + "jsonExample": 1.1 + }, + { + "shape": { + "type": "primitive", + "primitive": { + "type": "float", + "float": 1.1 + } + }, + "jsonExample": 1.1 + } + ], + "itemType": { + "_type": "primitive", + "primitive": { + "v1": "FLOAT", + "v2": null + } + } + } + }, + "jsonExample": [ + 1.1, + 1.1 + ] + } + }, + { + "name": { + "name": { + "originalName": "metadata", + "camelCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "snakeCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "screamingSnakeCase": { + "unsafeName": "METADATA", + "safeName": "METADATA" + }, + "pascalCase": { + "unsafeName": "Metadata", + "safeName": "Metadata" + } + }, + "wireValue": "metadata" + }, + "originalTypeDeclaration": { + "name": { + "originalName": "Column", + "camelCase": { + "unsafeName": "column", + "safeName": "column" + }, + "snakeCase": { + "unsafeName": "column", + "safeName": "column" + }, + "screamingSnakeCase": { + "unsafeName": "COLUMN", + "safeName": "COLUMN" + }, + "pascalCase": { + "unsafeName": "Column", + "safeName": "Column" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:Column" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": { + "shape": { + "type": "named", + "shape": { + "type": "undiscriminatedUnion", + "index": 0, + "singleUnionType": { + "shape": { + "type": "container", + "container": { + "type": "map", + "map": [ + { + "key": { + "shape": { + "type": "primitive", + "primitive": { + "type": "string", + "string": { + "original": "metadata" + } + } + }, + "jsonExample": "metadata" + }, + "value": { + "shape": { + "type": "named", + "shape": { + "type": "undiscriminatedUnion", + "index": 0, + "singleUnionType": { + "shape": { + "type": "primitive", + "primitive": { + "type": "double", + "double": 1.1 + } + }, + "jsonExample": 1.1 + } + }, + "typeName": { + "name": { + "originalName": "MetadataValue", + "camelCase": { + "unsafeName": "metadataValue", + "safeName": "metadataValue" + }, + "snakeCase": { + "unsafeName": "metadata_value", + "safeName": "metadata_value" + }, + "screamingSnakeCase": { + "unsafeName": "METADATA_VALUE", + "safeName": "METADATA_VALUE" + }, + "pascalCase": { + "unsafeName": "MetadataValue", + "safeName": "MetadataValue" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:MetadataValue" + } + }, + "jsonExample": 1.1 + } + } + ], + "keyType": { + "_type": "primitive", + "primitive": { + "v1": "STRING", + "v2": { + "type": "string", + "default": null, + "validation": null + } + } + }, + "valueType": { + "_type": "named", + "name": { + "originalName": "MetadataValue", + "camelCase": { + "unsafeName": "metadataValue", + "safeName": "metadataValue" + }, + "snakeCase": { + "unsafeName": "metadata_value", + "safeName": "metadata_value" + }, + "screamingSnakeCase": { + "unsafeName": "METADATA_VALUE", + "safeName": "METADATA_VALUE" + }, + "pascalCase": { + "unsafeName": "MetadataValue", + "safeName": "MetadataValue" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:MetadataValue", + "default": null, + "inline": null + } + } + }, + "jsonExample": { + "metadata": 1.1 + } + } + }, + "typeName": { + "name": { + "originalName": "Metadata", + "camelCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "snakeCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "screamingSnakeCase": { + "unsafeName": "METADATA", + "safeName": "METADATA" + }, + "pascalCase": { + "unsafeName": "Metadata", + "safeName": "Metadata" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:Metadata" + } + }, + "jsonExample": { + "metadata": 1.1 + } + }, + "valueType": { + "_type": "named", + "name": { + "originalName": "Metadata", + "camelCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "snakeCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "screamingSnakeCase": { + "unsafeName": "METADATA", + "safeName": "METADATA" + }, + "pascalCase": { + "unsafeName": "Metadata", + "safeName": "Metadata" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:Metadata", + "default": null, + "inline": null + } + } + }, + "jsonExample": { + "metadata": 1.1 + } + } + }, + { + "name": { + "name": { + "originalName": "indexedData", + "camelCase": { + "unsafeName": "indexedData", + "safeName": "indexedData" + }, + "snakeCase": { + "unsafeName": "indexed_data", + "safeName": "indexed_data" + }, + "screamingSnakeCase": { + "unsafeName": "INDEXED_DATA", + "safeName": "INDEXED_DATA" + }, + "pascalCase": { + "unsafeName": "IndexedData", + "safeName": "IndexedData" + } + }, + "wireValue": "indexedData" + }, + "originalTypeDeclaration": { + "name": { + "originalName": "Column", + "camelCase": { + "unsafeName": "column", + "safeName": "column" + }, + "snakeCase": { + "unsafeName": "column", + "safeName": "column" + }, + "screamingSnakeCase": { + "unsafeName": "COLUMN", + "safeName": "COLUMN" + }, + "pascalCase": { + "unsafeName": "Column", + "safeName": "Column" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:Column" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": { + "shape": { + "type": "named", + "shape": { + "type": "object", + "properties": [ + { + "name": { + "name": { + "originalName": "indices", + "camelCase": { + "unsafeName": "indices", + "safeName": "indices" + }, + "snakeCase": { + "unsafeName": "indices", + "safeName": "indices" + }, + "screamingSnakeCase": { + "unsafeName": "INDICES", + "safeName": "INDICES" + }, + "pascalCase": { + "unsafeName": "Indices", + "safeName": "Indices" + } + }, + "wireValue": "indices" + }, + "originalTypeDeclaration": { + "name": { + "originalName": "IndexedData", + "camelCase": { + "unsafeName": "indexedData", + "safeName": "indexedData" + }, + "snakeCase": { + "unsafeName": "indexed_data", + "safeName": "indexed_data" + }, + "screamingSnakeCase": { + "unsafeName": "INDEXED_DATA", + "safeName": "INDEXED_DATA" + }, + "pascalCase": { + "unsafeName": "IndexedData", + "safeName": "IndexedData" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:IndexedData" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "list", + "list": [ + { + "shape": { + "type": "primitive", + "primitive": { + "type": "uint", + "uint": 1 + } + }, + "jsonExample": 1 + }, + { + "shape": { + "type": "primitive", + "primitive": { + "type": "uint", + "uint": 1 + } + }, + "jsonExample": 1 + } + ], + "itemType": { + "_type": "primitive", + "primitive": { + "v1": "UINT", + "v2": null + } + } + } + }, + "jsonExample": [ + 1, + 1 + ] + } + }, + { + "name": { + "name": { + "originalName": "values", + "camelCase": { + "unsafeName": "values", + "safeName": "values" + }, + "snakeCase": { + "unsafeName": "values", + "safeName": "values" + }, + "screamingSnakeCase": { + "unsafeName": "VALUES", + "safeName": "VALUES" + }, + "pascalCase": { + "unsafeName": "Values", + "safeName": "Values" + } + }, + "wireValue": "values" + }, + "originalTypeDeclaration": { + "name": { + "originalName": "IndexedData", + "camelCase": { + "unsafeName": "indexedData", + "safeName": "indexedData" + }, + "snakeCase": { + "unsafeName": "indexed_data", + "safeName": "indexed_data" + }, + "screamingSnakeCase": { + "unsafeName": "INDEXED_DATA", + "safeName": "INDEXED_DATA" + }, + "pascalCase": { + "unsafeName": "IndexedData", + "safeName": "IndexedData" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:IndexedData" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "list", + "list": [ + { + "shape": { + "type": "primitive", + "primitive": { + "type": "float", + "float": 1.1 + } + }, + "jsonExample": 1.1 + }, + { + "shape": { + "type": "primitive", + "primitive": { + "type": "float", + "float": 1.1 + } + }, + "jsonExample": 1.1 + } + ], + "itemType": { + "_type": "primitive", + "primitive": { + "v1": "FLOAT", + "v2": null + } + } + } + }, + "jsonExample": [ + 1.1, + 1.1 + ] + } + } + ] + }, + "typeName": { + "name": { + "originalName": "IndexedData", + "camelCase": { + "unsafeName": "indexedData", + "safeName": "indexedData" + }, + "snakeCase": { + "unsafeName": "indexed_data", + "safeName": "indexed_data" + }, + "screamingSnakeCase": { + "unsafeName": "INDEXED_DATA", + "safeName": "INDEXED_DATA" + }, + "pascalCase": { + "unsafeName": "IndexedData", + "safeName": "IndexedData" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:IndexedData" + } + }, + "jsonExample": { + "indices": [ + 1, + 1 + ], + "values": [ + 1.1, + 1.1 + ] + } + }, + "valueType": { + "_type": "named", + "name": { + "originalName": "IndexedData", + "camelCase": { + "unsafeName": "indexedData", + "safeName": "indexedData" + }, + "snakeCase": { + "unsafeName": "indexed_data", + "safeName": "indexed_data" + }, + "screamingSnakeCase": { + "unsafeName": "INDEXED_DATA", + "safeName": "INDEXED_DATA" + }, + "pascalCase": { + "unsafeName": "IndexedData", + "safeName": "IndexedData" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:IndexedData", + "default": null, + "inline": null + } + } + }, + "jsonExample": { + "indices": [ + 1, + 1 + ], + "values": [ + 1.1, + 1.1 + ] + } + } + } + ] + }, + "typeName": { + "name": { + "originalName": "Column", + "camelCase": { + "unsafeName": "column", + "safeName": "column" + }, + "snakeCase": { + "unsafeName": "column", + "safeName": "column" + }, + "screamingSnakeCase": { + "unsafeName": "COLUMN", + "safeName": "COLUMN" + }, + "pascalCase": { + "unsafeName": "Column", + "safeName": "Column" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:Column" + } + }, + "jsonExample": { + "id": "id", + "values": [ + 1.1, + 1.1 + ], + "metadata": { + "metadata": 1.1 + }, + "indexedData": { + "indices": [ + 1, + 1 + ], + "values": [ + 1.1, + 1.1 + ] + } + } + } + } + ], + "keyType": { + "_type": "primitive", + "primitive": { + "v1": "STRING", + "v2": { + "type": "string", + "default": null, + "validation": null + } + } + }, + "valueType": { + "_type": "named", + "name": { + "originalName": "Column", + "camelCase": { + "unsafeName": "column", + "safeName": "column" + }, + "snakeCase": { + "unsafeName": "column", + "safeName": "column" + }, + "screamingSnakeCase": { + "unsafeName": "COLUMN", + "safeName": "COLUMN" + }, + "pascalCase": { + "unsafeName": "Column", + "safeName": "Column" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:Column", + "default": null, + "inline": null + } + } + }, + "jsonExample": { + "columns": { + "id": "id", + "values": [ + 1.1, + 1.1 + ], + "metadata": { + "metadata": 1.1 + }, + "indexedData": { + "indices": [ + 1, + 1 + ], + "values": [ + 1.1, + 1.1 + ] + } + } + } + }, + "valueType": { + "_type": "container", + "container": { + "_type": "map", + "keyType": { + "_type": "primitive", + "primitive": { + "v1": "STRING", + "v2": { + "type": "string", + "default": null, + "validation": null + } + } + }, + "valueType": { + "_type": "named", + "name": { + "originalName": "Column", + "camelCase": { + "unsafeName": "column", + "safeName": "column" + }, + "snakeCase": { + "unsafeName": "column", + "safeName": "column" + }, + "screamingSnakeCase": { + "unsafeName": "COLUMN", + "safeName": "COLUMN" + }, + "pascalCase": { + "unsafeName": "Column", + "safeName": "Column" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:Column", + "default": null, + "inline": null + } + } + } + } + }, + "jsonExample": { + "columns": { + "id": "id", + "values": [ + 1.1, + 1.1 + ], + "metadata": { + "metadata": 1.1 + }, + "indexedData": { + "indices": [ + 1, + 1 + ], + "values": [ + 1.1, + 1.1 + ] + } + } + } + } + }, + { + "name": { + "name": { + "originalName": "namespace", + "camelCase": { + "unsafeName": "namespace", + "safeName": "namespace" + }, + "snakeCase": { + "unsafeName": "namespace", + "safeName": "namespace" + }, + "screamingSnakeCase": { + "unsafeName": "NAMESPACE", + "safeName": "NAMESPACE" + }, + "pascalCase": { + "unsafeName": "Namespace", + "safeName": "Namespace" + } + }, + "wireValue": "namespace" + }, + "originalTypeDeclaration": { + "name": { + "originalName": "FetchResponse", + "camelCase": { + "unsafeName": "fetchResponse", + "safeName": "fetchResponse" + }, + "snakeCase": { + "unsafeName": "fetch_response", + "safeName": "fetch_response" + }, + "screamingSnakeCase": { + "unsafeName": "FETCH_RESPONSE", + "safeName": "FETCH_RESPONSE" + }, + "pascalCase": { + "unsafeName": "FetchResponse", + "safeName": "FetchResponse" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:FetchResponse" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": { + "shape": { + "type": "primitive", + "primitive": { + "type": "string", + "string": { + "original": "namespace" + } + } + }, + "jsonExample": "namespace" + }, + "valueType": { + "_type": "primitive", + "primitive": { + "v1": "STRING", + "v2": { + "type": "string", + "default": null, + "validation": null + } + } + } + } + }, + "jsonExample": "namespace" + } + }, + { + "name": { + "name": { + "originalName": "usage", + "camelCase": { + "unsafeName": "usage", + "safeName": "usage" + }, + "snakeCase": { + "unsafeName": "usage", + "safeName": "usage" + }, + "screamingSnakeCase": { + "unsafeName": "USAGE", + "safeName": "USAGE" + }, + "pascalCase": { + "unsafeName": "Usage", + "safeName": "Usage" + } + }, + "wireValue": "usage" + }, + "originalTypeDeclaration": { + "name": { + "originalName": "FetchResponse", + "camelCase": { + "unsafeName": "fetchResponse", + "safeName": "fetchResponse" + }, + "snakeCase": { + "unsafeName": "fetch_response", + "safeName": "fetch_response" + }, + "screamingSnakeCase": { + "unsafeName": "FETCH_RESPONSE", + "safeName": "FETCH_RESPONSE" + }, + "pascalCase": { + "unsafeName": "FetchResponse", + "safeName": "FetchResponse" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:FetchResponse" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": { + "shape": { + "type": "named", + "shape": { + "type": "object", + "properties": [ + { + "name": { + "name": { + "originalName": "units", + "camelCase": { + "unsafeName": "units", + "safeName": "units" + }, + "snakeCase": { + "unsafeName": "units", + "safeName": "units" + }, + "screamingSnakeCase": { + "unsafeName": "UNITS", + "safeName": "UNITS" + }, + "pascalCase": { + "unsafeName": "Units", + "safeName": "Units" + } + }, + "wireValue": "units" + }, + "originalTypeDeclaration": { + "name": { + "originalName": "Usage", + "camelCase": { + "unsafeName": "usage", + "safeName": "usage" + }, + "snakeCase": { + "unsafeName": "usage", + "safeName": "usage" + }, + "screamingSnakeCase": { + "unsafeName": "USAGE", + "safeName": "USAGE" + }, + "pascalCase": { + "unsafeName": "Usage", + "safeName": "Usage" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:Usage" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": { + "shape": { + "type": "primitive", + "primitive": { + "type": "uint", + "uint": 1 + } + }, + "jsonExample": 1 + }, + "valueType": { + "_type": "primitive", + "primitive": { + "v1": "UINT", + "v2": null + } + } + } + }, + "jsonExample": 1 + } + } + ] + }, + "typeName": { + "name": { + "originalName": "Usage", + "camelCase": { + "unsafeName": "usage", + "safeName": "usage" + }, + "snakeCase": { + "unsafeName": "usage", + "safeName": "usage" + }, + "screamingSnakeCase": { + "unsafeName": "USAGE", + "safeName": "USAGE" + }, + "pascalCase": { + "unsafeName": "Usage", + "safeName": "Usage" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:Usage" + } + }, + "jsonExample": { + "units": 1 + } + }, + "valueType": { + "_type": "named", + "name": { + "originalName": "Usage", + "camelCase": { + "unsafeName": "usage", + "safeName": "usage" + }, + "snakeCase": { + "unsafeName": "usage", + "safeName": "usage" + }, + "screamingSnakeCase": { + "unsafeName": "USAGE", + "safeName": "USAGE" + }, + "pascalCase": { + "unsafeName": "Usage", + "safeName": "Usage" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:Usage", + "default": null, + "inline": null + } + } + }, + "jsonExample": { + "units": 1 + } + } + } + ] + }, + "typeName": { + "name": { + "originalName": "FetchResponse", + "camelCase": { + "unsafeName": "fetchResponse", + "safeName": "fetchResponse" + }, + "snakeCase": { + "unsafeName": "fetch_response", + "safeName": "fetch_response" + }, + "screamingSnakeCase": { + "unsafeName": "FETCH_RESPONSE", + "safeName": "FETCH_RESPONSE" + }, + "pascalCase": { + "unsafeName": "FetchResponse", + "safeName": "FetchResponse" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:FetchResponse" + } + }, + "jsonExample": { + "columns": { + "columns": { + "id": "id", + "values": [ + 1.1, + 1.1 + ], + "metadata": { + "metadata": 1.1 + }, + "indexedData": { + "indices": [ + 1, + 1 + ], + "values": [ + 1.1, + 1.1 + ] + } + } + }, + "namespace": "namespace", + "usage": { + "units": 1 + } + } + } + } + }, + "docs": null + } + } + ], + "pagination": null, + "transport": null, + "availability": null, + "docs": null + }, + { + "id": "endpoint_dataservice.list", + "name": { + "originalName": "list", + "camelCase": { + "unsafeName": "list", + "safeName": "list" + }, + "snakeCase": { + "unsafeName": "list", + "safeName": "list" + }, + "screamingSnakeCase": { + "unsafeName": "LIST", + "safeName": "LIST" + }, + "pascalCase": { + "unsafeName": "List", + "safeName": "List" + } + }, + "displayName": null, + "auth": false, + "idempotent": false, + "baseUrl": null, + "method": "GET", + "basePath": null, + "path": { + "head": "/data/list", + "parts": [] + }, + "fullPath": { + "head": "data/list", + "parts": [] + }, + "pathParameters": [], + "allPathParameters": [], + "queryParameters": [ + { + "name": { + "name": { + "originalName": "prefix", + "camelCase": { + "unsafeName": "prefix", + "safeName": "prefix" + }, + "snakeCase": { + "unsafeName": "prefix", + "safeName": "prefix" + }, + "screamingSnakeCase": { + "unsafeName": "PREFIX", + "safeName": "PREFIX" + }, + "pascalCase": { + "unsafeName": "Prefix", + "safeName": "Prefix" + } + }, + "wireValue": "prefix" + }, + "valueType": { + "_type": "container", + "container": { + "_type": "optional", + "optional": { + "_type": "primitive", + "primitive": { + "v1": "STRING", + "v2": { + "type": "string", + "default": null, + "validation": null + } + } + } + } + }, + "allowMultiple": false, + "availability": null, + "docs": null + }, + { + "name": { + "name": { + "originalName": "limit", + "camelCase": { + "unsafeName": "limit", + "safeName": "limit" + }, + "snakeCase": { + "unsafeName": "limit", + "safeName": "limit" + }, + "screamingSnakeCase": { + "unsafeName": "LIMIT", + "safeName": "LIMIT" + }, + "pascalCase": { + "unsafeName": "Limit", + "safeName": "Limit" + } + }, + "wireValue": "limit" + }, + "valueType": { + "_type": "container", + "container": { + "_type": "optional", + "optional": { + "_type": "primitive", + "primitive": { + "v1": "UINT", + "v2": null + } + } + } + }, + "allowMultiple": false, + "availability": null, + "docs": null + }, + { + "name": { + "name": { + "originalName": "paginationToken", + "camelCase": { + "unsafeName": "paginationToken", + "safeName": "paginationToken" + }, + "snakeCase": { + "unsafeName": "pagination_token", + "safeName": "pagination_token" + }, + "screamingSnakeCase": { + "unsafeName": "PAGINATION_TOKEN", + "safeName": "PAGINATION_TOKEN" + }, + "pascalCase": { + "unsafeName": "PaginationToken", + "safeName": "PaginationToken" + } + }, + "wireValue": "paginationToken" + }, + "valueType": { + "_type": "container", + "container": { + "_type": "optional", + "optional": { + "_type": "primitive", + "primitive": { + "v1": "STRING", + "v2": { + "type": "string", + "default": null, + "validation": null + } + } + } + } + }, + "allowMultiple": false, + "availability": null, + "docs": null + }, + { + "name": { + "name": { + "originalName": "namespace", + "camelCase": { + "unsafeName": "namespace", + "safeName": "namespace" + }, + "snakeCase": { + "unsafeName": "namespace", + "safeName": "namespace" + }, + "screamingSnakeCase": { + "unsafeName": "NAMESPACE", + "safeName": "NAMESPACE" + }, + "pascalCase": { + "unsafeName": "Namespace", + "safeName": "Namespace" + } + }, + "wireValue": "namespace" + }, + "valueType": { + "_type": "container", + "container": { + "_type": "optional", + "optional": { + "_type": "primitive", + "primitive": { + "v1": "STRING", + "v2": { + "type": "string", + "default": null, + "validation": null + } + } + } + } + }, + "allowMultiple": false, + "availability": null, + "docs": null + } + ], + "headers": [], + "requestBody": null, + "sdkRequest": { + "shape": { + "type": "wrapper", + "wrapperName": { + "originalName": "ListRequest", + "camelCase": { + "unsafeName": "listRequest", + "safeName": "listRequest" + }, + "snakeCase": { + "unsafeName": "list_request", + "safeName": "list_request" + }, + "screamingSnakeCase": { + "unsafeName": "LIST_REQUEST", + "safeName": "LIST_REQUEST" + }, + "pascalCase": { + "unsafeName": "ListRequest", + "safeName": "ListRequest" + } + }, + "bodyKey": { + "originalName": "body", + "camelCase": { + "unsafeName": "body", + "safeName": "body" + }, + "snakeCase": { + "unsafeName": "body", + "safeName": "body" + }, + "screamingSnakeCase": { + "unsafeName": "BODY", + "safeName": "BODY" + }, + "pascalCase": { + "unsafeName": "Body", + "safeName": "Body" + } + } + }, + "requestParameterName": { + "originalName": "request", + "camelCase": { + "unsafeName": "request", + "safeName": "request" + }, + "snakeCase": { + "unsafeName": "request", + "safeName": "request" + }, + "screamingSnakeCase": { + "unsafeName": "REQUEST", + "safeName": "REQUEST" + }, + "pascalCase": { + "unsafeName": "Request", + "safeName": "Request" + } + }, + "streamParameter": null + }, + "response": { + "body": { + "type": "json", + "value": { + "type": "response", + "responseBodyType": { + "_type": "named", + "name": { + "originalName": "ListResponse", + "camelCase": { + "unsafeName": "listResponse", + "safeName": "listResponse" + }, + "snakeCase": { + "unsafeName": "list_response", + "safeName": "list_response" + }, + "screamingSnakeCase": { + "unsafeName": "LIST_RESPONSE", + "safeName": "LIST_RESPONSE" + }, + "pascalCase": { + "unsafeName": "ListResponse", + "safeName": "ListResponse" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:ListResponse", + "default": null, + "inline": null + }, + "docs": "OK" + } + }, + "status-code": null + }, + "errors": [], + "userSpecifiedExamples": [ + { + "example": { + "id": "9543af1bddccf29c8614c606158a275ab88f7a7cbecf8a71dfc4177c3fbbc388", + "name": null, + "url": "/data/list", + "rootPathParameters": [], + "endpointPathParameters": [], + "servicePathParameters": [], + "endpointHeaders": [], + "serviceHeaders": [], + "queryParameters": [], + "request": null, + "response": { + "type": "ok", + "value": { + "type": "body", + "value": { + "shape": { + "type": "named", + "typeName": { + "typeId": "type_:ListResponse", + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "name": { + "originalName": "ListResponse", + "camelCase": { + "unsafeName": "listResponse", + "safeName": "listResponse" + }, + "snakeCase": { + "unsafeName": "list_response", + "safeName": "list_response" + }, + "screamingSnakeCase": { + "unsafeName": "LIST_RESPONSE", + "safeName": "LIST_RESPONSE" + }, + "pascalCase": { + "unsafeName": "ListResponse", + "safeName": "ListResponse" + } + } + }, + "shape": { + "type": "object", + "properties": [ + { + "name": { + "name": { + "originalName": "columns", + "camelCase": { + "unsafeName": "columns", + "safeName": "columns" + }, + "snakeCase": { + "unsafeName": "columns", + "safeName": "columns" + }, + "screamingSnakeCase": { + "unsafeName": "COLUMNS", + "safeName": "COLUMNS" + }, + "pascalCase": { + "unsafeName": "Columns", + "safeName": "Columns" + } + }, + "wireValue": "columns" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": { + "shape": { + "type": "container", + "container": { + "type": "list", + "list": [ + { + "shape": { + "type": "named", + "typeName": { + "typeId": "type_:ListElement", + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "name": { + "originalName": "ListElement", + "camelCase": { + "unsafeName": "listElement", + "safeName": "listElement" + }, + "snakeCase": { + "unsafeName": "list_element", + "safeName": "list_element" + }, + "screamingSnakeCase": { + "unsafeName": "LIST_ELEMENT", + "safeName": "LIST_ELEMENT" + }, + "pascalCase": { + "unsafeName": "ListElement", + "safeName": "ListElement" + } + } + }, + "shape": { + "type": "object", + "properties": [ + { + "name": { + "name": { + "originalName": "id", + "camelCase": { + "unsafeName": "id", + "safeName": "id" + }, + "snakeCase": { + "unsafeName": "id", + "safeName": "id" + }, + "screamingSnakeCase": { + "unsafeName": "ID", + "safeName": "ID" + }, + "pascalCase": { + "unsafeName": "ID", + "safeName": "ID" + } + }, + "wireValue": "id" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": { + "shape": { + "type": "primitive", + "primitive": { + "type": "string", + "string": { + "original": "id" + } + } + }, + "jsonExample": "id" + }, + "valueType": { + "_type": "primitive", + "primitive": { + "v1": "STRING", + "v2": { + "type": "string", + "default": null, + "validation": null + } + } + } + } + }, + "jsonExample": "id" + }, + "originalTypeDeclaration": { + "typeId": "type_:ListElement", + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "name": { + "originalName": "ListElement", + "camelCase": { + "unsafeName": "listElement", + "safeName": "listElement" + }, + "snakeCase": { + "unsafeName": "list_element", + "safeName": "list_element" + }, + "screamingSnakeCase": { + "unsafeName": "LIST_ELEMENT", + "safeName": "LIST_ELEMENT" + }, + "pascalCase": { + "unsafeName": "ListElement", + "safeName": "ListElement" + } + } + } + } + ] + } + }, + "jsonExample": { + "id": "id" + } + } + ], + "itemType": { + "_type": "named", + "name": { + "originalName": "ListElement", + "camelCase": { + "unsafeName": "listElement", + "safeName": "listElement" + }, + "snakeCase": { + "unsafeName": "list_element", + "safeName": "list_element" + }, + "screamingSnakeCase": { + "unsafeName": "LIST_ELEMENT", + "safeName": "LIST_ELEMENT" + }, + "pascalCase": { + "unsafeName": "ListElement", + "safeName": "ListElement" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:ListElement", + "default": null, + "inline": null + } + } + }, + "jsonExample": [ + { + "id": "id" + } + ] + }, + "valueType": { + "_type": "container", + "container": { + "_type": "list", + "list": { + "_type": "named", + "name": { + "originalName": "ListElement", + "camelCase": { + "unsafeName": "listElement", + "safeName": "listElement" + }, + "snakeCase": { + "unsafeName": "list_element", + "safeName": "list_element" + }, + "screamingSnakeCase": { + "unsafeName": "LIST_ELEMENT", + "safeName": "LIST_ELEMENT" + }, + "pascalCase": { + "unsafeName": "ListElement", + "safeName": "ListElement" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:ListElement", + "default": null, + "inline": null + } + } + } + } + }, + "jsonExample": [ + { + "id": "id" + } + ] + }, + "originalTypeDeclaration": { + "typeId": "type_:ListResponse", + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "name": { + "originalName": "ListResponse", + "camelCase": { + "unsafeName": "listResponse", + "safeName": "listResponse" + }, + "snakeCase": { + "unsafeName": "list_response", + "safeName": "list_response" + }, + "screamingSnakeCase": { + "unsafeName": "LIST_RESPONSE", + "safeName": "LIST_RESPONSE" + }, + "pascalCase": { + "unsafeName": "ListResponse", + "safeName": "ListResponse" + } + } + } + }, + { + "name": { + "name": { + "originalName": "pagination", + "camelCase": { + "unsafeName": "pagination", + "safeName": "pagination" + }, + "snakeCase": { + "unsafeName": "pagination", + "safeName": "pagination" + }, + "screamingSnakeCase": { + "unsafeName": "PAGINATION", + "safeName": "PAGINATION" + }, + "pascalCase": { + "unsafeName": "Pagination", + "safeName": "Pagination" + } + }, + "wireValue": "pagination" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": { + "shape": { + "type": "named", + "typeName": { + "typeId": "type_:Pagination", + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "name": { + "originalName": "Pagination", + "camelCase": { + "unsafeName": "pagination", + "safeName": "pagination" + }, + "snakeCase": { + "unsafeName": "pagination", + "safeName": "pagination" + }, + "screamingSnakeCase": { + "unsafeName": "PAGINATION", + "safeName": "PAGINATION" + }, + "pascalCase": { + "unsafeName": "Pagination", + "safeName": "Pagination" + } + } + }, + "shape": { + "type": "object", + "properties": [ + { + "name": { + "name": { + "originalName": "next", + "camelCase": { + "unsafeName": "next", + "safeName": "next" + }, + "snakeCase": { + "unsafeName": "next", + "safeName": "next" + }, + "screamingSnakeCase": { + "unsafeName": "NEXT", + "safeName": "NEXT" + }, + "pascalCase": { + "unsafeName": "Next", + "safeName": "Next" + } + }, + "wireValue": "next" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": { + "shape": { + "type": "primitive", + "primitive": { + "type": "string", + "string": { + "original": "next" + } + } + }, + "jsonExample": "next" + }, + "valueType": { + "_type": "primitive", + "primitive": { + "v1": "STRING", + "v2": { + "type": "string", + "default": null, + "validation": null + } + } + } + } + }, + "jsonExample": "next" + }, + "originalTypeDeclaration": { + "typeId": "type_:Pagination", + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "name": { + "originalName": "Pagination", + "camelCase": { + "unsafeName": "pagination", + "safeName": "pagination" + }, + "snakeCase": { + "unsafeName": "pagination", + "safeName": "pagination" + }, + "screamingSnakeCase": { + "unsafeName": "PAGINATION", + "safeName": "PAGINATION" + }, + "pascalCase": { + "unsafeName": "Pagination", + "safeName": "Pagination" + } + } + } + } + ] + } + }, + "jsonExample": { + "next": "next" + } + }, + "valueType": { + "_type": "named", + "name": { + "originalName": "Pagination", + "camelCase": { + "unsafeName": "pagination", + "safeName": "pagination" + }, + "snakeCase": { + "unsafeName": "pagination", + "safeName": "pagination" + }, + "screamingSnakeCase": { + "unsafeName": "PAGINATION", + "safeName": "PAGINATION" + }, + "pascalCase": { + "unsafeName": "Pagination", + "safeName": "Pagination" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:Pagination", + "default": null, + "inline": null + } + } + }, + "jsonExample": { + "next": "next" + } + }, + "originalTypeDeclaration": { + "typeId": "type_:ListResponse", + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "name": { + "originalName": "ListResponse", + "camelCase": { + "unsafeName": "listResponse", + "safeName": "listResponse" + }, + "snakeCase": { + "unsafeName": "list_response", + "safeName": "list_response" + }, + "screamingSnakeCase": { + "unsafeName": "LIST_RESPONSE", + "safeName": "LIST_RESPONSE" + }, + "pascalCase": { + "unsafeName": "ListResponse", + "safeName": "ListResponse" + } + } + } + }, + { + "name": { + "name": { + "originalName": "namespace", + "camelCase": { + "unsafeName": "namespace", + "safeName": "namespace" + }, + "snakeCase": { + "unsafeName": "namespace", + "safeName": "namespace" + }, + "screamingSnakeCase": { + "unsafeName": "NAMESPACE", + "safeName": "NAMESPACE" + }, + "pascalCase": { + "unsafeName": "Namespace", + "safeName": "Namespace" + } + }, + "wireValue": "namespace" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": { + "shape": { + "type": "primitive", + "primitive": { + "type": "string", + "string": { + "original": "namespace" + } + } + }, + "jsonExample": "namespace" + }, + "valueType": { + "_type": "primitive", + "primitive": { + "v1": "STRING", + "v2": { + "type": "string", + "default": null, + "validation": null + } + } + } + } + }, + "jsonExample": "namespace" + }, + "originalTypeDeclaration": { + "typeId": "type_:ListResponse", + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "name": { + "originalName": "ListResponse", + "camelCase": { + "unsafeName": "listResponse", + "safeName": "listResponse" + }, + "snakeCase": { + "unsafeName": "list_response", + "safeName": "list_response" + }, + "screamingSnakeCase": { + "unsafeName": "LIST_RESPONSE", + "safeName": "LIST_RESPONSE" + }, + "pascalCase": { + "unsafeName": "ListResponse", + "safeName": "ListResponse" + } + } + } + }, + { + "name": { + "name": { + "originalName": "usage", + "camelCase": { + "unsafeName": "usage", + "safeName": "usage" + }, + "snakeCase": { + "unsafeName": "usage", + "safeName": "usage" + }, + "screamingSnakeCase": { + "unsafeName": "USAGE", + "safeName": "USAGE" + }, + "pascalCase": { + "unsafeName": "Usage", + "safeName": "Usage" + } + }, + "wireValue": "usage" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": { + "shape": { + "type": "named", + "typeName": { + "typeId": "type_:Usage", + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "name": { + "originalName": "Usage", + "camelCase": { + "unsafeName": "usage", + "safeName": "usage" + }, + "snakeCase": { + "unsafeName": "usage", + "safeName": "usage" + }, + "screamingSnakeCase": { + "unsafeName": "USAGE", + "safeName": "USAGE" + }, + "pascalCase": { + "unsafeName": "Usage", + "safeName": "Usage" + } + } + }, + "shape": { + "type": "object", + "properties": [ + { + "name": { + "name": { + "originalName": "units", + "camelCase": { + "unsafeName": "units", + "safeName": "units" + }, + "snakeCase": { + "unsafeName": "units", + "safeName": "units" + }, + "screamingSnakeCase": { + "unsafeName": "UNITS", + "safeName": "UNITS" + }, + "pascalCase": { + "unsafeName": "Units", + "safeName": "Units" + } + }, + "wireValue": "units" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": { + "shape": { + "type": "primitive", + "primitive": { + "type": "uint", + "uint": 1 + } + }, + "jsonExample": 1 + }, + "valueType": { + "_type": "primitive", + "primitive": { + "v1": "UINT", + "v2": null + } + } + } + }, + "jsonExample": 1 + }, + "originalTypeDeclaration": { + "typeId": "type_:Usage", + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "name": { + "originalName": "Usage", + "camelCase": { + "unsafeName": "usage", + "safeName": "usage" + }, + "snakeCase": { + "unsafeName": "usage", + "safeName": "usage" + }, + "screamingSnakeCase": { + "unsafeName": "USAGE", + "safeName": "USAGE" + }, + "pascalCase": { + "unsafeName": "Usage", + "safeName": "Usage" + } + } + } + } + ] + } + }, + "jsonExample": { + "units": 1 + } + }, + "valueType": { + "_type": "named", + "name": { + "originalName": "Usage", + "camelCase": { + "unsafeName": "usage", + "safeName": "usage" + }, + "snakeCase": { + "unsafeName": "usage", + "safeName": "usage" + }, + "screamingSnakeCase": { + "unsafeName": "USAGE", + "safeName": "USAGE" + }, + "pascalCase": { + "unsafeName": "Usage", + "safeName": "Usage" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:Usage", + "default": null, + "inline": null + } + } + }, + "jsonExample": { + "units": 1 + } + }, + "originalTypeDeclaration": { + "typeId": "type_:ListResponse", + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "name": { + "originalName": "ListResponse", + "camelCase": { + "unsafeName": "listResponse", + "safeName": "listResponse" + }, + "snakeCase": { + "unsafeName": "list_response", + "safeName": "list_response" + }, + "screamingSnakeCase": { + "unsafeName": "LIST_RESPONSE", + "safeName": "LIST_RESPONSE" + }, + "pascalCase": { + "unsafeName": "ListResponse", + "safeName": "ListResponse" + } + } + } + } + ] + } + }, + "jsonExample": { + "columns": [ + { + "id": "id" + } + ], + "pagination": { + "next": "next" + }, + "namespace": "namespace", + "usage": { + "units": 1 + } + } + } + } + }, + "docs": null + }, + "codeSamples": null + } + ], + "autogeneratedExamples": [ + { + "example": { + "id": "0ce8544c4eb09be916024a6c197068c471074f03", + "url": "/data/list", + "name": null, + "endpointHeaders": [], + "endpointPathParameters": [], + "queryParameters": [], + "servicePathParameters": [], + "serviceHeaders": [], + "rootPathParameters": [], + "request": null, + "response": { + "type": "ok", + "value": { + "type": "body", + "value": { + "shape": { + "type": "named", + "shape": { + "type": "object", + "properties": [ + { + "name": { + "name": { + "originalName": "columns", + "camelCase": { + "unsafeName": "columns", + "safeName": "columns" + }, + "snakeCase": { + "unsafeName": "columns", + "safeName": "columns" + }, + "screamingSnakeCase": { + "unsafeName": "COLUMNS", + "safeName": "COLUMNS" + }, + "pascalCase": { + "unsafeName": "Columns", + "safeName": "Columns" + } + }, + "wireValue": "columns" + }, + "originalTypeDeclaration": { + "name": { + "originalName": "ListResponse", + "camelCase": { + "unsafeName": "listResponse", + "safeName": "listResponse" + }, + "snakeCase": { + "unsafeName": "list_response", + "safeName": "list_response" + }, + "screamingSnakeCase": { + "unsafeName": "LIST_RESPONSE", + "safeName": "LIST_RESPONSE" + }, + "pascalCase": { + "unsafeName": "ListResponse", + "safeName": "ListResponse" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:ListResponse" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": { + "shape": { + "type": "container", + "container": { + "type": "list", + "list": [ + { + "shape": { + "type": "named", + "shape": { + "type": "object", + "properties": [ + { + "name": { + "name": { + "originalName": "id", + "camelCase": { + "unsafeName": "id", + "safeName": "id" + }, + "snakeCase": { + "unsafeName": "id", + "safeName": "id" + }, + "screamingSnakeCase": { + "unsafeName": "ID", + "safeName": "ID" + }, + "pascalCase": { + "unsafeName": "ID", + "safeName": "ID" + } + }, + "wireValue": "id" + }, + "originalTypeDeclaration": { + "name": { + "originalName": "ListElement", + "camelCase": { + "unsafeName": "listElement", + "safeName": "listElement" + }, + "snakeCase": { + "unsafeName": "list_element", + "safeName": "list_element" + }, + "screamingSnakeCase": { + "unsafeName": "LIST_ELEMENT", + "safeName": "LIST_ELEMENT" + }, + "pascalCase": { + "unsafeName": "ListElement", + "safeName": "ListElement" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:ListElement" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": { + "shape": { + "type": "primitive", + "primitive": { + "type": "string", + "string": { + "original": "id" + } + } + }, + "jsonExample": "id" + }, + "valueType": { + "_type": "primitive", + "primitive": { + "v1": "STRING", + "v2": { + "type": "string", + "default": null, + "validation": null + } + } + } + } + }, + "jsonExample": "id" + } + } + ] + }, + "typeName": { + "name": { + "originalName": "ListElement", + "camelCase": { + "unsafeName": "listElement", + "safeName": "listElement" + }, + "snakeCase": { + "unsafeName": "list_element", + "safeName": "list_element" + }, + "screamingSnakeCase": { + "unsafeName": "LIST_ELEMENT", + "safeName": "LIST_ELEMENT" + }, + "pascalCase": { + "unsafeName": "ListElement", + "safeName": "ListElement" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:ListElement" + } + }, + "jsonExample": { + "id": "id" + } + }, + { + "shape": { + "type": "named", + "shape": { + "type": "object", + "properties": [ + { + "name": { + "name": { + "originalName": "id", + "camelCase": { + "unsafeName": "id", + "safeName": "id" + }, + "snakeCase": { + "unsafeName": "id", + "safeName": "id" + }, + "screamingSnakeCase": { + "unsafeName": "ID", + "safeName": "ID" + }, + "pascalCase": { + "unsafeName": "ID", + "safeName": "ID" + } + }, + "wireValue": "id" + }, + "originalTypeDeclaration": { + "name": { + "originalName": "ListElement", + "camelCase": { + "unsafeName": "listElement", + "safeName": "listElement" + }, + "snakeCase": { + "unsafeName": "list_element", + "safeName": "list_element" + }, + "screamingSnakeCase": { + "unsafeName": "LIST_ELEMENT", + "safeName": "LIST_ELEMENT" + }, + "pascalCase": { + "unsafeName": "ListElement", + "safeName": "ListElement" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:ListElement" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": { + "shape": { + "type": "primitive", + "primitive": { + "type": "string", + "string": { + "original": "id" + } + } + }, + "jsonExample": "id" + }, + "valueType": { + "_type": "primitive", + "primitive": { + "v1": "STRING", + "v2": { + "type": "string", + "default": null, + "validation": null + } + } + } + } + }, + "jsonExample": "id" + } + } + ] + }, + "typeName": { + "name": { + "originalName": "ListElement", + "camelCase": { + "unsafeName": "listElement", + "safeName": "listElement" + }, + "snakeCase": { + "unsafeName": "list_element", + "safeName": "list_element" + }, + "screamingSnakeCase": { + "unsafeName": "LIST_ELEMENT", + "safeName": "LIST_ELEMENT" + }, + "pascalCase": { + "unsafeName": "ListElement", + "safeName": "ListElement" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:ListElement" + } + }, + "jsonExample": { + "id": "id" + } + } + ], + "itemType": { + "_type": "named", + "name": { + "originalName": "ListElement", + "camelCase": { + "unsafeName": "listElement", + "safeName": "listElement" + }, + "snakeCase": { + "unsafeName": "list_element", + "safeName": "list_element" + }, + "screamingSnakeCase": { + "unsafeName": "LIST_ELEMENT", + "safeName": "LIST_ELEMENT" + }, + "pascalCase": { + "unsafeName": "ListElement", + "safeName": "ListElement" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:ListElement", + "default": null, + "inline": null + } + } + }, + "jsonExample": [ + { + "id": "id" + }, + { + "id": "id" + } + ] + }, + "valueType": { + "_type": "container", + "container": { + "_type": "list", + "list": { + "_type": "named", + "name": { + "originalName": "ListElement", + "camelCase": { + "unsafeName": "listElement", + "safeName": "listElement" + }, + "snakeCase": { + "unsafeName": "list_element", + "safeName": "list_element" + }, + "screamingSnakeCase": { + "unsafeName": "LIST_ELEMENT", + "safeName": "LIST_ELEMENT" + }, + "pascalCase": { + "unsafeName": "ListElement", + "safeName": "ListElement" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:ListElement", + "default": null, + "inline": null + } + } + } + } + }, + "jsonExample": [ + { + "id": "id" + }, + { + "id": "id" + } + ] + } + }, + { + "name": { + "name": { + "originalName": "pagination", + "camelCase": { + "unsafeName": "pagination", + "safeName": "pagination" + }, + "snakeCase": { + "unsafeName": "pagination", + "safeName": "pagination" + }, + "screamingSnakeCase": { + "unsafeName": "PAGINATION", + "safeName": "PAGINATION" + }, + "pascalCase": { + "unsafeName": "Pagination", + "safeName": "Pagination" + } + }, + "wireValue": "pagination" + }, + "originalTypeDeclaration": { + "name": { + "originalName": "ListResponse", + "camelCase": { + "unsafeName": "listResponse", + "safeName": "listResponse" + }, + "snakeCase": { + "unsafeName": "list_response", + "safeName": "list_response" + }, + "screamingSnakeCase": { + "unsafeName": "LIST_RESPONSE", + "safeName": "LIST_RESPONSE" + }, + "pascalCase": { + "unsafeName": "ListResponse", + "safeName": "ListResponse" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:ListResponse" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": { + "shape": { + "type": "named", + "shape": { + "type": "object", + "properties": [ + { + "name": { + "name": { + "originalName": "next", + "camelCase": { + "unsafeName": "next", + "safeName": "next" + }, + "snakeCase": { + "unsafeName": "next", + "safeName": "next" + }, + "screamingSnakeCase": { + "unsafeName": "NEXT", + "safeName": "NEXT" + }, + "pascalCase": { + "unsafeName": "Next", + "safeName": "Next" + } + }, + "wireValue": "next" + }, + "originalTypeDeclaration": { + "name": { + "originalName": "Pagination", + "camelCase": { + "unsafeName": "pagination", + "safeName": "pagination" + }, + "snakeCase": { + "unsafeName": "pagination", + "safeName": "pagination" + }, + "screamingSnakeCase": { + "unsafeName": "PAGINATION", + "safeName": "PAGINATION" + }, + "pascalCase": { + "unsafeName": "Pagination", + "safeName": "Pagination" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:Pagination" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": { + "shape": { + "type": "primitive", + "primitive": { + "type": "string", + "string": { + "original": "next" + } + } + }, + "jsonExample": "next" + }, + "valueType": { + "_type": "primitive", + "primitive": { + "v1": "STRING", + "v2": { + "type": "string", + "default": null, + "validation": null + } + } + } + } + }, + "jsonExample": "next" + } + } + ] + }, + "typeName": { + "name": { + "originalName": "Pagination", + "camelCase": { + "unsafeName": "pagination", + "safeName": "pagination" + }, + "snakeCase": { + "unsafeName": "pagination", + "safeName": "pagination" + }, + "screamingSnakeCase": { + "unsafeName": "PAGINATION", + "safeName": "PAGINATION" + }, + "pascalCase": { + "unsafeName": "Pagination", + "safeName": "Pagination" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:Pagination" + } + }, + "jsonExample": { + "next": "next" + } + }, + "valueType": { + "_type": "named", + "name": { + "originalName": "Pagination", + "camelCase": { + "unsafeName": "pagination", + "safeName": "pagination" + }, + "snakeCase": { + "unsafeName": "pagination", + "safeName": "pagination" + }, + "screamingSnakeCase": { + "unsafeName": "PAGINATION", + "safeName": "PAGINATION" + }, + "pascalCase": { + "unsafeName": "Pagination", + "safeName": "Pagination" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:Pagination", + "default": null, + "inline": null + } + } + }, + "jsonExample": { + "next": "next" + } + } + }, + { + "name": { + "name": { + "originalName": "namespace", + "camelCase": { + "unsafeName": "namespace", + "safeName": "namespace" + }, + "snakeCase": { + "unsafeName": "namespace", + "safeName": "namespace" + }, + "screamingSnakeCase": { + "unsafeName": "NAMESPACE", + "safeName": "NAMESPACE" + }, + "pascalCase": { + "unsafeName": "Namespace", + "safeName": "Namespace" + } + }, + "wireValue": "namespace" + }, + "originalTypeDeclaration": { + "name": { + "originalName": "ListResponse", + "camelCase": { + "unsafeName": "listResponse", + "safeName": "listResponse" + }, + "snakeCase": { + "unsafeName": "list_response", + "safeName": "list_response" + }, + "screamingSnakeCase": { + "unsafeName": "LIST_RESPONSE", + "safeName": "LIST_RESPONSE" + }, + "pascalCase": { + "unsafeName": "ListResponse", + "safeName": "ListResponse" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:ListResponse" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": { + "shape": { + "type": "primitive", + "primitive": { + "type": "string", + "string": { + "original": "namespace" + } + } + }, + "jsonExample": "namespace" + }, + "valueType": { + "_type": "primitive", + "primitive": { + "v1": "STRING", + "v2": { + "type": "string", + "default": null, + "validation": null + } + } + } + } + }, + "jsonExample": "namespace" + } + }, + { + "name": { + "name": { + "originalName": "usage", + "camelCase": { + "unsafeName": "usage", + "safeName": "usage" + }, + "snakeCase": { + "unsafeName": "usage", + "safeName": "usage" + }, + "screamingSnakeCase": { + "unsafeName": "USAGE", + "safeName": "USAGE" + }, + "pascalCase": { + "unsafeName": "Usage", + "safeName": "Usage" + } + }, + "wireValue": "usage" + }, + "originalTypeDeclaration": { + "name": { + "originalName": "ListResponse", + "camelCase": { + "unsafeName": "listResponse", + "safeName": "listResponse" + }, + "snakeCase": { + "unsafeName": "list_response", + "safeName": "list_response" + }, + "screamingSnakeCase": { + "unsafeName": "LIST_RESPONSE", + "safeName": "LIST_RESPONSE" + }, + "pascalCase": { + "unsafeName": "ListResponse", + "safeName": "ListResponse" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:ListResponse" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": { + "shape": { + "type": "named", + "shape": { + "type": "object", + "properties": [ + { + "name": { + "name": { + "originalName": "units", + "camelCase": { + "unsafeName": "units", + "safeName": "units" + }, + "snakeCase": { + "unsafeName": "units", + "safeName": "units" + }, + "screamingSnakeCase": { + "unsafeName": "UNITS", + "safeName": "UNITS" + }, + "pascalCase": { + "unsafeName": "Units", + "safeName": "Units" + } + }, + "wireValue": "units" + }, + "originalTypeDeclaration": { + "name": { + "originalName": "Usage", + "camelCase": { + "unsafeName": "usage", + "safeName": "usage" + }, + "snakeCase": { + "unsafeName": "usage", + "safeName": "usage" + }, + "screamingSnakeCase": { + "unsafeName": "USAGE", + "safeName": "USAGE" + }, + "pascalCase": { + "unsafeName": "Usage", + "safeName": "Usage" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:Usage" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": { + "shape": { + "type": "primitive", + "primitive": { + "type": "uint", + "uint": 1 + } + }, + "jsonExample": 1 + }, + "valueType": { + "_type": "primitive", + "primitive": { + "v1": "UINT", + "v2": null + } + } + } + }, + "jsonExample": 1 + } + } + ] + }, + "typeName": { + "name": { + "originalName": "Usage", + "camelCase": { + "unsafeName": "usage", + "safeName": "usage" + }, + "snakeCase": { + "unsafeName": "usage", + "safeName": "usage" + }, + "screamingSnakeCase": { + "unsafeName": "USAGE", + "safeName": "USAGE" + }, + "pascalCase": { + "unsafeName": "Usage", + "safeName": "Usage" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:Usage" + } + }, + "jsonExample": { + "units": 1 + } + }, + "valueType": { + "_type": "named", + "name": { + "originalName": "Usage", + "camelCase": { + "unsafeName": "usage", + "safeName": "usage" + }, + "snakeCase": { + "unsafeName": "usage", + "safeName": "usage" + }, + "screamingSnakeCase": { + "unsafeName": "USAGE", + "safeName": "USAGE" + }, + "pascalCase": { + "unsafeName": "Usage", + "safeName": "Usage" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:Usage", + "default": null, + "inline": null + } + } + }, + "jsonExample": { + "units": 1 + } + } + } + ] + }, + "typeName": { + "name": { + "originalName": "ListResponse", + "camelCase": { + "unsafeName": "listResponse", + "safeName": "listResponse" + }, + "snakeCase": { + "unsafeName": "list_response", + "safeName": "list_response" + }, + "screamingSnakeCase": { + "unsafeName": "LIST_RESPONSE", + "safeName": "LIST_RESPONSE" + }, + "pascalCase": { + "unsafeName": "ListResponse", + "safeName": "ListResponse" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:ListResponse" + } + }, + "jsonExample": { + "columns": [ + { + "id": "id" + }, + { + "id": "id" + } + ], + "pagination": { + "next": "next" + }, + "namespace": "namespace", + "usage": { + "units": 1 + } + } + } + } + }, + "docs": null + } + } + ], + "pagination": null, + "transport": null, + "availability": null, + "docs": null + }, + { + "id": "endpoint_dataservice.query", + "name": { + "originalName": "query", + "camelCase": { + "unsafeName": "query", + "safeName": "query" + }, + "snakeCase": { + "unsafeName": "query", + "safeName": "query" + }, + "screamingSnakeCase": { + "unsafeName": "QUERY", + "safeName": "QUERY" + }, + "pascalCase": { + "unsafeName": "Query", + "safeName": "Query" + } + }, + "displayName": null, + "auth": false, + "idempotent": false, + "baseUrl": null, + "method": "POST", + "basePath": null, + "path": { + "head": "/data/query", + "parts": [] + }, + "fullPath": { + "head": "data/query", + "parts": [] + }, + "pathParameters": [], + "allPathParameters": [], + "queryParameters": [], + "headers": [], + "requestBody": { + "type": "inlinedRequestBody", + "name": { + "originalName": "QueryRequest", + "camelCase": { + "unsafeName": "queryRequest", + "safeName": "queryRequest" + }, + "snakeCase": { + "unsafeName": "query_request", + "safeName": "query_request" + }, + "screamingSnakeCase": { + "unsafeName": "QUERY_REQUEST", + "safeName": "QUERY_REQUEST" + }, + "pascalCase": { + "unsafeName": "QueryRequest", + "safeName": "QueryRequest" + } + }, + "extends": [], + "contentType": "application/json", + "properties": [ + { + "name": { + "name": { + "originalName": "namespace", + "camelCase": { + "unsafeName": "namespace", + "safeName": "namespace" + }, + "snakeCase": { + "unsafeName": "namespace", + "safeName": "namespace" + }, + "screamingSnakeCase": { + "unsafeName": "NAMESPACE", + "safeName": "NAMESPACE" + }, + "pascalCase": { + "unsafeName": "Namespace", + "safeName": "Namespace" + } + }, + "wireValue": "namespace" + }, + "valueType": { + "_type": "container", + "container": { + "_type": "optional", + "optional": { + "_type": "primitive", + "primitive": { + "v1": "STRING", + "v2": { + "type": "string", + "default": null, + "validation": null + } + } + } + } + }, + "availability": null, + "docs": null + }, + { + "name": { + "name": { + "originalName": "topK", + "camelCase": { + "unsafeName": "topK", + "safeName": "topK" + }, + "snakeCase": { + "unsafeName": "top_k", + "safeName": "top_k" + }, + "screamingSnakeCase": { + "unsafeName": "TOP_K", + "safeName": "TOP_K" + }, + "pascalCase": { + "unsafeName": "TopK", + "safeName": "TopK" + } + }, + "wireValue": "topK" + }, + "valueType": { + "_type": "primitive", + "primitive": { + "v1": "UINT", + "v2": null + } + }, + "availability": null, + "docs": null + }, + { + "name": { + "name": { + "originalName": "filter", + "camelCase": { + "unsafeName": "filter", + "safeName": "filter" + }, + "snakeCase": { + "unsafeName": "filter", + "safeName": "filter" + }, + "screamingSnakeCase": { + "unsafeName": "FILTER", + "safeName": "FILTER" + }, + "pascalCase": { + "unsafeName": "Filter", + "safeName": "Filter" + } + }, + "wireValue": "filter" + }, + "valueType": { + "_type": "container", + "container": { + "_type": "optional", + "optional": { + "_type": "named", + "name": { + "originalName": "Metadata", + "camelCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "snakeCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "screamingSnakeCase": { + "unsafeName": "METADATA", + "safeName": "METADATA" + }, + "pascalCase": { + "unsafeName": "Metadata", + "safeName": "Metadata" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:Metadata", + "default": null, + "inline": null + } + } + }, + "availability": null, + "docs": null + }, + { + "name": { + "name": { + "originalName": "includeValues", + "camelCase": { + "unsafeName": "includeValues", + "safeName": "includeValues" + }, + "snakeCase": { + "unsafeName": "include_values", + "safeName": "include_values" + }, + "screamingSnakeCase": { + "unsafeName": "INCLUDE_VALUES", + "safeName": "INCLUDE_VALUES" + }, + "pascalCase": { + "unsafeName": "IncludeValues", + "safeName": "IncludeValues" + } + }, + "wireValue": "includeValues" + }, + "valueType": { + "_type": "container", + "container": { + "_type": "optional", + "optional": { + "_type": "primitive", + "primitive": { + "v1": "BOOLEAN", + "v2": null + } + } + } + }, + "availability": null, + "docs": null + }, + { + "name": { + "name": { + "originalName": "includeMetadata", + "camelCase": { + "unsafeName": "includeMetadata", + "safeName": "includeMetadata" + }, + "snakeCase": { + "unsafeName": "include_metadata", + "safeName": "include_metadata" + }, + "screamingSnakeCase": { + "unsafeName": "INCLUDE_METADATA", + "safeName": "INCLUDE_METADATA" + }, + "pascalCase": { + "unsafeName": "IncludeMetadata", + "safeName": "IncludeMetadata" + } + }, + "wireValue": "includeMetadata" + }, + "valueType": { + "_type": "container", + "container": { + "_type": "optional", + "optional": { + "_type": "primitive", + "primitive": { + "v1": "BOOLEAN", + "v2": null + } + } + } + }, + "availability": null, + "docs": null + }, + { + "name": { + "name": { + "originalName": "queries", + "camelCase": { + "unsafeName": "queries", + "safeName": "queries" + }, + "snakeCase": { + "unsafeName": "queries", + "safeName": "queries" + }, + "screamingSnakeCase": { + "unsafeName": "QUERIES", + "safeName": "QUERIES" + }, + "pascalCase": { + "unsafeName": "Queries", + "safeName": "Queries" + } + }, + "wireValue": "queries" + }, + "valueType": { + "_type": "container", + "container": { + "_type": "optional", + "optional": { + "_type": "container", + "container": { + "_type": "list", + "list": { + "_type": "named", + "name": { + "originalName": "QueryColumn", + "camelCase": { + "unsafeName": "queryColumn", + "safeName": "queryColumn" + }, + "snakeCase": { + "unsafeName": "query_column", + "safeName": "query_column" + }, + "screamingSnakeCase": { + "unsafeName": "QUERY_COLUMN", + "safeName": "QUERY_COLUMN" + }, + "pascalCase": { + "unsafeName": "QueryColumn", + "safeName": "QueryColumn" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:QueryColumn", + "default": null, + "inline": null + } + } + } + } + }, + "availability": null, + "docs": null + }, + { + "name": { + "name": { + "originalName": "column", + "camelCase": { + "unsafeName": "column", + "safeName": "column" + }, + "snakeCase": { + "unsafeName": "column", + "safeName": "column" + }, + "screamingSnakeCase": { + "unsafeName": "COLUMN", + "safeName": "COLUMN" + }, + "pascalCase": { + "unsafeName": "Column", + "safeName": "Column" + } + }, + "wireValue": "column" + }, + "valueType": { + "_type": "container", + "container": { + "_type": "optional", + "optional": { + "_type": "container", + "container": { + "_type": "list", + "list": { + "_type": "primitive", + "primitive": { + "v1": "FLOAT", + "v2": null + } + } + } + } + } + }, + "availability": null, + "docs": null + }, + { + "name": { + "name": { + "originalName": "id", + "camelCase": { + "unsafeName": "id", + "safeName": "id" + }, + "snakeCase": { + "unsafeName": "id", + "safeName": "id" + }, + "screamingSnakeCase": { + "unsafeName": "ID", + "safeName": "ID" + }, + "pascalCase": { + "unsafeName": "ID", + "safeName": "ID" + } + }, + "wireValue": "id" + }, + "valueType": { + "_type": "container", + "container": { + "_type": "optional", + "optional": { + "_type": "primitive", + "primitive": { + "v1": "STRING", + "v2": { + "type": "string", + "default": null, + "validation": null + } + } + } + } + }, + "availability": null, + "docs": null + }, + { + "name": { + "name": { + "originalName": "indexedData", + "camelCase": { + "unsafeName": "indexedData", + "safeName": "indexedData" + }, + "snakeCase": { + "unsafeName": "indexed_data", + "safeName": "indexed_data" + }, + "screamingSnakeCase": { + "unsafeName": "INDEXED_DATA", + "safeName": "INDEXED_DATA" + }, + "pascalCase": { + "unsafeName": "IndexedData", + "safeName": "IndexedData" + } + }, + "wireValue": "indexedData" + }, + "valueType": { + "_type": "container", + "container": { + "_type": "optional", + "optional": { + "_type": "named", + "name": { + "originalName": "IndexedData", + "camelCase": { + "unsafeName": "indexedData", + "safeName": "indexedData" + }, + "snakeCase": { + "unsafeName": "indexed_data", + "safeName": "indexed_data" + }, + "screamingSnakeCase": { + "unsafeName": "INDEXED_DATA", + "safeName": "INDEXED_DATA" + }, + "pascalCase": { + "unsafeName": "IndexedData", + "safeName": "IndexedData" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:IndexedData", + "default": null, + "inline": null + } + } + }, + "availability": null, + "docs": null + } + ], + "extra-properties": false, + "extendedProperties": [], + "docs": null + }, + "sdkRequest": { + "shape": { + "type": "wrapper", + "wrapperName": { + "originalName": "QueryRequest", + "camelCase": { + "unsafeName": "queryRequest", + "safeName": "queryRequest" + }, + "snakeCase": { + "unsafeName": "query_request", + "safeName": "query_request" + }, + "screamingSnakeCase": { + "unsafeName": "QUERY_REQUEST", + "safeName": "QUERY_REQUEST" + }, + "pascalCase": { + "unsafeName": "QueryRequest", + "safeName": "QueryRequest" + } + }, + "bodyKey": { + "originalName": "body", + "camelCase": { + "unsafeName": "body", + "safeName": "body" + }, + "snakeCase": { + "unsafeName": "body", + "safeName": "body" + }, + "screamingSnakeCase": { + "unsafeName": "BODY", + "safeName": "BODY" + }, + "pascalCase": { + "unsafeName": "Body", + "safeName": "Body" + } + } + }, + "requestParameterName": { + "originalName": "request", + "camelCase": { + "unsafeName": "request", + "safeName": "request" + }, + "snakeCase": { + "unsafeName": "request", + "safeName": "request" + }, + "screamingSnakeCase": { + "unsafeName": "REQUEST", + "safeName": "REQUEST" + }, + "pascalCase": { + "unsafeName": "Request", + "safeName": "Request" + } + }, + "streamParameter": null + }, + "response": { + "body": { + "type": "json", + "value": { + "type": "response", + "responseBodyType": { + "_type": "named", + "name": { + "originalName": "QueryResponse", + "camelCase": { + "unsafeName": "queryResponse", + "safeName": "queryResponse" + }, + "snakeCase": { + "unsafeName": "query_response", + "safeName": "query_response" + }, + "screamingSnakeCase": { + "unsafeName": "QUERY_RESPONSE", + "safeName": "QUERY_RESPONSE" + }, + "pascalCase": { + "unsafeName": "QueryResponse", + "safeName": "QueryResponse" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:QueryResponse", + "default": null, + "inline": null + }, + "docs": "OK" + } + }, + "status-code": null + }, + "errors": [], + "userSpecifiedExamples": [ + { + "example": { + "id": "f77373ecb6330a27ee2400df3faa815d5e9e5e202b2b3155cf86e1082c1a0416", + "name": null, + "url": "/data/query", + "rootPathParameters": [], + "endpointPathParameters": [], + "servicePathParameters": [], + "endpointHeaders": [], + "serviceHeaders": [], + "queryParameters": [], + "request": { + "type": "inlinedRequestBody", + "properties": [ + { + "name": { + "name": { + "originalName": "topK", + "camelCase": { + "unsafeName": "topK", + "safeName": "topK" + }, + "snakeCase": { + "unsafeName": "top_k", + "safeName": "top_k" + }, + "screamingSnakeCase": { + "unsafeName": "TOP_K", + "safeName": "TOP_K" + }, + "pascalCase": { + "unsafeName": "TopK", + "safeName": "TopK" + } + }, + "wireValue": "topK" + }, + "value": { + "shape": { + "type": "primitive", + "primitive": { + "type": "uint", + "uint": 1 + } + }, + "jsonExample": 1 + }, + "originalTypeDeclaration": null + } + ], + "jsonExample": { + "topK": 1 + } + }, + "response": { + "type": "ok", + "value": { + "type": "body", + "value": { + "shape": { + "type": "named", + "typeName": { + "typeId": "type_:QueryResponse", + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "name": { + "originalName": "QueryResponse", + "camelCase": { + "unsafeName": "queryResponse", + "safeName": "queryResponse" + }, + "snakeCase": { + "unsafeName": "query_response", + "safeName": "query_response" + }, + "screamingSnakeCase": { + "unsafeName": "QUERY_RESPONSE", + "safeName": "QUERY_RESPONSE" + }, + "pascalCase": { + "unsafeName": "QueryResponse", + "safeName": "QueryResponse" + } + } + }, + "shape": { + "type": "object", + "properties": [ + { + "name": { + "name": { + "originalName": "results", + "camelCase": { + "unsafeName": "results", + "safeName": "results" + }, + "snakeCase": { + "unsafeName": "results", + "safeName": "results" + }, + "screamingSnakeCase": { + "unsafeName": "RESULTS", + "safeName": "RESULTS" + }, + "pascalCase": { + "unsafeName": "Results", + "safeName": "Results" + } + }, + "wireValue": "results" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": { + "shape": { + "type": "container", + "container": { + "type": "list", + "list": [ + { + "shape": { + "type": "named", + "typeName": { + "typeId": "type_:QueryResult", + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "name": { + "originalName": "QueryResult", + "camelCase": { + "unsafeName": "queryResult", + "safeName": "queryResult" + }, + "snakeCase": { + "unsafeName": "query_result", + "safeName": "query_result" + }, + "screamingSnakeCase": { + "unsafeName": "QUERY_RESULT", + "safeName": "QUERY_RESULT" + }, + "pascalCase": { + "unsafeName": "QueryResult", + "safeName": "QueryResult" + } + } + }, + "shape": { + "type": "object", + "properties": [ + { + "name": { + "name": { + "originalName": "matches", + "camelCase": { + "unsafeName": "matches", + "safeName": "matches" + }, + "snakeCase": { + "unsafeName": "matches", + "safeName": "matches" + }, + "screamingSnakeCase": { + "unsafeName": "MATCHES", + "safeName": "MATCHES" + }, + "pascalCase": { + "unsafeName": "Matches", + "safeName": "Matches" + } + }, + "wireValue": "matches" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": { + "shape": { + "type": "container", + "container": { + "type": "list", + "list": [ + { + "shape": { + "type": "named", + "typeName": { + "typeId": "type_:ScoredColumn", + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "name": { + "originalName": "ScoredColumn", + "camelCase": { + "unsafeName": "scoredColumn", + "safeName": "scoredColumn" + }, + "snakeCase": { + "unsafeName": "scored_column", + "safeName": "scored_column" + }, + "screamingSnakeCase": { + "unsafeName": "SCORED_COLUMN", + "safeName": "SCORED_COLUMN" + }, + "pascalCase": { + "unsafeName": "ScoredColumn", + "safeName": "ScoredColumn" + } + } + }, + "shape": { + "type": "object", + "properties": [ + { + "name": { + "name": { + "originalName": "id", + "camelCase": { + "unsafeName": "id", + "safeName": "id" + }, + "snakeCase": { + "unsafeName": "id", + "safeName": "id" + }, + "screamingSnakeCase": { + "unsafeName": "ID", + "safeName": "ID" + }, + "pascalCase": { + "unsafeName": "ID", + "safeName": "ID" + } + }, + "wireValue": "id" + }, + "value": { + "shape": { + "type": "primitive", + "primitive": { + "type": "string", + "string": { + "original": "id" + } + } + }, + "jsonExample": "id" + }, + "originalTypeDeclaration": { + "typeId": "type_:ScoredColumn", + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "name": { + "originalName": "ScoredColumn", + "camelCase": { + "unsafeName": "scoredColumn", + "safeName": "scoredColumn" + }, + "snakeCase": { + "unsafeName": "scored_column", + "safeName": "scored_column" + }, + "screamingSnakeCase": { + "unsafeName": "SCORED_COLUMN", + "safeName": "SCORED_COLUMN" + }, + "pascalCase": { + "unsafeName": "ScoredColumn", + "safeName": "ScoredColumn" + } + } + } + } + ] + } + }, + "jsonExample": { + "id": "id" + } + } + ], + "itemType": { + "_type": "named", + "name": { + "originalName": "ScoredColumn", + "camelCase": { + "unsafeName": "scoredColumn", + "safeName": "scoredColumn" + }, + "snakeCase": { + "unsafeName": "scored_column", + "safeName": "scored_column" + }, + "screamingSnakeCase": { + "unsafeName": "SCORED_COLUMN", + "safeName": "SCORED_COLUMN" + }, + "pascalCase": { + "unsafeName": "ScoredColumn", + "safeName": "ScoredColumn" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:ScoredColumn", + "default": null, + "inline": null + } + } + }, + "jsonExample": [ + { + "id": "id" + } + ] + }, + "valueType": { + "_type": "container", + "container": { + "_type": "list", + "list": { + "_type": "named", + "name": { + "originalName": "ScoredColumn", + "camelCase": { + "unsafeName": "scoredColumn", + "safeName": "scoredColumn" + }, + "snakeCase": { + "unsafeName": "scored_column", + "safeName": "scored_column" + }, + "screamingSnakeCase": { + "unsafeName": "SCORED_COLUMN", + "safeName": "SCORED_COLUMN" + }, + "pascalCase": { + "unsafeName": "ScoredColumn", + "safeName": "ScoredColumn" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:ScoredColumn", + "default": null, + "inline": null + } + } + } + } + }, + "jsonExample": [ + { + "id": "id" + } + ] + }, + "originalTypeDeclaration": { + "typeId": "type_:QueryResult", + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "name": { + "originalName": "QueryResult", + "camelCase": { + "unsafeName": "queryResult", + "safeName": "queryResult" + }, + "snakeCase": { + "unsafeName": "query_result", + "safeName": "query_result" + }, + "screamingSnakeCase": { + "unsafeName": "QUERY_RESULT", + "safeName": "QUERY_RESULT" + }, + "pascalCase": { + "unsafeName": "QueryResult", + "safeName": "QueryResult" + } + } + } + }, + { + "name": { + "name": { + "originalName": "namespace", + "camelCase": { + "unsafeName": "namespace", + "safeName": "namespace" + }, + "snakeCase": { + "unsafeName": "namespace", + "safeName": "namespace" + }, + "screamingSnakeCase": { + "unsafeName": "NAMESPACE", + "safeName": "NAMESPACE" + }, + "pascalCase": { + "unsafeName": "Namespace", + "safeName": "Namespace" + } + }, + "wireValue": "namespace" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": { + "shape": { + "type": "primitive", + "primitive": { + "type": "string", + "string": { + "original": "namespace" + } + } + }, + "jsonExample": "namespace" + }, + "valueType": { + "_type": "primitive", + "primitive": { + "v1": "STRING", + "v2": { + "type": "string", + "default": null, + "validation": null + } + } + } + } + }, + "jsonExample": "namespace" + }, + "originalTypeDeclaration": { + "typeId": "type_:QueryResult", + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "name": { + "originalName": "QueryResult", + "camelCase": { + "unsafeName": "queryResult", + "safeName": "queryResult" + }, + "snakeCase": { + "unsafeName": "query_result", + "safeName": "query_result" + }, + "screamingSnakeCase": { + "unsafeName": "QUERY_RESULT", + "safeName": "QUERY_RESULT" + }, + "pascalCase": { + "unsafeName": "QueryResult", + "safeName": "QueryResult" + } + } + } + } + ] + } + }, + "jsonExample": { + "matches": [ + { + "id": "id" + } + ], + "namespace": "namespace" + } + } + ], + "itemType": { + "_type": "named", + "name": { + "originalName": "QueryResult", + "camelCase": { + "unsafeName": "queryResult", + "safeName": "queryResult" + }, + "snakeCase": { + "unsafeName": "query_result", + "safeName": "query_result" + }, + "screamingSnakeCase": { + "unsafeName": "QUERY_RESULT", + "safeName": "QUERY_RESULT" + }, + "pascalCase": { + "unsafeName": "QueryResult", + "safeName": "QueryResult" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:QueryResult", + "default": null, + "inline": null + } + } + }, + "jsonExample": [ + { + "matches": [ + { + "id": "id" + } + ], + "namespace": "namespace" + } + ] + }, + "valueType": { + "_type": "container", + "container": { + "_type": "list", + "list": { + "_type": "named", + "name": { + "originalName": "QueryResult", + "camelCase": { + "unsafeName": "queryResult", + "safeName": "queryResult" + }, + "snakeCase": { + "unsafeName": "query_result", + "safeName": "query_result" + }, + "screamingSnakeCase": { + "unsafeName": "QUERY_RESULT", + "safeName": "QUERY_RESULT" + }, + "pascalCase": { + "unsafeName": "QueryResult", + "safeName": "QueryResult" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:QueryResult", + "default": null, + "inline": null + } + } + } + } + }, + "jsonExample": [ + { + "matches": [ + { + "id": "id" + } + ], + "namespace": "namespace" + } + ] + }, + "originalTypeDeclaration": { + "typeId": "type_:QueryResponse", + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "name": { + "originalName": "QueryResponse", + "camelCase": { + "unsafeName": "queryResponse", + "safeName": "queryResponse" + }, + "snakeCase": { + "unsafeName": "query_response", + "safeName": "query_response" + }, + "screamingSnakeCase": { + "unsafeName": "QUERY_RESPONSE", + "safeName": "QUERY_RESPONSE" + }, + "pascalCase": { + "unsafeName": "QueryResponse", + "safeName": "QueryResponse" + } + } + } + }, + { + "name": { + "name": { + "originalName": "matches", + "camelCase": { + "unsafeName": "matches", + "safeName": "matches" + }, + "snakeCase": { + "unsafeName": "matches", + "safeName": "matches" + }, + "screamingSnakeCase": { + "unsafeName": "MATCHES", + "safeName": "MATCHES" + }, + "pascalCase": { + "unsafeName": "Matches", + "safeName": "Matches" + } + }, + "wireValue": "matches" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": { + "shape": { + "type": "container", + "container": { + "type": "list", + "list": [ + { + "shape": { + "type": "named", + "typeName": { + "typeId": "type_:ScoredColumn", + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "name": { + "originalName": "ScoredColumn", + "camelCase": { + "unsafeName": "scoredColumn", + "safeName": "scoredColumn" + }, + "snakeCase": { + "unsafeName": "scored_column", + "safeName": "scored_column" + }, + "screamingSnakeCase": { + "unsafeName": "SCORED_COLUMN", + "safeName": "SCORED_COLUMN" + }, + "pascalCase": { + "unsafeName": "ScoredColumn", + "safeName": "ScoredColumn" + } + } + }, + "shape": { + "type": "object", + "properties": [ + { + "name": { + "name": { + "originalName": "id", + "camelCase": { + "unsafeName": "id", + "safeName": "id" + }, + "snakeCase": { + "unsafeName": "id", + "safeName": "id" + }, + "screamingSnakeCase": { + "unsafeName": "ID", + "safeName": "ID" + }, + "pascalCase": { + "unsafeName": "ID", + "safeName": "ID" + } + }, + "wireValue": "id" + }, + "value": { + "shape": { + "type": "primitive", + "primitive": { + "type": "string", + "string": { + "original": "id" + } + } + }, + "jsonExample": "id" + }, + "originalTypeDeclaration": { + "typeId": "type_:ScoredColumn", + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "name": { + "originalName": "ScoredColumn", + "camelCase": { + "unsafeName": "scoredColumn", + "safeName": "scoredColumn" + }, + "snakeCase": { + "unsafeName": "scored_column", + "safeName": "scored_column" + }, + "screamingSnakeCase": { + "unsafeName": "SCORED_COLUMN", + "safeName": "SCORED_COLUMN" + }, + "pascalCase": { + "unsafeName": "ScoredColumn", + "safeName": "ScoredColumn" + } + } + } + }, + { + "name": { + "name": { + "originalName": "score", + "camelCase": { + "unsafeName": "score", + "safeName": "score" + }, + "snakeCase": { + "unsafeName": "score", + "safeName": "score" + }, + "screamingSnakeCase": { + "unsafeName": "SCORE", + "safeName": "SCORE" + }, + "pascalCase": { + "unsafeName": "Score", + "safeName": "Score" + } + }, + "wireValue": "score" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": { + "shape": { + "type": "primitive", + "primitive": { + "type": "float", + "float": 1.1 + } + }, + "jsonExample": 1.1 + }, + "valueType": { + "_type": "primitive", + "primitive": { + "v1": "FLOAT", + "v2": null + } + } + } + }, + "jsonExample": 1.1 + }, + "originalTypeDeclaration": { + "typeId": "type_:ScoredColumn", + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "name": { + "originalName": "ScoredColumn", + "camelCase": { + "unsafeName": "scoredColumn", + "safeName": "scoredColumn" + }, + "snakeCase": { + "unsafeName": "scored_column", + "safeName": "scored_column" + }, + "screamingSnakeCase": { + "unsafeName": "SCORED_COLUMN", + "safeName": "SCORED_COLUMN" + }, + "pascalCase": { + "unsafeName": "ScoredColumn", + "safeName": "ScoredColumn" + } + } + } + }, + { + "name": { + "name": { + "originalName": "values", + "camelCase": { + "unsafeName": "values", + "safeName": "values" + }, + "snakeCase": { + "unsafeName": "values", + "safeName": "values" + }, + "screamingSnakeCase": { + "unsafeName": "VALUES", + "safeName": "VALUES" + }, + "pascalCase": { + "unsafeName": "Values", + "safeName": "Values" + } + }, + "wireValue": "values" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": { + "shape": { + "type": "container", + "container": { + "type": "list", + "list": [ + { + "shape": { + "type": "primitive", + "primitive": { + "type": "float", + "float": 1.1 + } + }, + "jsonExample": 1.1 + } + ], + "itemType": { + "_type": "primitive", + "primitive": { + "v1": "FLOAT", + "v2": null + } + } + } + }, + "jsonExample": [ + 1.1 + ] + }, + "valueType": { + "_type": "container", + "container": { + "_type": "list", + "list": { + "_type": "primitive", + "primitive": { + "v1": "FLOAT", + "v2": null + } + } + } + } + } + }, + "jsonExample": [ + 1.1 + ] + }, + "originalTypeDeclaration": { + "typeId": "type_:ScoredColumn", + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "name": { + "originalName": "ScoredColumn", + "camelCase": { + "unsafeName": "scoredColumn", + "safeName": "scoredColumn" + }, + "snakeCase": { + "unsafeName": "scored_column", + "safeName": "scored_column" + }, + "screamingSnakeCase": { + "unsafeName": "SCORED_COLUMN", + "safeName": "SCORED_COLUMN" + }, + "pascalCase": { + "unsafeName": "ScoredColumn", + "safeName": "ScoredColumn" + } + } + } + }, + { + "name": { + "name": { + "originalName": "metadata", + "camelCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "snakeCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "screamingSnakeCase": { + "unsafeName": "METADATA", + "safeName": "METADATA" + }, + "pascalCase": { + "unsafeName": "Metadata", + "safeName": "Metadata" + } + }, + "wireValue": "metadata" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": { + "shape": { + "type": "named", + "typeName": { + "typeId": "type_:Metadata", + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "name": { + "originalName": "Metadata", + "camelCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "snakeCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "screamingSnakeCase": { + "unsafeName": "METADATA", + "safeName": "METADATA" + }, + "pascalCase": { + "unsafeName": "Metadata", + "safeName": "Metadata" + } + } + }, + "shape": { + "type": "undiscriminatedUnion", + "index": 0, + "singleUnionType": { + "shape": { + "type": "container", + "container": { + "type": "map", + "map": [ + { + "key": { + "shape": { + "type": "primitive", + "primitive": { + "type": "string", + "string": { + "original": "key" + } + } + }, + "jsonExample": "key" + }, + "value": { + "shape": { + "type": "named", + "typeName": { + "typeId": "type_:MetadataValue", + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "name": { + "originalName": "MetadataValue", + "camelCase": { + "unsafeName": "metadataValue", + "safeName": "metadataValue" + }, + "snakeCase": { + "unsafeName": "metadata_value", + "safeName": "metadata_value" + }, + "screamingSnakeCase": { + "unsafeName": "METADATA_VALUE", + "safeName": "METADATA_VALUE" + }, + "pascalCase": { + "unsafeName": "MetadataValue", + "safeName": "MetadataValue" + } + } + }, + "shape": { + "type": "undiscriminatedUnion", + "index": 0, + "singleUnionType": { + "shape": { + "type": "primitive", + "primitive": { + "type": "double", + "double": 1.1 + } + }, + "jsonExample": 1.1 + } + } + }, + "jsonExample": 1.1 + } + } + ], + "keyType": { + "_type": "primitive", + "primitive": { + "v1": "STRING", + "v2": { + "type": "string", + "default": null, + "validation": null + } + } + }, + "valueType": { + "_type": "named", + "name": { + "originalName": "MetadataValue", + "camelCase": { + "unsafeName": "metadataValue", + "safeName": "metadataValue" + }, + "snakeCase": { + "unsafeName": "metadata_value", + "safeName": "metadata_value" + }, + "screamingSnakeCase": { + "unsafeName": "METADATA_VALUE", + "safeName": "METADATA_VALUE" + }, + "pascalCase": { + "unsafeName": "MetadataValue", + "safeName": "MetadataValue" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:MetadataValue", + "default": null, + "inline": null + } + } + }, + "jsonExample": { + "key": 1.1 + } + } + } + }, + "jsonExample": { + "key": 1.1 + } + }, + "valueType": { + "_type": "named", + "name": { + "originalName": "Metadata", + "camelCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "snakeCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "screamingSnakeCase": { + "unsafeName": "METADATA", + "safeName": "METADATA" + }, + "pascalCase": { + "unsafeName": "Metadata", + "safeName": "Metadata" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:Metadata", + "default": null, + "inline": null + } + } + }, + "jsonExample": { + "key": 1.1 + } + }, + "originalTypeDeclaration": { + "typeId": "type_:ScoredColumn", + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "name": { + "originalName": "ScoredColumn", + "camelCase": { + "unsafeName": "scoredColumn", + "safeName": "scoredColumn" + }, + "snakeCase": { + "unsafeName": "scored_column", + "safeName": "scored_column" + }, + "screamingSnakeCase": { + "unsafeName": "SCORED_COLUMN", + "safeName": "SCORED_COLUMN" + }, + "pascalCase": { + "unsafeName": "ScoredColumn", + "safeName": "ScoredColumn" + } + } + } + }, + { + "name": { + "name": { + "originalName": "indexedData", + "camelCase": { + "unsafeName": "indexedData", + "safeName": "indexedData" + }, + "snakeCase": { + "unsafeName": "indexed_data", + "safeName": "indexed_data" + }, + "screamingSnakeCase": { + "unsafeName": "INDEXED_DATA", + "safeName": "INDEXED_DATA" + }, + "pascalCase": { + "unsafeName": "IndexedData", + "safeName": "IndexedData" + } + }, + "wireValue": "indexedData" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": { + "shape": { + "type": "named", + "typeName": { + "typeId": "type_:IndexedData", + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "name": { + "originalName": "IndexedData", + "camelCase": { + "unsafeName": "indexedData", + "safeName": "indexedData" + }, + "snakeCase": { + "unsafeName": "indexed_data", + "safeName": "indexed_data" + }, + "screamingSnakeCase": { + "unsafeName": "INDEXED_DATA", + "safeName": "INDEXED_DATA" + }, + "pascalCase": { + "unsafeName": "IndexedData", + "safeName": "IndexedData" + } + } + }, + "shape": { + "type": "object", + "properties": [ + { + "name": { + "name": { + "originalName": "indices", + "camelCase": { + "unsafeName": "indices", + "safeName": "indices" + }, + "snakeCase": { + "unsafeName": "indices", + "safeName": "indices" + }, + "screamingSnakeCase": { + "unsafeName": "INDICES", + "safeName": "INDICES" + }, + "pascalCase": { + "unsafeName": "Indices", + "safeName": "Indices" + } + }, + "wireValue": "indices" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "list", + "list": [ + { + "shape": { + "type": "primitive", + "primitive": { + "type": "uint", + "uint": 1 + } + }, + "jsonExample": 1 + } + ], + "itemType": { + "_type": "primitive", + "primitive": { + "v1": "UINT", + "v2": null + } + } + } + }, + "jsonExample": [ + 1 + ] + }, + "originalTypeDeclaration": { + "typeId": "type_:IndexedData", + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "name": { + "originalName": "IndexedData", + "camelCase": { + "unsafeName": "indexedData", + "safeName": "indexedData" + }, + "snakeCase": { + "unsafeName": "indexed_data", + "safeName": "indexed_data" + }, + "screamingSnakeCase": { + "unsafeName": "INDEXED_DATA", + "safeName": "INDEXED_DATA" + }, + "pascalCase": { + "unsafeName": "IndexedData", + "safeName": "IndexedData" + } + } + } + }, + { + "name": { + "name": { + "originalName": "values", + "camelCase": { + "unsafeName": "values", + "safeName": "values" + }, + "snakeCase": { + "unsafeName": "values", + "safeName": "values" + }, + "screamingSnakeCase": { + "unsafeName": "VALUES", + "safeName": "VALUES" + }, + "pascalCase": { + "unsafeName": "Values", + "safeName": "Values" + } + }, + "wireValue": "values" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "list", + "list": [ + { + "shape": { + "type": "primitive", + "primitive": { + "type": "float", + "float": 1.1 + } + }, + "jsonExample": 1.1 + } + ], + "itemType": { + "_type": "primitive", + "primitive": { + "v1": "FLOAT", + "v2": null + } + } + } + }, + "jsonExample": [ + 1.1 + ] + }, + "originalTypeDeclaration": { + "typeId": "type_:IndexedData", + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "name": { + "originalName": "IndexedData", + "camelCase": { + "unsafeName": "indexedData", + "safeName": "indexedData" + }, + "snakeCase": { + "unsafeName": "indexed_data", + "safeName": "indexed_data" + }, + "screamingSnakeCase": { + "unsafeName": "INDEXED_DATA", + "safeName": "INDEXED_DATA" + }, + "pascalCase": { + "unsafeName": "IndexedData", + "safeName": "IndexedData" + } + } + } + } + ] + } + }, + "jsonExample": { + "indices": [ + 1 + ], + "values": [ + 1.1 + ] + } + }, + "valueType": { + "_type": "named", + "name": { + "originalName": "IndexedData", + "camelCase": { + "unsafeName": "indexedData", + "safeName": "indexedData" + }, + "snakeCase": { + "unsafeName": "indexed_data", + "safeName": "indexed_data" + }, + "screamingSnakeCase": { + "unsafeName": "INDEXED_DATA", + "safeName": "INDEXED_DATA" + }, + "pascalCase": { + "unsafeName": "IndexedData", + "safeName": "IndexedData" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:IndexedData", + "default": null, + "inline": null + } + } + }, + "jsonExample": { + "indices": [ + 1 + ], + "values": [ + 1.1 + ] + } + }, + "originalTypeDeclaration": { + "typeId": "type_:ScoredColumn", + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "name": { + "originalName": "ScoredColumn", + "camelCase": { + "unsafeName": "scoredColumn", + "safeName": "scoredColumn" + }, + "snakeCase": { + "unsafeName": "scored_column", + "safeName": "scored_column" + }, + "screamingSnakeCase": { + "unsafeName": "SCORED_COLUMN", + "safeName": "SCORED_COLUMN" + }, + "pascalCase": { + "unsafeName": "ScoredColumn", + "safeName": "ScoredColumn" + } + } + } + } + ] + } + }, + "jsonExample": { + "id": "id", + "score": 1.1, + "values": [ + 1.1 + ], + "metadata": { + "key": 1.1 + }, + "indexedData": { + "indices": [ + 1 + ], + "values": [ + 1.1 + ] + } + } + } + ], + "itemType": { + "_type": "named", + "name": { + "originalName": "ScoredColumn", + "camelCase": { + "unsafeName": "scoredColumn", + "safeName": "scoredColumn" + }, + "snakeCase": { + "unsafeName": "scored_column", + "safeName": "scored_column" + }, + "screamingSnakeCase": { + "unsafeName": "SCORED_COLUMN", + "safeName": "SCORED_COLUMN" + }, + "pascalCase": { + "unsafeName": "ScoredColumn", + "safeName": "ScoredColumn" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:ScoredColumn", + "default": null, + "inline": null + } + } + }, + "jsonExample": [ + { + "id": "id", + "score": 1.1, + "values": [ + 1.1 + ], + "metadata": { + "key": 1.1 + }, + "indexedData": { + "indices": [ + 1 + ], + "values": [ + 1.1 + ] + } + } + ] + }, + "valueType": { + "_type": "container", + "container": { + "_type": "list", + "list": { + "_type": "named", + "name": { + "originalName": "ScoredColumn", + "camelCase": { + "unsafeName": "scoredColumn", + "safeName": "scoredColumn" + }, + "snakeCase": { + "unsafeName": "scored_column", + "safeName": "scored_column" + }, + "screamingSnakeCase": { + "unsafeName": "SCORED_COLUMN", + "safeName": "SCORED_COLUMN" + }, + "pascalCase": { + "unsafeName": "ScoredColumn", + "safeName": "ScoredColumn" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:ScoredColumn", + "default": null, + "inline": null + } + } + } + } + }, + "jsonExample": [ + { + "id": "id", + "score": 1.1, + "values": [ + 1.1 + ], + "metadata": { + "key": 1.1 + }, + "indexedData": { + "indices": [ + 1 + ], + "values": [ + 1.1 + ] + } + } + ] + }, + "originalTypeDeclaration": { + "typeId": "type_:QueryResponse", + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "name": { + "originalName": "QueryResponse", + "camelCase": { + "unsafeName": "queryResponse", + "safeName": "queryResponse" + }, + "snakeCase": { + "unsafeName": "query_response", + "safeName": "query_response" + }, + "screamingSnakeCase": { + "unsafeName": "QUERY_RESPONSE", + "safeName": "QUERY_RESPONSE" + }, + "pascalCase": { + "unsafeName": "QueryResponse", + "safeName": "QueryResponse" + } + } + } + }, + { + "name": { + "name": { + "originalName": "namespace", + "camelCase": { + "unsafeName": "namespace", + "safeName": "namespace" + }, + "snakeCase": { + "unsafeName": "namespace", + "safeName": "namespace" + }, + "screamingSnakeCase": { + "unsafeName": "NAMESPACE", + "safeName": "NAMESPACE" + }, + "pascalCase": { + "unsafeName": "Namespace", + "safeName": "Namespace" + } + }, + "wireValue": "namespace" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": { + "shape": { + "type": "primitive", + "primitive": { + "type": "string", + "string": { + "original": "namespace" + } + } + }, + "jsonExample": "namespace" + }, + "valueType": { + "_type": "primitive", + "primitive": { + "v1": "STRING", + "v2": { + "type": "string", + "default": null, + "validation": null + } + } + } + } + }, + "jsonExample": "namespace" + }, + "originalTypeDeclaration": { + "typeId": "type_:QueryResponse", + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "name": { + "originalName": "QueryResponse", + "camelCase": { + "unsafeName": "queryResponse", + "safeName": "queryResponse" + }, + "snakeCase": { + "unsafeName": "query_response", + "safeName": "query_response" + }, + "screamingSnakeCase": { + "unsafeName": "QUERY_RESPONSE", + "safeName": "QUERY_RESPONSE" + }, + "pascalCase": { + "unsafeName": "QueryResponse", + "safeName": "QueryResponse" + } + } + } + }, + { + "name": { + "name": { + "originalName": "usage", + "camelCase": { + "unsafeName": "usage", + "safeName": "usage" + }, + "snakeCase": { + "unsafeName": "usage", + "safeName": "usage" + }, + "screamingSnakeCase": { + "unsafeName": "USAGE", + "safeName": "USAGE" + }, + "pascalCase": { + "unsafeName": "Usage", + "safeName": "Usage" + } + }, + "wireValue": "usage" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": { + "shape": { + "type": "named", + "typeName": { + "typeId": "type_:Usage", + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "name": { + "originalName": "Usage", + "camelCase": { + "unsafeName": "usage", + "safeName": "usage" + }, + "snakeCase": { + "unsafeName": "usage", + "safeName": "usage" + }, + "screamingSnakeCase": { + "unsafeName": "USAGE", + "safeName": "USAGE" + }, + "pascalCase": { + "unsafeName": "Usage", + "safeName": "Usage" + } + } + }, + "shape": { + "type": "object", + "properties": [ + { + "name": { + "name": { + "originalName": "units", + "camelCase": { + "unsafeName": "units", + "safeName": "units" + }, + "snakeCase": { + "unsafeName": "units", + "safeName": "units" + }, + "screamingSnakeCase": { + "unsafeName": "UNITS", + "safeName": "UNITS" + }, + "pascalCase": { + "unsafeName": "Units", + "safeName": "Units" + } + }, + "wireValue": "units" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": { + "shape": { + "type": "primitive", + "primitive": { + "type": "uint", + "uint": 1 + } + }, + "jsonExample": 1 + }, + "valueType": { + "_type": "primitive", + "primitive": { + "v1": "UINT", + "v2": null + } + } + } + }, + "jsonExample": 1 + }, + "originalTypeDeclaration": { + "typeId": "type_:Usage", + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "name": { + "originalName": "Usage", + "camelCase": { + "unsafeName": "usage", + "safeName": "usage" + }, + "snakeCase": { + "unsafeName": "usage", + "safeName": "usage" + }, + "screamingSnakeCase": { + "unsafeName": "USAGE", + "safeName": "USAGE" + }, + "pascalCase": { + "unsafeName": "Usage", + "safeName": "Usage" + } + } + } + } + ] + } + }, + "jsonExample": { + "units": 1 + } + }, + "valueType": { + "_type": "named", + "name": { + "originalName": "Usage", + "camelCase": { + "unsafeName": "usage", + "safeName": "usage" + }, + "snakeCase": { + "unsafeName": "usage", + "safeName": "usage" + }, + "screamingSnakeCase": { + "unsafeName": "USAGE", + "safeName": "USAGE" + }, + "pascalCase": { + "unsafeName": "Usage", + "safeName": "Usage" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:Usage", + "default": null, + "inline": null + } + } + }, + "jsonExample": { + "units": 1 + } + }, + "originalTypeDeclaration": { + "typeId": "type_:QueryResponse", + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "name": { + "originalName": "QueryResponse", + "camelCase": { + "unsafeName": "queryResponse", + "safeName": "queryResponse" + }, + "snakeCase": { + "unsafeName": "query_response", + "safeName": "query_response" + }, + "screamingSnakeCase": { + "unsafeName": "QUERY_RESPONSE", + "safeName": "QUERY_RESPONSE" + }, + "pascalCase": { + "unsafeName": "QueryResponse", + "safeName": "QueryResponse" + } + } + } + } + ] + } + }, + "jsonExample": { + "results": [ + { + "matches": [ + { + "id": "id" + } + ], + "namespace": "namespace" + } + ], + "matches": [ + { + "id": "id", + "score": 1.1, + "values": [ + 1.1 + ], + "metadata": { + "key": 1.1 + }, + "indexedData": { + "indices": [ + 1 + ], + "values": [ + 1.1 + ] + } + } + ], + "namespace": "namespace", + "usage": { + "units": 1 + } + } + } + } + }, + "docs": null + }, + "codeSamples": null + } + ], + "autogeneratedExamples": [ + { + "example": { + "id": "f07cb28de739a8f6d40b467de94ad689ce6713dc", + "url": "/data/query", + "name": null, + "endpointHeaders": [], + "endpointPathParameters": [], + "queryParameters": [], + "servicePathParameters": [], + "serviceHeaders": [], + "rootPathParameters": [], + "request": { + "type": "inlinedRequestBody", + "properties": [ + { + "name": { + "name": { + "originalName": "namespace", + "camelCase": { + "unsafeName": "namespace", + "safeName": "namespace" + }, + "snakeCase": { + "unsafeName": "namespace", + "safeName": "namespace" + }, + "screamingSnakeCase": { + "unsafeName": "NAMESPACE", + "safeName": "NAMESPACE" + }, + "pascalCase": { + "unsafeName": "Namespace", + "safeName": "Namespace" + } + }, + "wireValue": "namespace" + }, + "originalTypeDeclaration": null, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": null, + "valueType": { + "_type": "primitive", + "primitive": { + "v1": "STRING", + "v2": { + "type": "string", + "default": null, + "validation": null + } + } + } + } + } + } + }, + { + "name": { + "name": { + "originalName": "topK", + "camelCase": { + "unsafeName": "topK", + "safeName": "topK" + }, + "snakeCase": { + "unsafeName": "top_k", + "safeName": "top_k" + }, + "screamingSnakeCase": { + "unsafeName": "TOP_K", + "safeName": "TOP_K" + }, + "pascalCase": { + "unsafeName": "TopK", + "safeName": "TopK" + } + }, + "wireValue": "topK" + }, + "originalTypeDeclaration": null, + "value": { + "shape": { + "type": "primitive", + "primitive": { + "type": "uint", + "uint": 1 + } + }, + "jsonExample": 1 + } + }, + { + "name": { + "name": { + "originalName": "filter", + "camelCase": { + "unsafeName": "filter", + "safeName": "filter" + }, + "snakeCase": { + "unsafeName": "filter", + "safeName": "filter" + }, + "screamingSnakeCase": { + "unsafeName": "FILTER", + "safeName": "FILTER" + }, + "pascalCase": { + "unsafeName": "Filter", + "safeName": "Filter" + } + }, + "wireValue": "filter" + }, + "originalTypeDeclaration": null, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": null, + "valueType": { + "_type": "named", + "name": { + "originalName": "Metadata", + "camelCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "snakeCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "screamingSnakeCase": { + "unsafeName": "METADATA", + "safeName": "METADATA" + }, + "pascalCase": { + "unsafeName": "Metadata", + "safeName": "Metadata" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:Metadata", + "default": null, + "inline": null + } + } + } + } + }, + { + "name": { + "name": { + "originalName": "includeValues", + "camelCase": { + "unsafeName": "includeValues", + "safeName": "includeValues" + }, + "snakeCase": { + "unsafeName": "include_values", + "safeName": "include_values" + }, + "screamingSnakeCase": { + "unsafeName": "INCLUDE_VALUES", + "safeName": "INCLUDE_VALUES" + }, + "pascalCase": { + "unsafeName": "IncludeValues", + "safeName": "IncludeValues" + } + }, + "wireValue": "includeValues" + }, + "originalTypeDeclaration": null, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": null, + "valueType": { + "_type": "primitive", + "primitive": { + "v1": "BOOLEAN", + "v2": null + } + } + } + } + } + }, + { + "name": { + "name": { + "originalName": "includeMetadata", + "camelCase": { + "unsafeName": "includeMetadata", + "safeName": "includeMetadata" + }, + "snakeCase": { + "unsafeName": "include_metadata", + "safeName": "include_metadata" + }, + "screamingSnakeCase": { + "unsafeName": "INCLUDE_METADATA", + "safeName": "INCLUDE_METADATA" + }, + "pascalCase": { + "unsafeName": "IncludeMetadata", + "safeName": "IncludeMetadata" + } + }, + "wireValue": "includeMetadata" + }, + "originalTypeDeclaration": null, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": null, + "valueType": { + "_type": "primitive", + "primitive": { + "v1": "BOOLEAN", + "v2": null + } + } + } + } + } + }, + { + "name": { + "name": { + "originalName": "queries", + "camelCase": { + "unsafeName": "queries", + "safeName": "queries" + }, + "snakeCase": { + "unsafeName": "queries", + "safeName": "queries" + }, + "screamingSnakeCase": { + "unsafeName": "QUERIES", + "safeName": "QUERIES" + }, + "pascalCase": { + "unsafeName": "Queries", + "safeName": "Queries" + } + }, + "wireValue": "queries" + }, + "originalTypeDeclaration": null, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": null, + "valueType": { + "_type": "container", + "container": { + "_type": "list", + "list": { + "_type": "named", + "name": { + "originalName": "QueryColumn", + "camelCase": { + "unsafeName": "queryColumn", + "safeName": "queryColumn" + }, + "snakeCase": { + "unsafeName": "query_column", + "safeName": "query_column" + }, + "screamingSnakeCase": { + "unsafeName": "QUERY_COLUMN", + "safeName": "QUERY_COLUMN" + }, + "pascalCase": { + "unsafeName": "QueryColumn", + "safeName": "QueryColumn" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:QueryColumn", + "default": null, + "inline": null + } + } + } + } + } + } + }, + { + "name": { + "name": { + "originalName": "column", + "camelCase": { + "unsafeName": "column", + "safeName": "column" + }, + "snakeCase": { + "unsafeName": "column", + "safeName": "column" + }, + "screamingSnakeCase": { + "unsafeName": "COLUMN", + "safeName": "COLUMN" + }, + "pascalCase": { + "unsafeName": "Column", + "safeName": "Column" + } + }, + "wireValue": "column" + }, + "originalTypeDeclaration": null, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": null, + "valueType": { + "_type": "container", + "container": { + "_type": "list", + "list": { + "_type": "primitive", + "primitive": { + "v1": "FLOAT", + "v2": null + } + } + } + } + } + } + } + }, + { + "name": { + "name": { + "originalName": "id", + "camelCase": { + "unsafeName": "id", + "safeName": "id" + }, + "snakeCase": { + "unsafeName": "id", + "safeName": "id" + }, + "screamingSnakeCase": { + "unsafeName": "ID", + "safeName": "ID" + }, + "pascalCase": { + "unsafeName": "ID", + "safeName": "ID" + } + }, + "wireValue": "id" + }, + "originalTypeDeclaration": null, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": null, + "valueType": { + "_type": "primitive", + "primitive": { + "v1": "STRING", + "v2": { + "type": "string", + "default": null, + "validation": null + } + } + } + } + } + } + }, + { + "name": { + "name": { + "originalName": "indexedData", + "camelCase": { + "unsafeName": "indexedData", + "safeName": "indexedData" + }, + "snakeCase": { + "unsafeName": "indexed_data", + "safeName": "indexed_data" + }, + "screamingSnakeCase": { + "unsafeName": "INDEXED_DATA", + "safeName": "INDEXED_DATA" + }, + "pascalCase": { + "unsafeName": "IndexedData", + "safeName": "IndexedData" + } + }, + "wireValue": "indexedData" + }, + "originalTypeDeclaration": null, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": null, + "valueType": { + "_type": "named", + "name": { + "originalName": "IndexedData", + "camelCase": { + "unsafeName": "indexedData", + "safeName": "indexedData" + }, + "snakeCase": { + "unsafeName": "indexed_data", + "safeName": "indexed_data" + }, + "screamingSnakeCase": { + "unsafeName": "INDEXED_DATA", + "safeName": "INDEXED_DATA" + }, + "pascalCase": { + "unsafeName": "IndexedData", + "safeName": "IndexedData" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:IndexedData", + "default": null, + "inline": null + } + } + } + } + } + ], + "jsonExample": { + "topK": 1 + } + }, + "response": { + "type": "ok", + "value": { + "type": "body", + "value": { + "shape": { + "type": "named", + "shape": { + "type": "object", + "properties": [ + { + "name": { + "name": { + "originalName": "results", + "camelCase": { + "unsafeName": "results", + "safeName": "results" + }, + "snakeCase": { + "unsafeName": "results", + "safeName": "results" + }, + "screamingSnakeCase": { + "unsafeName": "RESULTS", + "safeName": "RESULTS" + }, + "pascalCase": { + "unsafeName": "Results", + "safeName": "Results" + } + }, + "wireValue": "results" + }, + "originalTypeDeclaration": { + "name": { + "originalName": "QueryResponse", + "camelCase": { + "unsafeName": "queryResponse", + "safeName": "queryResponse" + }, + "snakeCase": { + "unsafeName": "query_response", + "safeName": "query_response" + }, + "screamingSnakeCase": { + "unsafeName": "QUERY_RESPONSE", + "safeName": "QUERY_RESPONSE" + }, + "pascalCase": { + "unsafeName": "QueryResponse", + "safeName": "QueryResponse" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:QueryResponse" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": { + "shape": { + "type": "container", + "container": { + "type": "list", + "list": [ + { + "shape": { + "type": "named", + "shape": { + "type": "object", + "properties": [ + { + "name": { + "name": { + "originalName": "matches", + "camelCase": { + "unsafeName": "matches", + "safeName": "matches" + }, + "snakeCase": { + "unsafeName": "matches", + "safeName": "matches" + }, + "screamingSnakeCase": { + "unsafeName": "MATCHES", + "safeName": "MATCHES" + }, + "pascalCase": { + "unsafeName": "Matches", + "safeName": "Matches" + } + }, + "wireValue": "matches" + }, + "originalTypeDeclaration": { + "name": { + "originalName": "QueryResult", + "camelCase": { + "unsafeName": "queryResult", + "safeName": "queryResult" + }, + "snakeCase": { + "unsafeName": "query_result", + "safeName": "query_result" + }, + "screamingSnakeCase": { + "unsafeName": "QUERY_RESULT", + "safeName": "QUERY_RESULT" + }, + "pascalCase": { + "unsafeName": "QueryResult", + "safeName": "QueryResult" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:QueryResult" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": { + "shape": { + "type": "container", + "container": { + "type": "list", + "list": [ + { + "shape": { + "type": "named", + "shape": { + "type": "object", + "properties": [ + { + "name": { + "name": { + "originalName": "id", + "camelCase": { + "unsafeName": "id", + "safeName": "id" + }, + "snakeCase": { + "unsafeName": "id", + "safeName": "id" + }, + "screamingSnakeCase": { + "unsafeName": "ID", + "safeName": "ID" + }, + "pascalCase": { + "unsafeName": "ID", + "safeName": "ID" + } + }, + "wireValue": "id" + }, + "originalTypeDeclaration": { + "name": { + "originalName": "ScoredColumn", + "camelCase": { + "unsafeName": "scoredColumn", + "safeName": "scoredColumn" + }, + "snakeCase": { + "unsafeName": "scored_column", + "safeName": "scored_column" + }, + "screamingSnakeCase": { + "unsafeName": "SCORED_COLUMN", + "safeName": "SCORED_COLUMN" + }, + "pascalCase": { + "unsafeName": "ScoredColumn", + "safeName": "ScoredColumn" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:ScoredColumn" + }, + "value": { + "shape": { + "type": "primitive", + "primitive": { + "type": "string", + "string": { + "original": "id" + } + } + }, + "jsonExample": "id" + } + }, + { + "name": { + "name": { + "originalName": "score", + "camelCase": { + "unsafeName": "score", + "safeName": "score" + }, + "snakeCase": { + "unsafeName": "score", + "safeName": "score" + }, + "screamingSnakeCase": { + "unsafeName": "SCORE", + "safeName": "SCORE" + }, + "pascalCase": { + "unsafeName": "Score", + "safeName": "Score" + } + }, + "wireValue": "score" + }, + "originalTypeDeclaration": { + "name": { + "originalName": "ScoredColumn", + "camelCase": { + "unsafeName": "scoredColumn", + "safeName": "scoredColumn" + }, + "snakeCase": { + "unsafeName": "scored_column", + "safeName": "scored_column" + }, + "screamingSnakeCase": { + "unsafeName": "SCORED_COLUMN", + "safeName": "SCORED_COLUMN" + }, + "pascalCase": { + "unsafeName": "ScoredColumn", + "safeName": "ScoredColumn" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:ScoredColumn" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": { + "shape": { + "type": "primitive", + "primitive": { + "type": "float", + "float": 1.1 + } + }, + "jsonExample": 1.1 + }, + "valueType": { + "_type": "primitive", + "primitive": { + "v1": "FLOAT", + "v2": null + } + } + } + }, + "jsonExample": 1.1 + } + }, + { + "name": { + "name": { + "originalName": "values", + "camelCase": { + "unsafeName": "values", + "safeName": "values" + }, + "snakeCase": { + "unsafeName": "values", + "safeName": "values" + }, + "screamingSnakeCase": { + "unsafeName": "VALUES", + "safeName": "VALUES" + }, + "pascalCase": { + "unsafeName": "Values", + "safeName": "Values" + } + }, + "wireValue": "values" + }, + "originalTypeDeclaration": { + "name": { + "originalName": "ScoredColumn", + "camelCase": { + "unsafeName": "scoredColumn", + "safeName": "scoredColumn" + }, + "snakeCase": { + "unsafeName": "scored_column", + "safeName": "scored_column" + }, + "screamingSnakeCase": { + "unsafeName": "SCORED_COLUMN", + "safeName": "SCORED_COLUMN" + }, + "pascalCase": { + "unsafeName": "ScoredColumn", + "safeName": "ScoredColumn" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:ScoredColumn" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": { + "shape": { + "type": "container", + "container": { + "type": "list", + "list": [ + { + "shape": { + "type": "primitive", + "primitive": { + "type": "float", + "float": 1.1 + } + }, + "jsonExample": 1.1 + }, + { + "shape": { + "type": "primitive", + "primitive": { + "type": "float", + "float": 1.1 + } + }, + "jsonExample": 1.1 + } + ], + "itemType": { + "_type": "primitive", + "primitive": { + "v1": "FLOAT", + "v2": null + } + } + } + }, + "jsonExample": [ + 1.1, + 1.1 + ] + }, + "valueType": { + "_type": "container", + "container": { + "_type": "list", + "list": { + "_type": "primitive", + "primitive": { + "v1": "FLOAT", + "v2": null + } + } + } + } + } + }, + "jsonExample": [ + 1.1, + 1.1 + ] + } + }, + { + "name": { + "name": { + "originalName": "metadata", + "camelCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "snakeCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "screamingSnakeCase": { + "unsafeName": "METADATA", + "safeName": "METADATA" + }, + "pascalCase": { + "unsafeName": "Metadata", + "safeName": "Metadata" + } + }, + "wireValue": "metadata" + }, + "originalTypeDeclaration": { + "name": { + "originalName": "ScoredColumn", + "camelCase": { + "unsafeName": "scoredColumn", + "safeName": "scoredColumn" + }, + "snakeCase": { + "unsafeName": "scored_column", + "safeName": "scored_column" + }, + "screamingSnakeCase": { + "unsafeName": "SCORED_COLUMN", + "safeName": "SCORED_COLUMN" + }, + "pascalCase": { + "unsafeName": "ScoredColumn", + "safeName": "ScoredColumn" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:ScoredColumn" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": { + "shape": { + "type": "named", + "shape": { + "type": "undiscriminatedUnion", + "index": 0, + "singleUnionType": { + "shape": { + "type": "container", + "container": { + "type": "map", + "map": [], + "keyType": { + "_type": "primitive", + "primitive": { + "v1": "STRING", + "v2": { + "type": "string", + "default": null, + "validation": null + } + } + }, + "valueType": { + "_type": "named", + "name": { + "originalName": "MetadataValue", + "camelCase": { + "unsafeName": "metadataValue", + "safeName": "metadataValue" + }, + "snakeCase": { + "unsafeName": "metadata_value", + "safeName": "metadata_value" + }, + "screamingSnakeCase": { + "unsafeName": "METADATA_VALUE", + "safeName": "METADATA_VALUE" + }, + "pascalCase": { + "unsafeName": "MetadataValue", + "safeName": "MetadataValue" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:MetadataValue", + "default": null, + "inline": null + } + } + }, + "jsonExample": {} + } + }, + "typeName": { + "name": { + "originalName": "Metadata", + "camelCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "snakeCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "screamingSnakeCase": { + "unsafeName": "METADATA", + "safeName": "METADATA" + }, + "pascalCase": { + "unsafeName": "Metadata", + "safeName": "Metadata" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:Metadata" + } + }, + "jsonExample": {} + }, + "valueType": { + "_type": "named", + "name": { + "originalName": "Metadata", + "camelCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "snakeCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "screamingSnakeCase": { + "unsafeName": "METADATA", + "safeName": "METADATA" + }, + "pascalCase": { + "unsafeName": "Metadata", + "safeName": "Metadata" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:Metadata", + "default": null, + "inline": null + } + } + }, + "jsonExample": {} + } + }, + { + "name": { + "name": { + "originalName": "indexedData", + "camelCase": { + "unsafeName": "indexedData", + "safeName": "indexedData" + }, + "snakeCase": { + "unsafeName": "indexed_data", + "safeName": "indexed_data" + }, + "screamingSnakeCase": { + "unsafeName": "INDEXED_DATA", + "safeName": "INDEXED_DATA" + }, + "pascalCase": { + "unsafeName": "IndexedData", + "safeName": "IndexedData" + } + }, + "wireValue": "indexedData" + }, + "originalTypeDeclaration": { + "name": { + "originalName": "ScoredColumn", + "camelCase": { + "unsafeName": "scoredColumn", + "safeName": "scoredColumn" + }, + "snakeCase": { + "unsafeName": "scored_column", + "safeName": "scored_column" + }, + "screamingSnakeCase": { + "unsafeName": "SCORED_COLUMN", + "safeName": "SCORED_COLUMN" + }, + "pascalCase": { + "unsafeName": "ScoredColumn", + "safeName": "ScoredColumn" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:ScoredColumn" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": { + "shape": { + "type": "named", + "shape": { + "type": "object", + "properties": [ + { + "name": { + "name": { + "originalName": "indices", + "camelCase": { + "unsafeName": "indices", + "safeName": "indices" + }, + "snakeCase": { + "unsafeName": "indices", + "safeName": "indices" + }, + "screamingSnakeCase": { + "unsafeName": "INDICES", + "safeName": "INDICES" + }, + "pascalCase": { + "unsafeName": "Indices", + "safeName": "Indices" + } + }, + "wireValue": "indices" + }, + "originalTypeDeclaration": { + "name": { + "originalName": "IndexedData", + "camelCase": { + "unsafeName": "indexedData", + "safeName": "indexedData" + }, + "snakeCase": { + "unsafeName": "indexed_data", + "safeName": "indexed_data" + }, + "screamingSnakeCase": { + "unsafeName": "INDEXED_DATA", + "safeName": "INDEXED_DATA" + }, + "pascalCase": { + "unsafeName": "IndexedData", + "safeName": "IndexedData" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:IndexedData" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "list", + "list": [ + { + "shape": { + "type": "primitive", + "primitive": { + "type": "uint", + "uint": 1 + } + }, + "jsonExample": 1 + }, + { + "shape": { + "type": "primitive", + "primitive": { + "type": "uint", + "uint": 1 + } + }, + "jsonExample": 1 + } + ], + "itemType": { + "_type": "primitive", + "primitive": { + "v1": "UINT", + "v2": null + } + } + } + }, + "jsonExample": [ + 1, + 1 + ] + } + }, + { + "name": { + "name": { + "originalName": "values", + "camelCase": { + "unsafeName": "values", + "safeName": "values" + }, + "snakeCase": { + "unsafeName": "values", + "safeName": "values" + }, + "screamingSnakeCase": { + "unsafeName": "VALUES", + "safeName": "VALUES" + }, + "pascalCase": { + "unsafeName": "Values", + "safeName": "Values" + } + }, + "wireValue": "values" + }, + "originalTypeDeclaration": { + "name": { + "originalName": "IndexedData", + "camelCase": { + "unsafeName": "indexedData", + "safeName": "indexedData" + }, + "snakeCase": { + "unsafeName": "indexed_data", + "safeName": "indexed_data" + }, + "screamingSnakeCase": { + "unsafeName": "INDEXED_DATA", + "safeName": "INDEXED_DATA" + }, + "pascalCase": { + "unsafeName": "IndexedData", + "safeName": "IndexedData" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:IndexedData" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "list", + "list": [ + { + "shape": { + "type": "primitive", + "primitive": { + "type": "float", + "float": 1.1 + } + }, + "jsonExample": 1.1 + }, + { + "shape": { + "type": "primitive", + "primitive": { + "type": "float", + "float": 1.1 + } + }, + "jsonExample": 1.1 + } + ], + "itemType": { + "_type": "primitive", + "primitive": { + "v1": "FLOAT", + "v2": null + } + } + } + }, + "jsonExample": [ + 1.1, + 1.1 + ] + } + } + ] + }, + "typeName": { + "name": { + "originalName": "IndexedData", + "camelCase": { + "unsafeName": "indexedData", + "safeName": "indexedData" + }, + "snakeCase": { + "unsafeName": "indexed_data", + "safeName": "indexed_data" + }, + "screamingSnakeCase": { + "unsafeName": "INDEXED_DATA", + "safeName": "INDEXED_DATA" + }, + "pascalCase": { + "unsafeName": "IndexedData", + "safeName": "IndexedData" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:IndexedData" + } + }, + "jsonExample": { + "indices": [ + 1, + 1 + ], + "values": [ + 1.1, + 1.1 + ] + } + }, + "valueType": { + "_type": "named", + "name": { + "originalName": "IndexedData", + "camelCase": { + "unsafeName": "indexedData", + "safeName": "indexedData" + }, + "snakeCase": { + "unsafeName": "indexed_data", + "safeName": "indexed_data" + }, + "screamingSnakeCase": { + "unsafeName": "INDEXED_DATA", + "safeName": "INDEXED_DATA" + }, + "pascalCase": { + "unsafeName": "IndexedData", + "safeName": "IndexedData" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:IndexedData", + "default": null, + "inline": null + } + } + }, + "jsonExample": { + "indices": [ + 1, + 1 + ], + "values": [ + 1.1, + 1.1 + ] + } + } + } + ] + }, + "typeName": { + "name": { + "originalName": "ScoredColumn", + "camelCase": { + "unsafeName": "scoredColumn", + "safeName": "scoredColumn" + }, + "snakeCase": { + "unsafeName": "scored_column", + "safeName": "scored_column" + }, + "screamingSnakeCase": { + "unsafeName": "SCORED_COLUMN", + "safeName": "SCORED_COLUMN" + }, + "pascalCase": { + "unsafeName": "ScoredColumn", + "safeName": "ScoredColumn" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:ScoredColumn" + } + }, + "jsonExample": { + "id": "id", + "score": 1.1, + "values": [ + 1.1, + 1.1 + ], + "metadata": {}, + "indexedData": { + "indices": [ + 1, + 1 + ], + "values": [ + 1.1, + 1.1 + ] + } + } + }, + { + "shape": { + "type": "named", + "shape": { + "type": "object", + "properties": [ + { + "name": { + "name": { + "originalName": "id", + "camelCase": { + "unsafeName": "id", + "safeName": "id" + }, + "snakeCase": { + "unsafeName": "id", + "safeName": "id" + }, + "screamingSnakeCase": { + "unsafeName": "ID", + "safeName": "ID" + }, + "pascalCase": { + "unsafeName": "ID", + "safeName": "ID" + } + }, + "wireValue": "id" + }, + "originalTypeDeclaration": { + "name": { + "originalName": "ScoredColumn", + "camelCase": { + "unsafeName": "scoredColumn", + "safeName": "scoredColumn" + }, + "snakeCase": { + "unsafeName": "scored_column", + "safeName": "scored_column" + }, + "screamingSnakeCase": { + "unsafeName": "SCORED_COLUMN", + "safeName": "SCORED_COLUMN" + }, + "pascalCase": { + "unsafeName": "ScoredColumn", + "safeName": "ScoredColumn" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:ScoredColumn" + }, + "value": { + "shape": { + "type": "primitive", + "primitive": { + "type": "string", + "string": { + "original": "id" + } + } + }, + "jsonExample": "id" + } + }, + { + "name": { + "name": { + "originalName": "score", + "camelCase": { + "unsafeName": "score", + "safeName": "score" + }, + "snakeCase": { + "unsafeName": "score", + "safeName": "score" + }, + "screamingSnakeCase": { + "unsafeName": "SCORE", + "safeName": "SCORE" + }, + "pascalCase": { + "unsafeName": "Score", + "safeName": "Score" + } + }, + "wireValue": "score" + }, + "originalTypeDeclaration": { + "name": { + "originalName": "ScoredColumn", + "camelCase": { + "unsafeName": "scoredColumn", + "safeName": "scoredColumn" + }, + "snakeCase": { + "unsafeName": "scored_column", + "safeName": "scored_column" + }, + "screamingSnakeCase": { + "unsafeName": "SCORED_COLUMN", + "safeName": "SCORED_COLUMN" + }, + "pascalCase": { + "unsafeName": "ScoredColumn", + "safeName": "ScoredColumn" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:ScoredColumn" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": { + "shape": { + "type": "primitive", + "primitive": { + "type": "float", + "float": 1.1 + } + }, + "jsonExample": 1.1 + }, + "valueType": { + "_type": "primitive", + "primitive": { + "v1": "FLOAT", + "v2": null + } + } + } + }, + "jsonExample": 1.1 + } + }, + { + "name": { + "name": { + "originalName": "values", + "camelCase": { + "unsafeName": "values", + "safeName": "values" + }, + "snakeCase": { + "unsafeName": "values", + "safeName": "values" + }, + "screamingSnakeCase": { + "unsafeName": "VALUES", + "safeName": "VALUES" + }, + "pascalCase": { + "unsafeName": "Values", + "safeName": "Values" + } + }, + "wireValue": "values" + }, + "originalTypeDeclaration": { + "name": { + "originalName": "ScoredColumn", + "camelCase": { + "unsafeName": "scoredColumn", + "safeName": "scoredColumn" + }, + "snakeCase": { + "unsafeName": "scored_column", + "safeName": "scored_column" + }, + "screamingSnakeCase": { + "unsafeName": "SCORED_COLUMN", + "safeName": "SCORED_COLUMN" + }, + "pascalCase": { + "unsafeName": "ScoredColumn", + "safeName": "ScoredColumn" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:ScoredColumn" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": { + "shape": { + "type": "container", + "container": { + "type": "list", + "list": [ + { + "shape": { + "type": "primitive", + "primitive": { + "type": "float", + "float": 1.1 + } + }, + "jsonExample": 1.1 + }, + { + "shape": { + "type": "primitive", + "primitive": { + "type": "float", + "float": 1.1 + } + }, + "jsonExample": 1.1 + } + ], + "itemType": { + "_type": "primitive", + "primitive": { + "v1": "FLOAT", + "v2": null + } + } + } + }, + "jsonExample": [ + 1.1, + 1.1 + ] + }, + "valueType": { + "_type": "container", + "container": { + "_type": "list", + "list": { + "_type": "primitive", + "primitive": { + "v1": "FLOAT", + "v2": null + } + } + } + } + } + }, + "jsonExample": [ + 1.1, + 1.1 + ] + } + }, + { + "name": { + "name": { + "originalName": "metadata", + "camelCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "snakeCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "screamingSnakeCase": { + "unsafeName": "METADATA", + "safeName": "METADATA" + }, + "pascalCase": { + "unsafeName": "Metadata", + "safeName": "Metadata" + } + }, + "wireValue": "metadata" + }, + "originalTypeDeclaration": { + "name": { + "originalName": "ScoredColumn", + "camelCase": { + "unsafeName": "scoredColumn", + "safeName": "scoredColumn" + }, + "snakeCase": { + "unsafeName": "scored_column", + "safeName": "scored_column" + }, + "screamingSnakeCase": { + "unsafeName": "SCORED_COLUMN", + "safeName": "SCORED_COLUMN" + }, + "pascalCase": { + "unsafeName": "ScoredColumn", + "safeName": "ScoredColumn" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:ScoredColumn" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": { + "shape": { + "type": "named", + "shape": { + "type": "undiscriminatedUnion", + "index": 0, + "singleUnionType": { + "shape": { + "type": "container", + "container": { + "type": "map", + "map": [], + "keyType": { + "_type": "primitive", + "primitive": { + "v1": "STRING", + "v2": { + "type": "string", + "default": null, + "validation": null + } + } + }, + "valueType": { + "_type": "named", + "name": { + "originalName": "MetadataValue", + "camelCase": { + "unsafeName": "metadataValue", + "safeName": "metadataValue" + }, + "snakeCase": { + "unsafeName": "metadata_value", + "safeName": "metadata_value" + }, + "screamingSnakeCase": { + "unsafeName": "METADATA_VALUE", + "safeName": "METADATA_VALUE" + }, + "pascalCase": { + "unsafeName": "MetadataValue", + "safeName": "MetadataValue" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:MetadataValue", + "default": null, + "inline": null + } + } + }, + "jsonExample": {} + } + }, + "typeName": { + "name": { + "originalName": "Metadata", + "camelCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "snakeCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "screamingSnakeCase": { + "unsafeName": "METADATA", + "safeName": "METADATA" + }, + "pascalCase": { + "unsafeName": "Metadata", + "safeName": "Metadata" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:Metadata" + } + }, + "jsonExample": {} + }, + "valueType": { + "_type": "named", + "name": { + "originalName": "Metadata", + "camelCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "snakeCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "screamingSnakeCase": { + "unsafeName": "METADATA", + "safeName": "METADATA" + }, + "pascalCase": { + "unsafeName": "Metadata", + "safeName": "Metadata" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:Metadata", + "default": null, + "inline": null + } + } + }, + "jsonExample": {} + } + }, + { + "name": { + "name": { + "originalName": "indexedData", + "camelCase": { + "unsafeName": "indexedData", + "safeName": "indexedData" + }, + "snakeCase": { + "unsafeName": "indexed_data", + "safeName": "indexed_data" + }, + "screamingSnakeCase": { + "unsafeName": "INDEXED_DATA", + "safeName": "INDEXED_DATA" + }, + "pascalCase": { + "unsafeName": "IndexedData", + "safeName": "IndexedData" + } + }, + "wireValue": "indexedData" + }, + "originalTypeDeclaration": { + "name": { + "originalName": "ScoredColumn", + "camelCase": { + "unsafeName": "scoredColumn", + "safeName": "scoredColumn" + }, + "snakeCase": { + "unsafeName": "scored_column", + "safeName": "scored_column" + }, + "screamingSnakeCase": { + "unsafeName": "SCORED_COLUMN", + "safeName": "SCORED_COLUMN" + }, + "pascalCase": { + "unsafeName": "ScoredColumn", + "safeName": "ScoredColumn" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:ScoredColumn" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": { + "shape": { + "type": "named", + "shape": { + "type": "object", + "properties": [ + { + "name": { + "name": { + "originalName": "indices", + "camelCase": { + "unsafeName": "indices", + "safeName": "indices" + }, + "snakeCase": { + "unsafeName": "indices", + "safeName": "indices" + }, + "screamingSnakeCase": { + "unsafeName": "INDICES", + "safeName": "INDICES" + }, + "pascalCase": { + "unsafeName": "Indices", + "safeName": "Indices" + } + }, + "wireValue": "indices" + }, + "originalTypeDeclaration": { + "name": { + "originalName": "IndexedData", + "camelCase": { + "unsafeName": "indexedData", + "safeName": "indexedData" + }, + "snakeCase": { + "unsafeName": "indexed_data", + "safeName": "indexed_data" + }, + "screamingSnakeCase": { + "unsafeName": "INDEXED_DATA", + "safeName": "INDEXED_DATA" + }, + "pascalCase": { + "unsafeName": "IndexedData", + "safeName": "IndexedData" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:IndexedData" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "list", + "list": [ + { + "shape": { + "type": "primitive", + "primitive": { + "type": "uint", + "uint": 1 + } + }, + "jsonExample": 1 + }, + { + "shape": { + "type": "primitive", + "primitive": { + "type": "uint", + "uint": 1 + } + }, + "jsonExample": 1 + } + ], + "itemType": { + "_type": "primitive", + "primitive": { + "v1": "UINT", + "v2": null + } + } + } + }, + "jsonExample": [ + 1, + 1 + ] + } + }, + { + "name": { + "name": { + "originalName": "values", + "camelCase": { + "unsafeName": "values", + "safeName": "values" + }, + "snakeCase": { + "unsafeName": "values", + "safeName": "values" + }, + "screamingSnakeCase": { + "unsafeName": "VALUES", + "safeName": "VALUES" + }, + "pascalCase": { + "unsafeName": "Values", + "safeName": "Values" + } + }, + "wireValue": "values" + }, + "originalTypeDeclaration": { + "name": { + "originalName": "IndexedData", + "camelCase": { + "unsafeName": "indexedData", + "safeName": "indexedData" + }, + "snakeCase": { + "unsafeName": "indexed_data", + "safeName": "indexed_data" + }, + "screamingSnakeCase": { + "unsafeName": "INDEXED_DATA", + "safeName": "INDEXED_DATA" + }, + "pascalCase": { + "unsafeName": "IndexedData", + "safeName": "IndexedData" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:IndexedData" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "list", + "list": [ + { + "shape": { + "type": "primitive", + "primitive": { + "type": "float", + "float": 1.1 + } + }, + "jsonExample": 1.1 + }, + { + "shape": { + "type": "primitive", + "primitive": { + "type": "float", + "float": 1.1 + } + }, + "jsonExample": 1.1 + } + ], + "itemType": { + "_type": "primitive", + "primitive": { + "v1": "FLOAT", + "v2": null + } + } + } + }, + "jsonExample": [ + 1.1, + 1.1 + ] + } + } + ] + }, + "typeName": { + "name": { + "originalName": "IndexedData", + "camelCase": { + "unsafeName": "indexedData", + "safeName": "indexedData" + }, + "snakeCase": { + "unsafeName": "indexed_data", + "safeName": "indexed_data" + }, + "screamingSnakeCase": { + "unsafeName": "INDEXED_DATA", + "safeName": "INDEXED_DATA" + }, + "pascalCase": { + "unsafeName": "IndexedData", + "safeName": "IndexedData" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:IndexedData" + } + }, + "jsonExample": { + "indices": [ + 1, + 1 + ], + "values": [ + 1.1, + 1.1 + ] + } + }, + "valueType": { + "_type": "named", + "name": { + "originalName": "IndexedData", + "camelCase": { + "unsafeName": "indexedData", + "safeName": "indexedData" + }, + "snakeCase": { + "unsafeName": "indexed_data", + "safeName": "indexed_data" + }, + "screamingSnakeCase": { + "unsafeName": "INDEXED_DATA", + "safeName": "INDEXED_DATA" + }, + "pascalCase": { + "unsafeName": "IndexedData", + "safeName": "IndexedData" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:IndexedData", + "default": null, + "inline": null + } + } + }, + "jsonExample": { + "indices": [ + 1, + 1 + ], + "values": [ + 1.1, + 1.1 + ] + } + } + } + ] + }, + "typeName": { + "name": { + "originalName": "ScoredColumn", + "camelCase": { + "unsafeName": "scoredColumn", + "safeName": "scoredColumn" + }, + "snakeCase": { + "unsafeName": "scored_column", + "safeName": "scored_column" + }, + "screamingSnakeCase": { + "unsafeName": "SCORED_COLUMN", + "safeName": "SCORED_COLUMN" + }, + "pascalCase": { + "unsafeName": "ScoredColumn", + "safeName": "ScoredColumn" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:ScoredColumn" + } + }, + "jsonExample": { + "id": "id", + "score": 1.1, + "values": [ + 1.1, + 1.1 + ], + "metadata": {}, + "indexedData": { + "indices": [ + 1, + 1 + ], + "values": [ + 1.1, + 1.1 + ] + } + } + } + ], + "itemType": { + "_type": "named", + "name": { + "originalName": "ScoredColumn", + "camelCase": { + "unsafeName": "scoredColumn", + "safeName": "scoredColumn" + }, + "snakeCase": { + "unsafeName": "scored_column", + "safeName": "scored_column" + }, + "screamingSnakeCase": { + "unsafeName": "SCORED_COLUMN", + "safeName": "SCORED_COLUMN" + }, + "pascalCase": { + "unsafeName": "ScoredColumn", + "safeName": "ScoredColumn" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:ScoredColumn", + "default": null, + "inline": null + } + } + }, + "jsonExample": [ + { + "id": "id", + "score": 1.1, + "values": [ + 1.1, + 1.1 + ], + "metadata": {}, + "indexedData": { + "indices": [ + 1, + 1 + ], + "values": [ + 1.1, + 1.1 + ] + } + }, + { + "id": "id", + "score": 1.1, + "values": [ + 1.1, + 1.1 + ], + "metadata": {}, + "indexedData": { + "indices": [ + 1, + 1 + ], + "values": [ + 1.1, + 1.1 + ] + } + } + ] + }, + "valueType": { + "_type": "container", + "container": { + "_type": "list", + "list": { + "_type": "named", + "name": { + "originalName": "ScoredColumn", + "camelCase": { + "unsafeName": "scoredColumn", + "safeName": "scoredColumn" + }, + "snakeCase": { + "unsafeName": "scored_column", + "safeName": "scored_column" + }, + "screamingSnakeCase": { + "unsafeName": "SCORED_COLUMN", + "safeName": "SCORED_COLUMN" + }, + "pascalCase": { + "unsafeName": "ScoredColumn", + "safeName": "ScoredColumn" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:ScoredColumn", + "default": null, + "inline": null + } + } + } + } + }, + "jsonExample": [ + { + "id": "id", + "score": 1.1, + "values": [ + 1.1, + 1.1 + ], + "metadata": {}, + "indexedData": { + "indices": [ + 1, + 1 + ], + "values": [ + 1.1, + 1.1 + ] + } + }, + { + "id": "id", + "score": 1.1, + "values": [ + 1.1, + 1.1 + ], + "metadata": {}, + "indexedData": { + "indices": [ + 1, + 1 + ], + "values": [ + 1.1, + 1.1 + ] + } + } + ] + } + }, + { + "name": { + "name": { + "originalName": "namespace", + "camelCase": { + "unsafeName": "namespace", + "safeName": "namespace" + }, + "snakeCase": { + "unsafeName": "namespace", + "safeName": "namespace" + }, + "screamingSnakeCase": { + "unsafeName": "NAMESPACE", + "safeName": "NAMESPACE" + }, + "pascalCase": { + "unsafeName": "Namespace", + "safeName": "Namespace" + } + }, + "wireValue": "namespace" + }, + "originalTypeDeclaration": { + "name": { + "originalName": "QueryResult", + "camelCase": { + "unsafeName": "queryResult", + "safeName": "queryResult" + }, + "snakeCase": { + "unsafeName": "query_result", + "safeName": "query_result" + }, + "screamingSnakeCase": { + "unsafeName": "QUERY_RESULT", + "safeName": "QUERY_RESULT" + }, + "pascalCase": { + "unsafeName": "QueryResult", + "safeName": "QueryResult" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:QueryResult" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": { + "shape": { + "type": "primitive", + "primitive": { + "type": "string", + "string": { + "original": "namespace" + } + } + }, + "jsonExample": "namespace" + }, + "valueType": { + "_type": "primitive", + "primitive": { + "v1": "STRING", + "v2": { + "type": "string", + "default": null, + "validation": null + } + } + } + } + }, + "jsonExample": "namespace" + } + } + ] + }, + "typeName": { + "name": { + "originalName": "QueryResult", + "camelCase": { + "unsafeName": "queryResult", + "safeName": "queryResult" + }, + "snakeCase": { + "unsafeName": "query_result", + "safeName": "query_result" + }, + "screamingSnakeCase": { + "unsafeName": "QUERY_RESULT", + "safeName": "QUERY_RESULT" + }, + "pascalCase": { + "unsafeName": "QueryResult", + "safeName": "QueryResult" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:QueryResult" + } + }, + "jsonExample": { + "matches": [ + { + "id": "id", + "score": 1.1, + "values": [ + 1.1, + 1.1 + ], + "metadata": {}, + "indexedData": { + "indices": [ + 1, + 1 + ], + "values": [ + 1.1, + 1.1 + ] + } + }, + { + "id": "id", + "score": 1.1, + "values": [ + 1.1, + 1.1 + ], + "metadata": {}, + "indexedData": { + "indices": [ + 1, + 1 + ], + "values": [ + 1.1, + 1.1 + ] + } + } + ], + "namespace": "namespace" + } + }, + { + "shape": { + "type": "named", + "shape": { + "type": "object", + "properties": [ + { + "name": { + "name": { + "originalName": "matches", + "camelCase": { + "unsafeName": "matches", + "safeName": "matches" + }, + "snakeCase": { + "unsafeName": "matches", + "safeName": "matches" + }, + "screamingSnakeCase": { + "unsafeName": "MATCHES", + "safeName": "MATCHES" + }, + "pascalCase": { + "unsafeName": "Matches", + "safeName": "Matches" + } + }, + "wireValue": "matches" + }, + "originalTypeDeclaration": { + "name": { + "originalName": "QueryResult", + "camelCase": { + "unsafeName": "queryResult", + "safeName": "queryResult" + }, + "snakeCase": { + "unsafeName": "query_result", + "safeName": "query_result" + }, + "screamingSnakeCase": { + "unsafeName": "QUERY_RESULT", + "safeName": "QUERY_RESULT" + }, + "pascalCase": { + "unsafeName": "QueryResult", + "safeName": "QueryResult" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:QueryResult" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": { + "shape": { + "type": "container", + "container": { + "type": "list", + "list": [ + { + "shape": { + "type": "named", + "shape": { + "type": "object", + "properties": [ + { + "name": { + "name": { + "originalName": "id", + "camelCase": { + "unsafeName": "id", + "safeName": "id" + }, + "snakeCase": { + "unsafeName": "id", + "safeName": "id" + }, + "screamingSnakeCase": { + "unsafeName": "ID", + "safeName": "ID" + }, + "pascalCase": { + "unsafeName": "ID", + "safeName": "ID" + } + }, + "wireValue": "id" + }, + "originalTypeDeclaration": { + "name": { + "originalName": "ScoredColumn", + "camelCase": { + "unsafeName": "scoredColumn", + "safeName": "scoredColumn" + }, + "snakeCase": { + "unsafeName": "scored_column", + "safeName": "scored_column" + }, + "screamingSnakeCase": { + "unsafeName": "SCORED_COLUMN", + "safeName": "SCORED_COLUMN" + }, + "pascalCase": { + "unsafeName": "ScoredColumn", + "safeName": "ScoredColumn" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:ScoredColumn" + }, + "value": { + "shape": { + "type": "primitive", + "primitive": { + "type": "string", + "string": { + "original": "id" + } + } + }, + "jsonExample": "id" + } + }, + { + "name": { + "name": { + "originalName": "score", + "camelCase": { + "unsafeName": "score", + "safeName": "score" + }, + "snakeCase": { + "unsafeName": "score", + "safeName": "score" + }, + "screamingSnakeCase": { + "unsafeName": "SCORE", + "safeName": "SCORE" + }, + "pascalCase": { + "unsafeName": "Score", + "safeName": "Score" + } + }, + "wireValue": "score" + }, + "originalTypeDeclaration": { + "name": { + "originalName": "ScoredColumn", + "camelCase": { + "unsafeName": "scoredColumn", + "safeName": "scoredColumn" + }, + "snakeCase": { + "unsafeName": "scored_column", + "safeName": "scored_column" + }, + "screamingSnakeCase": { + "unsafeName": "SCORED_COLUMN", + "safeName": "SCORED_COLUMN" + }, + "pascalCase": { + "unsafeName": "ScoredColumn", + "safeName": "ScoredColumn" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:ScoredColumn" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": { + "shape": { + "type": "primitive", + "primitive": { + "type": "float", + "float": 1.1 + } + }, + "jsonExample": 1.1 + }, + "valueType": { + "_type": "primitive", + "primitive": { + "v1": "FLOAT", + "v2": null + } + } + } + }, + "jsonExample": 1.1 + } + }, + { + "name": { + "name": { + "originalName": "values", + "camelCase": { + "unsafeName": "values", + "safeName": "values" + }, + "snakeCase": { + "unsafeName": "values", + "safeName": "values" + }, + "screamingSnakeCase": { + "unsafeName": "VALUES", + "safeName": "VALUES" + }, + "pascalCase": { + "unsafeName": "Values", + "safeName": "Values" + } + }, + "wireValue": "values" + }, + "originalTypeDeclaration": { + "name": { + "originalName": "ScoredColumn", + "camelCase": { + "unsafeName": "scoredColumn", + "safeName": "scoredColumn" + }, + "snakeCase": { + "unsafeName": "scored_column", + "safeName": "scored_column" + }, + "screamingSnakeCase": { + "unsafeName": "SCORED_COLUMN", + "safeName": "SCORED_COLUMN" + }, + "pascalCase": { + "unsafeName": "ScoredColumn", + "safeName": "ScoredColumn" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:ScoredColumn" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": { + "shape": { + "type": "container", + "container": { + "type": "list", + "list": [ + { + "shape": { + "type": "primitive", + "primitive": { + "type": "float", + "float": 1.1 + } + }, + "jsonExample": 1.1 + }, + { + "shape": { + "type": "primitive", + "primitive": { + "type": "float", + "float": 1.1 + } + }, + "jsonExample": 1.1 + } + ], + "itemType": { + "_type": "primitive", + "primitive": { + "v1": "FLOAT", + "v2": null + } + } + } + }, + "jsonExample": [ + 1.1, + 1.1 + ] + }, + "valueType": { + "_type": "container", + "container": { + "_type": "list", + "list": { + "_type": "primitive", + "primitive": { + "v1": "FLOAT", + "v2": null + } + } + } + } + } + }, + "jsonExample": [ + 1.1, + 1.1 + ] + } + }, + { + "name": { + "name": { + "originalName": "metadata", + "camelCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "snakeCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "screamingSnakeCase": { + "unsafeName": "METADATA", + "safeName": "METADATA" + }, + "pascalCase": { + "unsafeName": "Metadata", + "safeName": "Metadata" + } + }, + "wireValue": "metadata" + }, + "originalTypeDeclaration": { + "name": { + "originalName": "ScoredColumn", + "camelCase": { + "unsafeName": "scoredColumn", + "safeName": "scoredColumn" + }, + "snakeCase": { + "unsafeName": "scored_column", + "safeName": "scored_column" + }, + "screamingSnakeCase": { + "unsafeName": "SCORED_COLUMN", + "safeName": "SCORED_COLUMN" + }, + "pascalCase": { + "unsafeName": "ScoredColumn", + "safeName": "ScoredColumn" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:ScoredColumn" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": { + "shape": { + "type": "named", + "shape": { + "type": "undiscriminatedUnion", + "index": 0, + "singleUnionType": { + "shape": { + "type": "container", + "container": { + "type": "map", + "map": [], + "keyType": { + "_type": "primitive", + "primitive": { + "v1": "STRING", + "v2": { + "type": "string", + "default": null, + "validation": null + } + } + }, + "valueType": { + "_type": "named", + "name": { + "originalName": "MetadataValue", + "camelCase": { + "unsafeName": "metadataValue", + "safeName": "metadataValue" + }, + "snakeCase": { + "unsafeName": "metadata_value", + "safeName": "metadata_value" + }, + "screamingSnakeCase": { + "unsafeName": "METADATA_VALUE", + "safeName": "METADATA_VALUE" + }, + "pascalCase": { + "unsafeName": "MetadataValue", + "safeName": "MetadataValue" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:MetadataValue", + "default": null, + "inline": null + } + } + }, + "jsonExample": {} + } + }, + "typeName": { + "name": { + "originalName": "Metadata", + "camelCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "snakeCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "screamingSnakeCase": { + "unsafeName": "METADATA", + "safeName": "METADATA" + }, + "pascalCase": { + "unsafeName": "Metadata", + "safeName": "Metadata" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:Metadata" + } + }, + "jsonExample": {} + }, + "valueType": { + "_type": "named", + "name": { + "originalName": "Metadata", + "camelCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "snakeCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "screamingSnakeCase": { + "unsafeName": "METADATA", + "safeName": "METADATA" + }, + "pascalCase": { + "unsafeName": "Metadata", + "safeName": "Metadata" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:Metadata", + "default": null, + "inline": null + } + } + }, + "jsonExample": {} + } + }, + { + "name": { + "name": { + "originalName": "indexedData", + "camelCase": { + "unsafeName": "indexedData", + "safeName": "indexedData" + }, + "snakeCase": { + "unsafeName": "indexed_data", + "safeName": "indexed_data" + }, + "screamingSnakeCase": { + "unsafeName": "INDEXED_DATA", + "safeName": "INDEXED_DATA" + }, + "pascalCase": { + "unsafeName": "IndexedData", + "safeName": "IndexedData" + } + }, + "wireValue": "indexedData" + }, + "originalTypeDeclaration": { + "name": { + "originalName": "ScoredColumn", + "camelCase": { + "unsafeName": "scoredColumn", + "safeName": "scoredColumn" + }, + "snakeCase": { + "unsafeName": "scored_column", + "safeName": "scored_column" + }, + "screamingSnakeCase": { + "unsafeName": "SCORED_COLUMN", + "safeName": "SCORED_COLUMN" + }, + "pascalCase": { + "unsafeName": "ScoredColumn", + "safeName": "ScoredColumn" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:ScoredColumn" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": { + "shape": { + "type": "named", + "shape": { + "type": "object", + "properties": [ + { + "name": { + "name": { + "originalName": "indices", + "camelCase": { + "unsafeName": "indices", + "safeName": "indices" + }, + "snakeCase": { + "unsafeName": "indices", + "safeName": "indices" + }, + "screamingSnakeCase": { + "unsafeName": "INDICES", + "safeName": "INDICES" + }, + "pascalCase": { + "unsafeName": "Indices", + "safeName": "Indices" + } + }, + "wireValue": "indices" + }, + "originalTypeDeclaration": { + "name": { + "originalName": "IndexedData", + "camelCase": { + "unsafeName": "indexedData", + "safeName": "indexedData" + }, + "snakeCase": { + "unsafeName": "indexed_data", + "safeName": "indexed_data" + }, + "screamingSnakeCase": { + "unsafeName": "INDEXED_DATA", + "safeName": "INDEXED_DATA" + }, + "pascalCase": { + "unsafeName": "IndexedData", + "safeName": "IndexedData" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:IndexedData" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "list", + "list": [ + { + "shape": { + "type": "primitive", + "primitive": { + "type": "uint", + "uint": 1 + } + }, + "jsonExample": 1 + }, + { + "shape": { + "type": "primitive", + "primitive": { + "type": "uint", + "uint": 1 + } + }, + "jsonExample": 1 + } + ], + "itemType": { + "_type": "primitive", + "primitive": { + "v1": "UINT", + "v2": null + } + } + } + }, + "jsonExample": [ + 1, + 1 + ] + } + }, + { + "name": { + "name": { + "originalName": "values", + "camelCase": { + "unsafeName": "values", + "safeName": "values" + }, + "snakeCase": { + "unsafeName": "values", + "safeName": "values" + }, + "screamingSnakeCase": { + "unsafeName": "VALUES", + "safeName": "VALUES" + }, + "pascalCase": { + "unsafeName": "Values", + "safeName": "Values" + } + }, + "wireValue": "values" + }, + "originalTypeDeclaration": { + "name": { + "originalName": "IndexedData", + "camelCase": { + "unsafeName": "indexedData", + "safeName": "indexedData" + }, + "snakeCase": { + "unsafeName": "indexed_data", + "safeName": "indexed_data" + }, + "screamingSnakeCase": { + "unsafeName": "INDEXED_DATA", + "safeName": "INDEXED_DATA" + }, + "pascalCase": { + "unsafeName": "IndexedData", + "safeName": "IndexedData" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:IndexedData" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "list", + "list": [ + { + "shape": { + "type": "primitive", + "primitive": { + "type": "float", + "float": 1.1 + } + }, + "jsonExample": 1.1 + }, + { + "shape": { + "type": "primitive", + "primitive": { + "type": "float", + "float": 1.1 + } + }, + "jsonExample": 1.1 + } + ], + "itemType": { + "_type": "primitive", + "primitive": { + "v1": "FLOAT", + "v2": null + } + } + } + }, + "jsonExample": [ + 1.1, + 1.1 + ] + } + } + ] + }, + "typeName": { + "name": { + "originalName": "IndexedData", + "camelCase": { + "unsafeName": "indexedData", + "safeName": "indexedData" + }, + "snakeCase": { + "unsafeName": "indexed_data", + "safeName": "indexed_data" + }, + "screamingSnakeCase": { + "unsafeName": "INDEXED_DATA", + "safeName": "INDEXED_DATA" + }, + "pascalCase": { + "unsafeName": "IndexedData", + "safeName": "IndexedData" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:IndexedData" + } + }, + "jsonExample": { + "indices": [ + 1, + 1 + ], + "values": [ + 1.1, + 1.1 + ] + } + }, + "valueType": { + "_type": "named", + "name": { + "originalName": "IndexedData", + "camelCase": { + "unsafeName": "indexedData", + "safeName": "indexedData" + }, + "snakeCase": { + "unsafeName": "indexed_data", + "safeName": "indexed_data" + }, + "screamingSnakeCase": { + "unsafeName": "INDEXED_DATA", + "safeName": "INDEXED_DATA" + }, + "pascalCase": { + "unsafeName": "IndexedData", + "safeName": "IndexedData" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:IndexedData", + "default": null, + "inline": null + } + } + }, + "jsonExample": { + "indices": [ + 1, + 1 + ], + "values": [ + 1.1, + 1.1 + ] + } + } + } + ] + }, + "typeName": { + "name": { + "originalName": "ScoredColumn", + "camelCase": { + "unsafeName": "scoredColumn", + "safeName": "scoredColumn" + }, + "snakeCase": { + "unsafeName": "scored_column", + "safeName": "scored_column" + }, + "screamingSnakeCase": { + "unsafeName": "SCORED_COLUMN", + "safeName": "SCORED_COLUMN" + }, + "pascalCase": { + "unsafeName": "ScoredColumn", + "safeName": "ScoredColumn" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:ScoredColumn" + } + }, + "jsonExample": { + "id": "id", + "score": 1.1, + "values": [ + 1.1, + 1.1 + ], + "metadata": {}, + "indexedData": { + "indices": [ + 1, + 1 + ], + "values": [ + 1.1, + 1.1 + ] + } + } + }, + { + "shape": { + "type": "named", + "shape": { + "type": "object", + "properties": [ + { + "name": { + "name": { + "originalName": "id", + "camelCase": { + "unsafeName": "id", + "safeName": "id" + }, + "snakeCase": { + "unsafeName": "id", + "safeName": "id" + }, + "screamingSnakeCase": { + "unsafeName": "ID", + "safeName": "ID" + }, + "pascalCase": { + "unsafeName": "ID", + "safeName": "ID" + } + }, + "wireValue": "id" + }, + "originalTypeDeclaration": { + "name": { + "originalName": "ScoredColumn", + "camelCase": { + "unsafeName": "scoredColumn", + "safeName": "scoredColumn" + }, + "snakeCase": { + "unsafeName": "scored_column", + "safeName": "scored_column" + }, + "screamingSnakeCase": { + "unsafeName": "SCORED_COLUMN", + "safeName": "SCORED_COLUMN" + }, + "pascalCase": { + "unsafeName": "ScoredColumn", + "safeName": "ScoredColumn" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:ScoredColumn" + }, + "value": { + "shape": { + "type": "primitive", + "primitive": { + "type": "string", + "string": { + "original": "id" + } + } + }, + "jsonExample": "id" + } + }, + { + "name": { + "name": { + "originalName": "score", + "camelCase": { + "unsafeName": "score", + "safeName": "score" + }, + "snakeCase": { + "unsafeName": "score", + "safeName": "score" + }, + "screamingSnakeCase": { + "unsafeName": "SCORE", + "safeName": "SCORE" + }, + "pascalCase": { + "unsafeName": "Score", + "safeName": "Score" + } + }, + "wireValue": "score" + }, + "originalTypeDeclaration": { + "name": { + "originalName": "ScoredColumn", + "camelCase": { + "unsafeName": "scoredColumn", + "safeName": "scoredColumn" + }, + "snakeCase": { + "unsafeName": "scored_column", + "safeName": "scored_column" + }, + "screamingSnakeCase": { + "unsafeName": "SCORED_COLUMN", + "safeName": "SCORED_COLUMN" + }, + "pascalCase": { + "unsafeName": "ScoredColumn", + "safeName": "ScoredColumn" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:ScoredColumn" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": { + "shape": { + "type": "primitive", + "primitive": { + "type": "float", + "float": 1.1 + } + }, + "jsonExample": 1.1 + }, + "valueType": { + "_type": "primitive", + "primitive": { + "v1": "FLOAT", + "v2": null + } + } + } + }, + "jsonExample": 1.1 + } + }, + { + "name": { + "name": { + "originalName": "values", + "camelCase": { + "unsafeName": "values", + "safeName": "values" + }, + "snakeCase": { + "unsafeName": "values", + "safeName": "values" + }, + "screamingSnakeCase": { + "unsafeName": "VALUES", + "safeName": "VALUES" + }, + "pascalCase": { + "unsafeName": "Values", + "safeName": "Values" + } + }, + "wireValue": "values" + }, + "originalTypeDeclaration": { + "name": { + "originalName": "ScoredColumn", + "camelCase": { + "unsafeName": "scoredColumn", + "safeName": "scoredColumn" + }, + "snakeCase": { + "unsafeName": "scored_column", + "safeName": "scored_column" + }, + "screamingSnakeCase": { + "unsafeName": "SCORED_COLUMN", + "safeName": "SCORED_COLUMN" + }, + "pascalCase": { + "unsafeName": "ScoredColumn", + "safeName": "ScoredColumn" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:ScoredColumn" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": { + "shape": { + "type": "container", + "container": { + "type": "list", + "list": [ + { + "shape": { + "type": "primitive", + "primitive": { + "type": "float", + "float": 1.1 + } + }, + "jsonExample": 1.1 + }, + { + "shape": { + "type": "primitive", + "primitive": { + "type": "float", + "float": 1.1 + } + }, + "jsonExample": 1.1 + } + ], + "itemType": { + "_type": "primitive", + "primitive": { + "v1": "FLOAT", + "v2": null + } + } + } + }, + "jsonExample": [ + 1.1, + 1.1 + ] + }, + "valueType": { + "_type": "container", + "container": { + "_type": "list", + "list": { + "_type": "primitive", + "primitive": { + "v1": "FLOAT", + "v2": null + } + } + } + } + } + }, + "jsonExample": [ + 1.1, + 1.1 + ] + } + }, + { + "name": { + "name": { + "originalName": "metadata", + "camelCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "snakeCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "screamingSnakeCase": { + "unsafeName": "METADATA", + "safeName": "METADATA" + }, + "pascalCase": { + "unsafeName": "Metadata", + "safeName": "Metadata" + } + }, + "wireValue": "metadata" + }, + "originalTypeDeclaration": { + "name": { + "originalName": "ScoredColumn", + "camelCase": { + "unsafeName": "scoredColumn", + "safeName": "scoredColumn" + }, + "snakeCase": { + "unsafeName": "scored_column", + "safeName": "scored_column" + }, + "screamingSnakeCase": { + "unsafeName": "SCORED_COLUMN", + "safeName": "SCORED_COLUMN" + }, + "pascalCase": { + "unsafeName": "ScoredColumn", + "safeName": "ScoredColumn" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:ScoredColumn" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": { + "shape": { + "type": "named", + "shape": { + "type": "undiscriminatedUnion", + "index": 0, + "singleUnionType": { + "shape": { + "type": "container", + "container": { + "type": "map", + "map": [], + "keyType": { + "_type": "primitive", + "primitive": { + "v1": "STRING", + "v2": { + "type": "string", + "default": null, + "validation": null + } + } + }, + "valueType": { + "_type": "named", + "name": { + "originalName": "MetadataValue", + "camelCase": { + "unsafeName": "metadataValue", + "safeName": "metadataValue" + }, + "snakeCase": { + "unsafeName": "metadata_value", + "safeName": "metadata_value" + }, + "screamingSnakeCase": { + "unsafeName": "METADATA_VALUE", + "safeName": "METADATA_VALUE" + }, + "pascalCase": { + "unsafeName": "MetadataValue", + "safeName": "MetadataValue" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:MetadataValue", + "default": null, + "inline": null + } + } + }, + "jsonExample": {} + } + }, + "typeName": { + "name": { + "originalName": "Metadata", + "camelCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "snakeCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "screamingSnakeCase": { + "unsafeName": "METADATA", + "safeName": "METADATA" + }, + "pascalCase": { + "unsafeName": "Metadata", + "safeName": "Metadata" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:Metadata" + } + }, + "jsonExample": {} + }, + "valueType": { + "_type": "named", + "name": { + "originalName": "Metadata", + "camelCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "snakeCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "screamingSnakeCase": { + "unsafeName": "METADATA", + "safeName": "METADATA" + }, + "pascalCase": { + "unsafeName": "Metadata", + "safeName": "Metadata" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:Metadata", + "default": null, + "inline": null + } + } + }, + "jsonExample": {} + } + }, + { + "name": { + "name": { + "originalName": "indexedData", + "camelCase": { + "unsafeName": "indexedData", + "safeName": "indexedData" + }, + "snakeCase": { + "unsafeName": "indexed_data", + "safeName": "indexed_data" + }, + "screamingSnakeCase": { + "unsafeName": "INDEXED_DATA", + "safeName": "INDEXED_DATA" + }, + "pascalCase": { + "unsafeName": "IndexedData", + "safeName": "IndexedData" + } + }, + "wireValue": "indexedData" + }, + "originalTypeDeclaration": { + "name": { + "originalName": "ScoredColumn", + "camelCase": { + "unsafeName": "scoredColumn", + "safeName": "scoredColumn" + }, + "snakeCase": { + "unsafeName": "scored_column", + "safeName": "scored_column" + }, + "screamingSnakeCase": { + "unsafeName": "SCORED_COLUMN", + "safeName": "SCORED_COLUMN" + }, + "pascalCase": { + "unsafeName": "ScoredColumn", + "safeName": "ScoredColumn" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:ScoredColumn" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": { + "shape": { + "type": "named", + "shape": { + "type": "object", + "properties": [ + { + "name": { + "name": { + "originalName": "indices", + "camelCase": { + "unsafeName": "indices", + "safeName": "indices" + }, + "snakeCase": { + "unsafeName": "indices", + "safeName": "indices" + }, + "screamingSnakeCase": { + "unsafeName": "INDICES", + "safeName": "INDICES" + }, + "pascalCase": { + "unsafeName": "Indices", + "safeName": "Indices" + } + }, + "wireValue": "indices" + }, + "originalTypeDeclaration": { + "name": { + "originalName": "IndexedData", + "camelCase": { + "unsafeName": "indexedData", + "safeName": "indexedData" + }, + "snakeCase": { + "unsafeName": "indexed_data", + "safeName": "indexed_data" + }, + "screamingSnakeCase": { + "unsafeName": "INDEXED_DATA", + "safeName": "INDEXED_DATA" + }, + "pascalCase": { + "unsafeName": "IndexedData", + "safeName": "IndexedData" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:IndexedData" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "list", + "list": [ + { + "shape": { + "type": "primitive", + "primitive": { + "type": "uint", + "uint": 1 + } + }, + "jsonExample": 1 + }, + { + "shape": { + "type": "primitive", + "primitive": { + "type": "uint", + "uint": 1 + } + }, + "jsonExample": 1 + } + ], + "itemType": { + "_type": "primitive", + "primitive": { + "v1": "UINT", + "v2": null + } + } + } + }, + "jsonExample": [ + 1, + 1 + ] + } + }, + { + "name": { + "name": { + "originalName": "values", + "camelCase": { + "unsafeName": "values", + "safeName": "values" + }, + "snakeCase": { + "unsafeName": "values", + "safeName": "values" + }, + "screamingSnakeCase": { + "unsafeName": "VALUES", + "safeName": "VALUES" + }, + "pascalCase": { + "unsafeName": "Values", + "safeName": "Values" + } + }, + "wireValue": "values" + }, + "originalTypeDeclaration": { + "name": { + "originalName": "IndexedData", + "camelCase": { + "unsafeName": "indexedData", + "safeName": "indexedData" + }, + "snakeCase": { + "unsafeName": "indexed_data", + "safeName": "indexed_data" + }, + "screamingSnakeCase": { + "unsafeName": "INDEXED_DATA", + "safeName": "INDEXED_DATA" + }, + "pascalCase": { + "unsafeName": "IndexedData", + "safeName": "IndexedData" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:IndexedData" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "list", + "list": [ + { + "shape": { + "type": "primitive", + "primitive": { + "type": "float", + "float": 1.1 + } + }, + "jsonExample": 1.1 + }, + { + "shape": { + "type": "primitive", + "primitive": { + "type": "float", + "float": 1.1 + } + }, + "jsonExample": 1.1 + } + ], + "itemType": { + "_type": "primitive", + "primitive": { + "v1": "FLOAT", + "v2": null + } + } + } + }, + "jsonExample": [ + 1.1, + 1.1 + ] + } + } + ] + }, + "typeName": { + "name": { + "originalName": "IndexedData", + "camelCase": { + "unsafeName": "indexedData", + "safeName": "indexedData" + }, + "snakeCase": { + "unsafeName": "indexed_data", + "safeName": "indexed_data" + }, + "screamingSnakeCase": { + "unsafeName": "INDEXED_DATA", + "safeName": "INDEXED_DATA" + }, + "pascalCase": { + "unsafeName": "IndexedData", + "safeName": "IndexedData" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:IndexedData" + } + }, + "jsonExample": { + "indices": [ + 1, + 1 + ], + "values": [ + 1.1, + 1.1 + ] + } + }, + "valueType": { + "_type": "named", + "name": { + "originalName": "IndexedData", + "camelCase": { + "unsafeName": "indexedData", + "safeName": "indexedData" + }, + "snakeCase": { + "unsafeName": "indexed_data", + "safeName": "indexed_data" + }, + "screamingSnakeCase": { + "unsafeName": "INDEXED_DATA", + "safeName": "INDEXED_DATA" + }, + "pascalCase": { + "unsafeName": "IndexedData", + "safeName": "IndexedData" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:IndexedData", + "default": null, + "inline": null + } + } + }, + "jsonExample": { + "indices": [ + 1, + 1 + ], + "values": [ + 1.1, + 1.1 + ] + } + } + } + ] + }, + "typeName": { + "name": { + "originalName": "ScoredColumn", + "camelCase": { + "unsafeName": "scoredColumn", + "safeName": "scoredColumn" + }, + "snakeCase": { + "unsafeName": "scored_column", + "safeName": "scored_column" + }, + "screamingSnakeCase": { + "unsafeName": "SCORED_COLUMN", + "safeName": "SCORED_COLUMN" + }, + "pascalCase": { + "unsafeName": "ScoredColumn", + "safeName": "ScoredColumn" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:ScoredColumn" + } + }, + "jsonExample": { + "id": "id", + "score": 1.1, + "values": [ + 1.1, + 1.1 + ], + "metadata": {}, + "indexedData": { + "indices": [ + 1, + 1 + ], + "values": [ + 1.1, + 1.1 + ] + } + } + } + ], + "itemType": { + "_type": "named", + "name": { + "originalName": "ScoredColumn", + "camelCase": { + "unsafeName": "scoredColumn", + "safeName": "scoredColumn" + }, + "snakeCase": { + "unsafeName": "scored_column", + "safeName": "scored_column" + }, + "screamingSnakeCase": { + "unsafeName": "SCORED_COLUMN", + "safeName": "SCORED_COLUMN" + }, + "pascalCase": { + "unsafeName": "ScoredColumn", + "safeName": "ScoredColumn" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:ScoredColumn", + "default": null, + "inline": null + } + } + }, + "jsonExample": [ + { + "id": "id", + "score": 1.1, + "values": [ + 1.1, + 1.1 + ], + "metadata": {}, + "indexedData": { + "indices": [ + 1, + 1 + ], + "values": [ + 1.1, + 1.1 + ] + } + }, + { + "id": "id", + "score": 1.1, + "values": [ + 1.1, + 1.1 + ], + "metadata": {}, + "indexedData": { + "indices": [ + 1, + 1 + ], + "values": [ + 1.1, + 1.1 + ] + } + } + ] + }, + "valueType": { + "_type": "container", + "container": { + "_type": "list", + "list": { + "_type": "named", + "name": { + "originalName": "ScoredColumn", + "camelCase": { + "unsafeName": "scoredColumn", + "safeName": "scoredColumn" + }, + "snakeCase": { + "unsafeName": "scored_column", + "safeName": "scored_column" + }, + "screamingSnakeCase": { + "unsafeName": "SCORED_COLUMN", + "safeName": "SCORED_COLUMN" + }, + "pascalCase": { + "unsafeName": "ScoredColumn", + "safeName": "ScoredColumn" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:ScoredColumn", + "default": null, + "inline": null + } + } + } + } + }, + "jsonExample": [ + { + "id": "id", + "score": 1.1, + "values": [ + 1.1, + 1.1 + ], + "metadata": {}, + "indexedData": { + "indices": [ + 1, + 1 + ], + "values": [ + 1.1, + 1.1 + ] + } + }, + { + "id": "id", + "score": 1.1, + "values": [ + 1.1, + 1.1 + ], + "metadata": {}, + "indexedData": { + "indices": [ + 1, + 1 + ], + "values": [ + 1.1, + 1.1 + ] + } + } + ] + } + }, + { + "name": { + "name": { + "originalName": "namespace", + "camelCase": { + "unsafeName": "namespace", + "safeName": "namespace" + }, + "snakeCase": { + "unsafeName": "namespace", + "safeName": "namespace" + }, + "screamingSnakeCase": { + "unsafeName": "NAMESPACE", + "safeName": "NAMESPACE" + }, + "pascalCase": { + "unsafeName": "Namespace", + "safeName": "Namespace" + } + }, + "wireValue": "namespace" + }, + "originalTypeDeclaration": { + "name": { + "originalName": "QueryResult", + "camelCase": { + "unsafeName": "queryResult", + "safeName": "queryResult" + }, + "snakeCase": { + "unsafeName": "query_result", + "safeName": "query_result" + }, + "screamingSnakeCase": { + "unsafeName": "QUERY_RESULT", + "safeName": "QUERY_RESULT" + }, + "pascalCase": { + "unsafeName": "QueryResult", + "safeName": "QueryResult" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:QueryResult" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": { + "shape": { + "type": "primitive", + "primitive": { + "type": "string", + "string": { + "original": "namespace" + } + } + }, + "jsonExample": "namespace" + }, + "valueType": { + "_type": "primitive", + "primitive": { + "v1": "STRING", + "v2": { + "type": "string", + "default": null, + "validation": null + } + } + } + } + }, + "jsonExample": "namespace" + } + } + ] + }, + "typeName": { + "name": { + "originalName": "QueryResult", + "camelCase": { + "unsafeName": "queryResult", + "safeName": "queryResult" + }, + "snakeCase": { + "unsafeName": "query_result", + "safeName": "query_result" + }, + "screamingSnakeCase": { + "unsafeName": "QUERY_RESULT", + "safeName": "QUERY_RESULT" + }, + "pascalCase": { + "unsafeName": "QueryResult", + "safeName": "QueryResult" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:QueryResult" + } + }, + "jsonExample": { + "matches": [ + { + "id": "id", + "score": 1.1, + "values": [ + 1.1, + 1.1 + ], + "metadata": {}, + "indexedData": { + "indices": [ + 1, + 1 + ], + "values": [ + 1.1, + 1.1 + ] + } + }, + { + "id": "id", + "score": 1.1, + "values": [ + 1.1, + 1.1 + ], + "metadata": {}, + "indexedData": { + "indices": [ + 1, + 1 + ], + "values": [ + 1.1, + 1.1 + ] + } + } + ], + "namespace": "namespace" + } + } + ], + "itemType": { + "_type": "named", + "name": { + "originalName": "QueryResult", + "camelCase": { + "unsafeName": "queryResult", + "safeName": "queryResult" + }, + "snakeCase": { + "unsafeName": "query_result", + "safeName": "query_result" + }, + "screamingSnakeCase": { + "unsafeName": "QUERY_RESULT", + "safeName": "QUERY_RESULT" + }, + "pascalCase": { + "unsafeName": "QueryResult", + "safeName": "QueryResult" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:QueryResult", + "default": null, + "inline": null + } + } + }, + "jsonExample": [ + { + "matches": [ + { + "id": "id", + "score": 1.1, + "values": [ + 1.1, + 1.1 + ], + "metadata": {}, + "indexedData": { + "indices": [ + 1, + 1 + ], + "values": [ + 1.1, + 1.1 + ] + } + }, + { + "id": "id", + "score": 1.1, + "values": [ + 1.1, + 1.1 + ], + "metadata": {}, + "indexedData": { + "indices": [ + 1, + 1 + ], + "values": [ + 1.1, + 1.1 + ] + } + } + ], + "namespace": "namespace" + }, + { + "matches": [ + { + "id": "id", + "score": 1.1, + "values": [ + 1.1, + 1.1 + ], + "metadata": {}, + "indexedData": { + "indices": [ + 1, + 1 + ], + "values": [ + 1.1, + 1.1 + ] + } + }, + { + "id": "id", + "score": 1.1, + "values": [ + 1.1, + 1.1 + ], + "metadata": {}, + "indexedData": { + "indices": [ + 1, + 1 + ], + "values": [ + 1.1, + 1.1 + ] + } + } + ], + "namespace": "namespace" + } + ] + }, + "valueType": { + "_type": "container", + "container": { + "_type": "list", + "list": { + "_type": "named", + "name": { + "originalName": "QueryResult", + "camelCase": { + "unsafeName": "queryResult", + "safeName": "queryResult" + }, + "snakeCase": { + "unsafeName": "query_result", + "safeName": "query_result" + }, + "screamingSnakeCase": { + "unsafeName": "QUERY_RESULT", + "safeName": "QUERY_RESULT" + }, + "pascalCase": { + "unsafeName": "QueryResult", + "safeName": "QueryResult" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:QueryResult", + "default": null, + "inline": null + } + } + } + } + }, + "jsonExample": [ + { + "matches": [ + { + "id": "id", + "score": 1.1, + "values": [ + 1.1, + 1.1 + ], + "metadata": {}, + "indexedData": { + "indices": [ + 1, + 1 + ], + "values": [ + 1.1, + 1.1 + ] + } + }, + { + "id": "id", + "score": 1.1, + "values": [ + 1.1, + 1.1 + ], + "metadata": {}, + "indexedData": { + "indices": [ + 1, + 1 + ], + "values": [ + 1.1, + 1.1 + ] + } + } + ], + "namespace": "namespace" + }, + { + "matches": [ + { + "id": "id", + "score": 1.1, + "values": [ + 1.1, + 1.1 + ], + "metadata": {}, + "indexedData": { + "indices": [ + 1, + 1 + ], + "values": [ + 1.1, + 1.1 + ] + } + }, + { + "id": "id", + "score": 1.1, + "values": [ + 1.1, + 1.1 + ], + "metadata": {}, + "indexedData": { + "indices": [ + 1, + 1 + ], + "values": [ + 1.1, + 1.1 + ] + } + } + ], + "namespace": "namespace" + } + ] + } + }, + { + "name": { + "name": { + "originalName": "matches", + "camelCase": { + "unsafeName": "matches", + "safeName": "matches" + }, + "snakeCase": { + "unsafeName": "matches", + "safeName": "matches" + }, + "screamingSnakeCase": { + "unsafeName": "MATCHES", + "safeName": "MATCHES" + }, + "pascalCase": { + "unsafeName": "Matches", + "safeName": "Matches" + } + }, + "wireValue": "matches" + }, + "originalTypeDeclaration": { + "name": { + "originalName": "QueryResponse", + "camelCase": { + "unsafeName": "queryResponse", + "safeName": "queryResponse" + }, + "snakeCase": { + "unsafeName": "query_response", + "safeName": "query_response" + }, + "screamingSnakeCase": { + "unsafeName": "QUERY_RESPONSE", + "safeName": "QUERY_RESPONSE" + }, + "pascalCase": { + "unsafeName": "QueryResponse", + "safeName": "QueryResponse" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:QueryResponse" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": { + "shape": { + "type": "container", + "container": { + "type": "list", + "list": [ + { + "shape": { + "type": "named", + "shape": { + "type": "object", + "properties": [ + { + "name": { + "name": { + "originalName": "id", + "camelCase": { + "unsafeName": "id", + "safeName": "id" + }, + "snakeCase": { + "unsafeName": "id", + "safeName": "id" + }, + "screamingSnakeCase": { + "unsafeName": "ID", + "safeName": "ID" + }, + "pascalCase": { + "unsafeName": "ID", + "safeName": "ID" + } + }, + "wireValue": "id" + }, + "originalTypeDeclaration": { + "name": { + "originalName": "ScoredColumn", + "camelCase": { + "unsafeName": "scoredColumn", + "safeName": "scoredColumn" + }, + "snakeCase": { + "unsafeName": "scored_column", + "safeName": "scored_column" + }, + "screamingSnakeCase": { + "unsafeName": "SCORED_COLUMN", + "safeName": "SCORED_COLUMN" + }, + "pascalCase": { + "unsafeName": "ScoredColumn", + "safeName": "ScoredColumn" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:ScoredColumn" + }, + "value": { + "shape": { + "type": "primitive", + "primitive": { + "type": "string", + "string": { + "original": "id" + } + } + }, + "jsonExample": "id" + } + }, + { + "name": { + "name": { + "originalName": "score", + "camelCase": { + "unsafeName": "score", + "safeName": "score" + }, + "snakeCase": { + "unsafeName": "score", + "safeName": "score" + }, + "screamingSnakeCase": { + "unsafeName": "SCORE", + "safeName": "SCORE" + }, + "pascalCase": { + "unsafeName": "Score", + "safeName": "Score" + } + }, + "wireValue": "score" + }, + "originalTypeDeclaration": { + "name": { + "originalName": "ScoredColumn", + "camelCase": { + "unsafeName": "scoredColumn", + "safeName": "scoredColumn" + }, + "snakeCase": { + "unsafeName": "scored_column", + "safeName": "scored_column" + }, + "screamingSnakeCase": { + "unsafeName": "SCORED_COLUMN", + "safeName": "SCORED_COLUMN" + }, + "pascalCase": { + "unsafeName": "ScoredColumn", + "safeName": "ScoredColumn" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:ScoredColumn" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": { + "shape": { + "type": "primitive", + "primitive": { + "type": "float", + "float": 1.1 + } + }, + "jsonExample": 1.1 + }, + "valueType": { + "_type": "primitive", + "primitive": { + "v1": "FLOAT", + "v2": null + } + } + } + }, + "jsonExample": 1.1 + } + }, + { + "name": { + "name": { + "originalName": "values", + "camelCase": { + "unsafeName": "values", + "safeName": "values" + }, + "snakeCase": { + "unsafeName": "values", + "safeName": "values" + }, + "screamingSnakeCase": { + "unsafeName": "VALUES", + "safeName": "VALUES" + }, + "pascalCase": { + "unsafeName": "Values", + "safeName": "Values" + } + }, + "wireValue": "values" + }, + "originalTypeDeclaration": { + "name": { + "originalName": "ScoredColumn", + "camelCase": { + "unsafeName": "scoredColumn", + "safeName": "scoredColumn" + }, + "snakeCase": { + "unsafeName": "scored_column", + "safeName": "scored_column" + }, + "screamingSnakeCase": { + "unsafeName": "SCORED_COLUMN", + "safeName": "SCORED_COLUMN" + }, + "pascalCase": { + "unsafeName": "ScoredColumn", + "safeName": "ScoredColumn" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:ScoredColumn" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": { + "shape": { + "type": "container", + "container": { + "type": "list", + "list": [ + { + "shape": { + "type": "primitive", + "primitive": { + "type": "float", + "float": 1.1 + } + }, + "jsonExample": 1.1 + }, + { + "shape": { + "type": "primitive", + "primitive": { + "type": "float", + "float": 1.1 + } + }, + "jsonExample": 1.1 + } + ], + "itemType": { + "_type": "primitive", + "primitive": { + "v1": "FLOAT", + "v2": null + } + } + } + }, + "jsonExample": [ + 1.1, + 1.1 + ] + }, + "valueType": { + "_type": "container", + "container": { + "_type": "list", + "list": { + "_type": "primitive", + "primitive": { + "v1": "FLOAT", + "v2": null + } + } + } + } + } + }, + "jsonExample": [ + 1.1, + 1.1 + ] + } + }, + { + "name": { + "name": { + "originalName": "metadata", + "camelCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "snakeCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "screamingSnakeCase": { + "unsafeName": "METADATA", + "safeName": "METADATA" + }, + "pascalCase": { + "unsafeName": "Metadata", + "safeName": "Metadata" + } + }, + "wireValue": "metadata" + }, + "originalTypeDeclaration": { + "name": { + "originalName": "ScoredColumn", + "camelCase": { + "unsafeName": "scoredColumn", + "safeName": "scoredColumn" + }, + "snakeCase": { + "unsafeName": "scored_column", + "safeName": "scored_column" + }, + "screamingSnakeCase": { + "unsafeName": "SCORED_COLUMN", + "safeName": "SCORED_COLUMN" + }, + "pascalCase": { + "unsafeName": "ScoredColumn", + "safeName": "ScoredColumn" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:ScoredColumn" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": { + "shape": { + "type": "named", + "shape": { + "type": "undiscriminatedUnion", + "index": 0, + "singleUnionType": { + "shape": { + "type": "container", + "container": { + "type": "map", + "map": [ + { + "key": { + "shape": { + "type": "primitive", + "primitive": { + "type": "string", + "string": { + "original": "metadata" + } + } + }, + "jsonExample": "metadata" + }, + "value": { + "shape": { + "type": "named", + "shape": { + "type": "undiscriminatedUnion", + "index": 0, + "singleUnionType": { + "shape": { + "type": "primitive", + "primitive": { + "type": "double", + "double": 1.1 + } + }, + "jsonExample": 1.1 + } + }, + "typeName": { + "name": { + "originalName": "MetadataValue", + "camelCase": { + "unsafeName": "metadataValue", + "safeName": "metadataValue" + }, + "snakeCase": { + "unsafeName": "metadata_value", + "safeName": "metadata_value" + }, + "screamingSnakeCase": { + "unsafeName": "METADATA_VALUE", + "safeName": "METADATA_VALUE" + }, + "pascalCase": { + "unsafeName": "MetadataValue", + "safeName": "MetadataValue" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:MetadataValue" + } + }, + "jsonExample": 1.1 + } + } + ], + "keyType": { + "_type": "primitive", + "primitive": { + "v1": "STRING", + "v2": { + "type": "string", + "default": null, + "validation": null + } + } + }, + "valueType": { + "_type": "named", + "name": { + "originalName": "MetadataValue", + "camelCase": { + "unsafeName": "metadataValue", + "safeName": "metadataValue" + }, + "snakeCase": { + "unsafeName": "metadata_value", + "safeName": "metadata_value" + }, + "screamingSnakeCase": { + "unsafeName": "METADATA_VALUE", + "safeName": "METADATA_VALUE" + }, + "pascalCase": { + "unsafeName": "MetadataValue", + "safeName": "MetadataValue" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:MetadataValue", + "default": null, + "inline": null + } + } + }, + "jsonExample": { + "metadata": 1.1 + } + } + }, + "typeName": { + "name": { + "originalName": "Metadata", + "camelCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "snakeCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "screamingSnakeCase": { + "unsafeName": "METADATA", + "safeName": "METADATA" + }, + "pascalCase": { + "unsafeName": "Metadata", + "safeName": "Metadata" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:Metadata" + } + }, + "jsonExample": { + "metadata": 1.1 + } + }, + "valueType": { + "_type": "named", + "name": { + "originalName": "Metadata", + "camelCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "snakeCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "screamingSnakeCase": { + "unsafeName": "METADATA", + "safeName": "METADATA" + }, + "pascalCase": { + "unsafeName": "Metadata", + "safeName": "Metadata" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:Metadata", + "default": null, + "inline": null + } + } + }, + "jsonExample": { + "metadata": 1.1 + } + } + }, + { + "name": { + "name": { + "originalName": "indexedData", + "camelCase": { + "unsafeName": "indexedData", + "safeName": "indexedData" + }, + "snakeCase": { + "unsafeName": "indexed_data", + "safeName": "indexed_data" + }, + "screamingSnakeCase": { + "unsafeName": "INDEXED_DATA", + "safeName": "INDEXED_DATA" + }, + "pascalCase": { + "unsafeName": "IndexedData", + "safeName": "IndexedData" + } + }, + "wireValue": "indexedData" + }, + "originalTypeDeclaration": { + "name": { + "originalName": "ScoredColumn", + "camelCase": { + "unsafeName": "scoredColumn", + "safeName": "scoredColumn" + }, + "snakeCase": { + "unsafeName": "scored_column", + "safeName": "scored_column" + }, + "screamingSnakeCase": { + "unsafeName": "SCORED_COLUMN", + "safeName": "SCORED_COLUMN" + }, + "pascalCase": { + "unsafeName": "ScoredColumn", + "safeName": "ScoredColumn" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:ScoredColumn" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": { + "shape": { + "type": "named", + "shape": { + "type": "object", + "properties": [ + { + "name": { + "name": { + "originalName": "indices", + "camelCase": { + "unsafeName": "indices", + "safeName": "indices" + }, + "snakeCase": { + "unsafeName": "indices", + "safeName": "indices" + }, + "screamingSnakeCase": { + "unsafeName": "INDICES", + "safeName": "INDICES" + }, + "pascalCase": { + "unsafeName": "Indices", + "safeName": "Indices" + } + }, + "wireValue": "indices" + }, + "originalTypeDeclaration": { + "name": { + "originalName": "IndexedData", + "camelCase": { + "unsafeName": "indexedData", + "safeName": "indexedData" + }, + "snakeCase": { + "unsafeName": "indexed_data", + "safeName": "indexed_data" + }, + "screamingSnakeCase": { + "unsafeName": "INDEXED_DATA", + "safeName": "INDEXED_DATA" + }, + "pascalCase": { + "unsafeName": "IndexedData", + "safeName": "IndexedData" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:IndexedData" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "list", + "list": [ + { + "shape": { + "type": "primitive", + "primitive": { + "type": "uint", + "uint": 1 + } + }, + "jsonExample": 1 + }, + { + "shape": { + "type": "primitive", + "primitive": { + "type": "uint", + "uint": 1 + } + }, + "jsonExample": 1 + } + ], + "itemType": { + "_type": "primitive", + "primitive": { + "v1": "UINT", + "v2": null + } + } + } + }, + "jsonExample": [ + 1, + 1 + ] + } + }, + { + "name": { + "name": { + "originalName": "values", + "camelCase": { + "unsafeName": "values", + "safeName": "values" + }, + "snakeCase": { + "unsafeName": "values", + "safeName": "values" + }, + "screamingSnakeCase": { + "unsafeName": "VALUES", + "safeName": "VALUES" + }, + "pascalCase": { + "unsafeName": "Values", + "safeName": "Values" + } + }, + "wireValue": "values" + }, + "originalTypeDeclaration": { + "name": { + "originalName": "IndexedData", + "camelCase": { + "unsafeName": "indexedData", + "safeName": "indexedData" + }, + "snakeCase": { + "unsafeName": "indexed_data", + "safeName": "indexed_data" + }, + "screamingSnakeCase": { + "unsafeName": "INDEXED_DATA", + "safeName": "INDEXED_DATA" + }, + "pascalCase": { + "unsafeName": "IndexedData", + "safeName": "IndexedData" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:IndexedData" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "list", + "list": [ + { + "shape": { + "type": "primitive", + "primitive": { + "type": "float", + "float": 1.1 + } + }, + "jsonExample": 1.1 + }, + { + "shape": { + "type": "primitive", + "primitive": { + "type": "float", + "float": 1.1 + } + }, + "jsonExample": 1.1 + } + ], + "itemType": { + "_type": "primitive", + "primitive": { + "v1": "FLOAT", + "v2": null + } + } + } + }, + "jsonExample": [ + 1.1, + 1.1 + ] + } + } + ] + }, + "typeName": { + "name": { + "originalName": "IndexedData", + "camelCase": { + "unsafeName": "indexedData", + "safeName": "indexedData" + }, + "snakeCase": { + "unsafeName": "indexed_data", + "safeName": "indexed_data" + }, + "screamingSnakeCase": { + "unsafeName": "INDEXED_DATA", + "safeName": "INDEXED_DATA" + }, + "pascalCase": { + "unsafeName": "IndexedData", + "safeName": "IndexedData" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:IndexedData" + } + }, + "jsonExample": { + "indices": [ + 1, + 1 + ], + "values": [ + 1.1, + 1.1 + ] + } + }, + "valueType": { + "_type": "named", + "name": { + "originalName": "IndexedData", + "camelCase": { + "unsafeName": "indexedData", + "safeName": "indexedData" + }, + "snakeCase": { + "unsafeName": "indexed_data", + "safeName": "indexed_data" + }, + "screamingSnakeCase": { + "unsafeName": "INDEXED_DATA", + "safeName": "INDEXED_DATA" + }, + "pascalCase": { + "unsafeName": "IndexedData", + "safeName": "IndexedData" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:IndexedData", + "default": null, + "inline": null + } + } + }, + "jsonExample": { + "indices": [ + 1, + 1 + ], + "values": [ + 1.1, + 1.1 + ] + } + } + } + ] + }, + "typeName": { + "name": { + "originalName": "ScoredColumn", + "camelCase": { + "unsafeName": "scoredColumn", + "safeName": "scoredColumn" + }, + "snakeCase": { + "unsafeName": "scored_column", + "safeName": "scored_column" + }, + "screamingSnakeCase": { + "unsafeName": "SCORED_COLUMN", + "safeName": "SCORED_COLUMN" + }, + "pascalCase": { + "unsafeName": "ScoredColumn", + "safeName": "ScoredColumn" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:ScoredColumn" + } + }, + "jsonExample": { + "id": "id", + "score": 1.1, + "values": [ + 1.1, + 1.1 + ], + "metadata": { + "metadata": 1.1 + }, + "indexedData": { + "indices": [ + 1, + 1 + ], + "values": [ + 1.1, + 1.1 + ] + } + } + }, + { + "shape": { + "type": "named", + "shape": { + "type": "object", + "properties": [ + { + "name": { + "name": { + "originalName": "id", + "camelCase": { + "unsafeName": "id", + "safeName": "id" + }, + "snakeCase": { + "unsafeName": "id", + "safeName": "id" + }, + "screamingSnakeCase": { + "unsafeName": "ID", + "safeName": "ID" + }, + "pascalCase": { + "unsafeName": "ID", + "safeName": "ID" + } + }, + "wireValue": "id" + }, + "originalTypeDeclaration": { + "name": { + "originalName": "ScoredColumn", + "camelCase": { + "unsafeName": "scoredColumn", + "safeName": "scoredColumn" + }, + "snakeCase": { + "unsafeName": "scored_column", + "safeName": "scored_column" + }, + "screamingSnakeCase": { + "unsafeName": "SCORED_COLUMN", + "safeName": "SCORED_COLUMN" + }, + "pascalCase": { + "unsafeName": "ScoredColumn", + "safeName": "ScoredColumn" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:ScoredColumn" + }, + "value": { + "shape": { + "type": "primitive", + "primitive": { + "type": "string", + "string": { + "original": "id" + } + } + }, + "jsonExample": "id" + } + }, + { + "name": { + "name": { + "originalName": "score", + "camelCase": { + "unsafeName": "score", + "safeName": "score" + }, + "snakeCase": { + "unsafeName": "score", + "safeName": "score" + }, + "screamingSnakeCase": { + "unsafeName": "SCORE", + "safeName": "SCORE" + }, + "pascalCase": { + "unsafeName": "Score", + "safeName": "Score" + } + }, + "wireValue": "score" + }, + "originalTypeDeclaration": { + "name": { + "originalName": "ScoredColumn", + "camelCase": { + "unsafeName": "scoredColumn", + "safeName": "scoredColumn" + }, + "snakeCase": { + "unsafeName": "scored_column", + "safeName": "scored_column" + }, + "screamingSnakeCase": { + "unsafeName": "SCORED_COLUMN", + "safeName": "SCORED_COLUMN" + }, + "pascalCase": { + "unsafeName": "ScoredColumn", + "safeName": "ScoredColumn" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:ScoredColumn" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": { + "shape": { + "type": "primitive", + "primitive": { + "type": "float", + "float": 1.1 + } + }, + "jsonExample": 1.1 + }, + "valueType": { + "_type": "primitive", + "primitive": { + "v1": "FLOAT", + "v2": null + } + } + } + }, + "jsonExample": 1.1 + } + }, + { + "name": { + "name": { + "originalName": "values", + "camelCase": { + "unsafeName": "values", + "safeName": "values" + }, + "snakeCase": { + "unsafeName": "values", + "safeName": "values" + }, + "screamingSnakeCase": { + "unsafeName": "VALUES", + "safeName": "VALUES" + }, + "pascalCase": { + "unsafeName": "Values", + "safeName": "Values" + } + }, + "wireValue": "values" + }, + "originalTypeDeclaration": { + "name": { + "originalName": "ScoredColumn", + "camelCase": { + "unsafeName": "scoredColumn", + "safeName": "scoredColumn" + }, + "snakeCase": { + "unsafeName": "scored_column", + "safeName": "scored_column" + }, + "screamingSnakeCase": { + "unsafeName": "SCORED_COLUMN", + "safeName": "SCORED_COLUMN" + }, + "pascalCase": { + "unsafeName": "ScoredColumn", + "safeName": "ScoredColumn" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:ScoredColumn" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": { + "shape": { + "type": "container", + "container": { + "type": "list", + "list": [ + { + "shape": { + "type": "primitive", + "primitive": { + "type": "float", + "float": 1.1 + } + }, + "jsonExample": 1.1 + }, + { + "shape": { + "type": "primitive", + "primitive": { + "type": "float", + "float": 1.1 + } + }, + "jsonExample": 1.1 + } + ], + "itemType": { + "_type": "primitive", + "primitive": { + "v1": "FLOAT", + "v2": null + } + } + } + }, + "jsonExample": [ + 1.1, + 1.1 + ] + }, + "valueType": { + "_type": "container", + "container": { + "_type": "list", + "list": { + "_type": "primitive", + "primitive": { + "v1": "FLOAT", + "v2": null + } + } + } + } + } + }, + "jsonExample": [ + 1.1, + 1.1 + ] + } + }, + { + "name": { + "name": { + "originalName": "metadata", + "camelCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "snakeCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "screamingSnakeCase": { + "unsafeName": "METADATA", + "safeName": "METADATA" + }, + "pascalCase": { + "unsafeName": "Metadata", + "safeName": "Metadata" + } + }, + "wireValue": "metadata" + }, + "originalTypeDeclaration": { + "name": { + "originalName": "ScoredColumn", + "camelCase": { + "unsafeName": "scoredColumn", + "safeName": "scoredColumn" + }, + "snakeCase": { + "unsafeName": "scored_column", + "safeName": "scored_column" + }, + "screamingSnakeCase": { + "unsafeName": "SCORED_COLUMN", + "safeName": "SCORED_COLUMN" + }, + "pascalCase": { + "unsafeName": "ScoredColumn", + "safeName": "ScoredColumn" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:ScoredColumn" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": { + "shape": { + "type": "named", + "shape": { + "type": "undiscriminatedUnion", + "index": 0, + "singleUnionType": { + "shape": { + "type": "container", + "container": { + "type": "map", + "map": [ + { + "key": { + "shape": { + "type": "primitive", + "primitive": { + "type": "string", + "string": { + "original": "metadata" + } + } + }, + "jsonExample": "metadata" + }, + "value": { + "shape": { + "type": "named", + "shape": { + "type": "undiscriminatedUnion", + "index": 0, + "singleUnionType": { + "shape": { + "type": "primitive", + "primitive": { + "type": "double", + "double": 1.1 + } + }, + "jsonExample": 1.1 + } + }, + "typeName": { + "name": { + "originalName": "MetadataValue", + "camelCase": { + "unsafeName": "metadataValue", + "safeName": "metadataValue" + }, + "snakeCase": { + "unsafeName": "metadata_value", + "safeName": "metadata_value" + }, + "screamingSnakeCase": { + "unsafeName": "METADATA_VALUE", + "safeName": "METADATA_VALUE" + }, + "pascalCase": { + "unsafeName": "MetadataValue", + "safeName": "MetadataValue" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:MetadataValue" + } + }, + "jsonExample": 1.1 + } + } + ], + "keyType": { + "_type": "primitive", + "primitive": { + "v1": "STRING", + "v2": { + "type": "string", + "default": null, + "validation": null + } + } + }, + "valueType": { + "_type": "named", + "name": { + "originalName": "MetadataValue", + "camelCase": { + "unsafeName": "metadataValue", + "safeName": "metadataValue" + }, + "snakeCase": { + "unsafeName": "metadata_value", + "safeName": "metadata_value" + }, + "screamingSnakeCase": { + "unsafeName": "METADATA_VALUE", + "safeName": "METADATA_VALUE" + }, + "pascalCase": { + "unsafeName": "MetadataValue", + "safeName": "MetadataValue" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:MetadataValue", + "default": null, + "inline": null + } + } + }, + "jsonExample": { + "metadata": 1.1 + } + } + }, + "typeName": { + "name": { + "originalName": "Metadata", + "camelCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "snakeCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "screamingSnakeCase": { + "unsafeName": "METADATA", + "safeName": "METADATA" + }, + "pascalCase": { + "unsafeName": "Metadata", + "safeName": "Metadata" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:Metadata" + } + }, + "jsonExample": { + "metadata": 1.1 + } + }, + "valueType": { + "_type": "named", + "name": { + "originalName": "Metadata", + "camelCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "snakeCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "screamingSnakeCase": { + "unsafeName": "METADATA", + "safeName": "METADATA" + }, + "pascalCase": { + "unsafeName": "Metadata", + "safeName": "Metadata" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:Metadata", + "default": null, + "inline": null + } + } + }, + "jsonExample": { + "metadata": 1.1 + } + } + }, + { + "name": { + "name": { + "originalName": "indexedData", + "camelCase": { + "unsafeName": "indexedData", + "safeName": "indexedData" + }, + "snakeCase": { + "unsafeName": "indexed_data", + "safeName": "indexed_data" + }, + "screamingSnakeCase": { + "unsafeName": "INDEXED_DATA", + "safeName": "INDEXED_DATA" + }, + "pascalCase": { + "unsafeName": "IndexedData", + "safeName": "IndexedData" + } + }, + "wireValue": "indexedData" + }, + "originalTypeDeclaration": { + "name": { + "originalName": "ScoredColumn", + "camelCase": { + "unsafeName": "scoredColumn", + "safeName": "scoredColumn" + }, + "snakeCase": { + "unsafeName": "scored_column", + "safeName": "scored_column" + }, + "screamingSnakeCase": { + "unsafeName": "SCORED_COLUMN", + "safeName": "SCORED_COLUMN" + }, + "pascalCase": { + "unsafeName": "ScoredColumn", + "safeName": "ScoredColumn" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:ScoredColumn" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": { + "shape": { + "type": "named", + "shape": { + "type": "object", + "properties": [ + { + "name": { + "name": { + "originalName": "indices", + "camelCase": { + "unsafeName": "indices", + "safeName": "indices" + }, + "snakeCase": { + "unsafeName": "indices", + "safeName": "indices" + }, + "screamingSnakeCase": { + "unsafeName": "INDICES", + "safeName": "INDICES" + }, + "pascalCase": { + "unsafeName": "Indices", + "safeName": "Indices" + } + }, + "wireValue": "indices" + }, + "originalTypeDeclaration": { + "name": { + "originalName": "IndexedData", + "camelCase": { + "unsafeName": "indexedData", + "safeName": "indexedData" + }, + "snakeCase": { + "unsafeName": "indexed_data", + "safeName": "indexed_data" + }, + "screamingSnakeCase": { + "unsafeName": "INDEXED_DATA", + "safeName": "INDEXED_DATA" + }, + "pascalCase": { + "unsafeName": "IndexedData", + "safeName": "IndexedData" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:IndexedData" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "list", + "list": [ + { + "shape": { + "type": "primitive", + "primitive": { + "type": "uint", + "uint": 1 + } + }, + "jsonExample": 1 + }, + { + "shape": { + "type": "primitive", + "primitive": { + "type": "uint", + "uint": 1 + } + }, + "jsonExample": 1 + } + ], + "itemType": { + "_type": "primitive", + "primitive": { + "v1": "UINT", + "v2": null + } + } + } + }, + "jsonExample": [ + 1, + 1 + ] + } + }, + { + "name": { + "name": { + "originalName": "values", + "camelCase": { + "unsafeName": "values", + "safeName": "values" + }, + "snakeCase": { + "unsafeName": "values", + "safeName": "values" + }, + "screamingSnakeCase": { + "unsafeName": "VALUES", + "safeName": "VALUES" + }, + "pascalCase": { + "unsafeName": "Values", + "safeName": "Values" + } + }, + "wireValue": "values" + }, + "originalTypeDeclaration": { + "name": { + "originalName": "IndexedData", + "camelCase": { + "unsafeName": "indexedData", + "safeName": "indexedData" + }, + "snakeCase": { + "unsafeName": "indexed_data", + "safeName": "indexed_data" + }, + "screamingSnakeCase": { + "unsafeName": "INDEXED_DATA", + "safeName": "INDEXED_DATA" + }, + "pascalCase": { + "unsafeName": "IndexedData", + "safeName": "IndexedData" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:IndexedData" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "list", + "list": [ + { + "shape": { + "type": "primitive", + "primitive": { + "type": "float", + "float": 1.1 + } + }, + "jsonExample": 1.1 + }, + { + "shape": { + "type": "primitive", + "primitive": { + "type": "float", + "float": 1.1 + } + }, + "jsonExample": 1.1 + } + ], + "itemType": { + "_type": "primitive", + "primitive": { + "v1": "FLOAT", + "v2": null + } + } + } + }, + "jsonExample": [ + 1.1, + 1.1 + ] + } + } + ] + }, + "typeName": { + "name": { + "originalName": "IndexedData", + "camelCase": { + "unsafeName": "indexedData", + "safeName": "indexedData" + }, + "snakeCase": { + "unsafeName": "indexed_data", + "safeName": "indexed_data" + }, + "screamingSnakeCase": { + "unsafeName": "INDEXED_DATA", + "safeName": "INDEXED_DATA" + }, + "pascalCase": { + "unsafeName": "IndexedData", + "safeName": "IndexedData" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:IndexedData" + } + }, + "jsonExample": { + "indices": [ + 1, + 1 + ], + "values": [ + 1.1, + 1.1 + ] + } + }, + "valueType": { + "_type": "named", + "name": { + "originalName": "IndexedData", + "camelCase": { + "unsafeName": "indexedData", + "safeName": "indexedData" + }, + "snakeCase": { + "unsafeName": "indexed_data", + "safeName": "indexed_data" + }, + "screamingSnakeCase": { + "unsafeName": "INDEXED_DATA", + "safeName": "INDEXED_DATA" + }, + "pascalCase": { + "unsafeName": "IndexedData", + "safeName": "IndexedData" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:IndexedData", + "default": null, + "inline": null + } + } + }, + "jsonExample": { + "indices": [ + 1, + 1 + ], + "values": [ + 1.1, + 1.1 + ] + } + } + } + ] + }, + "typeName": { + "name": { + "originalName": "ScoredColumn", + "camelCase": { + "unsafeName": "scoredColumn", + "safeName": "scoredColumn" + }, + "snakeCase": { + "unsafeName": "scored_column", + "safeName": "scored_column" + }, + "screamingSnakeCase": { + "unsafeName": "SCORED_COLUMN", + "safeName": "SCORED_COLUMN" + }, + "pascalCase": { + "unsafeName": "ScoredColumn", + "safeName": "ScoredColumn" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:ScoredColumn" + } + }, + "jsonExample": { + "id": "id", + "score": 1.1, + "values": [ + 1.1, + 1.1 + ], + "metadata": { + "metadata": 1.1 + }, + "indexedData": { + "indices": [ + 1, + 1 + ], + "values": [ + 1.1, + 1.1 + ] + } + } + } + ], + "itemType": { + "_type": "named", + "name": { + "originalName": "ScoredColumn", + "camelCase": { + "unsafeName": "scoredColumn", + "safeName": "scoredColumn" + }, + "snakeCase": { + "unsafeName": "scored_column", + "safeName": "scored_column" + }, + "screamingSnakeCase": { + "unsafeName": "SCORED_COLUMN", + "safeName": "SCORED_COLUMN" + }, + "pascalCase": { + "unsafeName": "ScoredColumn", + "safeName": "ScoredColumn" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:ScoredColumn", + "default": null, + "inline": null + } + } + }, + "jsonExample": [ + { + "id": "id", + "score": 1.1, + "values": [ + 1.1, + 1.1 + ], + "metadata": { + "metadata": 1.1 + }, + "indexedData": { + "indices": [ + 1, + 1 + ], + "values": [ + 1.1, + 1.1 + ] + } + }, + { + "id": "id", + "score": 1.1, + "values": [ + 1.1, + 1.1 + ], + "metadata": { + "metadata": 1.1 + }, + "indexedData": { + "indices": [ + 1, + 1 + ], + "values": [ + 1.1, + 1.1 + ] + } + } + ] + }, + "valueType": { + "_type": "container", + "container": { + "_type": "list", + "list": { + "_type": "named", + "name": { + "originalName": "ScoredColumn", + "camelCase": { + "unsafeName": "scoredColumn", + "safeName": "scoredColumn" + }, + "snakeCase": { + "unsafeName": "scored_column", + "safeName": "scored_column" + }, + "screamingSnakeCase": { + "unsafeName": "SCORED_COLUMN", + "safeName": "SCORED_COLUMN" + }, + "pascalCase": { + "unsafeName": "ScoredColumn", + "safeName": "ScoredColumn" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:ScoredColumn", + "default": null, + "inline": null + } + } + } + } + }, + "jsonExample": [ + { + "id": "id", + "score": 1.1, + "values": [ + 1.1, + 1.1 + ], + "metadata": { + "metadata": 1.1 + }, + "indexedData": { + "indices": [ + 1, + 1 + ], + "values": [ + 1.1, + 1.1 + ] + } + }, + { + "id": "id", + "score": 1.1, + "values": [ + 1.1, + 1.1 + ], + "metadata": { + "metadata": 1.1 + }, + "indexedData": { + "indices": [ + 1, + 1 + ], + "values": [ + 1.1, + 1.1 + ] + } + } + ] + } + }, + { + "name": { + "name": { + "originalName": "namespace", + "camelCase": { + "unsafeName": "namespace", + "safeName": "namespace" + }, + "snakeCase": { + "unsafeName": "namespace", + "safeName": "namespace" + }, + "screamingSnakeCase": { + "unsafeName": "NAMESPACE", + "safeName": "NAMESPACE" + }, + "pascalCase": { + "unsafeName": "Namespace", + "safeName": "Namespace" + } + }, + "wireValue": "namespace" + }, + "originalTypeDeclaration": { + "name": { + "originalName": "QueryResponse", + "camelCase": { + "unsafeName": "queryResponse", + "safeName": "queryResponse" + }, + "snakeCase": { + "unsafeName": "query_response", + "safeName": "query_response" + }, + "screamingSnakeCase": { + "unsafeName": "QUERY_RESPONSE", + "safeName": "QUERY_RESPONSE" + }, + "pascalCase": { + "unsafeName": "QueryResponse", + "safeName": "QueryResponse" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:QueryResponse" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": { + "shape": { + "type": "primitive", + "primitive": { + "type": "string", + "string": { + "original": "namespace" + } + } + }, + "jsonExample": "namespace" + }, + "valueType": { + "_type": "primitive", + "primitive": { + "v1": "STRING", + "v2": { + "type": "string", + "default": null, + "validation": null + } + } + } + } + }, + "jsonExample": "namespace" + } + }, + { + "name": { + "name": { + "originalName": "usage", + "camelCase": { + "unsafeName": "usage", + "safeName": "usage" + }, + "snakeCase": { + "unsafeName": "usage", + "safeName": "usage" + }, + "screamingSnakeCase": { + "unsafeName": "USAGE", + "safeName": "USAGE" + }, + "pascalCase": { + "unsafeName": "Usage", + "safeName": "Usage" + } + }, + "wireValue": "usage" + }, + "originalTypeDeclaration": { + "name": { + "originalName": "QueryResponse", + "camelCase": { + "unsafeName": "queryResponse", + "safeName": "queryResponse" + }, + "snakeCase": { + "unsafeName": "query_response", + "safeName": "query_response" + }, + "screamingSnakeCase": { + "unsafeName": "QUERY_RESPONSE", + "safeName": "QUERY_RESPONSE" + }, + "pascalCase": { + "unsafeName": "QueryResponse", + "safeName": "QueryResponse" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:QueryResponse" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": { + "shape": { + "type": "named", + "shape": { + "type": "object", + "properties": [ + { + "name": { + "name": { + "originalName": "units", + "camelCase": { + "unsafeName": "units", + "safeName": "units" + }, + "snakeCase": { + "unsafeName": "units", + "safeName": "units" + }, + "screamingSnakeCase": { + "unsafeName": "UNITS", + "safeName": "UNITS" + }, + "pascalCase": { + "unsafeName": "Units", + "safeName": "Units" + } + }, + "wireValue": "units" + }, + "originalTypeDeclaration": { + "name": { + "originalName": "Usage", + "camelCase": { + "unsafeName": "usage", + "safeName": "usage" + }, + "snakeCase": { + "unsafeName": "usage", + "safeName": "usage" + }, + "screamingSnakeCase": { + "unsafeName": "USAGE", + "safeName": "USAGE" + }, + "pascalCase": { + "unsafeName": "Usage", + "safeName": "Usage" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:Usage" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": { + "shape": { + "type": "primitive", + "primitive": { + "type": "uint", + "uint": 1 + } + }, + "jsonExample": 1 + }, + "valueType": { + "_type": "primitive", + "primitive": { + "v1": "UINT", + "v2": null + } + } + } + }, + "jsonExample": 1 + } + } + ] + }, + "typeName": { + "name": { + "originalName": "Usage", + "camelCase": { + "unsafeName": "usage", + "safeName": "usage" + }, + "snakeCase": { + "unsafeName": "usage", + "safeName": "usage" + }, + "screamingSnakeCase": { + "unsafeName": "USAGE", + "safeName": "USAGE" + }, + "pascalCase": { + "unsafeName": "Usage", + "safeName": "Usage" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:Usage" + } + }, + "jsonExample": { + "units": 1 + } + }, + "valueType": { + "_type": "named", + "name": { + "originalName": "Usage", + "camelCase": { + "unsafeName": "usage", + "safeName": "usage" + }, + "snakeCase": { + "unsafeName": "usage", + "safeName": "usage" + }, + "screamingSnakeCase": { + "unsafeName": "USAGE", + "safeName": "USAGE" + }, + "pascalCase": { + "unsafeName": "Usage", + "safeName": "Usage" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:Usage", + "default": null, + "inline": null + } + } + }, + "jsonExample": { + "units": 1 + } + } + } + ] + }, + "typeName": { + "name": { + "originalName": "QueryResponse", + "camelCase": { + "unsafeName": "queryResponse", + "safeName": "queryResponse" + }, + "snakeCase": { + "unsafeName": "query_response", + "safeName": "query_response" + }, + "screamingSnakeCase": { + "unsafeName": "QUERY_RESPONSE", + "safeName": "QUERY_RESPONSE" + }, + "pascalCase": { + "unsafeName": "QueryResponse", + "safeName": "QueryResponse" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:QueryResponse" + } + }, + "jsonExample": { + "results": [ + { + "matches": [ + { + "id": "id", + "score": 1.1, + "values": [ + 1.1, + 1.1 + ], + "metadata": {}, + "indexedData": { + "indices": [ + 1, + 1 + ], + "values": [ + 1.1, + 1.1 + ] + } + }, + { + "id": "id", + "score": 1.1, + "values": [ + 1.1, + 1.1 + ], + "metadata": {}, + "indexedData": { + "indices": [ + 1, + 1 + ], + "values": [ + 1.1, + 1.1 + ] + } + } + ], + "namespace": "namespace" + }, + { + "matches": [ + { + "id": "id", + "score": 1.1, + "values": [ + 1.1, + 1.1 + ], + "metadata": {}, + "indexedData": { + "indices": [ + 1, + 1 + ], + "values": [ + 1.1, + 1.1 + ] + } + }, + { + "id": "id", + "score": 1.1, + "values": [ + 1.1, + 1.1 + ], + "metadata": {}, + "indexedData": { + "indices": [ + 1, + 1 + ], + "values": [ + 1.1, + 1.1 + ] + } + } + ], + "namespace": "namespace" + } + ], + "matches": [ + { + "id": "id", + "score": 1.1, + "values": [ + 1.1, + 1.1 + ], + "metadata": { + "metadata": 1.1 + }, + "indexedData": { + "indices": [ + 1, + 1 + ], + "values": [ + 1.1, + 1.1 + ] + } + }, + { + "id": "id", + "score": 1.1, + "values": [ + 1.1, + 1.1 + ], + "metadata": { + "metadata": 1.1 + }, + "indexedData": { + "indices": [ + 1, + 1 + ], + "values": [ + 1.1, + 1.1 + ] + } + } + ], + "namespace": "namespace", + "usage": { + "units": 1 + } + } + } + } + }, + "docs": null + } + } + ], + "pagination": null, + "transport": null, + "availability": null, + "docs": null + }, + { + "id": "endpoint_dataservice.update", + "name": { + "originalName": "update", + "camelCase": { + "unsafeName": "update", + "safeName": "update" + }, + "snakeCase": { + "unsafeName": "update", + "safeName": "update" + }, + "screamingSnakeCase": { + "unsafeName": "UPDATE", + "safeName": "UPDATE" + }, + "pascalCase": { + "unsafeName": "Update", + "safeName": "Update" + } + }, + "displayName": null, + "auth": false, + "idempotent": false, + "baseUrl": null, + "method": "POST", + "basePath": null, + "path": { + "head": "/data/update", + "parts": [] + }, + "fullPath": { + "head": "data/update", + "parts": [] + }, + "pathParameters": [], + "allPathParameters": [], + "queryParameters": [], + "headers": [], + "requestBody": { + "type": "inlinedRequestBody", + "name": { + "originalName": "UpdateRequest", + "camelCase": { + "unsafeName": "updateRequest", + "safeName": "updateRequest" + }, + "snakeCase": { + "unsafeName": "update_request", + "safeName": "update_request" + }, + "screamingSnakeCase": { + "unsafeName": "UPDATE_REQUEST", + "safeName": "UPDATE_REQUEST" + }, + "pascalCase": { + "unsafeName": "UpdateRequest", + "safeName": "UpdateRequest" + } + }, + "extends": [], + "contentType": "application/json", + "properties": [ + { + "name": { + "name": { + "originalName": "id", + "camelCase": { + "unsafeName": "id", + "safeName": "id" + }, + "snakeCase": { + "unsafeName": "id", + "safeName": "id" + }, + "screamingSnakeCase": { + "unsafeName": "ID", + "safeName": "ID" + }, + "pascalCase": { + "unsafeName": "ID", + "safeName": "ID" + } + }, + "wireValue": "id" + }, + "valueType": { + "_type": "primitive", + "primitive": { + "v1": "STRING", + "v2": { + "type": "string", + "default": null, + "validation": null + } + } + }, + "availability": null, + "docs": null + }, + { + "name": { + "name": { + "originalName": "values", + "camelCase": { + "unsafeName": "values", + "safeName": "values" + }, + "snakeCase": { + "unsafeName": "values", + "safeName": "values" + }, + "screamingSnakeCase": { + "unsafeName": "VALUES", + "safeName": "VALUES" + }, + "pascalCase": { + "unsafeName": "Values", + "safeName": "Values" + } + }, + "wireValue": "values" + }, + "valueType": { + "_type": "container", + "container": { + "_type": "optional", + "optional": { + "_type": "container", + "container": { + "_type": "list", + "list": { + "_type": "primitive", + "primitive": { + "v1": "FLOAT", + "v2": null + } + } + } + } + } + }, + "availability": null, + "docs": null + }, + { + "name": { + "name": { + "originalName": "setMetadata", + "camelCase": { + "unsafeName": "setMetadata", + "safeName": "setMetadata" + }, + "snakeCase": { + "unsafeName": "set_metadata", + "safeName": "set_metadata" + }, + "screamingSnakeCase": { + "unsafeName": "SET_METADATA", + "safeName": "SET_METADATA" + }, + "pascalCase": { + "unsafeName": "SetMetadata", + "safeName": "SetMetadata" + } + }, + "wireValue": "setMetadata" + }, + "valueType": { + "_type": "container", + "container": { + "_type": "optional", + "optional": { + "_type": "named", + "name": { + "originalName": "Metadata", + "camelCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "snakeCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "screamingSnakeCase": { + "unsafeName": "METADATA", + "safeName": "METADATA" + }, + "pascalCase": { + "unsafeName": "Metadata", + "safeName": "Metadata" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:Metadata", + "default": null, + "inline": null + } + } + }, + "availability": null, + "docs": null + }, + { + "name": { + "name": { + "originalName": "namespace", + "camelCase": { + "unsafeName": "namespace", + "safeName": "namespace" + }, + "snakeCase": { + "unsafeName": "namespace", + "safeName": "namespace" + }, + "screamingSnakeCase": { + "unsafeName": "NAMESPACE", + "safeName": "NAMESPACE" + }, + "pascalCase": { + "unsafeName": "Namespace", + "safeName": "Namespace" + } + }, + "wireValue": "namespace" + }, + "valueType": { + "_type": "container", + "container": { + "_type": "optional", + "optional": { + "_type": "primitive", + "primitive": { + "v1": "STRING", + "v2": { + "type": "string", + "default": null, + "validation": null + } + } + } + } + }, + "availability": null, + "docs": null + }, + { + "name": { + "name": { + "originalName": "indexedData", + "camelCase": { + "unsafeName": "indexedData", + "safeName": "indexedData" + }, + "snakeCase": { + "unsafeName": "indexed_data", + "safeName": "indexed_data" + }, + "screamingSnakeCase": { + "unsafeName": "INDEXED_DATA", + "safeName": "INDEXED_DATA" + }, + "pascalCase": { + "unsafeName": "IndexedData", + "safeName": "IndexedData" + } + }, + "wireValue": "indexedData" + }, + "valueType": { + "_type": "container", + "container": { + "_type": "optional", + "optional": { + "_type": "named", + "name": { + "originalName": "IndexedData", + "camelCase": { + "unsafeName": "indexedData", + "safeName": "indexedData" + }, + "snakeCase": { + "unsafeName": "indexed_data", + "safeName": "indexed_data" + }, + "screamingSnakeCase": { + "unsafeName": "INDEXED_DATA", + "safeName": "INDEXED_DATA" + }, + "pascalCase": { + "unsafeName": "IndexedData", + "safeName": "IndexedData" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:IndexedData", + "default": null, + "inline": null + } + } + }, + "availability": null, + "docs": null + } + ], + "extra-properties": false, + "extendedProperties": [], + "docs": null + }, + "sdkRequest": { + "shape": { + "type": "wrapper", + "wrapperName": { + "originalName": "UpdateRequest", + "camelCase": { + "unsafeName": "updateRequest", + "safeName": "updateRequest" + }, + "snakeCase": { + "unsafeName": "update_request", + "safeName": "update_request" + }, + "screamingSnakeCase": { + "unsafeName": "UPDATE_REQUEST", + "safeName": "UPDATE_REQUEST" + }, + "pascalCase": { + "unsafeName": "UpdateRequest", + "safeName": "UpdateRequest" + } + }, + "bodyKey": { + "originalName": "body", + "camelCase": { + "unsafeName": "body", + "safeName": "body" + }, + "snakeCase": { + "unsafeName": "body", + "safeName": "body" + }, + "screamingSnakeCase": { + "unsafeName": "BODY", + "safeName": "BODY" + }, + "pascalCase": { + "unsafeName": "Body", + "safeName": "Body" + } + } + }, + "requestParameterName": { + "originalName": "request", + "camelCase": { + "unsafeName": "request", + "safeName": "request" + }, + "snakeCase": { + "unsafeName": "request", + "safeName": "request" + }, + "screamingSnakeCase": { + "unsafeName": "REQUEST", + "safeName": "REQUEST" + }, + "pascalCase": { + "unsafeName": "Request", + "safeName": "Request" + } + }, + "streamParameter": null + }, + "response": { + "body": { + "type": "json", + "value": { + "type": "response", + "responseBodyType": { + "_type": "named", + "name": { + "originalName": "UpdateResponse", + "camelCase": { + "unsafeName": "updateResponse", + "safeName": "updateResponse" + }, + "snakeCase": { + "unsafeName": "update_response", + "safeName": "update_response" + }, + "screamingSnakeCase": { + "unsafeName": "UPDATE_RESPONSE", + "safeName": "UPDATE_RESPONSE" + }, + "pascalCase": { + "unsafeName": "UpdateResponse", + "safeName": "UpdateResponse" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:UpdateResponse", + "default": null, + "inline": null + }, + "docs": "OK" + } + }, + "status-code": null + }, + "errors": [], + "userSpecifiedExamples": [ + { + "example": { + "id": "8cd2e2a6167841ed1c2ad642e8f73dce3bae391787af26bd0ad57a15a1b23f23", + "name": null, + "url": "/data/update", + "rootPathParameters": [], + "endpointPathParameters": [], + "servicePathParameters": [], + "endpointHeaders": [], + "serviceHeaders": [], + "queryParameters": [], + "request": { + "type": "inlinedRequestBody", + "properties": [ + { + "name": { + "name": { + "originalName": "id", + "camelCase": { + "unsafeName": "id", + "safeName": "id" + }, + "snakeCase": { + "unsafeName": "id", + "safeName": "id" + }, + "screamingSnakeCase": { + "unsafeName": "ID", + "safeName": "ID" + }, + "pascalCase": { + "unsafeName": "ID", + "safeName": "ID" + } + }, + "wireValue": "id" + }, + "value": { + "shape": { + "type": "primitive", + "primitive": { + "type": "string", + "string": { + "original": "id" + } + } + }, + "jsonExample": "id" + }, + "originalTypeDeclaration": null + } + ], + "jsonExample": { + "id": "id" + } + }, + "response": { + "type": "ok", + "value": { + "type": "body", + "value": { + "shape": { + "type": "named", + "typeName": { + "typeId": "type_:UpdateResponse", + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "name": { + "originalName": "UpdateResponse", + "camelCase": { + "unsafeName": "updateResponse", + "safeName": "updateResponse" + }, + "snakeCase": { + "unsafeName": "update_response", + "safeName": "update_response" + }, + "screamingSnakeCase": { + "unsafeName": "UPDATE_RESPONSE", + "safeName": "UPDATE_RESPONSE" + }, + "pascalCase": { + "unsafeName": "UpdateResponse", + "safeName": "UpdateResponse" + } + } + }, + "shape": { + "type": "object", + "properties": [] + } + }, + "jsonExample": {} + } + } + }, + "docs": null + }, + "codeSamples": null + } + ], + "autogeneratedExamples": [ + { + "example": { + "id": "a60801ad6d1eb8149b087880ce3a12cd9924870a", + "url": "/data/update", + "name": null, + "endpointHeaders": [], + "endpointPathParameters": [], + "queryParameters": [], + "servicePathParameters": [], + "serviceHeaders": [], + "rootPathParameters": [], + "request": { + "type": "inlinedRequestBody", + "properties": [ + { + "name": { + "name": { + "originalName": "id", + "camelCase": { + "unsafeName": "id", + "safeName": "id" + }, + "snakeCase": { + "unsafeName": "id", + "safeName": "id" + }, + "screamingSnakeCase": { + "unsafeName": "ID", + "safeName": "ID" + }, + "pascalCase": { + "unsafeName": "ID", + "safeName": "ID" + } + }, + "wireValue": "id" + }, + "originalTypeDeclaration": null, + "value": { + "shape": { + "type": "primitive", + "primitive": { + "type": "string", + "string": { + "original": "id" + } + } + }, + "jsonExample": "id" + } + }, + { + "name": { + "name": { + "originalName": "values", + "camelCase": { + "unsafeName": "values", + "safeName": "values" + }, + "snakeCase": { + "unsafeName": "values", + "safeName": "values" + }, + "screamingSnakeCase": { + "unsafeName": "VALUES", + "safeName": "VALUES" + }, + "pascalCase": { + "unsafeName": "Values", + "safeName": "Values" + } + }, + "wireValue": "values" + }, + "originalTypeDeclaration": null, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": null, + "valueType": { + "_type": "container", + "container": { + "_type": "list", + "list": { + "_type": "primitive", + "primitive": { + "v1": "FLOAT", + "v2": null + } + } + } + } + } + } + } + }, + { + "name": { + "name": { + "originalName": "setMetadata", + "camelCase": { + "unsafeName": "setMetadata", + "safeName": "setMetadata" + }, + "snakeCase": { + "unsafeName": "set_metadata", + "safeName": "set_metadata" + }, + "screamingSnakeCase": { + "unsafeName": "SET_METADATA", + "safeName": "SET_METADATA" + }, + "pascalCase": { + "unsafeName": "SetMetadata", + "safeName": "SetMetadata" + } + }, + "wireValue": "setMetadata" + }, + "originalTypeDeclaration": null, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": null, + "valueType": { + "_type": "named", + "name": { + "originalName": "Metadata", + "camelCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "snakeCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "screamingSnakeCase": { + "unsafeName": "METADATA", + "safeName": "METADATA" + }, + "pascalCase": { + "unsafeName": "Metadata", + "safeName": "Metadata" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:Metadata", + "default": null, + "inline": null + } + } + } + } + }, + { + "name": { + "name": { + "originalName": "namespace", + "camelCase": { + "unsafeName": "namespace", + "safeName": "namespace" + }, + "snakeCase": { + "unsafeName": "namespace", + "safeName": "namespace" + }, + "screamingSnakeCase": { + "unsafeName": "NAMESPACE", + "safeName": "NAMESPACE" + }, + "pascalCase": { + "unsafeName": "Namespace", + "safeName": "Namespace" + } + }, + "wireValue": "namespace" + }, + "originalTypeDeclaration": null, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": null, + "valueType": { + "_type": "primitive", + "primitive": { + "v1": "STRING", + "v2": { + "type": "string", + "default": null, + "validation": null + } + } + } + } + } + } + }, + { + "name": { + "name": { + "originalName": "indexedData", + "camelCase": { + "unsafeName": "indexedData", + "safeName": "indexedData" + }, + "snakeCase": { + "unsafeName": "indexed_data", + "safeName": "indexed_data" + }, + "screamingSnakeCase": { + "unsafeName": "INDEXED_DATA", + "safeName": "INDEXED_DATA" + }, + "pascalCase": { + "unsafeName": "IndexedData", + "safeName": "IndexedData" + } + }, + "wireValue": "indexedData" + }, + "originalTypeDeclaration": null, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": null, + "valueType": { + "_type": "named", + "name": { + "originalName": "IndexedData", + "camelCase": { + "unsafeName": "indexedData", + "safeName": "indexedData" + }, + "snakeCase": { + "unsafeName": "indexed_data", + "safeName": "indexed_data" + }, + "screamingSnakeCase": { + "unsafeName": "INDEXED_DATA", + "safeName": "INDEXED_DATA" + }, + "pascalCase": { + "unsafeName": "IndexedData", + "safeName": "IndexedData" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:IndexedData", + "default": null, + "inline": null + } + } + } + } + } + ], + "jsonExample": { + "id": "id" + } + }, + "response": { + "type": "ok", + "value": { + "type": "body", + "value": { + "shape": { + "type": "named", + "shape": { + "type": "object", + "properties": [] + }, + "typeName": { + "name": { + "originalName": "UpdateResponse", + "camelCase": { + "unsafeName": "updateResponse", + "safeName": "updateResponse" + }, + "snakeCase": { + "unsafeName": "update_response", + "safeName": "update_response" + }, + "screamingSnakeCase": { + "unsafeName": "UPDATE_RESPONSE", + "safeName": "UPDATE_RESPONSE" + }, + "pascalCase": { + "unsafeName": "UpdateResponse", + "safeName": "UpdateResponse" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:UpdateResponse" + } + }, + "jsonExample": {} + } + } + }, + "docs": null + } + } + ], + "pagination": null, + "transport": null, + "availability": null, + "docs": null + } + ] + } + }, + "constants": { + "errorInstanceIdKey": { + "name": { + "originalName": "errorInstanceId", + "camelCase": { + "unsafeName": "errorInstanceID", + "safeName": "errorInstanceID" + }, + "snakeCase": { + "unsafeName": "error_instance_id", + "safeName": "error_instance_id" + }, + "screamingSnakeCase": { + "unsafeName": "ERROR_INSTANCE_ID", + "safeName": "ERROR_INSTANCE_ID" + }, + "pascalCase": { + "unsafeName": "ErrorInstanceID", + "safeName": "ErrorInstanceID" + } + }, + "wireValue": "errorInstanceId" + } + }, + "environments": { + "defaultEnvironment": "Default", + "environments": { + "type": "singleBaseUrl", + "environments": [ + { + "id": "Default", + "name": { + "originalName": "Default", + "camelCase": { + "unsafeName": "default", + "safeName": "default" + }, + "snakeCase": { + "unsafeName": "default", + "safeName": "default" + }, + "screamingSnakeCase": { + "unsafeName": "DEFAULT", + "safeName": "DEFAULT" + }, + "pascalCase": { + "unsafeName": "Default", + "safeName": "Default" + } + }, + "url": "https://localhost", + "docs": null + } + ] + } + }, + "errorDiscriminationStrategy": { + "type": "statusCode" + }, + "basePath": null, + "pathParameters": [], + "variables": [], + "serviceTypeReferenceInfo": { + "typesReferencedOnlyByService": {}, + "sharedTypes": [ + "type_:Column", + "type_:UploadResponse", + "type_:Metadata", + "type_:DeleteResponse", + "type_:DescribeResponse", + "type_:FetchResponse", + "type_:ListResponse", + "type_:QueryColumn", + "type_:IndexedData", + "type_:QueryResponse", + "type_:UpdateResponse", + "type_:ListElement", + "type_:NamespaceSummary", + "type_:Pagination", + "type_:QueryResult", + "type_:ScoredColumn", + "type_:Usage", + "type_:MetadataValue" + ] + }, + "webhookGroups": {}, + "websocketChannels": {}, + "readmeConfig": null, + "sourceConfig": null, + "publishConfig": null, + "subpackages": { + "subpackage_dataservice": { + "name": { + "originalName": "dataservice", + "camelCase": { + "unsafeName": "dataservice", + "safeName": "dataservice" + }, + "snakeCase": { + "unsafeName": "dataservice", + "safeName": "dataservice" + }, + "screamingSnakeCase": { + "unsafeName": "DATASERVICE", + "safeName": "DATASERVICE" + }, + "pascalCase": { + "unsafeName": "Dataservice", + "safeName": "Dataservice" + } + }, + "fernFilepath": { + "allParts": [ + { + "originalName": "dataservice", + "camelCase": { + "unsafeName": "dataservice", + "safeName": "dataservice" + }, + "snakeCase": { + "unsafeName": "dataservice", + "safeName": "dataservice" + }, + "screamingSnakeCase": { + "unsafeName": "DATASERVICE", + "safeName": "DATASERVICE" + }, + "pascalCase": { + "unsafeName": "Dataservice", + "safeName": "Dataservice" + } + } + ], + "packagePath": [], + "file": { + "originalName": "dataservice", + "camelCase": { + "unsafeName": "dataservice", + "safeName": "dataservice" + }, + "snakeCase": { + "unsafeName": "dataservice", + "safeName": "dataservice" + }, + "screamingSnakeCase": { + "unsafeName": "DATASERVICE", + "safeName": "DATASERVICE" + }, + "pascalCase": { + "unsafeName": "Dataservice", + "safeName": "Dataservice" + } + } + }, + "service": "service_dataservice", + "types": [], + "errors": [], + "subpackages": [], + "navigationConfig": null, + "webhooks": null, + "websocket": null, + "hasEndpointsInTree": true, + "docs": null + } + }, + "rootPackage": { + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "websocket": null, + "service": null, + "types": [ + "type_:Column", + "type_:DeleteResponse", + "type_:DescribeResponse", + "type_:FetchResponse", + "type_:IndexedData", + "type_:ListElement", + "type_:ListResponse", + "type_:NamespaceSummary", + "type_:Pagination", + "type_:QueryColumn", + "type_:QueryResponse", + "type_:QueryResult", + "type_:ScoredColumn", + "type_:UpdateResponse", + "type_:UploadResponse", + "type_:Usage", + "type_:Metadata", + "type_:MetadataValue" + ], + "errors": [], + "subpackages": [ + "subpackage_dataservice" + ], + "webhooks": null, + "navigationConfig": null, + "hasEndpointsInTree": true, + "docs": null + }, + "sdkConfig": { + "isAuthMandatory": false, + "hasStreamingEndpoints": false, + "hasPaginatedEndpoints": false, + "hasFileDownloadEndpoints": false, + "platformHeaders": { + "language": "X-Fern-Language", + "sdkName": "X-Fern-SDK-Name", + "sdkVersion": "X-Fern-SDK-Version", + "userAgent": null + } + } +} \ No newline at end of file diff --git a/packages/cli/generation/ir-generator/src/__test__/test-definitions/csharp-grpc-proto.json b/packages/cli/generation/ir-generator/src/__test__/test-definitions/csharp-grpc-proto.json new file mode 100644 index 00000000000..b49d8cbc684 --- /dev/null +++ b/packages/cli/generation/ir-generator/src/__test__/test-definitions/csharp-grpc-proto.json @@ -0,0 +1,3173 @@ +{ + "fdrApiDefinitionId": null, + "apiVersion": null, + "apiName": { + "originalName": "api", + "camelCase": { + "unsafeName": "api", + "safeName": "api" + }, + "snakeCase": { + "unsafeName": "api", + "safeName": "api" + }, + "screamingSnakeCase": { + "unsafeName": "API", + "safeName": "API" + }, + "pascalCase": { + "unsafeName": "API", + "safeName": "API" + } + }, + "apiDisplayName": "\"\"", + "apiDocs": null, + "auth": { + "requirement": "ALL", + "schemes": [], + "docs": null + }, + "headers": [], + "idempotencyHeaders": [], + "types": { + "type_:CreateResponse": { + "inline": false, + "name": { + "name": { + "originalName": "CreateResponse", + "camelCase": { + "unsafeName": "createResponse", + "safeName": "createResponse" + }, + "snakeCase": { + "unsafeName": "create_response", + "safeName": "create_response" + }, + "screamingSnakeCase": { + "unsafeName": "CREATE_RESPONSE", + "safeName": "CREATE_RESPONSE" + }, + "pascalCase": { + "unsafeName": "CreateResponse", + "safeName": "CreateResponse" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:CreateResponse" + }, + "shape": { + "_type": "object", + "extends": [], + "properties": [ + { + "name": { + "name": { + "originalName": "user", + "camelCase": { + "unsafeName": "user", + "safeName": "user" + }, + "snakeCase": { + "unsafeName": "user", + "safeName": "user" + }, + "screamingSnakeCase": { + "unsafeName": "USER", + "safeName": "USER" + }, + "pascalCase": { + "unsafeName": "User", + "safeName": "User" + } + }, + "wireValue": "user" + }, + "valueType": { + "_type": "container", + "container": { + "_type": "optional", + "optional": { + "_type": "named", + "name": { + "originalName": "UserModel", + "camelCase": { + "unsafeName": "userModel", + "safeName": "userModel" + }, + "snakeCase": { + "unsafeName": "user_model", + "safeName": "user_model" + }, + "screamingSnakeCase": { + "unsafeName": "USER_MODEL", + "safeName": "USER_MODEL" + }, + "pascalCase": { + "unsafeName": "UserModel", + "safeName": "UserModel" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:UserModel", + "default": null, + "inline": null + } + } + }, + "availability": null, + "docs": null + } + ], + "extra-properties": false, + "extendedProperties": [] + }, + "referencedTypes": [ + "type_:UserModel", + "type_:Metadata", + "type_:MetadataValue" + ], + "encoding": { + "json": null, + "proto": {} + }, + "source": { + "type": "proto", + "value": { + "type": "userDefined", + "file": { + "filepath": "proto/user/v1/user.proto", + "packageName": "user.v1", + "options": { + "csharp": { + "namespace": "User.V1" + } + } + }, + "name": { + "originalName": "CreateResponse", + "camelCase": { + "unsafeName": "createResponse", + "safeName": "createResponse" + }, + "snakeCase": { + "unsafeName": "create_response", + "safeName": "create_response" + }, + "screamingSnakeCase": { + "unsafeName": "CREATE_RESPONSE", + "safeName": "CREATE_RESPONSE" + }, + "pascalCase": { + "unsafeName": "CreateResponse", + "safeName": "CreateResponse" + } + } + } + }, + "userProvidedExamples": [], + "autogeneratedExamples": [], + "availability": null, + "docs": null + }, + "type_:UserModel": { + "inline": false, + "name": { + "name": { + "originalName": "UserModel", + "camelCase": { + "unsafeName": "userModel", + "safeName": "userModel" + }, + "snakeCase": { + "unsafeName": "user_model", + "safeName": "user_model" + }, + "screamingSnakeCase": { + "unsafeName": "USER_MODEL", + "safeName": "USER_MODEL" + }, + "pascalCase": { + "unsafeName": "UserModel", + "safeName": "UserModel" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:UserModel" + }, + "shape": { + "_type": "object", + "extends": [], + "properties": [ + { + "name": { + "name": { + "originalName": "username", + "camelCase": { + "unsafeName": "username", + "safeName": "username" + }, + "snakeCase": { + "unsafeName": "username", + "safeName": "username" + }, + "screamingSnakeCase": { + "unsafeName": "USERNAME", + "safeName": "USERNAME" + }, + "pascalCase": { + "unsafeName": "Username", + "safeName": "Username" + } + }, + "wireValue": "username" + }, + "valueType": { + "_type": "container", + "container": { + "_type": "optional", + "optional": { + "_type": "primitive", + "primitive": { + "v1": "STRING", + "v2": { + "type": "string", + "default": null, + "validation": null + } + } + } + } + }, + "availability": null, + "docs": null + }, + { + "name": { + "name": { + "originalName": "email", + "camelCase": { + "unsafeName": "email", + "safeName": "email" + }, + "snakeCase": { + "unsafeName": "email", + "safeName": "email" + }, + "screamingSnakeCase": { + "unsafeName": "EMAIL", + "safeName": "EMAIL" + }, + "pascalCase": { + "unsafeName": "Email", + "safeName": "Email" + } + }, + "wireValue": "email" + }, + "valueType": { + "_type": "container", + "container": { + "_type": "optional", + "optional": { + "_type": "primitive", + "primitive": { + "v1": "STRING", + "v2": { + "type": "string", + "default": null, + "validation": null + } + } + } + } + }, + "availability": null, + "docs": null + }, + { + "name": { + "name": { + "originalName": "age", + "camelCase": { + "unsafeName": "age", + "safeName": "age" + }, + "snakeCase": { + "unsafeName": "age", + "safeName": "age" + }, + "screamingSnakeCase": { + "unsafeName": "AGE", + "safeName": "AGE" + }, + "pascalCase": { + "unsafeName": "Age", + "safeName": "Age" + } + }, + "wireValue": "age" + }, + "valueType": { + "_type": "container", + "container": { + "_type": "optional", + "optional": { + "_type": "primitive", + "primitive": { + "v1": "UINT", + "v2": null + } + } + } + }, + "availability": null, + "docs": null + }, + { + "name": { + "name": { + "originalName": "weight", + "camelCase": { + "unsafeName": "weight", + "safeName": "weight" + }, + "snakeCase": { + "unsafeName": "weight", + "safeName": "weight" + }, + "screamingSnakeCase": { + "unsafeName": "WEIGHT", + "safeName": "WEIGHT" + }, + "pascalCase": { + "unsafeName": "Weight", + "safeName": "Weight" + } + }, + "wireValue": "weight" + }, + "valueType": { + "_type": "container", + "container": { + "_type": "optional", + "optional": { + "_type": "primitive", + "primitive": { + "v1": "FLOAT", + "v2": null + } + } + } + }, + "availability": null, + "docs": null + }, + { + "name": { + "name": { + "originalName": "metadata", + "camelCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "snakeCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "screamingSnakeCase": { + "unsafeName": "METADATA", + "safeName": "METADATA" + }, + "pascalCase": { + "unsafeName": "Metadata", + "safeName": "Metadata" + } + }, + "wireValue": "metadata" + }, + "valueType": { + "_type": "container", + "container": { + "_type": "optional", + "optional": { + "_type": "named", + "name": { + "originalName": "Metadata", + "camelCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "snakeCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "screamingSnakeCase": { + "unsafeName": "METADATA", + "safeName": "METADATA" + }, + "pascalCase": { + "unsafeName": "Metadata", + "safeName": "Metadata" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:Metadata", + "default": null, + "inline": null + } + } + }, + "availability": null, + "docs": null + } + ], + "extra-properties": false, + "extendedProperties": [] + }, + "referencedTypes": [ + "type_:Metadata", + "type_:MetadataValue" + ], + "encoding": { + "json": null, + "proto": {} + }, + "source": { + "type": "proto", + "value": { + "type": "userDefined", + "file": { + "filepath": "proto/user/v1/user.proto", + "packageName": "user.v1", + "options": { + "csharp": { + "namespace": "User.V1" + } + } + }, + "name": { + "originalName": "UserModel", + "camelCase": { + "unsafeName": "userModel", + "safeName": "userModel" + }, + "snakeCase": { + "unsafeName": "user_model", + "safeName": "user_model" + }, + "screamingSnakeCase": { + "unsafeName": "USER_MODEL", + "safeName": "USER_MODEL" + }, + "pascalCase": { + "unsafeName": "UserModel", + "safeName": "UserModel" + } + } + } + }, + "userProvidedExamples": [], + "autogeneratedExamples": [], + "availability": null, + "docs": null + }, + "type_:Metadata": { + "inline": false, + "name": { + "name": { + "originalName": "Metadata", + "camelCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "snakeCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "screamingSnakeCase": { + "unsafeName": "METADATA", + "safeName": "METADATA" + }, + "pascalCase": { + "unsafeName": "Metadata", + "safeName": "Metadata" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:Metadata" + }, + "shape": { + "_type": "undiscriminatedUnion", + "members": [ + { + "type": { + "_type": "container", + "container": { + "_type": "map", + "keyType": { + "_type": "primitive", + "primitive": { + "v1": "STRING", + "v2": { + "type": "string", + "default": null, + "validation": null + } + } + }, + "valueType": { + "_type": "named", + "name": { + "originalName": "MetadataValue", + "camelCase": { + "unsafeName": "metadataValue", + "safeName": "metadataValue" + }, + "snakeCase": { + "unsafeName": "metadata_value", + "safeName": "metadata_value" + }, + "screamingSnakeCase": { + "unsafeName": "METADATA_VALUE", + "safeName": "METADATA_VALUE" + }, + "pascalCase": { + "unsafeName": "MetadataValue", + "safeName": "MetadataValue" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:MetadataValue", + "default": null, + "inline": null + } + } + }, + "docs": null + }, + { + "type": { + "_type": "container", + "container": { + "_type": "map", + "keyType": { + "_type": "primitive", + "primitive": { + "v1": "STRING", + "v2": { + "type": "string", + "default": null, + "validation": null + } + } + }, + "valueType": { + "_type": "unknown" + } + } + }, + "docs": null + } + ] + }, + "referencedTypes": [ + "type_:MetadataValue" + ], + "encoding": { + "json": null, + "proto": {} + }, + "source": { + "type": "proto", + "value": { + "type": "wellKnown", + "value": { + "type": "struct" + } + } + }, + "userProvidedExamples": [], + "autogeneratedExamples": [], + "availability": null, + "docs": null + }, + "type_:MetadataValue": { + "inline": false, + "name": { + "name": { + "originalName": "MetadataValue", + "camelCase": { + "unsafeName": "metadataValue", + "safeName": "metadataValue" + }, + "snakeCase": { + "unsafeName": "metadata_value", + "safeName": "metadata_value" + }, + "screamingSnakeCase": { + "unsafeName": "METADATA_VALUE", + "safeName": "METADATA_VALUE" + }, + "pascalCase": { + "unsafeName": "MetadataValue", + "safeName": "MetadataValue" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:MetadataValue" + }, + "shape": { + "_type": "undiscriminatedUnion", + "members": [ + { + "type": { + "_type": "primitive", + "primitive": { + "v1": "DOUBLE", + "v2": { + "type": "double", + "default": null, + "validation": null + } + } + }, + "docs": null + }, + { + "type": { + "_type": "primitive", + "primitive": { + "v1": "STRING", + "v2": { + "type": "string", + "default": null, + "validation": null + } + } + }, + "docs": null + }, + { + "type": { + "_type": "primitive", + "primitive": { + "v1": "BOOLEAN", + "v2": null + } + }, + "docs": null + } + ] + }, + "referencedTypes": [], + "encoding": { + "json": null, + "proto": {} + }, + "source": { + "type": "proto", + "value": { + "type": "wellKnown", + "value": { + "type": "value" + } + } + }, + "userProvidedExamples": [], + "autogeneratedExamples": [], + "availability": null, + "docs": null + } + }, + "errors": {}, + "services": { + "service_userservice": { + "availability": null, + "name": { + "fernFilepath": { + "allParts": [ + { + "originalName": "userservice", + "camelCase": { + "unsafeName": "userservice", + "safeName": "userservice" + }, + "snakeCase": { + "unsafeName": "userservice", + "safeName": "userservice" + }, + "screamingSnakeCase": { + "unsafeName": "USERSERVICE", + "safeName": "USERSERVICE" + }, + "pascalCase": { + "unsafeName": "Userservice", + "safeName": "Userservice" + } + } + ], + "packagePath": [], + "file": { + "originalName": "userservice", + "camelCase": { + "unsafeName": "userservice", + "safeName": "userservice" + }, + "snakeCase": { + "unsafeName": "userservice", + "safeName": "userservice" + }, + "screamingSnakeCase": { + "unsafeName": "USERSERVICE", + "safeName": "USERSERVICE" + }, + "pascalCase": { + "unsafeName": "Userservice", + "safeName": "Userservice" + } + } + } + }, + "displayName": "UserService", + "basePath": { + "head": "", + "parts": [] + }, + "headers": [], + "pathParameters": [], + "encoding": { + "json": null, + "proto": {} + }, + "transport": { + "type": "grpc", + "service": { + "file": { + "filepath": "proto/user/v1/user.proto", + "packageName": "user.v1", + "options": { + "csharp": { + "namespace": "User.V1" + } + } + }, + "name": { + "originalName": "UserService", + "camelCase": { + "unsafeName": "userService", + "safeName": "userService" + }, + "snakeCase": { + "unsafeName": "user_service", + "safeName": "user_service" + }, + "screamingSnakeCase": { + "unsafeName": "USER_SERVICE", + "safeName": "USER_SERVICE" + }, + "pascalCase": { + "unsafeName": "UserService", + "safeName": "UserService" + } + } + } + }, + "endpoints": [ + { + "id": "endpoint_userservice.create", + "name": { + "originalName": "create", + "camelCase": { + "unsafeName": "create", + "safeName": "create" + }, + "snakeCase": { + "unsafeName": "create", + "safeName": "create" + }, + "screamingSnakeCase": { + "unsafeName": "CREATE", + "safeName": "CREATE" + }, + "pascalCase": { + "unsafeName": "Create", + "safeName": "Create" + } + }, + "displayName": null, + "auth": false, + "idempotent": false, + "baseUrl": null, + "method": "POST", + "basePath": null, + "path": { + "head": "/users", + "parts": [] + }, + "fullPath": { + "head": "users", + "parts": [] + }, + "pathParameters": [], + "allPathParameters": [], + "queryParameters": [], + "headers": [], + "requestBody": { + "type": "inlinedRequestBody", + "name": { + "originalName": "CreateRequest", + "camelCase": { + "unsafeName": "createRequest", + "safeName": "createRequest" + }, + "snakeCase": { + "unsafeName": "create_request", + "safeName": "create_request" + }, + "screamingSnakeCase": { + "unsafeName": "CREATE_REQUEST", + "safeName": "CREATE_REQUEST" + }, + "pascalCase": { + "unsafeName": "CreateRequest", + "safeName": "CreateRequest" + } + }, + "extends": [], + "contentType": "application/json", + "properties": [ + { + "name": { + "name": { + "originalName": "username", + "camelCase": { + "unsafeName": "username", + "safeName": "username" + }, + "snakeCase": { + "unsafeName": "username", + "safeName": "username" + }, + "screamingSnakeCase": { + "unsafeName": "USERNAME", + "safeName": "USERNAME" + }, + "pascalCase": { + "unsafeName": "Username", + "safeName": "Username" + } + }, + "wireValue": "username" + }, + "valueType": { + "_type": "container", + "container": { + "_type": "optional", + "optional": { + "_type": "primitive", + "primitive": { + "v1": "STRING", + "v2": { + "type": "string", + "default": null, + "validation": null + } + } + } + } + }, + "availability": null, + "docs": null + }, + { + "name": { + "name": { + "originalName": "email", + "camelCase": { + "unsafeName": "email", + "safeName": "email" + }, + "snakeCase": { + "unsafeName": "email", + "safeName": "email" + }, + "screamingSnakeCase": { + "unsafeName": "EMAIL", + "safeName": "EMAIL" + }, + "pascalCase": { + "unsafeName": "Email", + "safeName": "Email" + } + }, + "wireValue": "email" + }, + "valueType": { + "_type": "container", + "container": { + "_type": "optional", + "optional": { + "_type": "primitive", + "primitive": { + "v1": "STRING", + "v2": { + "type": "string", + "default": null, + "validation": null + } + } + } + } + }, + "availability": null, + "docs": null + }, + { + "name": { + "name": { + "originalName": "age", + "camelCase": { + "unsafeName": "age", + "safeName": "age" + }, + "snakeCase": { + "unsafeName": "age", + "safeName": "age" + }, + "screamingSnakeCase": { + "unsafeName": "AGE", + "safeName": "AGE" + }, + "pascalCase": { + "unsafeName": "Age", + "safeName": "Age" + } + }, + "wireValue": "age" + }, + "valueType": { + "_type": "container", + "container": { + "_type": "optional", + "optional": { + "_type": "primitive", + "primitive": { + "v1": "UINT", + "v2": null + } + } + } + }, + "availability": null, + "docs": null + }, + { + "name": { + "name": { + "originalName": "weight", + "camelCase": { + "unsafeName": "weight", + "safeName": "weight" + }, + "snakeCase": { + "unsafeName": "weight", + "safeName": "weight" + }, + "screamingSnakeCase": { + "unsafeName": "WEIGHT", + "safeName": "WEIGHT" + }, + "pascalCase": { + "unsafeName": "Weight", + "safeName": "Weight" + } + }, + "wireValue": "weight" + }, + "valueType": { + "_type": "container", + "container": { + "_type": "optional", + "optional": { + "_type": "primitive", + "primitive": { + "v1": "FLOAT", + "v2": null + } + } + } + }, + "availability": null, + "docs": null + }, + { + "name": { + "name": { + "originalName": "metadata", + "camelCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "snakeCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "screamingSnakeCase": { + "unsafeName": "METADATA", + "safeName": "METADATA" + }, + "pascalCase": { + "unsafeName": "Metadata", + "safeName": "Metadata" + } + }, + "wireValue": "metadata" + }, + "valueType": { + "_type": "container", + "container": { + "_type": "optional", + "optional": { + "_type": "named", + "name": { + "originalName": "Metadata", + "camelCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "snakeCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "screamingSnakeCase": { + "unsafeName": "METADATA", + "safeName": "METADATA" + }, + "pascalCase": { + "unsafeName": "Metadata", + "safeName": "Metadata" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:Metadata", + "default": null, + "inline": null + } + } + }, + "availability": null, + "docs": null + } + ], + "extra-properties": false, + "extendedProperties": [], + "docs": null + }, + "sdkRequest": { + "shape": { + "type": "wrapper", + "wrapperName": { + "originalName": "CreateRequest", + "camelCase": { + "unsafeName": "createRequest", + "safeName": "createRequest" + }, + "snakeCase": { + "unsafeName": "create_request", + "safeName": "create_request" + }, + "screamingSnakeCase": { + "unsafeName": "CREATE_REQUEST", + "safeName": "CREATE_REQUEST" + }, + "pascalCase": { + "unsafeName": "CreateRequest", + "safeName": "CreateRequest" + } + }, + "bodyKey": { + "originalName": "body", + "camelCase": { + "unsafeName": "body", + "safeName": "body" + }, + "snakeCase": { + "unsafeName": "body", + "safeName": "body" + }, + "screamingSnakeCase": { + "unsafeName": "BODY", + "safeName": "BODY" + }, + "pascalCase": { + "unsafeName": "Body", + "safeName": "Body" + } + } + }, + "requestParameterName": { + "originalName": "request", + "camelCase": { + "unsafeName": "request", + "safeName": "request" + }, + "snakeCase": { + "unsafeName": "request", + "safeName": "request" + }, + "screamingSnakeCase": { + "unsafeName": "REQUEST", + "safeName": "REQUEST" + }, + "pascalCase": { + "unsafeName": "Request", + "safeName": "Request" + } + }, + "streamParameter": null + }, + "response": { + "body": { + "type": "json", + "value": { + "type": "response", + "responseBodyType": { + "_type": "named", + "name": { + "originalName": "CreateResponse", + "camelCase": { + "unsafeName": "createResponse", + "safeName": "createResponse" + }, + "snakeCase": { + "unsafeName": "create_response", + "safeName": "create_response" + }, + "screamingSnakeCase": { + "unsafeName": "CREATE_RESPONSE", + "safeName": "CREATE_RESPONSE" + }, + "pascalCase": { + "unsafeName": "CreateResponse", + "safeName": "CreateResponse" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:CreateResponse", + "default": null, + "inline": null + }, + "docs": "OK" + } + }, + "status-code": null + }, + "errors": [], + "userSpecifiedExamples": [ + { + "example": { + "id": "55d86fecae28100aa2552944eb8f0a02074a17fedc942c648d9e7067d385c8b3", + "name": null, + "url": "/users", + "rootPathParameters": [], + "endpointPathParameters": [], + "servicePathParameters": [], + "endpointHeaders": [], + "serviceHeaders": [], + "queryParameters": [], + "request": { + "type": "inlinedRequestBody", + "properties": [], + "jsonExample": {} + }, + "response": { + "type": "ok", + "value": { + "type": "body", + "value": { + "shape": { + "type": "named", + "typeName": { + "typeId": "type_:CreateResponse", + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "name": { + "originalName": "CreateResponse", + "camelCase": { + "unsafeName": "createResponse", + "safeName": "createResponse" + }, + "snakeCase": { + "unsafeName": "create_response", + "safeName": "create_response" + }, + "screamingSnakeCase": { + "unsafeName": "CREATE_RESPONSE", + "safeName": "CREATE_RESPONSE" + }, + "pascalCase": { + "unsafeName": "CreateResponse", + "safeName": "CreateResponse" + } + } + }, + "shape": { + "type": "object", + "properties": [ + { + "name": { + "name": { + "originalName": "user", + "camelCase": { + "unsafeName": "user", + "safeName": "user" + }, + "snakeCase": { + "unsafeName": "user", + "safeName": "user" + }, + "screamingSnakeCase": { + "unsafeName": "USER", + "safeName": "USER" + }, + "pascalCase": { + "unsafeName": "User", + "safeName": "User" + } + }, + "wireValue": "user" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": { + "shape": { + "type": "named", + "typeName": { + "typeId": "type_:UserModel", + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "name": { + "originalName": "UserModel", + "camelCase": { + "unsafeName": "userModel", + "safeName": "userModel" + }, + "snakeCase": { + "unsafeName": "user_model", + "safeName": "user_model" + }, + "screamingSnakeCase": { + "unsafeName": "USER_MODEL", + "safeName": "USER_MODEL" + }, + "pascalCase": { + "unsafeName": "UserModel", + "safeName": "UserModel" + } + } + }, + "shape": { + "type": "object", + "properties": [ + { + "name": { + "name": { + "originalName": "username", + "camelCase": { + "unsafeName": "username", + "safeName": "username" + }, + "snakeCase": { + "unsafeName": "username", + "safeName": "username" + }, + "screamingSnakeCase": { + "unsafeName": "USERNAME", + "safeName": "USERNAME" + }, + "pascalCase": { + "unsafeName": "Username", + "safeName": "Username" + } + }, + "wireValue": "username" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": { + "shape": { + "type": "primitive", + "primitive": { + "type": "string", + "string": { + "original": "username" + } + } + }, + "jsonExample": "username" + }, + "valueType": { + "_type": "primitive", + "primitive": { + "v1": "STRING", + "v2": { + "type": "string", + "default": null, + "validation": null + } + } + } + } + }, + "jsonExample": "username" + }, + "originalTypeDeclaration": { + "typeId": "type_:UserModel", + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "name": { + "originalName": "UserModel", + "camelCase": { + "unsafeName": "userModel", + "safeName": "userModel" + }, + "snakeCase": { + "unsafeName": "user_model", + "safeName": "user_model" + }, + "screamingSnakeCase": { + "unsafeName": "USER_MODEL", + "safeName": "USER_MODEL" + }, + "pascalCase": { + "unsafeName": "UserModel", + "safeName": "UserModel" + } + } + } + }, + { + "name": { + "name": { + "originalName": "email", + "camelCase": { + "unsafeName": "email", + "safeName": "email" + }, + "snakeCase": { + "unsafeName": "email", + "safeName": "email" + }, + "screamingSnakeCase": { + "unsafeName": "EMAIL", + "safeName": "EMAIL" + }, + "pascalCase": { + "unsafeName": "Email", + "safeName": "Email" + } + }, + "wireValue": "email" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": { + "shape": { + "type": "primitive", + "primitive": { + "type": "string", + "string": { + "original": "email" + } + } + }, + "jsonExample": "email" + }, + "valueType": { + "_type": "primitive", + "primitive": { + "v1": "STRING", + "v2": { + "type": "string", + "default": null, + "validation": null + } + } + } + } + }, + "jsonExample": "email" + }, + "originalTypeDeclaration": { + "typeId": "type_:UserModel", + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "name": { + "originalName": "UserModel", + "camelCase": { + "unsafeName": "userModel", + "safeName": "userModel" + }, + "snakeCase": { + "unsafeName": "user_model", + "safeName": "user_model" + }, + "screamingSnakeCase": { + "unsafeName": "USER_MODEL", + "safeName": "USER_MODEL" + }, + "pascalCase": { + "unsafeName": "UserModel", + "safeName": "UserModel" + } + } + } + }, + { + "name": { + "name": { + "originalName": "age", + "camelCase": { + "unsafeName": "age", + "safeName": "age" + }, + "snakeCase": { + "unsafeName": "age", + "safeName": "age" + }, + "screamingSnakeCase": { + "unsafeName": "AGE", + "safeName": "AGE" + }, + "pascalCase": { + "unsafeName": "Age", + "safeName": "Age" + } + }, + "wireValue": "age" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": { + "shape": { + "type": "primitive", + "primitive": { + "type": "uint", + "uint": 1 + } + }, + "jsonExample": 1 + }, + "valueType": { + "_type": "primitive", + "primitive": { + "v1": "UINT", + "v2": null + } + } + } + }, + "jsonExample": 1 + }, + "originalTypeDeclaration": { + "typeId": "type_:UserModel", + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "name": { + "originalName": "UserModel", + "camelCase": { + "unsafeName": "userModel", + "safeName": "userModel" + }, + "snakeCase": { + "unsafeName": "user_model", + "safeName": "user_model" + }, + "screamingSnakeCase": { + "unsafeName": "USER_MODEL", + "safeName": "USER_MODEL" + }, + "pascalCase": { + "unsafeName": "UserModel", + "safeName": "UserModel" + } + } + } + }, + { + "name": { + "name": { + "originalName": "weight", + "camelCase": { + "unsafeName": "weight", + "safeName": "weight" + }, + "snakeCase": { + "unsafeName": "weight", + "safeName": "weight" + }, + "screamingSnakeCase": { + "unsafeName": "WEIGHT", + "safeName": "WEIGHT" + }, + "pascalCase": { + "unsafeName": "Weight", + "safeName": "Weight" + } + }, + "wireValue": "weight" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": { + "shape": { + "type": "primitive", + "primitive": { + "type": "float", + "float": 1.1 + } + }, + "jsonExample": 1.1 + }, + "valueType": { + "_type": "primitive", + "primitive": { + "v1": "FLOAT", + "v2": null + } + } + } + }, + "jsonExample": 1.1 + }, + "originalTypeDeclaration": { + "typeId": "type_:UserModel", + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "name": { + "originalName": "UserModel", + "camelCase": { + "unsafeName": "userModel", + "safeName": "userModel" + }, + "snakeCase": { + "unsafeName": "user_model", + "safeName": "user_model" + }, + "screamingSnakeCase": { + "unsafeName": "USER_MODEL", + "safeName": "USER_MODEL" + }, + "pascalCase": { + "unsafeName": "UserModel", + "safeName": "UserModel" + } + } + } + }, + { + "name": { + "name": { + "originalName": "metadata", + "camelCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "snakeCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "screamingSnakeCase": { + "unsafeName": "METADATA", + "safeName": "METADATA" + }, + "pascalCase": { + "unsafeName": "Metadata", + "safeName": "Metadata" + } + }, + "wireValue": "metadata" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": { + "shape": { + "type": "named", + "typeName": { + "typeId": "type_:Metadata", + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "name": { + "originalName": "Metadata", + "camelCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "snakeCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "screamingSnakeCase": { + "unsafeName": "METADATA", + "safeName": "METADATA" + }, + "pascalCase": { + "unsafeName": "Metadata", + "safeName": "Metadata" + } + } + }, + "shape": { + "type": "undiscriminatedUnion", + "index": 0, + "singleUnionType": { + "shape": { + "type": "container", + "container": { + "type": "map", + "map": [ + { + "key": { + "shape": { + "type": "primitive", + "primitive": { + "type": "string", + "string": { + "original": "key" + } + } + }, + "jsonExample": "key" + }, + "value": { + "shape": { + "type": "named", + "typeName": { + "typeId": "type_:MetadataValue", + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "name": { + "originalName": "MetadataValue", + "camelCase": { + "unsafeName": "metadataValue", + "safeName": "metadataValue" + }, + "snakeCase": { + "unsafeName": "metadata_value", + "safeName": "metadata_value" + }, + "screamingSnakeCase": { + "unsafeName": "METADATA_VALUE", + "safeName": "METADATA_VALUE" + }, + "pascalCase": { + "unsafeName": "MetadataValue", + "safeName": "MetadataValue" + } + } + }, + "shape": { + "type": "undiscriminatedUnion", + "index": 0, + "singleUnionType": { + "shape": { + "type": "primitive", + "primitive": { + "type": "double", + "double": 1.1 + } + }, + "jsonExample": 1.1 + } + } + }, + "jsonExample": 1.1 + } + } + ], + "keyType": { + "_type": "primitive", + "primitive": { + "v1": "STRING", + "v2": { + "type": "string", + "default": null, + "validation": null + } + } + }, + "valueType": { + "_type": "named", + "name": { + "originalName": "MetadataValue", + "camelCase": { + "unsafeName": "metadataValue", + "safeName": "metadataValue" + }, + "snakeCase": { + "unsafeName": "metadata_value", + "safeName": "metadata_value" + }, + "screamingSnakeCase": { + "unsafeName": "METADATA_VALUE", + "safeName": "METADATA_VALUE" + }, + "pascalCase": { + "unsafeName": "MetadataValue", + "safeName": "MetadataValue" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:MetadataValue", + "default": null, + "inline": null + } + } + }, + "jsonExample": { + "key": 1.1 + } + } + } + }, + "jsonExample": { + "key": 1.1 + } + }, + "valueType": { + "_type": "named", + "name": { + "originalName": "Metadata", + "camelCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "snakeCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "screamingSnakeCase": { + "unsafeName": "METADATA", + "safeName": "METADATA" + }, + "pascalCase": { + "unsafeName": "Metadata", + "safeName": "Metadata" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:Metadata", + "default": null, + "inline": null + } + } + }, + "jsonExample": { + "key": 1.1 + } + }, + "originalTypeDeclaration": { + "typeId": "type_:UserModel", + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "name": { + "originalName": "UserModel", + "camelCase": { + "unsafeName": "userModel", + "safeName": "userModel" + }, + "snakeCase": { + "unsafeName": "user_model", + "safeName": "user_model" + }, + "screamingSnakeCase": { + "unsafeName": "USER_MODEL", + "safeName": "USER_MODEL" + }, + "pascalCase": { + "unsafeName": "UserModel", + "safeName": "UserModel" + } + } + } + } + ] + } + }, + "jsonExample": { + "username": "username", + "email": "email", + "age": 1, + "weight": 1.1, + "metadata": { + "key": 1.1 + } + } + }, + "valueType": { + "_type": "named", + "name": { + "originalName": "UserModel", + "camelCase": { + "unsafeName": "userModel", + "safeName": "userModel" + }, + "snakeCase": { + "unsafeName": "user_model", + "safeName": "user_model" + }, + "screamingSnakeCase": { + "unsafeName": "USER_MODEL", + "safeName": "USER_MODEL" + }, + "pascalCase": { + "unsafeName": "UserModel", + "safeName": "UserModel" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:UserModel", + "default": null, + "inline": null + } + } + }, + "jsonExample": { + "username": "username", + "email": "email", + "age": 1, + "weight": 1.1, + "metadata": { + "key": 1.1 + } + } + }, + "originalTypeDeclaration": { + "typeId": "type_:CreateResponse", + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "name": { + "originalName": "CreateResponse", + "camelCase": { + "unsafeName": "createResponse", + "safeName": "createResponse" + }, + "snakeCase": { + "unsafeName": "create_response", + "safeName": "create_response" + }, + "screamingSnakeCase": { + "unsafeName": "CREATE_RESPONSE", + "safeName": "CREATE_RESPONSE" + }, + "pascalCase": { + "unsafeName": "CreateResponse", + "safeName": "CreateResponse" + } + } + } + } + ] + } + }, + "jsonExample": { + "user": { + "username": "username", + "email": "email", + "age": 1, + "weight": 1.1, + "metadata": { + "key": 1.1 + } + } + } + } + } + }, + "docs": null + }, + "codeSamples": null + } + ], + "autogeneratedExamples": [ + { + "example": { + "id": "964213a4ad5650f54a396923501cd6a2e03b674f", + "url": "/users", + "name": null, + "endpointHeaders": [], + "endpointPathParameters": [], + "queryParameters": [], + "servicePathParameters": [], + "serviceHeaders": [], + "rootPathParameters": [], + "request": { + "type": "inlinedRequestBody", + "properties": [ + { + "name": { + "name": { + "originalName": "username", + "camelCase": { + "unsafeName": "username", + "safeName": "username" + }, + "snakeCase": { + "unsafeName": "username", + "safeName": "username" + }, + "screamingSnakeCase": { + "unsafeName": "USERNAME", + "safeName": "USERNAME" + }, + "pascalCase": { + "unsafeName": "Username", + "safeName": "Username" + } + }, + "wireValue": "username" + }, + "originalTypeDeclaration": null, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": null, + "valueType": { + "_type": "primitive", + "primitive": { + "v1": "STRING", + "v2": { + "type": "string", + "default": null, + "validation": null + } + } + } + } + } + } + }, + { + "name": { + "name": { + "originalName": "email", + "camelCase": { + "unsafeName": "email", + "safeName": "email" + }, + "snakeCase": { + "unsafeName": "email", + "safeName": "email" + }, + "screamingSnakeCase": { + "unsafeName": "EMAIL", + "safeName": "EMAIL" + }, + "pascalCase": { + "unsafeName": "Email", + "safeName": "Email" + } + }, + "wireValue": "email" + }, + "originalTypeDeclaration": null, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": null, + "valueType": { + "_type": "primitive", + "primitive": { + "v1": "STRING", + "v2": { + "type": "string", + "default": null, + "validation": null + } + } + } + } + } + } + }, + { + "name": { + "name": { + "originalName": "age", + "camelCase": { + "unsafeName": "age", + "safeName": "age" + }, + "snakeCase": { + "unsafeName": "age", + "safeName": "age" + }, + "screamingSnakeCase": { + "unsafeName": "AGE", + "safeName": "AGE" + }, + "pascalCase": { + "unsafeName": "Age", + "safeName": "Age" + } + }, + "wireValue": "age" + }, + "originalTypeDeclaration": null, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": null, + "valueType": { + "_type": "primitive", + "primitive": { + "v1": "UINT", + "v2": null + } + } + } + } + } + }, + { + "name": { + "name": { + "originalName": "weight", + "camelCase": { + "unsafeName": "weight", + "safeName": "weight" + }, + "snakeCase": { + "unsafeName": "weight", + "safeName": "weight" + }, + "screamingSnakeCase": { + "unsafeName": "WEIGHT", + "safeName": "WEIGHT" + }, + "pascalCase": { + "unsafeName": "Weight", + "safeName": "Weight" + } + }, + "wireValue": "weight" + }, + "originalTypeDeclaration": null, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": null, + "valueType": { + "_type": "primitive", + "primitive": { + "v1": "FLOAT", + "v2": null + } + } + } + } + } + }, + { + "name": { + "name": { + "originalName": "metadata", + "camelCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "snakeCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "screamingSnakeCase": { + "unsafeName": "METADATA", + "safeName": "METADATA" + }, + "pascalCase": { + "unsafeName": "Metadata", + "safeName": "Metadata" + } + }, + "wireValue": "metadata" + }, + "originalTypeDeclaration": null, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": null, + "valueType": { + "_type": "named", + "name": { + "originalName": "Metadata", + "camelCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "snakeCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "screamingSnakeCase": { + "unsafeName": "METADATA", + "safeName": "METADATA" + }, + "pascalCase": { + "unsafeName": "Metadata", + "safeName": "Metadata" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:Metadata", + "default": null, + "inline": null + } + } + } + } + } + ], + "jsonExample": {} + }, + "response": { + "type": "ok", + "value": { + "type": "body", + "value": { + "shape": { + "type": "named", + "shape": { + "type": "object", + "properties": [ + { + "name": { + "name": { + "originalName": "user", + "camelCase": { + "unsafeName": "user", + "safeName": "user" + }, + "snakeCase": { + "unsafeName": "user", + "safeName": "user" + }, + "screamingSnakeCase": { + "unsafeName": "USER", + "safeName": "USER" + }, + "pascalCase": { + "unsafeName": "User", + "safeName": "User" + } + }, + "wireValue": "user" + }, + "originalTypeDeclaration": { + "name": { + "originalName": "CreateResponse", + "camelCase": { + "unsafeName": "createResponse", + "safeName": "createResponse" + }, + "snakeCase": { + "unsafeName": "create_response", + "safeName": "create_response" + }, + "screamingSnakeCase": { + "unsafeName": "CREATE_RESPONSE", + "safeName": "CREATE_RESPONSE" + }, + "pascalCase": { + "unsafeName": "CreateResponse", + "safeName": "CreateResponse" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:CreateResponse" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": { + "shape": { + "type": "named", + "shape": { + "type": "object", + "properties": [ + { + "name": { + "name": { + "originalName": "username", + "camelCase": { + "unsafeName": "username", + "safeName": "username" + }, + "snakeCase": { + "unsafeName": "username", + "safeName": "username" + }, + "screamingSnakeCase": { + "unsafeName": "USERNAME", + "safeName": "USERNAME" + }, + "pascalCase": { + "unsafeName": "Username", + "safeName": "Username" + } + }, + "wireValue": "username" + }, + "originalTypeDeclaration": { + "name": { + "originalName": "UserModel", + "camelCase": { + "unsafeName": "userModel", + "safeName": "userModel" + }, + "snakeCase": { + "unsafeName": "user_model", + "safeName": "user_model" + }, + "screamingSnakeCase": { + "unsafeName": "USER_MODEL", + "safeName": "USER_MODEL" + }, + "pascalCase": { + "unsafeName": "UserModel", + "safeName": "UserModel" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:UserModel" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": { + "shape": { + "type": "primitive", + "primitive": { + "type": "string", + "string": { + "original": "username" + } + } + }, + "jsonExample": "username" + }, + "valueType": { + "_type": "primitive", + "primitive": { + "v1": "STRING", + "v2": { + "type": "string", + "default": null, + "validation": null + } + } + } + } + }, + "jsonExample": "username" + } + }, + { + "name": { + "name": { + "originalName": "email", + "camelCase": { + "unsafeName": "email", + "safeName": "email" + }, + "snakeCase": { + "unsafeName": "email", + "safeName": "email" + }, + "screamingSnakeCase": { + "unsafeName": "EMAIL", + "safeName": "EMAIL" + }, + "pascalCase": { + "unsafeName": "Email", + "safeName": "Email" + } + }, + "wireValue": "email" + }, + "originalTypeDeclaration": { + "name": { + "originalName": "UserModel", + "camelCase": { + "unsafeName": "userModel", + "safeName": "userModel" + }, + "snakeCase": { + "unsafeName": "user_model", + "safeName": "user_model" + }, + "screamingSnakeCase": { + "unsafeName": "USER_MODEL", + "safeName": "USER_MODEL" + }, + "pascalCase": { + "unsafeName": "UserModel", + "safeName": "UserModel" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:UserModel" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": { + "shape": { + "type": "primitive", + "primitive": { + "type": "string", + "string": { + "original": "email" + } + } + }, + "jsonExample": "email" + }, + "valueType": { + "_type": "primitive", + "primitive": { + "v1": "STRING", + "v2": { + "type": "string", + "default": null, + "validation": null + } + } + } + } + }, + "jsonExample": "email" + } + }, + { + "name": { + "name": { + "originalName": "age", + "camelCase": { + "unsafeName": "age", + "safeName": "age" + }, + "snakeCase": { + "unsafeName": "age", + "safeName": "age" + }, + "screamingSnakeCase": { + "unsafeName": "AGE", + "safeName": "AGE" + }, + "pascalCase": { + "unsafeName": "Age", + "safeName": "Age" + } + }, + "wireValue": "age" + }, + "originalTypeDeclaration": { + "name": { + "originalName": "UserModel", + "camelCase": { + "unsafeName": "userModel", + "safeName": "userModel" + }, + "snakeCase": { + "unsafeName": "user_model", + "safeName": "user_model" + }, + "screamingSnakeCase": { + "unsafeName": "USER_MODEL", + "safeName": "USER_MODEL" + }, + "pascalCase": { + "unsafeName": "UserModel", + "safeName": "UserModel" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:UserModel" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": { + "shape": { + "type": "primitive", + "primitive": { + "type": "uint", + "uint": 1 + } + }, + "jsonExample": 1 + }, + "valueType": { + "_type": "primitive", + "primitive": { + "v1": "UINT", + "v2": null + } + } + } + }, + "jsonExample": 1 + } + }, + { + "name": { + "name": { + "originalName": "weight", + "camelCase": { + "unsafeName": "weight", + "safeName": "weight" + }, + "snakeCase": { + "unsafeName": "weight", + "safeName": "weight" + }, + "screamingSnakeCase": { + "unsafeName": "WEIGHT", + "safeName": "WEIGHT" + }, + "pascalCase": { + "unsafeName": "Weight", + "safeName": "Weight" + } + }, + "wireValue": "weight" + }, + "originalTypeDeclaration": { + "name": { + "originalName": "UserModel", + "camelCase": { + "unsafeName": "userModel", + "safeName": "userModel" + }, + "snakeCase": { + "unsafeName": "user_model", + "safeName": "user_model" + }, + "screamingSnakeCase": { + "unsafeName": "USER_MODEL", + "safeName": "USER_MODEL" + }, + "pascalCase": { + "unsafeName": "UserModel", + "safeName": "UserModel" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:UserModel" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": { + "shape": { + "type": "primitive", + "primitive": { + "type": "float", + "float": 1.1 + } + }, + "jsonExample": 1.1 + }, + "valueType": { + "_type": "primitive", + "primitive": { + "v1": "FLOAT", + "v2": null + } + } + } + }, + "jsonExample": 1.1 + } + }, + { + "name": { + "name": { + "originalName": "metadata", + "camelCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "snakeCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "screamingSnakeCase": { + "unsafeName": "METADATA", + "safeName": "METADATA" + }, + "pascalCase": { + "unsafeName": "Metadata", + "safeName": "Metadata" + } + }, + "wireValue": "metadata" + }, + "originalTypeDeclaration": { + "name": { + "originalName": "UserModel", + "camelCase": { + "unsafeName": "userModel", + "safeName": "userModel" + }, + "snakeCase": { + "unsafeName": "user_model", + "safeName": "user_model" + }, + "screamingSnakeCase": { + "unsafeName": "USER_MODEL", + "safeName": "USER_MODEL" + }, + "pascalCase": { + "unsafeName": "UserModel", + "safeName": "UserModel" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:UserModel" + }, + "value": { + "shape": { + "type": "container", + "container": { + "type": "optional", + "optional": { + "shape": { + "type": "named", + "shape": { + "type": "undiscriminatedUnion", + "index": 0, + "singleUnionType": { + "shape": { + "type": "container", + "container": { + "type": "map", + "map": [ + { + "key": { + "shape": { + "type": "primitive", + "primitive": { + "type": "string", + "string": { + "original": "metadata" + } + } + }, + "jsonExample": "metadata" + }, + "value": { + "shape": { + "type": "named", + "shape": { + "type": "undiscriminatedUnion", + "index": 0, + "singleUnionType": { + "shape": { + "type": "primitive", + "primitive": { + "type": "double", + "double": 1.1 + } + }, + "jsonExample": 1.1 + } + }, + "typeName": { + "name": { + "originalName": "MetadataValue", + "camelCase": { + "unsafeName": "metadataValue", + "safeName": "metadataValue" + }, + "snakeCase": { + "unsafeName": "metadata_value", + "safeName": "metadata_value" + }, + "screamingSnakeCase": { + "unsafeName": "METADATA_VALUE", + "safeName": "METADATA_VALUE" + }, + "pascalCase": { + "unsafeName": "MetadataValue", + "safeName": "MetadataValue" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:MetadataValue" + } + }, + "jsonExample": 1.1 + } + } + ], + "keyType": { + "_type": "primitive", + "primitive": { + "v1": "STRING", + "v2": { + "type": "string", + "default": null, + "validation": null + } + } + }, + "valueType": { + "_type": "named", + "name": { + "originalName": "MetadataValue", + "camelCase": { + "unsafeName": "metadataValue", + "safeName": "metadataValue" + }, + "snakeCase": { + "unsafeName": "metadata_value", + "safeName": "metadata_value" + }, + "screamingSnakeCase": { + "unsafeName": "METADATA_VALUE", + "safeName": "METADATA_VALUE" + }, + "pascalCase": { + "unsafeName": "MetadataValue", + "safeName": "MetadataValue" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:MetadataValue", + "default": null, + "inline": null + } + } + }, + "jsonExample": { + "metadata": 1.1 + } + } + }, + "typeName": { + "name": { + "originalName": "Metadata", + "camelCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "snakeCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "screamingSnakeCase": { + "unsafeName": "METADATA", + "safeName": "METADATA" + }, + "pascalCase": { + "unsafeName": "Metadata", + "safeName": "Metadata" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:Metadata" + } + }, + "jsonExample": { + "metadata": 1.1 + } + }, + "valueType": { + "_type": "named", + "name": { + "originalName": "Metadata", + "camelCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "snakeCase": { + "unsafeName": "metadata", + "safeName": "metadata" + }, + "screamingSnakeCase": { + "unsafeName": "METADATA", + "safeName": "METADATA" + }, + "pascalCase": { + "unsafeName": "Metadata", + "safeName": "Metadata" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:Metadata", + "default": null, + "inline": null + } + } + }, + "jsonExample": { + "metadata": 1.1 + } + } + } + ] + }, + "typeName": { + "name": { + "originalName": "UserModel", + "camelCase": { + "unsafeName": "userModel", + "safeName": "userModel" + }, + "snakeCase": { + "unsafeName": "user_model", + "safeName": "user_model" + }, + "screamingSnakeCase": { + "unsafeName": "USER_MODEL", + "safeName": "USER_MODEL" + }, + "pascalCase": { + "unsafeName": "UserModel", + "safeName": "UserModel" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:UserModel" + } + }, + "jsonExample": { + "username": "username", + "email": "email", + "age": 1, + "weight": 1.1, + "metadata": { + "metadata": 1.1 + } + } + }, + "valueType": { + "_type": "named", + "name": { + "originalName": "UserModel", + "camelCase": { + "unsafeName": "userModel", + "safeName": "userModel" + }, + "snakeCase": { + "unsafeName": "user_model", + "safeName": "user_model" + }, + "screamingSnakeCase": { + "unsafeName": "USER_MODEL", + "safeName": "USER_MODEL" + }, + "pascalCase": { + "unsafeName": "UserModel", + "safeName": "UserModel" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:UserModel", + "default": null, + "inline": null + } + } + }, + "jsonExample": { + "username": "username", + "email": "email", + "age": 1, + "weight": 1.1, + "metadata": { + "metadata": 1.1 + } + } + } + } + ] + }, + "typeName": { + "name": { + "originalName": "CreateResponse", + "camelCase": { + "unsafeName": "createResponse", + "safeName": "createResponse" + }, + "snakeCase": { + "unsafeName": "create_response", + "safeName": "create_response" + }, + "screamingSnakeCase": { + "unsafeName": "CREATE_RESPONSE", + "safeName": "CREATE_RESPONSE" + }, + "pascalCase": { + "unsafeName": "CreateResponse", + "safeName": "CreateResponse" + } + }, + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "typeId": "type_:CreateResponse" + } + }, + "jsonExample": { + "user": { + "username": "username", + "email": "email", + "age": 1, + "weight": 1.1, + "metadata": { + "metadata": 1.1 + } + } + } + } + } + }, + "docs": null + } + } + ], + "pagination": null, + "transport": null, + "availability": null, + "docs": null + } + ] + } + }, + "constants": { + "errorInstanceIdKey": { + "name": { + "originalName": "errorInstanceId", + "camelCase": { + "unsafeName": "errorInstanceID", + "safeName": "errorInstanceID" + }, + "snakeCase": { + "unsafeName": "error_instance_id", + "safeName": "error_instance_id" + }, + "screamingSnakeCase": { + "unsafeName": "ERROR_INSTANCE_ID", + "safeName": "ERROR_INSTANCE_ID" + }, + "pascalCase": { + "unsafeName": "ErrorInstanceID", + "safeName": "ErrorInstanceID" + } + }, + "wireValue": "errorInstanceId" + } + }, + "environments": null, + "errorDiscriminationStrategy": { + "type": "statusCode" + }, + "basePath": null, + "pathParameters": [], + "variables": [], + "serviceTypeReferenceInfo": { + "typesReferencedOnlyByService": {}, + "sharedTypes": [ + "type_:Metadata", + "type_:CreateResponse", + "type_:UserModel", + "type_:MetadataValue" + ] + }, + "webhookGroups": {}, + "websocketChannels": {}, + "readmeConfig": null, + "sourceConfig": null, + "publishConfig": null, + "subpackages": { + "subpackage_userservice": { + "name": { + "originalName": "userservice", + "camelCase": { + "unsafeName": "userservice", + "safeName": "userservice" + }, + "snakeCase": { + "unsafeName": "userservice", + "safeName": "userservice" + }, + "screamingSnakeCase": { + "unsafeName": "USERSERVICE", + "safeName": "USERSERVICE" + }, + "pascalCase": { + "unsafeName": "Userservice", + "safeName": "Userservice" + } + }, + "fernFilepath": { + "allParts": [ + { + "originalName": "userservice", + "camelCase": { + "unsafeName": "userservice", + "safeName": "userservice" + }, + "snakeCase": { + "unsafeName": "userservice", + "safeName": "userservice" + }, + "screamingSnakeCase": { + "unsafeName": "USERSERVICE", + "safeName": "USERSERVICE" + }, + "pascalCase": { + "unsafeName": "Userservice", + "safeName": "Userservice" + } + } + ], + "packagePath": [], + "file": { + "originalName": "userservice", + "camelCase": { + "unsafeName": "userservice", + "safeName": "userservice" + }, + "snakeCase": { + "unsafeName": "userservice", + "safeName": "userservice" + }, + "screamingSnakeCase": { + "unsafeName": "USERSERVICE", + "safeName": "USERSERVICE" + }, + "pascalCase": { + "unsafeName": "Userservice", + "safeName": "Userservice" + } + } + }, + "service": "service_userservice", + "types": [], + "errors": [], + "subpackages": [], + "navigationConfig": null, + "webhooks": null, + "websocket": null, + "hasEndpointsInTree": true, + "docs": null + } + }, + "rootPackage": { + "fernFilepath": { + "allParts": [], + "packagePath": [], + "file": null + }, + "websocket": null, + "service": null, + "types": [ + "type_:CreateResponse", + "type_:UserModel", + "type_:Metadata", + "type_:MetadataValue" + ], + "errors": [], + "subpackages": [ + "subpackage_userservice" + ], + "webhooks": null, + "navigationConfig": null, + "hasEndpointsInTree": true, + "docs": null + }, + "sdkConfig": { + "isAuthMandatory": false, + "hasStreamingEndpoints": false, + "hasPaginatedEndpoints": false, + "hasFileDownloadEndpoints": false, + "platformHeaders": { + "language": "X-Fern-Language", + "sdkName": "X-Fern-SDK-Name", + "sdkVersion": "X-Fern-SDK-Version", + "userAgent": null + } + } +} \ No newline at end of file diff --git a/packages/cli/register/src/ir-to-fdr-converter/__test__/__snapshots__/csharp-grpc-proto-exhaustive.json b/packages/cli/register/src/ir-to-fdr-converter/__test__/__snapshots__/csharp-grpc-proto-exhaustive.json new file mode 100644 index 00000000000..86c8f3a7075 --- /dev/null +++ b/packages/cli/register/src/ir-to-fdr-converter/__test__/__snapshots__/csharp-grpc-proto-exhaustive.json @@ -0,0 +1,1821 @@ +{ + "types": { + "type_:Column": { + "name": "Column", + "shape": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "id", + "valueType": { + "type": "primitive", + "value": { + "type": "string" + } + } + }, + { + "key": "values", + "valueType": { + "type": "list", + "itemType": { + "type": "primitive", + "value": { + "type": "double", + "minimum": 2.2250738585072014e-308, + "maximum": 1.7976931348623157e+308, + "default": 0 + } + } + } + }, + { + "key": "metadata", + "valueType": { + "type": "optional", + "itemType": { + "type": "id", + "value": "type_:Metadata" + } + } + }, + { + "key": "indexedData", + "valueType": { + "type": "optional", + "itemType": { + "type": "id", + "value": "type_:IndexedData" + } + } + } + ], + "extraProperties": { + "type": "unknown" + } + } + }, + "type_:DeleteResponse": { + "name": "DeleteResponse", + "shape": { + "type": "object", + "extends": [], + "properties": [], + "extraProperties": { + "type": "unknown" + } + } + }, + "type_:DescribeResponse": { + "name": "DescribeResponse", + "shape": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "namespaces", + "valueType": { + "type": "optional", + "itemType": { + "type": "map", + "keyType": { + "type": "primitive", + "value": { + "type": "string" + } + }, + "valueType": { + "type": "id", + "value": "type_:NamespaceSummary" + } + } + } + }, + { + "key": "dimension", + "valueType": { + "type": "optional", + "itemType": { + "type": "primitive", + "value": { + "type": "uint" + } + } + } + }, + { + "key": "fullness", + "valueType": { + "type": "optional", + "itemType": { + "type": "primitive", + "value": { + "type": "double", + "minimum": 2.2250738585072014e-308, + "maximum": 1.7976931348623157e+308, + "default": 0 + } + } + } + }, + { + "key": "totalCount", + "valueType": { + "type": "optional", + "itemType": { + "type": "primitive", + "value": { + "type": "uint" + } + } + } + } + ], + "extraProperties": { + "type": "unknown" + } + } + }, + "type_:FetchResponse": { + "name": "FetchResponse", + "shape": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "columns", + "valueType": { + "type": "optional", + "itemType": { + "type": "map", + "keyType": { + "type": "primitive", + "value": { + "type": "string" + } + }, + "valueType": { + "type": "id", + "value": "type_:Column" + } + } + } + }, + { + "key": "namespace", + "valueType": { + "type": "optional", + "itemType": { + "type": "primitive", + "value": { + "type": "string" + } + } + } + }, + { + "key": "usage", + "valueType": { + "type": "optional", + "itemType": { + "type": "id", + "value": "type_:Usage" + } + } + } + ], + "extraProperties": { + "type": "unknown" + } + } + }, + "type_:IndexedData": { + "name": "IndexedData", + "shape": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "indices", + "valueType": { + "type": "list", + "itemType": { + "type": "primitive", + "value": { + "type": "uint" + } + } + } + }, + { + "key": "values", + "valueType": { + "type": "list", + "itemType": { + "type": "primitive", + "value": { + "type": "double", + "minimum": 2.2250738585072014e-308, + "maximum": 1.7976931348623157e+308, + "default": 0 + } + } + } + } + ], + "extraProperties": { + "type": "unknown" + } + } + }, + "type_:ListElement": { + "name": "ListElement", + "shape": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "id", + "valueType": { + "type": "optional", + "itemType": { + "type": "primitive", + "value": { + "type": "string" + } + } + } + } + ], + "extraProperties": { + "type": "unknown" + } + } + }, + "type_:ListResponse": { + "name": "ListResponse", + "shape": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "columns", + "valueType": { + "type": "optional", + "itemType": { + "type": "list", + "itemType": { + "type": "id", + "value": "type_:ListElement" + } + } + } + }, + { + "key": "pagination", + "valueType": { + "type": "optional", + "itemType": { + "type": "id", + "value": "type_:Pagination" + } + } + }, + { + "key": "namespace", + "valueType": { + "type": "optional", + "itemType": { + "type": "primitive", + "value": { + "type": "string" + } + } + } + }, + { + "key": "usage", + "valueType": { + "type": "optional", + "itemType": { + "type": "id", + "value": "type_:Usage" + } + } + } + ], + "extraProperties": { + "type": "unknown" + } + } + }, + "type_:NamespaceSummary": { + "name": "NamespaceSummary", + "shape": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "count", + "valueType": { + "type": "optional", + "itemType": { + "type": "primitive", + "value": { + "type": "uint" + } + } + } + } + ], + "extraProperties": { + "type": "unknown" + } + } + }, + "type_:Pagination": { + "name": "Pagination", + "shape": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "next", + "valueType": { + "type": "optional", + "itemType": { + "type": "primitive", + "value": { + "type": "string" + } + } + } + } + ], + "extraProperties": { + "type": "unknown" + } + } + }, + "type_:QueryColumn": { + "name": "QueryColumn", + "shape": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "values", + "valueType": { + "type": "list", + "itemType": { + "type": "primitive", + "value": { + "type": "double", + "minimum": 2.2250738585072014e-308, + "maximum": 1.7976931348623157e+308, + "default": 0 + } + } + } + }, + { + "key": "topK", + "valueType": { + "type": "optional", + "itemType": { + "type": "primitive", + "value": { + "type": "uint" + } + } + } + }, + { + "key": "namespace", + "valueType": { + "type": "optional", + "itemType": { + "type": "primitive", + "value": { + "type": "string" + } + } + } + }, + { + "key": "filter", + "valueType": { + "type": "optional", + "itemType": { + "type": "id", + "value": "type_:Metadata" + } + } + }, + { + "key": "indexedData", + "valueType": { + "type": "optional", + "itemType": { + "type": "id", + "value": "type_:IndexedData" + } + } + } + ], + "extraProperties": { + "type": "unknown" + } + } + }, + "type_:QueryResponse": { + "name": "QueryResponse", + "shape": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "results", + "valueType": { + "type": "optional", + "itemType": { + "type": "list", + "itemType": { + "type": "id", + "value": "type_:QueryResult" + } + } + } + }, + { + "key": "matches", + "valueType": { + "type": "optional", + "itemType": { + "type": "list", + "itemType": { + "type": "id", + "value": "type_:ScoredColumn" + } + } + } + }, + { + "key": "namespace", + "valueType": { + "type": "optional", + "itemType": { + "type": "primitive", + "value": { + "type": "string" + } + } + } + }, + { + "key": "usage", + "valueType": { + "type": "optional", + "itemType": { + "type": "id", + "value": "type_:Usage" + } + } + } + ], + "extraProperties": { + "type": "unknown" + } + } + }, + "type_:QueryResult": { + "name": "QueryResult", + "shape": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "matches", + "valueType": { + "type": "optional", + "itemType": { + "type": "list", + "itemType": { + "type": "id", + "value": "type_:ScoredColumn" + } + } + } + }, + { + "key": "namespace", + "valueType": { + "type": "optional", + "itemType": { + "type": "primitive", + "value": { + "type": "string" + } + } + } + } + ], + "extraProperties": { + "type": "unknown" + } + } + }, + "type_:ScoredColumn": { + "name": "ScoredColumn", + "shape": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "id", + "valueType": { + "type": "primitive", + "value": { + "type": "string" + } + } + }, + { + "key": "score", + "valueType": { + "type": "optional", + "itemType": { + "type": "primitive", + "value": { + "type": "double", + "minimum": 2.2250738585072014e-308, + "maximum": 1.7976931348623157e+308, + "default": 0 + } + } + } + }, + { + "key": "values", + "valueType": { + "type": "optional", + "itemType": { + "type": "list", + "itemType": { + "type": "primitive", + "value": { + "type": "double", + "minimum": 2.2250738585072014e-308, + "maximum": 1.7976931348623157e+308, + "default": 0 + } + } + } + } + }, + { + "key": "metadata", + "valueType": { + "type": "optional", + "itemType": { + "type": "id", + "value": "type_:Metadata" + } + } + }, + { + "key": "indexedData", + "valueType": { + "type": "optional", + "itemType": { + "type": "id", + "value": "type_:IndexedData" + } + } + } + ], + "extraProperties": { + "type": "unknown" + } + } + }, + "type_:UpdateResponse": { + "name": "UpdateResponse", + "shape": { + "type": "object", + "extends": [], + "properties": [], + "extraProperties": { + "type": "unknown" + } + } + }, + "type_:UploadResponse": { + "name": "UploadResponse", + "shape": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "count", + "valueType": { + "type": "optional", + "itemType": { + "type": "primitive", + "value": { + "type": "uint" + } + } + } + } + ], + "extraProperties": { + "type": "unknown" + } + } + }, + "type_:Usage": { + "name": "Usage", + "shape": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "units", + "valueType": { + "type": "optional", + "itemType": { + "type": "primitive", + "value": { + "type": "uint" + } + } + } + } + ], + "extraProperties": { + "type": "unknown" + } + } + }, + "type_:Metadata": { + "name": "Metadata", + "shape": { + "type": "undiscriminatedUnion", + "variants": [ + { + "type": { + "type": "map", + "keyType": { + "type": "primitive", + "value": { + "type": "string" + } + }, + "valueType": { + "type": "id", + "value": "type_:MetadataValue" + } + } + }, + { + "type": { + "type": "map", + "keyType": { + "type": "primitive", + "value": { + "type": "string" + } + }, + "valueType": { + "type": "unknown" + } + } + } + ] + } + }, + "type_:MetadataValue": { + "name": "MetadataValue", + "shape": { + "type": "undiscriminatedUnion", + "variants": [ + { + "type": { + "type": "primitive", + "value": { + "type": "double" + } + } + }, + { + "type": { + "type": "primitive", + "value": { + "type": "string" + } + } + }, + { + "type": { + "type": "primitive", + "value": { + "type": "boolean", + "default": false + } + } + } + ] + } + } + }, + "subpackages": { + "subpackage_dataservice": { + "subpackageId": "subpackage_dataservice", + "displayName": "DataService", + "name": "dataservice", + "endpoints": [ + { + "auth": false, + "method": "POST", + "defaultEnvironment": "Default", + "environments": [ + { + "id": "Default", + "baseUrl": "https://localhost" + } + ], + "id": "foo", + "originalEndpointId": "endpoint_dataservice.foo", + "name": "Foo", + "path": { + "pathParameters": [], + "parts": [ + { + "type": "literal", + "value": "" + }, + { + "type": "literal", + "value": "/foo" + } + ] + }, + "queryParameters": [], + "headers": [], + "response": { + "type": { + "type": "reference", + "value": { + "type": "map", + "keyType": { + "type": "primitive", + "value": { + "type": "string" + } + }, + "valueType": { + "type": "unknown" + } + } + } + }, + "errorsV2": [], + "examples": [ + { + "path": "/foo", + "pathParameters": {}, + "queryParameters": {}, + "headers": {}, + "responseStatusCode": 200, + "responseBody": { + "key": "value" + }, + "responseBodyV3": { + "type": "json", + "value": { + "key": "value" + } + } + } + ] + }, + { + "auth": false, + "method": "POST", + "defaultEnvironment": "Default", + "environments": [ + { + "id": "Default", + "baseUrl": "https://localhost" + } + ], + "id": "upload", + "originalEndpointId": "endpoint_dataservice.upload", + "name": "Upload", + "path": { + "pathParameters": [], + "parts": [ + { + "type": "literal", + "value": "" + }, + { + "type": "literal", + "value": "/data" + } + ] + }, + "queryParameters": [], + "headers": [], + "request": { + "type": { + "type": "json", + "contentType": "application/json", + "shape": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "columns", + "valueType": { + "type": "list", + "itemType": { + "type": "id", + "value": "type_:Column" + } + } + }, + { + "key": "namespace", + "valueType": { + "type": "optional", + "itemType": { + "type": "primitive", + "value": { + "type": "string" + } + } + } + } + ] + } + } + }, + "response": { + "type": { + "type": "reference", + "value": { + "type": "id", + "value": "type_:UploadResponse" + } + }, + "description": "OK" + }, + "errorsV2": [], + "examples": [ + { + "path": "/data", + "pathParameters": {}, + "queryParameters": {}, + "headers": {}, + "requestBody": { + "columns": [ + { + "id": "id", + "values": [ + 1.1 + ] + } + ] + }, + "requestBodyV3": { + "type": "json", + "value": { + "columns": [ + { + "id": "id", + "values": [ + 1.1 + ] + } + ] + } + }, + "responseStatusCode": 200, + "responseBody": { + "count": 1 + }, + "responseBodyV3": { + "type": "json", + "value": { + "count": 1 + } + } + } + ] + }, + { + "auth": false, + "method": "POST", + "defaultEnvironment": "Default", + "environments": [ + { + "id": "Default", + "baseUrl": "https://localhost" + } + ], + "id": "delete", + "originalEndpointId": "endpoint_dataservice.delete", + "name": "Delete", + "path": { + "pathParameters": [], + "parts": [ + { + "type": "literal", + "value": "" + }, + { + "type": "literal", + "value": "/data/delete" + } + ] + }, + "queryParameters": [], + "headers": [], + "request": { + "type": { + "type": "json", + "contentType": "application/json", + "shape": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "ids", + "valueType": { + "type": "optional", + "itemType": { + "type": "list", + "itemType": { + "type": "primitive", + "value": { + "type": "string" + } + } + } + } + }, + { + "key": "deleteAll", + "valueType": { + "type": "optional", + "itemType": { + "type": "primitive", + "value": { + "type": "boolean", + "default": false + } + } + } + }, + { + "key": "namespace", + "valueType": { + "type": "optional", + "itemType": { + "type": "primitive", + "value": { + "type": "string" + } + } + } + }, + { + "key": "filter", + "valueType": { + "type": "optional", + "itemType": { + "type": "id", + "value": "type_:Metadata" + } + } + } + ] + } + } + }, + "response": { + "type": { + "type": "reference", + "value": { + "type": "id", + "value": "type_:DeleteResponse" + } + }, + "description": "OK" + }, + "errorsV2": [], + "examples": [ + { + "path": "/data/delete", + "pathParameters": {}, + "queryParameters": {}, + "headers": {}, + "requestBody": {}, + "requestBodyV3": { + "type": "json", + "value": {} + }, + "responseStatusCode": 200, + "responseBody": {}, + "responseBodyV3": { + "type": "json", + "value": {} + } + } + ] + }, + { + "auth": false, + "method": "POST", + "defaultEnvironment": "Default", + "environments": [ + { + "id": "Default", + "baseUrl": "https://localhost" + } + ], + "id": "describe", + "originalEndpointId": "endpoint_dataservice.describe", + "name": "Describe", + "path": { + "pathParameters": [], + "parts": [ + { + "type": "literal", + "value": "" + }, + { + "type": "literal", + "value": "/data/describe" + } + ] + }, + "queryParameters": [], + "headers": [], + "request": { + "type": { + "type": "json", + "contentType": "application/json", + "shape": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "filter", + "valueType": { + "type": "optional", + "itemType": { + "type": "id", + "value": "type_:Metadata" + } + } + } + ] + } + } + }, + "response": { + "type": { + "type": "reference", + "value": { + "type": "id", + "value": "type_:DescribeResponse" + } + }, + "description": "OK" + }, + "errorsV2": [], + "examples": [ + { + "path": "/data/describe", + "pathParameters": {}, + "queryParameters": {}, + "headers": {}, + "requestBody": {}, + "requestBodyV3": { + "type": "json", + "value": {} + }, + "responseStatusCode": 200, + "responseBody": { + "namespaces": { + "key": { + "count": 1 + } + }, + "dimension": 1, + "fullness": 1.1, + "totalCount": 1 + }, + "responseBodyV3": { + "type": "json", + "value": { + "namespaces": { + "key": { + "count": 1 + } + }, + "dimension": 1, + "fullness": 1.1, + "totalCount": 1 + } + } + } + ] + }, + { + "auth": false, + "method": "GET", + "defaultEnvironment": "Default", + "environments": [ + { + "id": "Default", + "baseUrl": "https://localhost" + } + ], + "id": "fetch", + "originalEndpointId": "endpoint_dataservice.fetch", + "name": "Fetch", + "path": { + "pathParameters": [], + "parts": [ + { + "type": "literal", + "value": "" + }, + { + "type": "literal", + "value": "/data/fetch" + } + ] + }, + "queryParameters": [ + { + "key": "ids", + "type": { + "type": "optional", + "itemType": { + "type": "primitive", + "value": { + "type": "string" + } + } + } + }, + { + "key": "namespace", + "type": { + "type": "optional", + "itemType": { + "type": "primitive", + "value": { + "type": "string" + } + } + } + } + ], + "headers": [], + "response": { + "type": { + "type": "reference", + "value": { + "type": "id", + "value": "type_:FetchResponse" + } + }, + "description": "OK" + }, + "errorsV2": [], + "examples": [ + { + "path": "/data/fetch", + "pathParameters": {}, + "queryParameters": {}, + "headers": {}, + "responseStatusCode": 200, + "responseBody": { + "columns": { + "key": { + "id": "id", + "values": [ + 1.1 + ], + "metadata": { + "key": 1.1 + }, + "indexedData": { + "indices": [ + 1 + ], + "values": [ + 1.1 + ] + } + } + }, + "namespace": "namespace", + "usage": { + "units": 1 + } + }, + "responseBodyV3": { + "type": "json", + "value": { + "columns": { + "key": { + "id": "id", + "values": [ + 1.1 + ], + "metadata": { + "key": 1.1 + }, + "indexedData": { + "indices": [ + 1 + ], + "values": [ + 1.1 + ] + } + } + }, + "namespace": "namespace", + "usage": { + "units": 1 + } + } + } + } + ] + }, + { + "auth": false, + "method": "GET", + "defaultEnvironment": "Default", + "environments": [ + { + "id": "Default", + "baseUrl": "https://localhost" + } + ], + "id": "list", + "originalEndpointId": "endpoint_dataservice.list", + "name": "List", + "path": { + "pathParameters": [], + "parts": [ + { + "type": "literal", + "value": "" + }, + { + "type": "literal", + "value": "/data/list" + } + ] + }, + "queryParameters": [ + { + "key": "prefix", + "type": { + "type": "optional", + "itemType": { + "type": "primitive", + "value": { + "type": "string" + } + } + } + }, + { + "key": "limit", + "type": { + "type": "optional", + "itemType": { + "type": "primitive", + "value": { + "type": "uint" + } + } + } + }, + { + "key": "paginationToken", + "type": { + "type": "optional", + "itemType": { + "type": "primitive", + "value": { + "type": "string" + } + } + } + }, + { + "key": "namespace", + "type": { + "type": "optional", + "itemType": { + "type": "primitive", + "value": { + "type": "string" + } + } + } + } + ], + "headers": [], + "response": { + "type": { + "type": "reference", + "value": { + "type": "id", + "value": "type_:ListResponse" + } + }, + "description": "OK" + }, + "errorsV2": [], + "examples": [ + { + "path": "/data/list", + "pathParameters": {}, + "queryParameters": {}, + "headers": {}, + "responseStatusCode": 200, + "responseBody": { + "columns": [ + { + "id": "id" + } + ], + "pagination": { + "next": "next" + }, + "namespace": "namespace", + "usage": { + "units": 1 + } + }, + "responseBodyV3": { + "type": "json", + "value": { + "columns": [ + { + "id": "id" + } + ], + "pagination": { + "next": "next" + }, + "namespace": "namespace", + "usage": { + "units": 1 + } + } + } + } + ] + }, + { + "auth": false, + "method": "POST", + "defaultEnvironment": "Default", + "environments": [ + { + "id": "Default", + "baseUrl": "https://localhost" + } + ], + "id": "query", + "originalEndpointId": "endpoint_dataservice.query", + "name": "Query", + "path": { + "pathParameters": [], + "parts": [ + { + "type": "literal", + "value": "" + }, + { + "type": "literal", + "value": "/data/query" + } + ] + }, + "queryParameters": [], + "headers": [], + "request": { + "type": { + "type": "json", + "contentType": "application/json", + "shape": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "namespace", + "valueType": { + "type": "optional", + "itemType": { + "type": "primitive", + "value": { + "type": "string" + } + } + } + }, + { + "key": "topK", + "valueType": { + "type": "primitive", + "value": { + "type": "uint" + } + } + }, + { + "key": "filter", + "valueType": { + "type": "optional", + "itemType": { + "type": "id", + "value": "type_:Metadata" + } + } + }, + { + "key": "includeValues", + "valueType": { + "type": "optional", + "itemType": { + "type": "primitive", + "value": { + "type": "boolean", + "default": false + } + } + } + }, + { + "key": "includeMetadata", + "valueType": { + "type": "optional", + "itemType": { + "type": "primitive", + "value": { + "type": "boolean", + "default": false + } + } + } + }, + { + "key": "queries", + "valueType": { + "type": "optional", + "itemType": { + "type": "list", + "itemType": { + "type": "id", + "value": "type_:QueryColumn" + } + } + } + }, + { + "key": "column", + "valueType": { + "type": "optional", + "itemType": { + "type": "list", + "itemType": { + "type": "primitive", + "value": { + "type": "double", + "minimum": 2.2250738585072014e-308, + "maximum": 1.7976931348623157e+308, + "default": 0 + } + } + } + } + }, + { + "key": "id", + "valueType": { + "type": "optional", + "itemType": { + "type": "primitive", + "value": { + "type": "string" + } + } + } + }, + { + "key": "indexedData", + "valueType": { + "type": "optional", + "itemType": { + "type": "id", + "value": "type_:IndexedData" + } + } + } + ] + } + } + }, + "response": { + "type": { + "type": "reference", + "value": { + "type": "id", + "value": "type_:QueryResponse" + } + }, + "description": "OK" + }, + "errorsV2": [], + "examples": [ + { + "path": "/data/query", + "pathParameters": {}, + "queryParameters": {}, + "headers": {}, + "requestBody": { + "topK": 1 + }, + "requestBodyV3": { + "type": "json", + "value": { + "topK": 1 + } + }, + "responseStatusCode": 200, + "responseBody": { + "results": [ + { + "matches": [ + { + "id": "id" + } + ], + "namespace": "namespace" + } + ], + "matches": [ + { + "id": "id", + "score": 1.1, + "values": [ + 1.1 + ], + "metadata": { + "key": 1.1 + }, + "indexedData": { + "indices": [ + 1 + ], + "values": [ + 1.1 + ] + } + } + ], + "namespace": "namespace", + "usage": { + "units": 1 + } + }, + "responseBodyV3": { + "type": "json", + "value": { + "results": [ + { + "matches": [ + { + "id": "id" + } + ], + "namespace": "namespace" + } + ], + "matches": [ + { + "id": "id", + "score": 1.1, + "values": [ + 1.1 + ], + "metadata": { + "key": 1.1 + }, + "indexedData": { + "indices": [ + 1 + ], + "values": [ + 1.1 + ] + } + } + ], + "namespace": "namespace", + "usage": { + "units": 1 + } + } + } + } + ] + }, + { + "auth": false, + "method": "POST", + "defaultEnvironment": "Default", + "environments": [ + { + "id": "Default", + "baseUrl": "https://localhost" + } + ], + "id": "update", + "originalEndpointId": "endpoint_dataservice.update", + "name": "Update", + "path": { + "pathParameters": [], + "parts": [ + { + "type": "literal", + "value": "" + }, + { + "type": "literal", + "value": "/data/update" + } + ] + }, + "queryParameters": [], + "headers": [], + "request": { + "type": { + "type": "json", + "contentType": "application/json", + "shape": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "id", + "valueType": { + "type": "primitive", + "value": { + "type": "string" + } + } + }, + { + "key": "values", + "valueType": { + "type": "optional", + "itemType": { + "type": "list", + "itemType": { + "type": "primitive", + "value": { + "type": "double", + "minimum": 2.2250738585072014e-308, + "maximum": 1.7976931348623157e+308, + "default": 0 + } + } + } + } + }, + { + "key": "setMetadata", + "valueType": { + "type": "optional", + "itemType": { + "type": "id", + "value": "type_:Metadata" + } + } + }, + { + "key": "namespace", + "valueType": { + "type": "optional", + "itemType": { + "type": "primitive", + "value": { + "type": "string" + } + } + } + }, + { + "key": "indexedData", + "valueType": { + "type": "optional", + "itemType": { + "type": "id", + "value": "type_:IndexedData" + } + } + } + ] + } + } + }, + "response": { + "type": { + "type": "reference", + "value": { + "type": "id", + "value": "type_:UpdateResponse" + } + }, + "description": "OK" + }, + "errorsV2": [], + "examples": [ + { + "path": "/data/update", + "pathParameters": {}, + "queryParameters": {}, + "headers": {}, + "requestBody": { + "id": "id" + }, + "requestBodyV3": { + "type": "json", + "value": { + "id": "id" + } + }, + "responseStatusCode": 200, + "responseBody": {}, + "responseBodyV3": { + "type": "json", + "value": {} + } + } + ] + } + ], + "webhooks": [], + "websockets": [], + "types": [], + "subpackages": [] + } + }, + "rootPackage": { + "endpoints": [], + "webhooks": [], + "websockets": [], + "types": [ + "type_:Column", + "type_:DeleteResponse", + "type_:DescribeResponse", + "type_:FetchResponse", + "type_:IndexedData", + "type_:ListElement", + "type_:ListResponse", + "type_:NamespaceSummary", + "type_:Pagination", + "type_:QueryColumn", + "type_:QueryResponse", + "type_:QueryResult", + "type_:ScoredColumn", + "type_:UpdateResponse", + "type_:UploadResponse", + "type_:Usage", + "type_:Metadata", + "type_:MetadataValue" + ], + "subpackages": [ + "subpackage_dataservice" + ] + }, + "snippetsConfiguration": {}, + "globalHeaders": [] +} \ No newline at end of file diff --git a/packages/cli/register/src/ir-to-fdr-converter/__test__/__snapshots__/csharp-grpc-proto.json b/packages/cli/register/src/ir-to-fdr-converter/__test__/__snapshots__/csharp-grpc-proto.json new file mode 100644 index 00000000000..16a7d804025 --- /dev/null +++ b/packages/cli/register/src/ir-to-fdr-converter/__test__/__snapshots__/csharp-grpc-proto.json @@ -0,0 +1,343 @@ +{ + "types": { + "type_:CreateResponse": { + "name": "CreateResponse", + "shape": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "user", + "valueType": { + "type": "optional", + "itemType": { + "type": "id", + "value": "type_:UserModel" + } + } + } + ], + "extraProperties": { + "type": "unknown" + } + } + }, + "type_:UserModel": { + "name": "UserModel", + "shape": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "username", + "valueType": { + "type": "optional", + "itemType": { + "type": "primitive", + "value": { + "type": "string" + } + } + } + }, + { + "key": "email", + "valueType": { + "type": "optional", + "itemType": { + "type": "primitive", + "value": { + "type": "string" + } + } + } + }, + { + "key": "age", + "valueType": { + "type": "optional", + "itemType": { + "type": "primitive", + "value": { + "type": "uint" + } + } + } + }, + { + "key": "weight", + "valueType": { + "type": "optional", + "itemType": { + "type": "primitive", + "value": { + "type": "double", + "minimum": 2.2250738585072014e-308, + "maximum": 1.7976931348623157e+308, + "default": 0 + } + } + } + }, + { + "key": "metadata", + "valueType": { + "type": "optional", + "itemType": { + "type": "id", + "value": "type_:Metadata" + } + } + } + ], + "extraProperties": { + "type": "unknown" + } + } + }, + "type_:Metadata": { + "name": "Metadata", + "shape": { + "type": "undiscriminatedUnion", + "variants": [ + { + "type": { + "type": "map", + "keyType": { + "type": "primitive", + "value": { + "type": "string" + } + }, + "valueType": { + "type": "id", + "value": "type_:MetadataValue" + } + } + }, + { + "type": { + "type": "map", + "keyType": { + "type": "primitive", + "value": { + "type": "string" + } + }, + "valueType": { + "type": "unknown" + } + } + } + ] + } + }, + "type_:MetadataValue": { + "name": "MetadataValue", + "shape": { + "type": "undiscriminatedUnion", + "variants": [ + { + "type": { + "type": "primitive", + "value": { + "type": "double" + } + } + }, + { + "type": { + "type": "primitive", + "value": { + "type": "string" + } + } + }, + { + "type": { + "type": "primitive", + "value": { + "type": "boolean", + "default": false + } + } + } + ] + } + } + }, + "subpackages": { + "subpackage_userservice": { + "subpackageId": "subpackage_userservice", + "displayName": "UserService", + "name": "userservice", + "endpoints": [ + { + "auth": false, + "method": "POST", + "id": "create", + "originalEndpointId": "endpoint_userservice.create", + "name": "Create", + "path": { + "pathParameters": [], + "parts": [ + { + "type": "literal", + "value": "" + }, + { + "type": "literal", + "value": "/users" + } + ] + }, + "queryParameters": [], + "headers": [], + "request": { + "type": { + "type": "json", + "contentType": "application/json", + "shape": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "username", + "valueType": { + "type": "optional", + "itemType": { + "type": "primitive", + "value": { + "type": "string" + } + } + } + }, + { + "key": "email", + "valueType": { + "type": "optional", + "itemType": { + "type": "primitive", + "value": { + "type": "string" + } + } + } + }, + { + "key": "age", + "valueType": { + "type": "optional", + "itemType": { + "type": "primitive", + "value": { + "type": "uint" + } + } + } + }, + { + "key": "weight", + "valueType": { + "type": "optional", + "itemType": { + "type": "primitive", + "value": { + "type": "double", + "minimum": 2.2250738585072014e-308, + "maximum": 1.7976931348623157e+308, + "default": 0 + } + } + } + }, + { + "key": "metadata", + "valueType": { + "type": "optional", + "itemType": { + "type": "id", + "value": "type_:Metadata" + } + } + } + ] + } + } + }, + "response": { + "type": { + "type": "reference", + "value": { + "type": "id", + "value": "type_:CreateResponse" + } + }, + "description": "OK" + }, + "errorsV2": [], + "examples": [ + { + "path": "/users", + "pathParameters": {}, + "queryParameters": {}, + "headers": {}, + "requestBody": {}, + "requestBodyV3": { + "type": "json", + "value": {} + }, + "responseStatusCode": 200, + "responseBody": { + "user": { + "username": "username", + "email": "email", + "age": 1, + "weight": 1.1, + "metadata": { + "key": 1.1 + } + } + }, + "responseBodyV3": { + "type": "json", + "value": { + "user": { + "username": "username", + "email": "email", + "age": 1, + "weight": 1.1, + "metadata": { + "key": 1.1 + } + } + } + } + } + ] + } + ], + "webhooks": [], + "websockets": [], + "types": [], + "subpackages": [] + } + }, + "rootPackage": { + "endpoints": [], + "webhooks": [], + "websockets": [], + "types": [ + "type_:CreateResponse", + "type_:UserModel", + "type_:Metadata", + "type_:MetadataValue" + ], + "subpackages": [ + "subpackage_userservice" + ] + }, + "snippetsConfiguration": {}, + "globalHeaders": [] +} \ No newline at end of file diff --git a/seed/csharp-model/enum/forward-compatible-enums/.mock/definition/path-param.yml b/seed/csharp-model/enum/forward-compatible-enums/.mock/definition/path-param.yml index 7553551fdc2..5afc7329f1e 100644 --- a/seed/csharp-model/enum/forward-compatible-enums/.mock/definition/path-param.yml +++ b/seed/csharp-model/enum/forward-compatible-enums/.mock/definition/path-param.yml @@ -6,16 +6,12 @@ service: base-path: "" endpoints: send: - path: /path/{operand}/{maybeOperand}/{operandOrColor}/{maybeOperandOrColor} + path: /path/{operand}/{operandOrColor} method: POST path-parameters: operand: root.Operand - maybeOperand: optional operandOrColor: root.ColorOrOperand - maybeOperandOrColor: optional examples: - path-parameters: operand: $root.Operand.GreaterThan - maybeOperand: $root.Operand.LessThan operandOrColor: $root.ColorOrOperand.Red - maybeOperandOrColor: $root.ColorOrOperand.Red \ No newline at end of file diff --git a/seed/csharp-model/enum/plain-enums/.mock/definition/path-param.yml b/seed/csharp-model/enum/plain-enums/.mock/definition/path-param.yml index 7553551fdc2..5afc7329f1e 100644 --- a/seed/csharp-model/enum/plain-enums/.mock/definition/path-param.yml +++ b/seed/csharp-model/enum/plain-enums/.mock/definition/path-param.yml @@ -6,16 +6,12 @@ service: base-path: "" endpoints: send: - path: /path/{operand}/{maybeOperand}/{operandOrColor}/{maybeOperandOrColor} + path: /path/{operand}/{operandOrColor} method: POST path-parameters: operand: root.Operand - maybeOperand: optional operandOrColor: root.ColorOrOperand - maybeOperandOrColor: optional examples: - path-parameters: operand: $root.Operand.GreaterThan - maybeOperand: $root.Operand.LessThan operandOrColor: $root.ColorOrOperand.Red - maybeOperandOrColor: $root.ColorOrOperand.Red \ No newline at end of file diff --git a/seed/csharp-model/grpc-proto-exhaustive/no-custom-config/.mock/generators.yml b/seed/csharp-model/grpc-proto-exhaustive/no-custom-config/.mock/generators.yml index 972ed6d7b73..c23323621f2 100644 --- a/seed/csharp-model/grpc-proto-exhaustive/no-custom-config/.mock/generators.yml +++ b/seed/csharp-model/grpc-proto-exhaustive/no-custom-config/.mock/generators.yml @@ -1,6 +1,7 @@ api: - - proto: - root: proto - target: proto/data/v1/data.proto - overrides: overrides.yml - local-generation: true \ No newline at end of file + - path: openapi/openapi.yml + - proto: + root: proto + target: proto/data/v1/data.proto + overrides: overrides.yml + local-generation: true diff --git a/test-definitions/fern/apis/grpc-proto-exhaustive/openapi/openapi.yml b/seed/csharp-model/grpc-proto-exhaustive/no-custom-config/.mock/openapi/openapi.yml similarity index 100% rename from test-definitions/fern/apis/grpc-proto-exhaustive/openapi/openapi.yml rename to seed/csharp-model/grpc-proto-exhaustive/no-custom-config/.mock/openapi/openapi.yml diff --git a/seed/csharp-model/grpc-proto-exhaustive/read-only-memory/.mock/generators.yml b/seed/csharp-model/grpc-proto-exhaustive/read-only-memory/.mock/generators.yml index 972ed6d7b73..c23323621f2 100644 --- a/seed/csharp-model/grpc-proto-exhaustive/read-only-memory/.mock/generators.yml +++ b/seed/csharp-model/grpc-proto-exhaustive/read-only-memory/.mock/generators.yml @@ -1,6 +1,7 @@ api: - - proto: - root: proto - target: proto/data/v1/data.proto - overrides: overrides.yml - local-generation: true \ No newline at end of file + - path: openapi/openapi.yml + - proto: + root: proto + target: proto/data/v1/data.proto + overrides: overrides.yml + local-generation: true diff --git a/seed/csharp-model/grpc-proto-exhaustive/read-only-memory/.mock/openapi/openapi.yml b/seed/csharp-model/grpc-proto-exhaustive/read-only-memory/.mock/openapi/openapi.yml new file mode 100644 index 00000000000..ebc23143df3 --- /dev/null +++ b/seed/csharp-model/grpc-proto-exhaustive/read-only-memory/.mock/openapi/openapi.yml @@ -0,0 +1,33 @@ +openapi: 3.0.3 +info: + title: Test API + version: 1.0.0 +servers: + - url: https://localhost +tags: + - name: dataservice +paths: + /foo: + post: + tag: dataservice + x-fern-sdk-group-name: + - dataservice + x-fern-sdk-method-name: foo + security: + - ApiKeyAuth: [] + operationId: foo + responses: + "200": + content: + application/json: + schema: + type: object + +security: + - ApiKeyAuth: [] +components: + securitySchemes: + ApiKeyAuth: + type: apiKey + in: header + name: X-API-Key diff --git a/seed/csharp-model/mixed-case/.mock/definition/service.yml b/seed/csharp-model/mixed-case/.mock/definition/service.yml index 5991572a42f..7a38e853c35 100644 --- a/seed/csharp-model/mixed-case/.mock/definition/service.yml +++ b/seed/csharp-model/mixed-case/.mock/definition/service.yml @@ -56,6 +56,7 @@ types: Organization: Organization examples: - value: + status: ACTIVE resource_type: user userName: username metadata_tags: @@ -80,6 +81,7 @@ service: ResourceID: "rsc-xyz" response: body: + status: ACTIVE resource_type: user userName: username metadata_tags: @@ -106,6 +108,7 @@ service: response: body: - resource_type: user + status: ACTIVE userName: username metadata_tags: - tag1 diff --git a/seed/csharp-sdk/any-auth/README.md b/seed/csharp-sdk/any-auth/README.md index 9f544807527..ee1d73a4bdc 100644 --- a/seed/csharp-sdk/any-auth/README.md +++ b/seed/csharp-sdk/any-auth/README.md @@ -26,7 +26,7 @@ await client.Auth.GetTokenAsync( ClientSecret = "client_secret", Audience = "https://api.example.com", GrantType = "client_credentials", - Scope = null, + Scope = "scope", } ); ``` diff --git a/seed/csharp-sdk/any-auth/reference.md b/seed/csharp-sdk/any-auth/reference.md index cc89e89df47..49a3a94c9ff 100644 --- a/seed/csharp-sdk/any-auth/reference.md +++ b/seed/csharp-sdk/any-auth/reference.md @@ -20,7 +20,7 @@ await client.Auth.GetTokenAsync( ClientSecret = "client_secret", Audience = "https://api.example.com", GrantType = "client_credentials", - Scope = null, + Scope = "scope", } ); ``` diff --git a/seed/csharp-sdk/any-auth/snippet.json b/seed/csharp-sdk/any-auth/snippet.json index cf98986297e..c9df0a2f89f 100644 --- a/seed/csharp-sdk/any-auth/snippet.json +++ b/seed/csharp-sdk/any-auth/snippet.json @@ -10,7 +10,7 @@ }, "snippet": { "type": "typescript", - "client": "using SeedAnyAuth;\n\nvar client = new SeedAnyAuthClient(\"TOKEN\");\nawait client.Auth.GetTokenAsync(\n new GetTokenRequest\n {\n ClientId = \"client_id\",\n ClientSecret = \"client_secret\",\n Audience = \"https://api.example.com\",\n GrantType = \"client_credentials\",\n Scope = null,\n }\n);\n" + "client": "using SeedAnyAuth;\n\nvar client = new SeedAnyAuthClient(\"TOKEN\");\nawait client.Auth.GetTokenAsync(\n new GetTokenRequest\n {\n ClientId = \"client_id\",\n ClientSecret = \"client_secret\",\n Audience = \"https://api.example.com\",\n GrantType = \"client_credentials\",\n Scope = \"scope\",\n }\n);\n" } }, { diff --git a/seed/csharp-sdk/any-auth/src/SeedAnyAuth.Test/Unit/MockServer/GetTokenTest.cs b/seed/csharp-sdk/any-auth/src/SeedAnyAuth.Test/Unit/MockServer/GetTokenTest.cs index 69f204172ea..b039876e1a5 100644 --- a/seed/csharp-sdk/any-auth/src/SeedAnyAuth.Test/Unit/MockServer/GetTokenTest.cs +++ b/seed/csharp-sdk/any-auth/src/SeedAnyAuth.Test/Unit/MockServer/GetTokenTest.cs @@ -20,7 +20,8 @@ public async Task MockServerTest() "client_id": "client_id", "client_secret": "client_secret", "audience": "https://api.example.com", - "grant_type": "client_credentials" + "grant_type": "client_credentials", + "scope": "scope" } """; @@ -54,7 +55,7 @@ public async Task MockServerTest() ClientSecret = "client_secret", Audience = "https://api.example.com", GrantType = "client_credentials", - Scope = null, + Scope = "scope", }, RequestOptions ); diff --git a/seed/csharp-sdk/any-auth/src/SeedAnyAuth/Auth/AuthClient.cs b/seed/csharp-sdk/any-auth/src/SeedAnyAuth/Auth/AuthClient.cs index 1a5239e6756..14cf91c577d 100644 --- a/seed/csharp-sdk/any-auth/src/SeedAnyAuth/Auth/AuthClient.cs +++ b/seed/csharp-sdk/any-auth/src/SeedAnyAuth/Auth/AuthClient.cs @@ -25,7 +25,7 @@ internal AuthClient(RawClient client) /// ClientSecret = "client_secret", /// Audience = "https://api.example.com", /// GrantType = "client_credentials", - /// Scope = null, + /// Scope = "scope", /// } /// ); /// diff --git a/seed/csharp-sdk/audiences/README.md b/seed/csharp-sdk/audiences/README.md index 090f4a66383..fb27aa0fb91 100644 --- a/seed/csharp-sdk/audiences/README.md +++ b/seed/csharp-sdk/audiences/README.md @@ -19,7 +19,14 @@ Instantiate and use the client with the following: using SeedAudiences; var client = new SeedAudiencesClient(); -await client.Foo.FindAsync(new FindRequest { PublicProperty = null, PrivateProperty = null }); +await client.Foo.FindAsync( + new FindRequest + { + OptionalString = "optionalString", + PublicProperty = "publicProperty", + PrivateProperty = 1, + } +); ``` ## Exception Handling diff --git a/seed/csharp-sdk/audiences/reference.md b/seed/csharp-sdk/audiences/reference.md index 2275ef0cddb..d0fcbafc736 100644 --- a/seed/csharp-sdk/audiences/reference.md +++ b/seed/csharp-sdk/audiences/reference.md @@ -65,7 +65,14 @@ await client.FolderD.Service.GetDirectThreadAsync();
```csharp -await client.Foo.FindAsync(new FindRequest { PublicProperty = null, PrivateProperty = null }); +await client.Foo.FindAsync( + new FindRequest + { + OptionalString = "optionalString", + PublicProperty = "publicProperty", + PrivateProperty = 1, + } +); ```
diff --git a/seed/csharp-sdk/audiences/snippet.json b/seed/csharp-sdk/audiences/snippet.json index 70a38b4d3db..c78961114dd 100644 --- a/seed/csharp-sdk/audiences/snippet.json +++ b/seed/csharp-sdk/audiences/snippet.json @@ -34,7 +34,7 @@ }, "snippet": { "type": "typescript", - "client": "using SeedAudiences;\n\nvar client = new SeedAudiencesClient();\nawait client.Foo.FindAsync(new FindRequest { PublicProperty = null, PrivateProperty = null });\n" + "client": "using SeedAudiences;\n\nvar client = new SeedAudiencesClient();\nawait client.Foo.FindAsync(\n new FindRequest\n {\n OptionalString = \"optionalString\",\n PublicProperty = \"publicProperty\",\n PrivateProperty = 1,\n }\n);\n" } } ] diff --git a/seed/csharp-sdk/audiences/src/SeedAudiences.Test/Unit/MockServer/FindTest.cs b/seed/csharp-sdk/audiences/src/SeedAudiences.Test/Unit/MockServer/FindTest.cs index a16ce74b4a3..1797f778a3a 100644 --- a/seed/csharp-sdk/audiences/src/SeedAudiences.Test/Unit/MockServer/FindTest.cs +++ b/seed/csharp-sdk/audiences/src/SeedAudiences.Test/Unit/MockServer/FindTest.cs @@ -16,7 +16,10 @@ public class FindTest : BaseMockServerTest public async Task MockServerTest() { const string requestJson = """ - {} + { + "publicProperty": "publicProperty", + "privateProperty": 1 + } """; const string mockResponse = """ @@ -30,6 +33,7 @@ public async Task MockServerTest() WireMock .RequestBuilders.Request.Create() .WithPath("/") + .WithParam("optionalString", "optionalString") .UsingPost() .WithBodyAsJson(requestJson) ) @@ -41,7 +45,12 @@ public async Task MockServerTest() ); var response = await Client.Foo.FindAsync( - new FindRequest { PublicProperty = null, PrivateProperty = null }, + new FindRequest + { + OptionalString = "optionalString", + PublicProperty = "publicProperty", + PrivateProperty = 1, + }, RequestOptions ); JToken diff --git a/seed/csharp-sdk/audiences/src/SeedAudiences/Foo/FooClient.cs b/seed/csharp-sdk/audiences/src/SeedAudiences/Foo/FooClient.cs index 27af342114b..7d6b0bd511b 100644 --- a/seed/csharp-sdk/audiences/src/SeedAudiences/Foo/FooClient.cs +++ b/seed/csharp-sdk/audiences/src/SeedAudiences/Foo/FooClient.cs @@ -18,7 +18,14 @@ internal FooClient(RawClient client) /// /// - /// await client.Foo.FindAsync(new FindRequest { PublicProperty = null, PrivateProperty = null }); + /// await client.Foo.FindAsync( + /// new FindRequest + /// { + /// OptionalString = "optionalString", + /// PublicProperty = "publicProperty", + /// PrivateProperty = 1, + /// } + /// ); /// /// public async Task FindAsync( diff --git a/seed/csharp-sdk/cross-package-type-names/README.md b/seed/csharp-sdk/cross-package-type-names/README.md index a24063ed2cf..a8786920c27 100644 --- a/seed/csharp-sdk/cross-package-type-names/README.md +++ b/seed/csharp-sdk/cross-package-type-names/README.md @@ -19,7 +19,14 @@ Instantiate and use the client with the following: using SeedCrossPackageTypeNames; var client = new SeedCrossPackageTypeNamesClient(); -await client.Foo.FindAsync(new FindRequest { PublicProperty = null, PrivateProperty = null }); +await client.Foo.FindAsync( + new FindRequest + { + OptionalString = "optionalString", + PublicProperty = "publicProperty", + PrivateProperty = 1, + } +); ``` ## Exception Handling diff --git a/seed/csharp-sdk/cross-package-type-names/reference.md b/seed/csharp-sdk/cross-package-type-names/reference.md index b216ec05dca..7132daad412 100644 --- a/seed/csharp-sdk/cross-package-type-names/reference.md +++ b/seed/csharp-sdk/cross-package-type-names/reference.md @@ -65,7 +65,14 @@ await client.FolderD.Service.GetDirectThreadAsync();
```csharp -await client.Foo.FindAsync(new FindRequest { PublicProperty = null, PrivateProperty = null }); +await client.Foo.FindAsync( + new FindRequest + { + OptionalString = "optionalString", + PublicProperty = "publicProperty", + PrivateProperty = 1, + } +); ```
diff --git a/seed/csharp-sdk/cross-package-type-names/snippet.json b/seed/csharp-sdk/cross-package-type-names/snippet.json index 162276eb49a..4d7b0185c54 100644 --- a/seed/csharp-sdk/cross-package-type-names/snippet.json +++ b/seed/csharp-sdk/cross-package-type-names/snippet.json @@ -34,7 +34,7 @@ }, "snippet": { "type": "typescript", - "client": "using SeedCrossPackageTypeNames;\n\nvar client = new SeedCrossPackageTypeNamesClient();\nawait client.Foo.FindAsync(new FindRequest { PublicProperty = null, PrivateProperty = null });\n" + "client": "using SeedCrossPackageTypeNames;\n\nvar client = new SeedCrossPackageTypeNamesClient();\nawait client.Foo.FindAsync(\n new FindRequest\n {\n OptionalString = \"optionalString\",\n PublicProperty = \"publicProperty\",\n PrivateProperty = 1,\n }\n);\n" } } ] diff --git a/seed/csharp-sdk/cross-package-type-names/src/SeedCrossPackageTypeNames.Test/Unit/MockServer/FindTest.cs b/seed/csharp-sdk/cross-package-type-names/src/SeedCrossPackageTypeNames.Test/Unit/MockServer/FindTest.cs index cc15b7a5473..0cdca215a64 100644 --- a/seed/csharp-sdk/cross-package-type-names/src/SeedCrossPackageTypeNames.Test/Unit/MockServer/FindTest.cs +++ b/seed/csharp-sdk/cross-package-type-names/src/SeedCrossPackageTypeNames.Test/Unit/MockServer/FindTest.cs @@ -16,7 +16,10 @@ public class FindTest : BaseMockServerTest public async Task MockServerTest() { const string requestJson = """ - {} + { + "publicProperty": "publicProperty", + "privateProperty": 1 + } """; const string mockResponse = """ @@ -30,6 +33,7 @@ public async Task MockServerTest() WireMock .RequestBuilders.Request.Create() .WithPath("/") + .WithParam("optionalString", "optionalString") .UsingPost() .WithBodyAsJson(requestJson) ) @@ -41,7 +45,12 @@ public async Task MockServerTest() ); var response = await Client.Foo.FindAsync( - new FindRequest { PublicProperty = null, PrivateProperty = null }, + new FindRequest + { + OptionalString = "optionalString", + PublicProperty = "publicProperty", + PrivateProperty = 1, + }, RequestOptions ); JToken diff --git a/seed/csharp-sdk/cross-package-type-names/src/SeedCrossPackageTypeNames/Foo/FooClient.cs b/seed/csharp-sdk/cross-package-type-names/src/SeedCrossPackageTypeNames/Foo/FooClient.cs index fd48ca6120a..c876d288b28 100644 --- a/seed/csharp-sdk/cross-package-type-names/src/SeedCrossPackageTypeNames/Foo/FooClient.cs +++ b/seed/csharp-sdk/cross-package-type-names/src/SeedCrossPackageTypeNames/Foo/FooClient.cs @@ -18,7 +18,14 @@ internal FooClient(RawClient client) /// /// - /// await client.Foo.FindAsync(new FindRequest { PublicProperty = null, PrivateProperty = null }); + /// await client.Foo.FindAsync( + /// new FindRequest + /// { + /// OptionalString = "optionalString", + /// PublicProperty = "publicProperty", + /// PrivateProperty = 1, + /// } + /// ); /// /// public async Task FindAsync( diff --git a/seed/csharp-sdk/enum/forward-compatible-enums/.mock/definition/path-param.yml b/seed/csharp-sdk/enum/forward-compatible-enums/.mock/definition/path-param.yml index 7553551fdc2..5afc7329f1e 100644 --- a/seed/csharp-sdk/enum/forward-compatible-enums/.mock/definition/path-param.yml +++ b/seed/csharp-sdk/enum/forward-compatible-enums/.mock/definition/path-param.yml @@ -6,16 +6,12 @@ service: base-path: "" endpoints: send: - path: /path/{operand}/{maybeOperand}/{operandOrColor}/{maybeOperandOrColor} + path: /path/{operand}/{operandOrColor} method: POST path-parameters: operand: root.Operand - maybeOperand: optional operandOrColor: root.ColorOrOperand - maybeOperandOrColor: optional examples: - path-parameters: operand: $root.Operand.GreaterThan - maybeOperand: $root.Operand.LessThan operandOrColor: $root.ColorOrOperand.Red - maybeOperandOrColor: $root.ColorOrOperand.Red \ No newline at end of file diff --git a/seed/csharp-sdk/enum/forward-compatible-enums/reference.md b/seed/csharp-sdk/enum/forward-compatible-enums/reference.md index d8a70f45832..0f6bf0a2b23 100644 --- a/seed/csharp-sdk/enum/forward-compatible-enums/reference.md +++ b/seed/csharp-sdk/enum/forward-compatible-enums/reference.md @@ -43,7 +43,7 @@ await client.InlinedRequest.SendAsync( ## PathParam -
client.PathParam.SendAsync(operand, maybeOperand, operandOrColor, maybeOperandOrColor) +
client.PathParam.SendAsync(operand, operandOrColor)
@@ -56,7 +56,7 @@ await client.InlinedRequest.SendAsync(
```csharp -await client.PathParam.SendAsync(Operand.GreaterThan, Operand.LessThan, Color.Red, Color.Red); +await client.PathParam.SendAsync(Operand.GreaterThan, Color.Red); ```
@@ -79,24 +79,8 @@ await client.PathParam.SendAsync(Operand.GreaterThan, Operand.LessThan, Color.Re
-**maybeOperand:** `Operand?` - -
-
- -
-
- **operandOrColor:** `OneOf` -
-
- -
-
- -**maybeOperandOrColor:** `OneOf?` -
@@ -167,7 +151,9 @@ await client.QueryParam.SendListAsync( new SendEnumListAsQueryParamRequest { Operand = [Operand.GreaterThan], + MaybeOperand = [Operand.GreaterThan], OperandOrColor = [Color.Red], + MaybeOperandOrColor = [null], } ); ``` diff --git a/seed/csharp-sdk/enum/forward-compatible-enums/snippet.json b/seed/csharp-sdk/enum/forward-compatible-enums/snippet.json index 6c3e7e0d6c7..bc426a5d09e 100644 --- a/seed/csharp-sdk/enum/forward-compatible-enums/snippet.json +++ b/seed/csharp-sdk/enum/forward-compatible-enums/snippet.json @@ -16,13 +16,13 @@ { "example_identifier": null, "id": { - "path": "/path/{operand}/{maybeOperand}/{operandOrColor}/{maybeOperandOrColor}", + "path": "/path/{operand}/{operandOrColor}", "method": "POST", "identifier_override": "endpoint_path-param.send" }, "snippet": { "type": "typescript", - "client": "using SeedEnum;\n\nvar client = new SeedEnumClient();\nawait client.PathParam.SendAsync(Operand.GreaterThan, Operand.LessThan, Color.Red, Color.Red);\n" + "client": "using SeedEnum;\n\nvar client = new SeedEnumClient();\nawait client.PathParam.SendAsync(Operand.GreaterThan, Color.Red);\n" } }, { @@ -46,7 +46,7 @@ }, "snippet": { "type": "typescript", - "client": "using SeedEnum;\n\nvar client = new SeedEnumClient();\nawait client.QueryParam.SendListAsync(\n new SendEnumListAsQueryParamRequest\n {\n Operand = [Operand.GreaterThan],\n OperandOrColor = [Color.Red],\n }\n);\n" + "client": "using SeedEnum;\n\nvar client = new SeedEnumClient();\nawait client.QueryParam.SendListAsync(\n new SendEnumListAsQueryParamRequest\n {\n Operand = [Operand.GreaterThan],\n MaybeOperand = [Operand.GreaterThan],\n OperandOrColor = [Color.Red],\n MaybeOperandOrColor = [null],\n }\n);\n" } } ] diff --git a/seed/csharp-sdk/enum/forward-compatible-enums/src/SeedEnum.Test/Unit/MockServer/SendListTest.cs b/seed/csharp-sdk/enum/forward-compatible-enums/src/SeedEnum.Test/Unit/MockServer/SendListTest.cs index 57d1693c6f9..b745df9ceea 100644 --- a/seed/csharp-sdk/enum/forward-compatible-enums/src/SeedEnum.Test/Unit/MockServer/SendListTest.cs +++ b/seed/csharp-sdk/enum/forward-compatible-enums/src/SeedEnum.Test/Unit/MockServer/SendListTest.cs @@ -17,6 +17,7 @@ public void MockServerTest() .RequestBuilders.Request.Create() .WithPath("/query-list") .WithParam("operand", ">") + .WithParam("maybeOperand", ">") .WithParam("operandOrColor", "red") .UsingPost() ) @@ -28,7 +29,9 @@ await Client.QueryParam.SendListAsync( new SendEnumListAsQueryParamRequest { Operand = [Operand.GreaterThan], + MaybeOperand = [Operand.GreaterThan], OperandOrColor = [Color.Red], + MaybeOperandOrColor = [null], }, RequestOptions ) diff --git a/seed/csharp-sdk/enum/forward-compatible-enums/src/SeedEnum.Test/Unit/MockServer/SendTest.cs b/seed/csharp-sdk/enum/forward-compatible-enums/src/SeedEnum.Test/Unit/MockServer/SendTest.cs index 18a45b626d9..076fcb05034 100644 --- a/seed/csharp-sdk/enum/forward-compatible-enums/src/SeedEnum.Test/Unit/MockServer/SendTest.cs +++ b/seed/csharp-sdk/enum/forward-compatible-enums/src/SeedEnum.Test/Unit/MockServer/SendTest.cs @@ -17,6 +17,7 @@ public void MockServerTest_1() .RequestBuilders.Request.Create() .WithPath("/query") .WithParam("operand", ">") + .WithParam("maybeOperand", ">") .WithParam("operandOrColor", "red") .UsingPost() ) @@ -28,7 +29,9 @@ await Client.QueryParam.SendAsync( new SendEnumAsQueryParamRequest { Operand = Operand.GreaterThan, + MaybeOperand = Operand.GreaterThan, OperandOrColor = Color.Red, + MaybeOperandOrColor = null, }, RequestOptions ) diff --git a/seed/csharp-sdk/enum/forward-compatible-enums/src/SeedEnum/PathParam/PathParamClient.cs b/seed/csharp-sdk/enum/forward-compatible-enums/src/SeedEnum/PathParam/PathParamClient.cs index 5a4bcb191c0..5b03ab48d8a 100644 --- a/seed/csharp-sdk/enum/forward-compatible-enums/src/SeedEnum/PathParam/PathParamClient.cs +++ b/seed/csharp-sdk/enum/forward-compatible-enums/src/SeedEnum/PathParam/PathParamClient.cs @@ -19,14 +19,12 @@ internal PathParamClient(RawClient client) /// /// - /// await client.PathParam.SendAsync(Operand.GreaterThan, Operand.LessThan, Color.Red, Color.Red); + /// await client.PathParam.SendAsync(Operand.GreaterThan, Color.Red); /// /// public async Task SendAsync( Operand operand, - Operand? maybeOperand, OneOf operandOrColor, - OneOf? maybeOperandOrColor, RequestOptions? options = null, CancellationToken cancellationToken = default ) @@ -36,7 +34,7 @@ public async Task SendAsync( { BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Post, - Path = $"path/{operand}/{maybeOperand}/{operandOrColor}/{maybeOperandOrColor}", + Path = $"path/{operand}/{operandOrColor}", Options = options, }, cancellationToken diff --git a/seed/csharp-sdk/enum/forward-compatible-enums/src/SeedEnum/QueryParam/QueryParamClient.cs b/seed/csharp-sdk/enum/forward-compatible-enums/src/SeedEnum/QueryParam/QueryParamClient.cs index 6470d232d08..fc532cc713a 100644 --- a/seed/csharp-sdk/enum/forward-compatible-enums/src/SeedEnum/QueryParam/QueryParamClient.cs +++ b/seed/csharp-sdk/enum/forward-compatible-enums/src/SeedEnum/QueryParam/QueryParamClient.cs @@ -69,7 +69,9 @@ public async Task SendAsync( /// new SendEnumListAsQueryParamRequest /// { /// Operand = [Operand.GreaterThan], + /// MaybeOperand = [Operand.GreaterThan], /// OperandOrColor = [Color.Red], + /// MaybeOperandOrColor = [null], /// } /// ); /// diff --git a/seed/csharp-sdk/enum/plain-enums/.mock/definition/path-param.yml b/seed/csharp-sdk/enum/plain-enums/.mock/definition/path-param.yml index 7553551fdc2..5afc7329f1e 100644 --- a/seed/csharp-sdk/enum/plain-enums/.mock/definition/path-param.yml +++ b/seed/csharp-sdk/enum/plain-enums/.mock/definition/path-param.yml @@ -6,16 +6,12 @@ service: base-path: "" endpoints: send: - path: /path/{operand}/{maybeOperand}/{operandOrColor}/{maybeOperandOrColor} + path: /path/{operand}/{operandOrColor} method: POST path-parameters: operand: root.Operand - maybeOperand: optional operandOrColor: root.ColorOrOperand - maybeOperandOrColor: optional examples: - path-parameters: operand: $root.Operand.GreaterThan - maybeOperand: $root.Operand.LessThan operandOrColor: $root.ColorOrOperand.Red - maybeOperandOrColor: $root.ColorOrOperand.Red \ No newline at end of file diff --git a/seed/csharp-sdk/enum/plain-enums/reference.md b/seed/csharp-sdk/enum/plain-enums/reference.md index d8a70f45832..0f6bf0a2b23 100644 --- a/seed/csharp-sdk/enum/plain-enums/reference.md +++ b/seed/csharp-sdk/enum/plain-enums/reference.md @@ -43,7 +43,7 @@ await client.InlinedRequest.SendAsync(
## PathParam -
client.PathParam.SendAsync(operand, maybeOperand, operandOrColor, maybeOperandOrColor) +
client.PathParam.SendAsync(operand, operandOrColor)
@@ -56,7 +56,7 @@ await client.InlinedRequest.SendAsync(
```csharp -await client.PathParam.SendAsync(Operand.GreaterThan, Operand.LessThan, Color.Red, Color.Red); +await client.PathParam.SendAsync(Operand.GreaterThan, Color.Red); ```
@@ -79,24 +79,8 @@ await client.PathParam.SendAsync(Operand.GreaterThan, Operand.LessThan, Color.Re
-**maybeOperand:** `Operand?` - -
-
- -
-
- **operandOrColor:** `OneOf` -
-
- -
-
- -**maybeOperandOrColor:** `OneOf?` -
@@ -167,7 +151,9 @@ await client.QueryParam.SendListAsync( new SendEnumListAsQueryParamRequest { Operand = [Operand.GreaterThan], + MaybeOperand = [Operand.GreaterThan], OperandOrColor = [Color.Red], + MaybeOperandOrColor = [null], } ); ``` diff --git a/seed/csharp-sdk/enum/plain-enums/snippet.json b/seed/csharp-sdk/enum/plain-enums/snippet.json index 6c3e7e0d6c7..bc426a5d09e 100644 --- a/seed/csharp-sdk/enum/plain-enums/snippet.json +++ b/seed/csharp-sdk/enum/plain-enums/snippet.json @@ -16,13 +16,13 @@ { "example_identifier": null, "id": { - "path": "/path/{operand}/{maybeOperand}/{operandOrColor}/{maybeOperandOrColor}", + "path": "/path/{operand}/{operandOrColor}", "method": "POST", "identifier_override": "endpoint_path-param.send" }, "snippet": { "type": "typescript", - "client": "using SeedEnum;\n\nvar client = new SeedEnumClient();\nawait client.PathParam.SendAsync(Operand.GreaterThan, Operand.LessThan, Color.Red, Color.Red);\n" + "client": "using SeedEnum;\n\nvar client = new SeedEnumClient();\nawait client.PathParam.SendAsync(Operand.GreaterThan, Color.Red);\n" } }, { @@ -46,7 +46,7 @@ }, "snippet": { "type": "typescript", - "client": "using SeedEnum;\n\nvar client = new SeedEnumClient();\nawait client.QueryParam.SendListAsync(\n new SendEnumListAsQueryParamRequest\n {\n Operand = [Operand.GreaterThan],\n OperandOrColor = [Color.Red],\n }\n);\n" + "client": "using SeedEnum;\n\nvar client = new SeedEnumClient();\nawait client.QueryParam.SendListAsync(\n new SendEnumListAsQueryParamRequest\n {\n Operand = [Operand.GreaterThan],\n MaybeOperand = [Operand.GreaterThan],\n OperandOrColor = [Color.Red],\n MaybeOperandOrColor = [null],\n }\n);\n" } } ] diff --git a/seed/csharp-sdk/enum/plain-enums/src/SeedEnum.Test/Unit/MockServer/SendListTest.cs b/seed/csharp-sdk/enum/plain-enums/src/SeedEnum.Test/Unit/MockServer/SendListTest.cs index 57d1693c6f9..b745df9ceea 100644 --- a/seed/csharp-sdk/enum/plain-enums/src/SeedEnum.Test/Unit/MockServer/SendListTest.cs +++ b/seed/csharp-sdk/enum/plain-enums/src/SeedEnum.Test/Unit/MockServer/SendListTest.cs @@ -17,6 +17,7 @@ public void MockServerTest() .RequestBuilders.Request.Create() .WithPath("/query-list") .WithParam("operand", ">") + .WithParam("maybeOperand", ">") .WithParam("operandOrColor", "red") .UsingPost() ) @@ -28,7 +29,9 @@ await Client.QueryParam.SendListAsync( new SendEnumListAsQueryParamRequest { Operand = [Operand.GreaterThan], + MaybeOperand = [Operand.GreaterThan], OperandOrColor = [Color.Red], + MaybeOperandOrColor = [null], }, RequestOptions ) diff --git a/seed/csharp-sdk/enum/plain-enums/src/SeedEnum.Test/Unit/MockServer/SendTest.cs b/seed/csharp-sdk/enum/plain-enums/src/SeedEnum.Test/Unit/MockServer/SendTest.cs index 18a45b626d9..076fcb05034 100644 --- a/seed/csharp-sdk/enum/plain-enums/src/SeedEnum.Test/Unit/MockServer/SendTest.cs +++ b/seed/csharp-sdk/enum/plain-enums/src/SeedEnum.Test/Unit/MockServer/SendTest.cs @@ -17,6 +17,7 @@ public void MockServerTest_1() .RequestBuilders.Request.Create() .WithPath("/query") .WithParam("operand", ">") + .WithParam("maybeOperand", ">") .WithParam("operandOrColor", "red") .UsingPost() ) @@ -28,7 +29,9 @@ await Client.QueryParam.SendAsync( new SendEnumAsQueryParamRequest { Operand = Operand.GreaterThan, + MaybeOperand = Operand.GreaterThan, OperandOrColor = Color.Red, + MaybeOperandOrColor = null, }, RequestOptions ) diff --git a/seed/csharp-sdk/enum/plain-enums/src/SeedEnum/PathParam/PathParamClient.cs b/seed/csharp-sdk/enum/plain-enums/src/SeedEnum/PathParam/PathParamClient.cs index 5a4bcb191c0..5b03ab48d8a 100644 --- a/seed/csharp-sdk/enum/plain-enums/src/SeedEnum/PathParam/PathParamClient.cs +++ b/seed/csharp-sdk/enum/plain-enums/src/SeedEnum/PathParam/PathParamClient.cs @@ -19,14 +19,12 @@ internal PathParamClient(RawClient client) /// /// - /// await client.PathParam.SendAsync(Operand.GreaterThan, Operand.LessThan, Color.Red, Color.Red); + /// await client.PathParam.SendAsync(Operand.GreaterThan, Color.Red); /// /// public async Task SendAsync( Operand operand, - Operand? maybeOperand, OneOf operandOrColor, - OneOf? maybeOperandOrColor, RequestOptions? options = null, CancellationToken cancellationToken = default ) @@ -36,7 +34,7 @@ public async Task SendAsync( { BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Post, - Path = $"path/{operand}/{maybeOperand}/{operandOrColor}/{maybeOperandOrColor}", + Path = $"path/{operand}/{operandOrColor}", Options = options, }, cancellationToken diff --git a/seed/csharp-sdk/enum/plain-enums/src/SeedEnum/QueryParam/QueryParamClient.cs b/seed/csharp-sdk/enum/plain-enums/src/SeedEnum/QueryParam/QueryParamClient.cs index 6470d232d08..fc532cc713a 100644 --- a/seed/csharp-sdk/enum/plain-enums/src/SeedEnum/QueryParam/QueryParamClient.cs +++ b/seed/csharp-sdk/enum/plain-enums/src/SeedEnum/QueryParam/QueryParamClient.cs @@ -69,7 +69,9 @@ public async Task SendAsync( /// new SendEnumListAsQueryParamRequest /// { /// Operand = [Operand.GreaterThan], + /// MaybeOperand = [Operand.GreaterThan], /// OperandOrColor = [Color.Red], + /// MaybeOperandOrColor = [null], /// } /// ); /// diff --git a/seed/csharp-sdk/examples/no-custom-config/reference.md b/seed/csharp-sdk/examples/no-custom-config/reference.md index 50075b17296..57a2b0a460e 100644 --- a/seed/csharp-sdk/examples/no-custom-config/reference.md +++ b/seed/csharp-sdk/examples/no-custom-config/reference.md @@ -448,19 +448,194 @@ await client.Service.GetMetadataAsync( await client.Service.CreateBigEntityAsync( new BigEntity { - CastMember = null, - ExtendedMovie = null, - Entity = null, - Metadata = null, - CommonMetadata = null, - EventInfo = null, - Data = null, - Migration = null, - Exception = null, - Test = null, - Node = null, - Directory = null, - Moment = null, + CastMember = new Actor { Name = "name", Id = "id" }, + ExtendedMovie = new ExtendedMovie + { + Cast = new List() { "cast", "cast" }, + }, + Entity = new Entity { Type = BasicType.Primitive, Name = "name" }, + Metadata = "metadata", + CommonMetadata = new SeedExamples.Commons.Metadata + { + Id = "id", + Data = new Dictionary() { { "data", "data" } }, + JsonString = "jsonString", + }, + EventInfo = new SeedExamples.Commons.Metadata + { + Id = "id", + Data = new Dictionary() { { "data", "data" } }, + JsonString = "jsonString", + }, + Data = "data", + Migration = new Migration { Name = "name", Status = MigrationStatus.Running }, + Exception = new ExceptionInfo + { + ExceptionType = "exceptionType", + ExceptionMessage = "exceptionMessage", + ExceptionStacktrace = "exceptionStacktrace", + }, + Test = true, + Node = new Node + { + Name = "name", + Nodes = new List() + { + new Node + { + Name = "name", + Nodes = new List() + { + new Node + { + Name = "name", + Nodes = new List() { }, + Trees = new List() { }, + }, + new Node + { + Name = "name", + Nodes = new List() { }, + Trees = new List() { }, + }, + }, + Trees = new List() + { + new Tree { Nodes = new List() { } }, + new Tree { Nodes = new List() { } }, + }, + }, + new Node + { + Name = "name", + Nodes = new List() + { + new Node + { + Name = "name", + Nodes = new List() { }, + Trees = new List() { }, + }, + new Node + { + Name = "name", + Nodes = new List() { }, + Trees = new List() { }, + }, + }, + Trees = new List() + { + new Tree { Nodes = new List() { } }, + new Tree { Nodes = new List() { } }, + }, + }, + }, + Trees = new List() + { + new Tree + { + Nodes = new List() + { + new Node + { + Name = "name", + Nodes = new List() { }, + Trees = new List() { }, + }, + new Node + { + Name = "name", + Nodes = new List() { }, + Trees = new List() { }, + }, + }, + }, + new Tree + { + Nodes = new List() + { + new Node + { + Name = "name", + Nodes = new List() { }, + Trees = new List() { }, + }, + new Node + { + Name = "name", + Nodes = new List() { }, + Trees = new List() { }, + }, + }, + }, + }, + }, + Directory = new Directory + { + Name = "name", + Files = new List() + { + new SeedExamples.File { Name = "name", Contents = "contents" }, + new SeedExamples.File { Name = "name", Contents = "contents" }, + }, + Directories = new List() + { + new Directory + { + Name = "name", + Files = new List() + { + new SeedExamples.File { Name = "name", Contents = "contents" }, + new SeedExamples.File { Name = "name", Contents = "contents" }, + }, + Directories = new List() + { + new Directory + { + Name = "name", + Files = new List() { }, + Directories = new List() { }, + }, + new Directory + { + Name = "name", + Files = new List() { }, + Directories = new List() { }, + }, + }, + }, + new Directory + { + Name = "name", + Files = new List() + { + new SeedExamples.File { Name = "name", Contents = "contents" }, + new SeedExamples.File { Name = "name", Contents = "contents" }, + }, + Directories = new List() + { + new Directory + { + Name = "name", + Files = new List() { }, + Directories = new List() { }, + }, + new Directory + { + Name = "name", + Files = new List() { }, + Directories = new List() { }, + }, + }, + }, + }, + }, + Moment = new Moment + { + Id = "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", + Date = new DateOnly(2023, 1, 15), + Datetime = new DateTime(2024, 01, 15, 09, 30, 00, 000), + }, } ); ``` diff --git a/seed/csharp-sdk/examples/no-custom-config/snippet.json b/seed/csharp-sdk/examples/no-custom-config/snippet.json index 5524ef511d3..a940cd3cbb2 100644 --- a/seed/csharp-sdk/examples/no-custom-config/snippet.json +++ b/seed/csharp-sdk/examples/no-custom-config/snippet.json @@ -130,7 +130,7 @@ }, "snippet": { "type": "typescript", - "client": "using SeedExamples;\n\nvar client = new SeedExamplesClient(\"TOKEN\");\nawait client.Service.CreateBigEntityAsync(\n new BigEntity\n {\n CastMember = null,\n ExtendedMovie = null,\n Entity = null,\n Metadata = null,\n CommonMetadata = null,\n EventInfo = null,\n Data = null,\n Migration = null,\n Exception = null,\n Test = null,\n Node = null,\n Directory = null,\n Moment = null,\n }\n);\n" + "client": "using SeedExamples;\n\nvar client = new SeedExamplesClient(\"TOKEN\");\nawait client.Service.CreateBigEntityAsync(\n new BigEntity\n {\n CastMember = new Actor { Name = \"name\", Id = \"id\" },\n ExtendedMovie = new ExtendedMovie\n {\n Cast = new List() { \"cast\", \"cast\" },\n },\n Entity = new Entity { Type = BasicType.Primitive, Name = \"name\" },\n Metadata = \"metadata\",\n CommonMetadata = new SeedExamples.Commons.Metadata\n {\n Id = \"id\",\n Data = new Dictionary() { { \"data\", \"data\" } },\n JsonString = \"jsonString\",\n },\n EventInfo = new SeedExamples.Commons.Metadata\n {\n Id = \"id\",\n Data = new Dictionary() { { \"data\", \"data\" } },\n JsonString = \"jsonString\",\n },\n Data = \"data\",\n Migration = new Migration { Name = \"name\", Status = MigrationStatus.Running },\n Exception = new ExceptionInfo\n {\n ExceptionType = \"exceptionType\",\n ExceptionMessage = \"exceptionMessage\",\n ExceptionStacktrace = \"exceptionStacktrace\",\n },\n Test = true,\n Node = new Node\n {\n Name = \"name\",\n Nodes = new List()\n {\n new Node\n {\n Name = \"name\",\n Nodes = new List()\n {\n new Node\n {\n Name = \"name\",\n Nodes = new List() { },\n Trees = new List() { },\n },\n new Node\n {\n Name = \"name\",\n Nodes = new List() { },\n Trees = new List() { },\n },\n },\n Trees = new List()\n {\n new Tree { Nodes = new List() { } },\n new Tree { Nodes = new List() { } },\n },\n },\n new Node\n {\n Name = \"name\",\n Nodes = new List()\n {\n new Node\n {\n Name = \"name\",\n Nodes = new List() { },\n Trees = new List() { },\n },\n new Node\n {\n Name = \"name\",\n Nodes = new List() { },\n Trees = new List() { },\n },\n },\n Trees = new List()\n {\n new Tree { Nodes = new List() { } },\n new Tree { Nodes = new List() { } },\n },\n },\n },\n Trees = new List()\n {\n new Tree\n {\n Nodes = new List()\n {\n new Node\n {\n Name = \"name\",\n Nodes = new List() { },\n Trees = new List() { },\n },\n new Node\n {\n Name = \"name\",\n Nodes = new List() { },\n Trees = new List() { },\n },\n },\n },\n new Tree\n {\n Nodes = new List()\n {\n new Node\n {\n Name = \"name\",\n Nodes = new List() { },\n Trees = new List() { },\n },\n new Node\n {\n Name = \"name\",\n Nodes = new List() { },\n Trees = new List() { },\n },\n },\n },\n },\n },\n Directory = new Directory\n {\n Name = \"name\",\n Files = new List()\n {\n new SeedExamples.File { Name = \"name\", Contents = \"contents\" },\n new SeedExamples.File { Name = \"name\", Contents = \"contents\" },\n },\n Directories = new List()\n {\n new Directory\n {\n Name = \"name\",\n Files = new List()\n {\n new SeedExamples.File { Name = \"name\", Contents = \"contents\" },\n new SeedExamples.File { Name = \"name\", Contents = \"contents\" },\n },\n Directories = new List()\n {\n new Directory\n {\n Name = \"name\",\n Files = new List() { },\n Directories = new List() { },\n },\n new Directory\n {\n Name = \"name\",\n Files = new List() { },\n Directories = new List() { },\n },\n },\n },\n new Directory\n {\n Name = \"name\",\n Files = new List()\n {\n new SeedExamples.File { Name = \"name\", Contents = \"contents\" },\n new SeedExamples.File { Name = \"name\", Contents = \"contents\" },\n },\n Directories = new List()\n {\n new Directory\n {\n Name = \"name\",\n Files = new List() { },\n Directories = new List() { },\n },\n new Directory\n {\n Name = \"name\",\n Files = new List() { },\n Directories = new List() { },\n },\n },\n },\n },\n },\n Moment = new Moment\n {\n Id = \"d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32\",\n Date = new DateOnly(2023, 1, 15),\n Datetime = new DateTime(2024, 01, 15, 09, 30, 00, 000),\n },\n }\n);\n" } } ] diff --git a/seed/csharp-sdk/examples/no-custom-config/src/SeedExamples/Service/ServiceClient.cs b/seed/csharp-sdk/examples/no-custom-config/src/SeedExamples/Service/ServiceClient.cs index 22be8ea340b..be3bfa93297 100644 --- a/seed/csharp-sdk/examples/no-custom-config/src/SeedExamples/Service/ServiceClient.cs +++ b/seed/csharp-sdk/examples/no-custom-config/src/SeedExamples/Service/ServiceClient.cs @@ -187,19 +187,194 @@ public async Task GetMetadataAsync( /// await client.Service.CreateBigEntityAsync( /// new BigEntity /// { - /// CastMember = null, - /// ExtendedMovie = null, - /// Entity = null, - /// Metadata = null, - /// CommonMetadata = null, - /// EventInfo = null, - /// Data = null, - /// Migration = null, - /// Exception = null, - /// Test = null, - /// Node = null, - /// Directory = null, - /// Moment = null, + /// CastMember = new Actor { Name = "name", Id = "id" }, + /// ExtendedMovie = new ExtendedMovie + /// { + /// Cast = new List<string>() { "cast", "cast" }, + /// }, + /// Entity = new Entity { Type = BasicType.Primitive, Name = "name" }, + /// Metadata = "metadata", + /// CommonMetadata = new SeedExamples.Commons.Metadata + /// { + /// Id = "id", + /// Data = new Dictionary<string, string>() { { "data", "data" } }, + /// JsonString = "jsonString", + /// }, + /// EventInfo = new SeedExamples.Commons.Metadata + /// { + /// Id = "id", + /// Data = new Dictionary<string, string>() { { "data", "data" } }, + /// JsonString = "jsonString", + /// }, + /// Data = "data", + /// Migration = new Migration { Name = "name", Status = MigrationStatus.Running }, + /// Exception = new ExceptionInfo + /// { + /// ExceptionType = "exceptionType", + /// ExceptionMessage = "exceptionMessage", + /// ExceptionStacktrace = "exceptionStacktrace", + /// }, + /// Test = true, + /// Node = new Node + /// { + /// Name = "name", + /// Nodes = new List<Node>() + /// { + /// new Node + /// { + /// Name = "name", + /// Nodes = new List<Node>() + /// { + /// new Node + /// { + /// Name = "name", + /// Nodes = new List<Node>() { }, + /// Trees = new List<Tree>() { }, + /// }, + /// new Node + /// { + /// Name = "name", + /// Nodes = new List<Node>() { }, + /// Trees = new List<Tree>() { }, + /// }, + /// }, + /// Trees = new List<Tree>() + /// { + /// new Tree { Nodes = new List<Node>() { } }, + /// new Tree { Nodes = new List<Node>() { } }, + /// }, + /// }, + /// new Node + /// { + /// Name = "name", + /// Nodes = new List<Node>() + /// { + /// new Node + /// { + /// Name = "name", + /// Nodes = new List<Node>() { }, + /// Trees = new List<Tree>() { }, + /// }, + /// new Node + /// { + /// Name = "name", + /// Nodes = new List<Node>() { }, + /// Trees = new List<Tree>() { }, + /// }, + /// }, + /// Trees = new List<Tree>() + /// { + /// new Tree { Nodes = new List<Node>() { } }, + /// new Tree { Nodes = new List<Node>() { } }, + /// }, + /// }, + /// }, + /// Trees = new List<Tree>() + /// { + /// new Tree + /// { + /// Nodes = new List<Node>() + /// { + /// new Node + /// { + /// Name = "name", + /// Nodes = new List<Node>() { }, + /// Trees = new List<Tree>() { }, + /// }, + /// new Node + /// { + /// Name = "name", + /// Nodes = new List<Node>() { }, + /// Trees = new List<Tree>() { }, + /// }, + /// }, + /// }, + /// new Tree + /// { + /// Nodes = new List<Node>() + /// { + /// new Node + /// { + /// Name = "name", + /// Nodes = new List<Node>() { }, + /// Trees = new List<Tree>() { }, + /// }, + /// new Node + /// { + /// Name = "name", + /// Nodes = new List<Node>() { }, + /// Trees = new List<Tree>() { }, + /// }, + /// }, + /// }, + /// }, + /// }, + /// Directory = new Directory + /// { + /// Name = "name", + /// Files = new List<SeedExamples.File>() + /// { + /// new SeedExamples.File { Name = "name", Contents = "contents" }, + /// new SeedExamples.File { Name = "name", Contents = "contents" }, + /// }, + /// Directories = new List<Directory>() + /// { + /// new Directory + /// { + /// Name = "name", + /// Files = new List<SeedExamples.File>() + /// { + /// new SeedExamples.File { Name = "name", Contents = "contents" }, + /// new SeedExamples.File { Name = "name", Contents = "contents" }, + /// }, + /// Directories = new List<Directory>() + /// { + /// new Directory + /// { + /// Name = "name", + /// Files = new List<SeedExamples.File>() { }, + /// Directories = new List<Directory>() { }, + /// }, + /// new Directory + /// { + /// Name = "name", + /// Files = new List<SeedExamples.File>() { }, + /// Directories = new List<Directory>() { }, + /// }, + /// }, + /// }, + /// new Directory + /// { + /// Name = "name", + /// Files = new List<SeedExamples.File>() + /// { + /// new SeedExamples.File { Name = "name", Contents = "contents" }, + /// new SeedExamples.File { Name = "name", Contents = "contents" }, + /// }, + /// Directories = new List<Directory>() + /// { + /// new Directory + /// { + /// Name = "name", + /// Files = new List<SeedExamples.File>() { }, + /// Directories = new List<Directory>() { }, + /// }, + /// new Directory + /// { + /// Name = "name", + /// Files = new List<SeedExamples.File>() { }, + /// Directories = new List<Directory>() { }, + /// }, + /// }, + /// }, + /// }, + /// }, + /// Moment = new Moment + /// { + /// Id = "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", + /// Date = new DateOnly(2023, 1, 15), + /// Datetime = new DateTime(2024, 01, 15, 09, 30, 00, 000), + /// }, /// } /// ); /// diff --git a/seed/csharp-sdk/examples/readme-config/reference.md b/seed/csharp-sdk/examples/readme-config/reference.md index 50075b17296..57a2b0a460e 100644 --- a/seed/csharp-sdk/examples/readme-config/reference.md +++ b/seed/csharp-sdk/examples/readme-config/reference.md @@ -448,19 +448,194 @@ await client.Service.GetMetadataAsync( await client.Service.CreateBigEntityAsync( new BigEntity { - CastMember = null, - ExtendedMovie = null, - Entity = null, - Metadata = null, - CommonMetadata = null, - EventInfo = null, - Data = null, - Migration = null, - Exception = null, - Test = null, - Node = null, - Directory = null, - Moment = null, + CastMember = new Actor { Name = "name", Id = "id" }, + ExtendedMovie = new ExtendedMovie + { + Cast = new List() { "cast", "cast" }, + }, + Entity = new Entity { Type = BasicType.Primitive, Name = "name" }, + Metadata = "metadata", + CommonMetadata = new SeedExamples.Commons.Metadata + { + Id = "id", + Data = new Dictionary() { { "data", "data" } }, + JsonString = "jsonString", + }, + EventInfo = new SeedExamples.Commons.Metadata + { + Id = "id", + Data = new Dictionary() { { "data", "data" } }, + JsonString = "jsonString", + }, + Data = "data", + Migration = new Migration { Name = "name", Status = MigrationStatus.Running }, + Exception = new ExceptionInfo + { + ExceptionType = "exceptionType", + ExceptionMessage = "exceptionMessage", + ExceptionStacktrace = "exceptionStacktrace", + }, + Test = true, + Node = new Node + { + Name = "name", + Nodes = new List() + { + new Node + { + Name = "name", + Nodes = new List() + { + new Node + { + Name = "name", + Nodes = new List() { }, + Trees = new List() { }, + }, + new Node + { + Name = "name", + Nodes = new List() { }, + Trees = new List() { }, + }, + }, + Trees = new List() + { + new Tree { Nodes = new List() { } }, + new Tree { Nodes = new List() { } }, + }, + }, + new Node + { + Name = "name", + Nodes = new List() + { + new Node + { + Name = "name", + Nodes = new List() { }, + Trees = new List() { }, + }, + new Node + { + Name = "name", + Nodes = new List() { }, + Trees = new List() { }, + }, + }, + Trees = new List() + { + new Tree { Nodes = new List() { } }, + new Tree { Nodes = new List() { } }, + }, + }, + }, + Trees = new List() + { + new Tree + { + Nodes = new List() + { + new Node + { + Name = "name", + Nodes = new List() { }, + Trees = new List() { }, + }, + new Node + { + Name = "name", + Nodes = new List() { }, + Trees = new List() { }, + }, + }, + }, + new Tree + { + Nodes = new List() + { + new Node + { + Name = "name", + Nodes = new List() { }, + Trees = new List() { }, + }, + new Node + { + Name = "name", + Nodes = new List() { }, + Trees = new List() { }, + }, + }, + }, + }, + }, + Directory = new Directory + { + Name = "name", + Files = new List() + { + new SeedExamples.File { Name = "name", Contents = "contents" }, + new SeedExamples.File { Name = "name", Contents = "contents" }, + }, + Directories = new List() + { + new Directory + { + Name = "name", + Files = new List() + { + new SeedExamples.File { Name = "name", Contents = "contents" }, + new SeedExamples.File { Name = "name", Contents = "contents" }, + }, + Directories = new List() + { + new Directory + { + Name = "name", + Files = new List() { }, + Directories = new List() { }, + }, + new Directory + { + Name = "name", + Files = new List() { }, + Directories = new List() { }, + }, + }, + }, + new Directory + { + Name = "name", + Files = new List() + { + new SeedExamples.File { Name = "name", Contents = "contents" }, + new SeedExamples.File { Name = "name", Contents = "contents" }, + }, + Directories = new List() + { + new Directory + { + Name = "name", + Files = new List() { }, + Directories = new List() { }, + }, + new Directory + { + Name = "name", + Files = new List() { }, + Directories = new List() { }, + }, + }, + }, + }, + }, + Moment = new Moment + { + Id = "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", + Date = new DateOnly(2023, 1, 15), + Datetime = new DateTime(2024, 01, 15, 09, 30, 00, 000), + }, } ); ``` diff --git a/seed/csharp-sdk/examples/readme-config/snippet.json b/seed/csharp-sdk/examples/readme-config/snippet.json index 5524ef511d3..a940cd3cbb2 100644 --- a/seed/csharp-sdk/examples/readme-config/snippet.json +++ b/seed/csharp-sdk/examples/readme-config/snippet.json @@ -130,7 +130,7 @@ }, "snippet": { "type": "typescript", - "client": "using SeedExamples;\n\nvar client = new SeedExamplesClient(\"TOKEN\");\nawait client.Service.CreateBigEntityAsync(\n new BigEntity\n {\n CastMember = null,\n ExtendedMovie = null,\n Entity = null,\n Metadata = null,\n CommonMetadata = null,\n EventInfo = null,\n Data = null,\n Migration = null,\n Exception = null,\n Test = null,\n Node = null,\n Directory = null,\n Moment = null,\n }\n);\n" + "client": "using SeedExamples;\n\nvar client = new SeedExamplesClient(\"TOKEN\");\nawait client.Service.CreateBigEntityAsync(\n new BigEntity\n {\n CastMember = new Actor { Name = \"name\", Id = \"id\" },\n ExtendedMovie = new ExtendedMovie\n {\n Cast = new List() { \"cast\", \"cast\" },\n },\n Entity = new Entity { Type = BasicType.Primitive, Name = \"name\" },\n Metadata = \"metadata\",\n CommonMetadata = new SeedExamples.Commons.Metadata\n {\n Id = \"id\",\n Data = new Dictionary() { { \"data\", \"data\" } },\n JsonString = \"jsonString\",\n },\n EventInfo = new SeedExamples.Commons.Metadata\n {\n Id = \"id\",\n Data = new Dictionary() { { \"data\", \"data\" } },\n JsonString = \"jsonString\",\n },\n Data = \"data\",\n Migration = new Migration { Name = \"name\", Status = MigrationStatus.Running },\n Exception = new ExceptionInfo\n {\n ExceptionType = \"exceptionType\",\n ExceptionMessage = \"exceptionMessage\",\n ExceptionStacktrace = \"exceptionStacktrace\",\n },\n Test = true,\n Node = new Node\n {\n Name = \"name\",\n Nodes = new List()\n {\n new Node\n {\n Name = \"name\",\n Nodes = new List()\n {\n new Node\n {\n Name = \"name\",\n Nodes = new List() { },\n Trees = new List() { },\n },\n new Node\n {\n Name = \"name\",\n Nodes = new List() { },\n Trees = new List() { },\n },\n },\n Trees = new List()\n {\n new Tree { Nodes = new List() { } },\n new Tree { Nodes = new List() { } },\n },\n },\n new Node\n {\n Name = \"name\",\n Nodes = new List()\n {\n new Node\n {\n Name = \"name\",\n Nodes = new List() { },\n Trees = new List() { },\n },\n new Node\n {\n Name = \"name\",\n Nodes = new List() { },\n Trees = new List() { },\n },\n },\n Trees = new List()\n {\n new Tree { Nodes = new List() { } },\n new Tree { Nodes = new List() { } },\n },\n },\n },\n Trees = new List()\n {\n new Tree\n {\n Nodes = new List()\n {\n new Node\n {\n Name = \"name\",\n Nodes = new List() { },\n Trees = new List() { },\n },\n new Node\n {\n Name = \"name\",\n Nodes = new List() { },\n Trees = new List() { },\n },\n },\n },\n new Tree\n {\n Nodes = new List()\n {\n new Node\n {\n Name = \"name\",\n Nodes = new List() { },\n Trees = new List() { },\n },\n new Node\n {\n Name = \"name\",\n Nodes = new List() { },\n Trees = new List() { },\n },\n },\n },\n },\n },\n Directory = new Directory\n {\n Name = \"name\",\n Files = new List()\n {\n new SeedExamples.File { Name = \"name\", Contents = \"contents\" },\n new SeedExamples.File { Name = \"name\", Contents = \"contents\" },\n },\n Directories = new List()\n {\n new Directory\n {\n Name = \"name\",\n Files = new List()\n {\n new SeedExamples.File { Name = \"name\", Contents = \"contents\" },\n new SeedExamples.File { Name = \"name\", Contents = \"contents\" },\n },\n Directories = new List()\n {\n new Directory\n {\n Name = \"name\",\n Files = new List() { },\n Directories = new List() { },\n },\n new Directory\n {\n Name = \"name\",\n Files = new List() { },\n Directories = new List() { },\n },\n },\n },\n new Directory\n {\n Name = \"name\",\n Files = new List()\n {\n new SeedExamples.File { Name = \"name\", Contents = \"contents\" },\n new SeedExamples.File { Name = \"name\", Contents = \"contents\" },\n },\n Directories = new List()\n {\n new Directory\n {\n Name = \"name\",\n Files = new List() { },\n Directories = new List() { },\n },\n new Directory\n {\n Name = \"name\",\n Files = new List() { },\n Directories = new List() { },\n },\n },\n },\n },\n },\n Moment = new Moment\n {\n Id = \"d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32\",\n Date = new DateOnly(2023, 1, 15),\n Datetime = new DateTime(2024, 01, 15, 09, 30, 00, 000),\n },\n }\n);\n" } } ] diff --git a/seed/csharp-sdk/examples/readme-config/src/SeedExamples/Service/ServiceClient.cs b/seed/csharp-sdk/examples/readme-config/src/SeedExamples/Service/ServiceClient.cs index 22be8ea340b..be3bfa93297 100644 --- a/seed/csharp-sdk/examples/readme-config/src/SeedExamples/Service/ServiceClient.cs +++ b/seed/csharp-sdk/examples/readme-config/src/SeedExamples/Service/ServiceClient.cs @@ -187,19 +187,194 @@ public async Task GetMetadataAsync( /// await client.Service.CreateBigEntityAsync( /// new BigEntity /// { - /// CastMember = null, - /// ExtendedMovie = null, - /// Entity = null, - /// Metadata = null, - /// CommonMetadata = null, - /// EventInfo = null, - /// Data = null, - /// Migration = null, - /// Exception = null, - /// Test = null, - /// Node = null, - /// Directory = null, - /// Moment = null, + /// CastMember = new Actor { Name = "name", Id = "id" }, + /// ExtendedMovie = new ExtendedMovie + /// { + /// Cast = new List<string>() { "cast", "cast" }, + /// }, + /// Entity = new Entity { Type = BasicType.Primitive, Name = "name" }, + /// Metadata = "metadata", + /// CommonMetadata = new SeedExamples.Commons.Metadata + /// { + /// Id = "id", + /// Data = new Dictionary<string, string>() { { "data", "data" } }, + /// JsonString = "jsonString", + /// }, + /// EventInfo = new SeedExamples.Commons.Metadata + /// { + /// Id = "id", + /// Data = new Dictionary<string, string>() { { "data", "data" } }, + /// JsonString = "jsonString", + /// }, + /// Data = "data", + /// Migration = new Migration { Name = "name", Status = MigrationStatus.Running }, + /// Exception = new ExceptionInfo + /// { + /// ExceptionType = "exceptionType", + /// ExceptionMessage = "exceptionMessage", + /// ExceptionStacktrace = "exceptionStacktrace", + /// }, + /// Test = true, + /// Node = new Node + /// { + /// Name = "name", + /// Nodes = new List<Node>() + /// { + /// new Node + /// { + /// Name = "name", + /// Nodes = new List<Node>() + /// { + /// new Node + /// { + /// Name = "name", + /// Nodes = new List<Node>() { }, + /// Trees = new List<Tree>() { }, + /// }, + /// new Node + /// { + /// Name = "name", + /// Nodes = new List<Node>() { }, + /// Trees = new List<Tree>() { }, + /// }, + /// }, + /// Trees = new List<Tree>() + /// { + /// new Tree { Nodes = new List<Node>() { } }, + /// new Tree { Nodes = new List<Node>() { } }, + /// }, + /// }, + /// new Node + /// { + /// Name = "name", + /// Nodes = new List<Node>() + /// { + /// new Node + /// { + /// Name = "name", + /// Nodes = new List<Node>() { }, + /// Trees = new List<Tree>() { }, + /// }, + /// new Node + /// { + /// Name = "name", + /// Nodes = new List<Node>() { }, + /// Trees = new List<Tree>() { }, + /// }, + /// }, + /// Trees = new List<Tree>() + /// { + /// new Tree { Nodes = new List<Node>() { } }, + /// new Tree { Nodes = new List<Node>() { } }, + /// }, + /// }, + /// }, + /// Trees = new List<Tree>() + /// { + /// new Tree + /// { + /// Nodes = new List<Node>() + /// { + /// new Node + /// { + /// Name = "name", + /// Nodes = new List<Node>() { }, + /// Trees = new List<Tree>() { }, + /// }, + /// new Node + /// { + /// Name = "name", + /// Nodes = new List<Node>() { }, + /// Trees = new List<Tree>() { }, + /// }, + /// }, + /// }, + /// new Tree + /// { + /// Nodes = new List<Node>() + /// { + /// new Node + /// { + /// Name = "name", + /// Nodes = new List<Node>() { }, + /// Trees = new List<Tree>() { }, + /// }, + /// new Node + /// { + /// Name = "name", + /// Nodes = new List<Node>() { }, + /// Trees = new List<Tree>() { }, + /// }, + /// }, + /// }, + /// }, + /// }, + /// Directory = new Directory + /// { + /// Name = "name", + /// Files = new List<SeedExamples.File>() + /// { + /// new SeedExamples.File { Name = "name", Contents = "contents" }, + /// new SeedExamples.File { Name = "name", Contents = "contents" }, + /// }, + /// Directories = new List<Directory>() + /// { + /// new Directory + /// { + /// Name = "name", + /// Files = new List<SeedExamples.File>() + /// { + /// new SeedExamples.File { Name = "name", Contents = "contents" }, + /// new SeedExamples.File { Name = "name", Contents = "contents" }, + /// }, + /// Directories = new List<Directory>() + /// { + /// new Directory + /// { + /// Name = "name", + /// Files = new List<SeedExamples.File>() { }, + /// Directories = new List<Directory>() { }, + /// }, + /// new Directory + /// { + /// Name = "name", + /// Files = new List<SeedExamples.File>() { }, + /// Directories = new List<Directory>() { }, + /// }, + /// }, + /// }, + /// new Directory + /// { + /// Name = "name", + /// Files = new List<SeedExamples.File>() + /// { + /// new SeedExamples.File { Name = "name", Contents = "contents" }, + /// new SeedExamples.File { Name = "name", Contents = "contents" }, + /// }, + /// Directories = new List<Directory>() + /// { + /// new Directory + /// { + /// Name = "name", + /// Files = new List<SeedExamples.File>() { }, + /// Directories = new List<Directory>() { }, + /// }, + /// new Directory + /// { + /// Name = "name", + /// Files = new List<SeedExamples.File>() { }, + /// Directories = new List<Directory>() { }, + /// }, + /// }, + /// }, + /// }, + /// }, + /// Moment = new Moment + /// { + /// Id = "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", + /// Date = new DateOnly(2023, 1, 15), + /// Datetime = new DateTime(2024, 01, 15, 09, 30, 00, 000), + /// }, /// } /// ); /// diff --git a/seed/csharp-sdk/exhaustive/explicit-namespaces/reference.md b/seed/csharp-sdk/exhaustive/explicit-namespaces/reference.md index c00197361c2..78d0dfb682d 100644 --- a/seed/csharp-sdk/exhaustive/explicit-namespaces/reference.md +++ b/seed/csharp-sdk/exhaustive/explicit-namespaces/reference.md @@ -275,7 +275,9 @@ await client.Endpoints.Container.GetAndReturnMapOfPrimToObjectAsync(
```csharp -await client.Endpoints.Container.GetAndReturnOptionalAsync(null); +await client.Endpoints.Container.GetAndReturnOptionalAsync( + new ObjectWithRequiredField { String = "string" } +); ```
@@ -492,19 +494,19 @@ await client.Endpoints.HttpMethods.TestPatchAsync( "id", new ObjectWithOptionalField { - String = null, - Integer = null, - Long = null, - Double = null, - Bool = null, - Datetime = null, - Date = null, - Uuid = null, - Base64 = null, - List = null, - Set = null, - Map = null, - Bigint = null, + String = "string", + Integer = 1, + Long = 1000000, + Double = 1.1, + Bool = true, + Datetime = new DateTime(2024, 01, 15, 09, 30, 00, 000), + Date = new DateOnly(2023, 1, 15), + Uuid = "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", + Base64 = "SGVsbG8gd29ybGQh", + List = new List() { "list", "list" }, + Set = new HashSet() { "set" }, + Map = new Dictionary() { { 1, "map" } }, + Bigint = "1000000", } ); ``` @@ -598,19 +600,19 @@ await client.Endpoints.HttpMethods.TestDeleteAsync("id"); await client.Endpoints.Object.GetAndReturnWithOptionalFieldAsync( new ObjectWithOptionalField { - String = null, - Integer = null, - Long = null, - Double = null, - Bool = null, - Datetime = null, - Date = null, - Uuid = null, - Base64 = null, - List = null, - Set = null, - Map = null, - Bigint = null, + String = "string", + Integer = 1, + Long = 1000000, + Double = 1.1, + Bool = true, + Datetime = new DateTime(2024, 01, 15, 09, 30, 00, 000), + Date = new DateOnly(2023, 1, 15), + Uuid = "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", + Base64 = "SGVsbG8gd29ybGQh", + List = new List() { "list", "list" }, + Set = new HashSet() { "set" }, + Map = new Dictionary() { { 1, "map" } }, + Bigint = "1000000", } ); ``` @@ -746,7 +748,26 @@ await client.Endpoints.Object.GetAndReturnWithMapOfMapAsync( ```csharp await client.Endpoints.Object.GetAndReturnNestedWithOptionalFieldAsync( - new NestedObjectWithOptionalField { String = null, NestedObject = null } + new NestedObjectWithOptionalField + { + String = "string", + NestedObject = new ObjectWithOptionalField + { + String = "string", + Integer = 1, + Long = 1000000, + Double = 1.1, + Bool = true, + Datetime = new DateTime(2024, 01, 15, 09, 30, 00, 000), + Date = new DateOnly(2023, 1, 15), + Uuid = "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", + Base64 = "SGVsbG8gd29ybGQh", + List = new List() { "list", "list" }, + Set = new HashSet() { "set" }, + Map = new Dictionary() { { 1, "map" } }, + Bigint = "1000000", + }, + } ); ``` @@ -794,19 +815,19 @@ await client.Endpoints.Object.GetAndReturnNestedWithRequiredFieldAsync( String = "string", NestedObject = new ObjectWithOptionalField { - String = null, - Integer = null, - Long = null, - Double = null, - Bool = null, - Datetime = null, - Date = null, - Uuid = null, - Base64 = null, - List = null, - Set = null, - Map = null, - Bigint = null, + String = "string", + Integer = 1, + Long = 1000000, + Double = 1.1, + Bool = true, + Datetime = new DateTime(2024, 01, 15, 09, 30, 00, 000), + Date = new DateOnly(2023, 1, 15), + Uuid = "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", + Base64 = "SGVsbG8gd29ybGQh", + List = new List() { "list", "list" }, + Set = new HashSet() { "set" }, + Map = new Dictionary() { { 1, "map" } }, + Bigint = "1000000", }, } ); @@ -865,19 +886,19 @@ await client.Endpoints.Object.GetAndReturnNestedWithRequiredFieldAsListAsync( String = "string", NestedObject = new ObjectWithOptionalField { - String = null, - Integer = null, - Long = null, - Double = null, - Bool = null, - Datetime = null, - Date = null, - Uuid = null, - Base64 = null, - List = null, - Set = null, - Map = null, - Bigint = null, + String = "string", + Integer = 1, + Long = 1000000, + Double = 1.1, + Bool = true, + Datetime = new DateTime(2024, 01, 15, 09, 30, 00, 000), + Date = new DateOnly(2023, 1, 15), + Uuid = "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", + Base64 = "SGVsbG8gd29ybGQh", + List = new List() { "list", "list" }, + Set = new HashSet() { "set" }, + Map = new Dictionary() { { 1, "map" } }, + Bigint = "1000000", }, }, new NestedObjectWithRequiredField @@ -885,19 +906,19 @@ await client.Endpoints.Object.GetAndReturnNestedWithRequiredFieldAsListAsync( String = "string", NestedObject = new ObjectWithOptionalField { - String = null, - Integer = null, - Long = null, - Double = null, - Bool = null, - Datetime = null, - Date = null, - Uuid = null, - Base64 = null, - List = null, - Set = null, - Map = null, - Bigint = null, + String = "string", + Integer = 1, + Long = 1000000, + Double = 1.1, + Bool = true, + Datetime = new DateTime(2024, 01, 15, 09, 30, 00, 000), + Date = new DateOnly(2023, 1, 15), + Uuid = "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", + Base64 = "SGVsbG8gd29ybGQh", + List = new List() { "list", "list" }, + Set = new HashSet() { "set" }, + Map = new Dictionary() { { 1, "map" } }, + Bigint = "1000000", }, }, } @@ -1659,19 +1680,19 @@ await client.InlinedRequests.PostWithObjectBodyandResponseAsync( Integer = 1, NestedObject = new ObjectWithOptionalField { - String = null, - Integer = null, - Long = null, - Double = null, - Bool = null, - Datetime = null, - Date = null, - Uuid = null, - Base64 = null, - List = null, - Set = null, - Map = null, - Bigint = null, + String = "string", + Integer = 1, + Long = 1000000, + Double = 1.1, + Bool = true, + Datetime = new DateTime(2024, 01, 15, 09, 30, 00, 000), + Date = new DateOnly(2023, 1, 15), + Uuid = "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", + Base64 = "SGVsbG8gd29ybGQh", + List = new List() { "list", "list" }, + Set = new HashSet() { "set" }, + Map = new Dictionary() { { 1, "map" } }, + Bigint = "1000000", }, } ); diff --git a/seed/csharp-sdk/exhaustive/explicit-namespaces/snippet.json b/seed/csharp-sdk/exhaustive/explicit-namespaces/snippet.json index 00c96f7d2b1..1366aef8163 100644 --- a/seed/csharp-sdk/exhaustive/explicit-namespaces/snippet.json +++ b/seed/csharp-sdk/exhaustive/explicit-namespaces/snippet.json @@ -82,7 +82,7 @@ }, "snippet": { "type": "typescript", - "client": "using SeedExhaustive;\n\nvar client = new SeedExhaustiveClient(\"TOKEN\");\nawait client.Endpoints.Container.GetAndReturnOptionalAsync(null);\n" + "client": "using SeedExhaustive.Types.Object;\nusing SeedExhaustive;\n\nvar client = new SeedExhaustiveClient(\"TOKEN\");\nawait client.Endpoints.Container.GetAndReturnOptionalAsync(\n new ObjectWithRequiredField { String = \"string\" }\n);\n" } }, { @@ -142,7 +142,7 @@ }, "snippet": { "type": "typescript", - "client": "using SeedExhaustive.Types.Object;\nusing SeedExhaustive;\n\nvar client = new SeedExhaustiveClient(\"TOKEN\");\nawait client.Endpoints.HttpMethods.TestPatchAsync(\n \"id\",\n new ObjectWithOptionalField\n {\n String = null,\n Integer = null,\n Long = null,\n Double = null,\n Bool = null,\n Datetime = null,\n Date = null,\n Uuid = null,\n Base64 = null,\n List = null,\n Set = null,\n Map = null,\n Bigint = null,\n }\n);\n" + "client": "using SeedExhaustive.Types.Object;\nusing SeedExhaustive;\n\nvar client = new SeedExhaustiveClient(\"TOKEN\");\nawait client.Endpoints.HttpMethods.TestPatchAsync(\n \"id\",\n new ObjectWithOptionalField\n {\n String = \"string\",\n Integer = 1,\n Long = 1000000,\n Double = 1.1,\n Bool = true,\n Datetime = new DateTime(2024, 01, 15, 09, 30, 00, 000),\n Date = new DateOnly(2023, 1, 15),\n Uuid = \"d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32\",\n Base64 = \"SGVsbG8gd29ybGQh\",\n List = new List() { \"list\", \"list\" },\n Set = new HashSet() { \"set\" },\n Map = new Dictionary() { { 1, \"map\" } },\n Bigint = \"1000000\",\n }\n);\n" } }, { @@ -166,7 +166,7 @@ }, "snippet": { "type": "typescript", - "client": "using SeedExhaustive.Types.Object;\nusing SeedExhaustive;\n\nvar client = new SeedExhaustiveClient(\"TOKEN\");\nawait client.Endpoints.Object.GetAndReturnWithOptionalFieldAsync(\n new ObjectWithOptionalField\n {\n String = null,\n Integer = null,\n Long = null,\n Double = null,\n Bool = null,\n Datetime = null,\n Date = null,\n Uuid = null,\n Base64 = null,\n List = null,\n Set = null,\n Map = null,\n Bigint = null,\n }\n);\n" + "client": "using SeedExhaustive.Types.Object;\nusing SeedExhaustive;\n\nvar client = new SeedExhaustiveClient(\"TOKEN\");\nawait client.Endpoints.Object.GetAndReturnWithOptionalFieldAsync(\n new ObjectWithOptionalField\n {\n String = \"string\",\n Integer = 1,\n Long = 1000000,\n Double = 1.1,\n Bool = true,\n Datetime = new DateTime(2024, 01, 15, 09, 30, 00, 000),\n Date = new DateOnly(2023, 1, 15),\n Uuid = \"d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32\",\n Base64 = \"SGVsbG8gd29ybGQh\",\n List = new List() { \"list\", \"list\" },\n Set = new HashSet() { \"set\" },\n Map = new Dictionary() { { 1, \"map\" } },\n Bigint = \"1000000\",\n }\n);\n" } }, { @@ -202,7 +202,7 @@ }, "snippet": { "type": "typescript", - "client": "using SeedExhaustive.Types.Object;\nusing SeedExhaustive;\n\nvar client = new SeedExhaustiveClient(\"TOKEN\");\nawait client.Endpoints.Object.GetAndReturnNestedWithOptionalFieldAsync(\n new NestedObjectWithOptionalField { String = null, NestedObject = null }\n);\n" + "client": "using SeedExhaustive.Types.Object;\nusing SeedExhaustive;\n\nvar client = new SeedExhaustiveClient(\"TOKEN\");\nawait client.Endpoints.Object.GetAndReturnNestedWithOptionalFieldAsync(\n new NestedObjectWithOptionalField\n {\n String = \"string\",\n NestedObject = new ObjectWithOptionalField\n {\n String = \"string\",\n Integer = 1,\n Long = 1000000,\n Double = 1.1,\n Bool = true,\n Datetime = new DateTime(2024, 01, 15, 09, 30, 00, 000),\n Date = new DateOnly(2023, 1, 15),\n Uuid = \"d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32\",\n Base64 = \"SGVsbG8gd29ybGQh\",\n List = new List() { \"list\", \"list\" },\n Set = new HashSet() { \"set\" },\n Map = new Dictionary() { { 1, \"map\" } },\n Bigint = \"1000000\",\n },\n }\n);\n" } }, { @@ -214,7 +214,7 @@ }, "snippet": { "type": "typescript", - "client": "using SeedExhaustive.Types.Object;\nusing SeedExhaustive;\n\nvar client = new SeedExhaustiveClient(\"TOKEN\");\nawait client.Endpoints.Object.GetAndReturnNestedWithRequiredFieldAsync(\n \"string\",\n new NestedObjectWithRequiredField\n {\n String = \"string\",\n NestedObject = new ObjectWithOptionalField\n {\n String = null,\n Integer = null,\n Long = null,\n Double = null,\n Bool = null,\n Datetime = null,\n Date = null,\n Uuid = null,\n Base64 = null,\n List = null,\n Set = null,\n Map = null,\n Bigint = null,\n },\n }\n);\n" + "client": "using SeedExhaustive.Types.Object;\nusing SeedExhaustive;\n\nvar client = new SeedExhaustiveClient(\"TOKEN\");\nawait client.Endpoints.Object.GetAndReturnNestedWithRequiredFieldAsync(\n \"string\",\n new NestedObjectWithRequiredField\n {\n String = \"string\",\n NestedObject = new ObjectWithOptionalField\n {\n String = \"string\",\n Integer = 1,\n Long = 1000000,\n Double = 1.1,\n Bool = true,\n Datetime = new DateTime(2024, 01, 15, 09, 30, 00, 000),\n Date = new DateOnly(2023, 1, 15),\n Uuid = \"d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32\",\n Base64 = \"SGVsbG8gd29ybGQh\",\n List = new List() { \"list\", \"list\" },\n Set = new HashSet() { \"set\" },\n Map = new Dictionary() { { 1, \"map\" } },\n Bigint = \"1000000\",\n },\n }\n);\n" } }, { @@ -226,7 +226,7 @@ }, "snippet": { "type": "typescript", - "client": "using SeedExhaustive.Types.Object;\nusing SeedExhaustive;\n\nvar client = new SeedExhaustiveClient(\"TOKEN\");\nawait client.Endpoints.Object.GetAndReturnNestedWithRequiredFieldAsListAsync(\n new List()\n {\n new NestedObjectWithRequiredField\n {\n String = \"string\",\n NestedObject = new ObjectWithOptionalField\n {\n String = null,\n Integer = null,\n Long = null,\n Double = null,\n Bool = null,\n Datetime = null,\n Date = null,\n Uuid = null,\n Base64 = null,\n List = null,\n Set = null,\n Map = null,\n Bigint = null,\n },\n },\n new NestedObjectWithRequiredField\n {\n String = \"string\",\n NestedObject = new ObjectWithOptionalField\n {\n String = null,\n Integer = null,\n Long = null,\n Double = null,\n Bool = null,\n Datetime = null,\n Date = null,\n Uuid = null,\n Base64 = null,\n List = null,\n Set = null,\n Map = null,\n Bigint = null,\n },\n },\n }\n);\n" + "client": "using SeedExhaustive.Types.Object;\nusing SeedExhaustive;\n\nvar client = new SeedExhaustiveClient(\"TOKEN\");\nawait client.Endpoints.Object.GetAndReturnNestedWithRequiredFieldAsListAsync(\n new List()\n {\n new NestedObjectWithRequiredField\n {\n String = \"string\",\n NestedObject = new ObjectWithOptionalField\n {\n String = \"string\",\n Integer = 1,\n Long = 1000000,\n Double = 1.1,\n Bool = true,\n Datetime = new DateTime(2024, 01, 15, 09, 30, 00, 000),\n Date = new DateOnly(2023, 1, 15),\n Uuid = \"d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32\",\n Base64 = \"SGVsbG8gd29ybGQh\",\n List = new List() { \"list\", \"list\" },\n Set = new HashSet() { \"set\" },\n Map = new Dictionary() { { 1, \"map\" } },\n Bigint = \"1000000\",\n },\n },\n new NestedObjectWithRequiredField\n {\n String = \"string\",\n NestedObject = new ObjectWithOptionalField\n {\n String = \"string\",\n Integer = 1,\n Long = 1000000,\n Double = 1.1,\n Bool = true,\n Datetime = new DateTime(2024, 01, 15, 09, 30, 00, 000),\n Date = new DateOnly(2023, 1, 15),\n Uuid = \"d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32\",\n Base64 = \"SGVsbG8gd29ybGQh\",\n List = new List() { \"list\", \"list\" },\n Set = new HashSet() { \"set\" },\n Map = new Dictionary() { { 1, \"map\" } },\n Bigint = \"1000000\",\n },\n },\n }\n);\n" } }, { @@ -418,7 +418,7 @@ }, "snippet": { "type": "typescript", - "client": "using SeedExhaustive.InlinedRequests;\nusing SeedExhaustive.Types.Object;\nusing SeedExhaustive;\n\nvar client = new SeedExhaustiveClient(\"TOKEN\");\nawait client.InlinedRequests.PostWithObjectBodyandResponseAsync(\n new PostWithObjectBody\n {\n String = \"string\",\n Integer = 1,\n NestedObject = new ObjectWithOptionalField\n {\n String = null,\n Integer = null,\n Long = null,\n Double = null,\n Bool = null,\n Datetime = null,\n Date = null,\n Uuid = null,\n Base64 = null,\n List = null,\n Set = null,\n Map = null,\n Bigint = null,\n },\n }\n);\n" + "client": "using SeedExhaustive.InlinedRequests;\nusing SeedExhaustive.Types.Object;\nusing SeedExhaustive;\n\nvar client = new SeedExhaustiveClient(\"TOKEN\");\nawait client.InlinedRequests.PostWithObjectBodyandResponseAsync(\n new PostWithObjectBody\n {\n String = \"string\",\n Integer = 1,\n NestedObject = new ObjectWithOptionalField\n {\n String = \"string\",\n Integer = 1,\n Long = 1000000,\n Double = 1.1,\n Bool = true,\n Datetime = new DateTime(2024, 01, 15, 09, 30, 00, 000),\n Date = new DateOnly(2023, 1, 15),\n Uuid = \"d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32\",\n Base64 = \"SGVsbG8gd29ybGQh\",\n List = new List() { \"list\", \"list\" },\n Set = new HashSet() { \"set\" },\n Map = new Dictionary() { { 1, \"map\" } },\n Bigint = \"1000000\",\n },\n }\n);\n" } }, { diff --git a/seed/csharp-sdk/exhaustive/explicit-namespaces/src/SeedExhaustive.Test/Unit/MockServer/GetAndReturnNestedWithOptionalFieldTest.cs b/seed/csharp-sdk/exhaustive/explicit-namespaces/src/SeedExhaustive.Test/Unit/MockServer/GetAndReturnNestedWithOptionalFieldTest.cs index afad3fe1690..08e979d2f86 100644 --- a/seed/csharp-sdk/exhaustive/explicit-namespaces/src/SeedExhaustive.Test/Unit/MockServer/GetAndReturnNestedWithOptionalFieldTest.cs +++ b/seed/csharp-sdk/exhaustive/explicit-namespaces/src/SeedExhaustive.Test/Unit/MockServer/GetAndReturnNestedWithOptionalFieldTest.cs @@ -1,3 +1,4 @@ +using System.Globalization; using System.Threading.Tasks; using FluentAssertions.Json; using Newtonsoft.Json.Linq; @@ -16,7 +17,31 @@ public class GetAndReturnNestedWithOptionalFieldTest : BaseMockServerTest public async Task MockServerTest() { const string requestJson = """ - {} + { + "string": "string", + "NestedObject": { + "string": "string", + "integer": 1, + "long": 1000000, + "double": 1.1, + "bool": true, + "datetime": "2024-01-15T09:30:00.000Z", + "date": "2023-01-15", + "uuid": "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", + "base64": "SGVsbG8gd29ybGQh", + "list": [ + "list", + "list" + ], + "set": [ + "set" + ], + "map": { + "1": "map" + }, + "bigint": "1000000" + } + } """; const string mockResponse = """ @@ -63,7 +88,30 @@ public async Task MockServerTest() ); var response = await Client.Endpoints.Object.GetAndReturnNestedWithOptionalFieldAsync( - new NestedObjectWithOptionalField { String = null, NestedObject = null }, + new NestedObjectWithOptionalField + { + String = "string", + NestedObject = new ObjectWithOptionalField + { + String = "string", + Integer = 1, + Long = 1000000, + Double = 1.1, + Bool = true, + Datetime = DateTime.Parse( + "2024-01-15T09:30:00.000Z", + null, + DateTimeStyles.AdjustToUniversal + ), + Date = new DateOnly(2023, 1, 15), + Uuid = "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", + Base64 = "SGVsbG8gd29ybGQh", + List = new List() { "list", "list" }, + Set = new HashSet() { "set" }, + Map = new Dictionary() { { 1, "map" } }, + Bigint = "1000000", + }, + }, RequestOptions ); JToken diff --git a/seed/csharp-sdk/exhaustive/explicit-namespaces/src/SeedExhaustive.Test/Unit/MockServer/GetAndReturnNestedWithRequiredFieldAsListTest.cs b/seed/csharp-sdk/exhaustive/explicit-namespaces/src/SeedExhaustive.Test/Unit/MockServer/GetAndReturnNestedWithRequiredFieldAsListTest.cs index 8b96523521e..94315ceb11a 100644 --- a/seed/csharp-sdk/exhaustive/explicit-namespaces/src/SeedExhaustive.Test/Unit/MockServer/GetAndReturnNestedWithRequiredFieldAsListTest.cs +++ b/seed/csharp-sdk/exhaustive/explicit-namespaces/src/SeedExhaustive.Test/Unit/MockServer/GetAndReturnNestedWithRequiredFieldAsListTest.cs @@ -1,3 +1,4 @@ +using System.Globalization; using System.Threading.Tasks; using FluentAssertions.Json; using Newtonsoft.Json.Linq; @@ -19,11 +20,53 @@ public async Task MockServerTest() [ { "string": "string", - "NestedObject": {} + "NestedObject": { + "string": "string", + "integer": 1, + "long": 1000000, + "double": 1.1, + "bool": true, + "datetime": "2024-01-15T09:30:00.000Z", + "date": "2023-01-15", + "uuid": "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", + "base64": "SGVsbG8gd29ybGQh", + "list": [ + "list", + "list" + ], + "set": [ + "set" + ], + "map": { + "1": "map" + }, + "bigint": "1000000" + } }, { "string": "string", - "NestedObject": {} + "NestedObject": { + "string": "string", + "integer": 1, + "long": 1000000, + "double": 1.1, + "bool": true, + "datetime": "2024-01-15T09:30:00.000Z", + "date": "2023-01-15", + "uuid": "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", + "base64": "SGVsbG8gd29ybGQh", + "list": [ + "list", + "list" + ], + "set": [ + "set" + ], + "map": { + "1": "map" + }, + "bigint": "1000000" + } } ] """; @@ -79,19 +122,23 @@ public async Task MockServerTest() String = "string", NestedObject = new ObjectWithOptionalField { - String = null, - Integer = null, - Long = null, - Double = null, - Bool = null, - Datetime = null, - Date = null, - Uuid = null, - Base64 = null, - List = null, - Set = null, - Map = null, - Bigint = null, + String = "string", + Integer = 1, + Long = 1000000, + Double = 1.1, + Bool = true, + Datetime = DateTime.Parse( + "2024-01-15T09:30:00.000Z", + null, + DateTimeStyles.AdjustToUniversal + ), + Date = new DateOnly(2023, 1, 15), + Uuid = "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", + Base64 = "SGVsbG8gd29ybGQh", + List = new List() { "list", "list" }, + Set = new HashSet() { "set" }, + Map = new Dictionary() { { 1, "map" } }, + Bigint = "1000000", }, }, new NestedObjectWithRequiredField @@ -99,19 +146,23 @@ public async Task MockServerTest() String = "string", NestedObject = new ObjectWithOptionalField { - String = null, - Integer = null, - Long = null, - Double = null, - Bool = null, - Datetime = null, - Date = null, - Uuid = null, - Base64 = null, - List = null, - Set = null, - Map = null, - Bigint = null, + String = "string", + Integer = 1, + Long = 1000000, + Double = 1.1, + Bool = true, + Datetime = DateTime.Parse( + "2024-01-15T09:30:00.000Z", + null, + DateTimeStyles.AdjustToUniversal + ), + Date = new DateOnly(2023, 1, 15), + Uuid = "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", + Base64 = "SGVsbG8gd29ybGQh", + List = new List() { "list", "list" }, + Set = new HashSet() { "set" }, + Map = new Dictionary() { { 1, "map" } }, + Bigint = "1000000", }, }, }, diff --git a/seed/csharp-sdk/exhaustive/explicit-namespaces/src/SeedExhaustive.Test/Unit/MockServer/GetAndReturnNestedWithRequiredFieldTest.cs b/seed/csharp-sdk/exhaustive/explicit-namespaces/src/SeedExhaustive.Test/Unit/MockServer/GetAndReturnNestedWithRequiredFieldTest.cs index 8b2e1747d70..1b4d198ef16 100644 --- a/seed/csharp-sdk/exhaustive/explicit-namespaces/src/SeedExhaustive.Test/Unit/MockServer/GetAndReturnNestedWithRequiredFieldTest.cs +++ b/seed/csharp-sdk/exhaustive/explicit-namespaces/src/SeedExhaustive.Test/Unit/MockServer/GetAndReturnNestedWithRequiredFieldTest.cs @@ -1,3 +1,4 @@ +using System.Globalization; using System.Threading.Tasks; using FluentAssertions.Json; using Newtonsoft.Json.Linq; @@ -18,7 +19,28 @@ public async Task MockServerTest() const string requestJson = """ { "string": "string", - "NestedObject": {} + "NestedObject": { + "string": "string", + "integer": 1, + "long": 1000000, + "double": 1.1, + "bool": true, + "datetime": "2024-01-15T09:30:00.000Z", + "date": "2023-01-15", + "uuid": "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", + "base64": "SGVsbG8gd29ybGQh", + "list": [ + "list", + "list" + ], + "set": [ + "set" + ], + "map": { + "1": "map" + }, + "bigint": "1000000" + } } """; @@ -72,19 +94,23 @@ public async Task MockServerTest() String = "string", NestedObject = new ObjectWithOptionalField { - String = null, - Integer = null, - Long = null, - Double = null, - Bool = null, - Datetime = null, - Date = null, - Uuid = null, - Base64 = null, - List = null, - Set = null, - Map = null, - Bigint = null, + String = "string", + Integer = 1, + Long = 1000000, + Double = 1.1, + Bool = true, + Datetime = DateTime.Parse( + "2024-01-15T09:30:00.000Z", + null, + DateTimeStyles.AdjustToUniversal + ), + Date = new DateOnly(2023, 1, 15), + Uuid = "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", + Base64 = "SGVsbG8gd29ybGQh", + List = new List() { "list", "list" }, + Set = new HashSet() { "set" }, + Map = new Dictionary() { { 1, "map" } }, + Bigint = "1000000", }, }, RequestOptions diff --git a/seed/csharp-sdk/exhaustive/explicit-namespaces/src/SeedExhaustive.Test/Unit/MockServer/GetAndReturnOptionalTest.cs b/seed/csharp-sdk/exhaustive/explicit-namespaces/src/SeedExhaustive.Test/Unit/MockServer/GetAndReturnOptionalTest.cs index 380b36737b9..8e575a96aa0 100644 --- a/seed/csharp-sdk/exhaustive/explicit-namespaces/src/SeedExhaustive.Test/Unit/MockServer/GetAndReturnOptionalTest.cs +++ b/seed/csharp-sdk/exhaustive/explicit-namespaces/src/SeedExhaustive.Test/Unit/MockServer/GetAndReturnOptionalTest.cs @@ -3,6 +3,7 @@ using Newtonsoft.Json.Linq; using NUnit.Framework; using SeedExhaustive.Core; +using SeedExhaustive.Types.Object; #nullable enable @@ -15,7 +16,9 @@ public class GetAndReturnOptionalTest : BaseMockServerTest public async Task MockServerTest() { const string requestJson = """ - + { + "string": "string" + } """; const string mockResponse = """ @@ -30,7 +33,7 @@ public async Task MockServerTest() .RequestBuilders.Request.Create() .WithPath("/container/opt-objects") .UsingPost() - .WithBody(requestJson) + .WithBodyAsJson(requestJson) ) .RespondWith( WireMock @@ -40,7 +43,7 @@ public async Task MockServerTest() ); var response = await Client.Endpoints.Container.GetAndReturnOptionalAsync( - null, + new ObjectWithRequiredField { String = "string" }, RequestOptions ); JToken diff --git a/seed/csharp-sdk/exhaustive/explicit-namespaces/src/SeedExhaustive.Test/Unit/MockServer/GetAndReturnWithOptionalFieldTest.cs b/seed/csharp-sdk/exhaustive/explicit-namespaces/src/SeedExhaustive.Test/Unit/MockServer/GetAndReturnWithOptionalFieldTest.cs index a185e909b96..1e042cb060a 100644 --- a/seed/csharp-sdk/exhaustive/explicit-namespaces/src/SeedExhaustive.Test/Unit/MockServer/GetAndReturnWithOptionalFieldTest.cs +++ b/seed/csharp-sdk/exhaustive/explicit-namespaces/src/SeedExhaustive.Test/Unit/MockServer/GetAndReturnWithOptionalFieldTest.cs @@ -1,3 +1,4 @@ +using System.Globalization; using System.Threading.Tasks; using FluentAssertions.Json; using Newtonsoft.Json.Linq; @@ -16,7 +17,28 @@ public class GetAndReturnWithOptionalFieldTest : BaseMockServerTest public async Task MockServerTest() { const string requestJson = """ - {} + { + "string": "string", + "integer": 1, + "long": 1000000, + "double": 1.1, + "bool": true, + "datetime": "2024-01-15T09:30:00.000Z", + "date": "2023-01-15", + "uuid": "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", + "base64": "SGVsbG8gd29ybGQh", + "list": [ + "list", + "list" + ], + "set": [ + "set" + ], + "map": { + "1": "map" + }, + "bigint": "1000000" + } """; const string mockResponse = """ @@ -62,19 +84,23 @@ public async Task MockServerTest() var response = await Client.Endpoints.Object.GetAndReturnWithOptionalFieldAsync( new ObjectWithOptionalField { - String = null, - Integer = null, - Long = null, - Double = null, - Bool = null, - Datetime = null, - Date = null, - Uuid = null, - Base64 = null, - List = null, - Set = null, - Map = null, - Bigint = null, + String = "string", + Integer = 1, + Long = 1000000, + Double = 1.1, + Bool = true, + Datetime = DateTime.Parse( + "2024-01-15T09:30:00.000Z", + null, + DateTimeStyles.AdjustToUniversal + ), + Date = new DateOnly(2023, 1, 15), + Uuid = "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", + Base64 = "SGVsbG8gd29ybGQh", + List = new List() { "list", "list" }, + Set = new HashSet() { "set" }, + Map = new Dictionary() { { 1, "map" } }, + Bigint = "1000000", }, RequestOptions ); diff --git a/seed/csharp-sdk/exhaustive/explicit-namespaces/src/SeedExhaustive.Test/Unit/MockServer/PostWithObjectBodyandResponseTest.cs b/seed/csharp-sdk/exhaustive/explicit-namespaces/src/SeedExhaustive.Test/Unit/MockServer/PostWithObjectBodyandResponseTest.cs index 452d65eba23..13e3df8a6d5 100644 --- a/seed/csharp-sdk/exhaustive/explicit-namespaces/src/SeedExhaustive.Test/Unit/MockServer/PostWithObjectBodyandResponseTest.cs +++ b/seed/csharp-sdk/exhaustive/explicit-namespaces/src/SeedExhaustive.Test/Unit/MockServer/PostWithObjectBodyandResponseTest.cs @@ -1,3 +1,4 @@ +using System.Globalization; using System.Threading.Tasks; using FluentAssertions.Json; using Newtonsoft.Json.Linq; @@ -20,7 +21,28 @@ public async Task MockServerTest() { "string": "string", "integer": 1, - "NestedObject": {} + "NestedObject": { + "string": "string", + "integer": 1, + "long": 1000000, + "double": 1.1, + "bool": true, + "datetime": "2024-01-15T09:30:00.000Z", + "date": "2023-01-15", + "uuid": "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", + "base64": "SGVsbG8gd29ybGQh", + "list": [ + "list", + "list" + ], + "set": [ + "set" + ], + "map": { + "1": "map" + }, + "bigint": "1000000" + } } """; @@ -71,19 +93,23 @@ public async Task MockServerTest() Integer = 1, NestedObject = new ObjectWithOptionalField { - String = null, - Integer = null, - Long = null, - Double = null, - Bool = null, - Datetime = null, - Date = null, - Uuid = null, - Base64 = null, - List = null, - Set = null, - Map = null, - Bigint = null, + String = "string", + Integer = 1, + Long = 1000000, + Double = 1.1, + Bool = true, + Datetime = DateTime.Parse( + "2024-01-15T09:30:00.000Z", + null, + DateTimeStyles.AdjustToUniversal + ), + Date = new DateOnly(2023, 1, 15), + Uuid = "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", + Base64 = "SGVsbG8gd29ybGQh", + List = new List() { "list", "list" }, + Set = new HashSet() { "set" }, + Map = new Dictionary() { { 1, "map" } }, + Bigint = "1000000", }, }, RequestOptions diff --git a/seed/csharp-sdk/exhaustive/explicit-namespaces/src/SeedExhaustive.Test/Unit/MockServer/TestPatchTest.cs b/seed/csharp-sdk/exhaustive/explicit-namespaces/src/SeedExhaustive.Test/Unit/MockServer/TestPatchTest.cs index 5e911425ab2..bd992aa0124 100644 --- a/seed/csharp-sdk/exhaustive/explicit-namespaces/src/SeedExhaustive.Test/Unit/MockServer/TestPatchTest.cs +++ b/seed/csharp-sdk/exhaustive/explicit-namespaces/src/SeedExhaustive.Test/Unit/MockServer/TestPatchTest.cs @@ -1,3 +1,4 @@ +using System.Globalization; using System.Threading.Tasks; using FluentAssertions.Json; using Newtonsoft.Json.Linq; @@ -16,7 +17,28 @@ public class TestPatchTest : BaseMockServerTest public async Task MockServerTest() { const string requestJson = """ - {} + { + "string": "string", + "integer": 1, + "long": 1000000, + "double": 1.1, + "bool": true, + "datetime": "2024-01-15T09:30:00.000Z", + "date": "2023-01-15", + "uuid": "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", + "base64": "SGVsbG8gd29ybGQh", + "list": [ + "list", + "list" + ], + "set": [ + "set" + ], + "map": { + "1": "map" + }, + "bigint": "1000000" + } """; const string mockResponse = """ @@ -63,19 +85,23 @@ public async Task MockServerTest() "id", new ObjectWithOptionalField { - String = null, - Integer = null, - Long = null, - Double = null, - Bool = null, - Datetime = null, - Date = null, - Uuid = null, - Base64 = null, - List = null, - Set = null, - Map = null, - Bigint = null, + String = "string", + Integer = 1, + Long = 1000000, + Double = 1.1, + Bool = true, + Datetime = DateTime.Parse( + "2024-01-15T09:30:00.000Z", + null, + DateTimeStyles.AdjustToUniversal + ), + Date = new DateOnly(2023, 1, 15), + Uuid = "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", + Base64 = "SGVsbG8gd29ybGQh", + List = new List() { "list", "list" }, + Set = new HashSet() { "set" }, + Map = new Dictionary() { { 1, "map" } }, + Bigint = "1000000", }, RequestOptions ); diff --git a/seed/csharp-sdk/exhaustive/explicit-namespaces/src/SeedExhaustive/Endpoints/Container/ContainerClient.cs b/seed/csharp-sdk/exhaustive/explicit-namespaces/src/SeedExhaustive/Endpoints/Container/ContainerClient.cs index 353cdef7eec..322b0c713f4 100644 --- a/seed/csharp-sdk/exhaustive/explicit-namespaces/src/SeedExhaustive/Endpoints/Container/ContainerClient.cs +++ b/seed/csharp-sdk/exhaustive/explicit-namespaces/src/SeedExhaustive/Endpoints/Container/ContainerClient.cs @@ -298,7 +298,9 @@ public async Task< /// /// - /// await client.Endpoints.Container.GetAndReturnOptionalAsync(null); + /// await client.Endpoints.Container.GetAndReturnOptionalAsync( + /// new ObjectWithRequiredField { String = "string" } + /// ); /// /// public async Task GetAndReturnOptionalAsync( diff --git a/seed/csharp-sdk/exhaustive/explicit-namespaces/src/SeedExhaustive/Endpoints/HttpMethods/HttpMethodsClient.cs b/seed/csharp-sdk/exhaustive/explicit-namespaces/src/SeedExhaustive/Endpoints/HttpMethods/HttpMethodsClient.cs index 8b8369cb917..e0eab29d1bf 100644 --- a/seed/csharp-sdk/exhaustive/explicit-namespaces/src/SeedExhaustive/Endpoints/HttpMethods/HttpMethodsClient.cs +++ b/seed/csharp-sdk/exhaustive/explicit-namespaces/src/SeedExhaustive/Endpoints/HttpMethods/HttpMethodsClient.cs @@ -153,19 +153,19 @@ public async Task TestPutAsync( /// "id", /// new ObjectWithOptionalField /// { - /// String = null, - /// Integer = null, - /// Long = null, - /// Double = null, - /// Bool = null, - /// Datetime = null, - /// Date = null, - /// Uuid = null, - /// Base64 = null, - /// List = null, - /// Set = null, - /// Map = null, - /// Bigint = null, + /// String = "string", + /// Integer = 1, + /// Long = 1000000, + /// Double = 1.1, + /// Bool = true, + /// Datetime = new DateTime(2024, 01, 15, 09, 30, 00, 000), + /// Date = new DateOnly(2023, 1, 15), + /// Uuid = "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", + /// Base64 = "SGVsbG8gd29ybGQh", + /// List = new List<string>() { "list", "list" }, + /// Set = new HashSet<string>() { "set" }, + /// Map = new Dictionary<int, string>() { { 1, "map" } }, + /// Bigint = "1000000", /// } /// ); /// diff --git a/seed/csharp-sdk/exhaustive/explicit-namespaces/src/SeedExhaustive/Endpoints/Object/ObjectClient.cs b/seed/csharp-sdk/exhaustive/explicit-namespaces/src/SeedExhaustive/Endpoints/Object/ObjectClient.cs index 8469555bb56..919c15bffa5 100644 --- a/seed/csharp-sdk/exhaustive/explicit-namespaces/src/SeedExhaustive/Endpoints/Object/ObjectClient.cs +++ b/seed/csharp-sdk/exhaustive/explicit-namespaces/src/SeedExhaustive/Endpoints/Object/ObjectClient.cs @@ -23,19 +23,19 @@ internal ObjectClient(RawClient client) /// await client.Endpoints.Object.GetAndReturnWithOptionalFieldAsync( /// new ObjectWithOptionalField /// { - /// String = null, - /// Integer = null, - /// Long = null, - /// Double = null, - /// Bool = null, - /// Datetime = null, - /// Date = null, - /// Uuid = null, - /// Base64 = null, - /// List = null, - /// Set = null, - /// Map = null, - /// Bigint = null, + /// String = "string", + /// Integer = 1, + /// Long = 1000000, + /// Double = 1.1, + /// Bool = true, + /// Datetime = new DateTime(2024, 01, 15, 09, 30, 00, 000), + /// Date = new DateOnly(2023, 1, 15), + /// Uuid = "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", + /// Base64 = "SGVsbG8gd29ybGQh", + /// List = new List<string>() { "list", "list" }, + /// Set = new HashSet<string>() { "set" }, + /// Map = new Dictionary<int, string>() { { 1, "map" } }, + /// Bigint = "1000000", /// } /// ); /// @@ -177,7 +177,26 @@ public async Task GetAndReturnWithMapOfMapAsync( /// /// /// await client.Endpoints.Object.GetAndReturnNestedWithOptionalFieldAsync( - /// new NestedObjectWithOptionalField { String = null, NestedObject = null } + /// new NestedObjectWithOptionalField + /// { + /// String = "string", + /// NestedObject = new ObjectWithOptionalField + /// { + /// String = "string", + /// Integer = 1, + /// Long = 1000000, + /// Double = 1.1, + /// Bool = true, + /// Datetime = new DateTime(2024, 01, 15, 09, 30, 00, 000), + /// Date = new DateOnly(2023, 1, 15), + /// Uuid = "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", + /// Base64 = "SGVsbG8gd29ybGQh", + /// List = new List<string>() { "list", "list" }, + /// Set = new HashSet<string>() { "set" }, + /// Map = new Dictionary<int, string>() { { 1, "map" } }, + /// Bigint = "1000000", + /// }, + /// } /// ); /// /// @@ -227,19 +246,19 @@ public async Task GetAndReturnNestedWithOptionalF /// String = "string", /// NestedObject = new ObjectWithOptionalField /// { - /// String = null, - /// Integer = null, - /// Long = null, - /// Double = null, - /// Bool = null, - /// Datetime = null, - /// Date = null, - /// Uuid = null, - /// Base64 = null, - /// List = null, - /// Set = null, - /// Map = null, - /// Bigint = null, + /// String = "string", + /// Integer = 1, + /// Long = 1000000, + /// Double = 1.1, + /// Bool = true, + /// Datetime = new DateTime(2024, 01, 15, 09, 30, 00, 000), + /// Date = new DateOnly(2023, 1, 15), + /// Uuid = "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", + /// Base64 = "SGVsbG8gd29ybGQh", + /// List = new List<string>() { "list", "list" }, + /// Set = new HashSet<string>() { "set" }, + /// Map = new Dictionary<int, string>() { { 1, "map" } }, + /// Bigint = "1000000", /// }, /// } /// ); @@ -293,19 +312,19 @@ public async Task GetAndReturnNestedWithRequiredF /// String = "string", /// NestedObject = new ObjectWithOptionalField /// { - /// String = null, - /// Integer = null, - /// Long = null, - /// Double = null, - /// Bool = null, - /// Datetime = null, - /// Date = null, - /// Uuid = null, - /// Base64 = null, - /// List = null, - /// Set = null, - /// Map = null, - /// Bigint = null, + /// String = "string", + /// Integer = 1, + /// Long = 1000000, + /// Double = 1.1, + /// Bool = true, + /// Datetime = new DateTime(2024, 01, 15, 09, 30, 00, 000), + /// Date = new DateOnly(2023, 1, 15), + /// Uuid = "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", + /// Base64 = "SGVsbG8gd29ybGQh", + /// List = new List<string>() { "list", "list" }, + /// Set = new HashSet<string>() { "set" }, + /// Map = new Dictionary<int, string>() { { 1, "map" } }, + /// Bigint = "1000000", /// }, /// }, /// new NestedObjectWithRequiredField @@ -313,19 +332,19 @@ public async Task GetAndReturnNestedWithRequiredF /// String = "string", /// NestedObject = new ObjectWithOptionalField /// { - /// String = null, - /// Integer = null, - /// Long = null, - /// Double = null, - /// Bool = null, - /// Datetime = null, - /// Date = null, - /// Uuid = null, - /// Base64 = null, - /// List = null, - /// Set = null, - /// Map = null, - /// Bigint = null, + /// String = "string", + /// Integer = 1, + /// Long = 1000000, + /// Double = 1.1, + /// Bool = true, + /// Datetime = new DateTime(2024, 01, 15, 09, 30, 00, 000), + /// Date = new DateOnly(2023, 1, 15), + /// Uuid = "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", + /// Base64 = "SGVsbG8gd29ybGQh", + /// List = new List<string>() { "list", "list" }, + /// Set = new HashSet<string>() { "set" }, + /// Map = new Dictionary<int, string>() { { 1, "map" } }, + /// Bigint = "1000000", /// }, /// }, /// } diff --git a/seed/csharp-sdk/exhaustive/explicit-namespaces/src/SeedExhaustive/InlinedRequests/InlinedRequestsClient.cs b/seed/csharp-sdk/exhaustive/explicit-namespaces/src/SeedExhaustive/InlinedRequests/InlinedRequestsClient.cs index 4d531766814..5725be9a523 100644 --- a/seed/csharp-sdk/exhaustive/explicit-namespaces/src/SeedExhaustive/InlinedRequests/InlinedRequestsClient.cs +++ b/seed/csharp-sdk/exhaustive/explicit-namespaces/src/SeedExhaustive/InlinedRequests/InlinedRequestsClient.cs @@ -31,19 +31,19 @@ internal InlinedRequestsClient(RawClient client) /// Integer = 1, /// NestedObject = new ObjectWithOptionalField /// { - /// String = null, - /// Integer = null, - /// Long = null, - /// Double = null, - /// Bool = null, - /// Datetime = null, - /// Date = null, - /// Uuid = null, - /// Base64 = null, - /// List = null, - /// Set = null, - /// Map = null, - /// Bigint = null, + /// String = "string", + /// Integer = 1, + /// Long = 1000000, + /// Double = 1.1, + /// Bool = true, + /// Datetime = new DateTime(2024, 01, 15, 09, 30, 00, 000), + /// Date = new DateOnly(2023, 1, 15), + /// Uuid = "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", + /// Base64 = "SGVsbG8gd29ybGQh", + /// List = new List<string>() { "list", "list" }, + /// Set = new HashSet<string>() { "set" }, + /// Map = new Dictionary<int, string>() { { 1, "map" } }, + /// Bigint = "1000000", /// }, /// } /// ); diff --git a/seed/csharp-sdk/exhaustive/no-generate-error-types/reference.md b/seed/csharp-sdk/exhaustive/no-generate-error-types/reference.md index 090794a3709..66620f803a4 100644 --- a/seed/csharp-sdk/exhaustive/no-generate-error-types/reference.md +++ b/seed/csharp-sdk/exhaustive/no-generate-error-types/reference.md @@ -275,7 +275,9 @@ await client.Endpoints.Container.GetAndReturnMapOfPrimToObjectAsync(
```csharp -await client.Endpoints.Container.GetAndReturnOptionalAsync(null); +await client.Endpoints.Container.GetAndReturnOptionalAsync( + new ObjectWithRequiredField { String = "string" } +); ```
@@ -492,19 +494,19 @@ await client.Endpoints.HttpMethods.TestPatchAsync( "id", new ObjectWithOptionalField { - String = null, - Integer = null, - Long = null, - Double = null, - Bool = null, - Datetime = null, - Date = null, - Uuid = null, - Base64 = null, - List = null, - Set = null, - Map = null, - Bigint = null, + String = "string", + Integer = 1, + Long = 1000000, + Double = 1.1, + Bool = true, + Datetime = new DateTime(2024, 01, 15, 09, 30, 00, 000), + Date = new DateOnly(2023, 1, 15), + Uuid = "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", + Base64 = "SGVsbG8gd29ybGQh", + List = new List() { "list", "list" }, + Set = new HashSet() { "set" }, + Map = new Dictionary() { { 1, "map" } }, + Bigint = "1000000", } ); ``` @@ -598,19 +600,19 @@ await client.Endpoints.HttpMethods.TestDeleteAsync("id"); await client.Endpoints.Object.GetAndReturnWithOptionalFieldAsync( new ObjectWithOptionalField { - String = null, - Integer = null, - Long = null, - Double = null, - Bool = null, - Datetime = null, - Date = null, - Uuid = null, - Base64 = null, - List = null, - Set = null, - Map = null, - Bigint = null, + String = "string", + Integer = 1, + Long = 1000000, + Double = 1.1, + Bool = true, + Datetime = new DateTime(2024, 01, 15, 09, 30, 00, 000), + Date = new DateOnly(2023, 1, 15), + Uuid = "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", + Base64 = "SGVsbG8gd29ybGQh", + List = new List() { "list", "list" }, + Set = new HashSet() { "set" }, + Map = new Dictionary() { { 1, "map" } }, + Bigint = "1000000", } ); ``` @@ -746,7 +748,26 @@ await client.Endpoints.Object.GetAndReturnWithMapOfMapAsync( ```csharp await client.Endpoints.Object.GetAndReturnNestedWithOptionalFieldAsync( - new NestedObjectWithOptionalField { String = null, NestedObject = null } + new NestedObjectWithOptionalField + { + String = "string", + NestedObject = new ObjectWithOptionalField + { + String = "string", + Integer = 1, + Long = 1000000, + Double = 1.1, + Bool = true, + Datetime = new DateTime(2024, 01, 15, 09, 30, 00, 000), + Date = new DateOnly(2023, 1, 15), + Uuid = "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", + Base64 = "SGVsbG8gd29ybGQh", + List = new List() { "list", "list" }, + Set = new HashSet() { "set" }, + Map = new Dictionary() { { 1, "map" } }, + Bigint = "1000000", + }, + } ); ``` @@ -794,19 +815,19 @@ await client.Endpoints.Object.GetAndReturnNestedWithRequiredFieldAsync( String = "string", NestedObject = new ObjectWithOptionalField { - String = null, - Integer = null, - Long = null, - Double = null, - Bool = null, - Datetime = null, - Date = null, - Uuid = null, - Base64 = null, - List = null, - Set = null, - Map = null, - Bigint = null, + String = "string", + Integer = 1, + Long = 1000000, + Double = 1.1, + Bool = true, + Datetime = new DateTime(2024, 01, 15, 09, 30, 00, 000), + Date = new DateOnly(2023, 1, 15), + Uuid = "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", + Base64 = "SGVsbG8gd29ybGQh", + List = new List() { "list", "list" }, + Set = new HashSet() { "set" }, + Map = new Dictionary() { { 1, "map" } }, + Bigint = "1000000", }, } ); @@ -865,19 +886,19 @@ await client.Endpoints.Object.GetAndReturnNestedWithRequiredFieldAsListAsync( String = "string", NestedObject = new ObjectWithOptionalField { - String = null, - Integer = null, - Long = null, - Double = null, - Bool = null, - Datetime = null, - Date = null, - Uuid = null, - Base64 = null, - List = null, - Set = null, - Map = null, - Bigint = null, + String = "string", + Integer = 1, + Long = 1000000, + Double = 1.1, + Bool = true, + Datetime = new DateTime(2024, 01, 15, 09, 30, 00, 000), + Date = new DateOnly(2023, 1, 15), + Uuid = "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", + Base64 = "SGVsbG8gd29ybGQh", + List = new List() { "list", "list" }, + Set = new HashSet() { "set" }, + Map = new Dictionary() { { 1, "map" } }, + Bigint = "1000000", }, }, new NestedObjectWithRequiredField @@ -885,19 +906,19 @@ await client.Endpoints.Object.GetAndReturnNestedWithRequiredFieldAsListAsync( String = "string", NestedObject = new ObjectWithOptionalField { - String = null, - Integer = null, - Long = null, - Double = null, - Bool = null, - Datetime = null, - Date = null, - Uuid = null, - Base64 = null, - List = null, - Set = null, - Map = null, - Bigint = null, + String = "string", + Integer = 1, + Long = 1000000, + Double = 1.1, + Bool = true, + Datetime = new DateTime(2024, 01, 15, 09, 30, 00, 000), + Date = new DateOnly(2023, 1, 15), + Uuid = "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", + Base64 = "SGVsbG8gd29ybGQh", + List = new List() { "list", "list" }, + Set = new HashSet() { "set" }, + Map = new Dictionary() { { 1, "map" } }, + Bigint = "1000000", }, }, } @@ -1659,19 +1680,19 @@ await client.InlinedRequests.PostWithObjectBodyandResponseAsync( Integer = 1, NestedObject = new ObjectWithOptionalField { - String = null, - Integer = null, - Long = null, - Double = null, - Bool = null, - Datetime = null, - Date = null, - Uuid = null, - Base64 = null, - List = null, - Set = null, - Map = null, - Bigint = null, + String = "string", + Integer = 1, + Long = 1000000, + Double = 1.1, + Bool = true, + Datetime = new DateTime(2024, 01, 15, 09, 30, 00, 000), + Date = new DateOnly(2023, 1, 15), + Uuid = "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", + Base64 = "SGVsbG8gd29ybGQh", + List = new List() { "list", "list" }, + Set = new HashSet() { "set" }, + Map = new Dictionary() { { 1, "map" } }, + Bigint = "1000000", }, } ); diff --git a/seed/csharp-sdk/exhaustive/no-generate-error-types/snippet.json b/seed/csharp-sdk/exhaustive/no-generate-error-types/snippet.json index 99b4a9decd6..a30c894e3fe 100644 --- a/seed/csharp-sdk/exhaustive/no-generate-error-types/snippet.json +++ b/seed/csharp-sdk/exhaustive/no-generate-error-types/snippet.json @@ -82,7 +82,7 @@ }, "snippet": { "type": "typescript", - "client": "using SeedExhaustive;\n\nvar client = new SeedExhaustiveClient(\"TOKEN\");\nawait client.Endpoints.Container.GetAndReturnOptionalAsync(null);\n" + "client": "using SeedExhaustive.Types;\nusing SeedExhaustive;\n\nvar client = new SeedExhaustiveClient(\"TOKEN\");\nawait client.Endpoints.Container.GetAndReturnOptionalAsync(\n new ObjectWithRequiredField { String = \"string\" }\n);\n" } }, { @@ -142,7 +142,7 @@ }, "snippet": { "type": "typescript", - "client": "using SeedExhaustive.Types;\nusing SeedExhaustive;\n\nvar client = new SeedExhaustiveClient(\"TOKEN\");\nawait client.Endpoints.HttpMethods.TestPatchAsync(\n \"id\",\n new ObjectWithOptionalField\n {\n String = null,\n Integer = null,\n Long = null,\n Double = null,\n Bool = null,\n Datetime = null,\n Date = null,\n Uuid = null,\n Base64 = null,\n List = null,\n Set = null,\n Map = null,\n Bigint = null,\n }\n);\n" + "client": "using SeedExhaustive.Types;\nusing SeedExhaustive;\n\nvar client = new SeedExhaustiveClient(\"TOKEN\");\nawait client.Endpoints.HttpMethods.TestPatchAsync(\n \"id\",\n new ObjectWithOptionalField\n {\n String = \"string\",\n Integer = 1,\n Long = 1000000,\n Double = 1.1,\n Bool = true,\n Datetime = new DateTime(2024, 01, 15, 09, 30, 00, 000),\n Date = new DateOnly(2023, 1, 15),\n Uuid = \"d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32\",\n Base64 = \"SGVsbG8gd29ybGQh\",\n List = new List() { \"list\", \"list\" },\n Set = new HashSet() { \"set\" },\n Map = new Dictionary() { { 1, \"map\" } },\n Bigint = \"1000000\",\n }\n);\n" } }, { @@ -166,7 +166,7 @@ }, "snippet": { "type": "typescript", - "client": "using SeedExhaustive.Types;\nusing SeedExhaustive;\n\nvar client = new SeedExhaustiveClient(\"TOKEN\");\nawait client.Endpoints.Object.GetAndReturnWithOptionalFieldAsync(\n new ObjectWithOptionalField\n {\n String = null,\n Integer = null,\n Long = null,\n Double = null,\n Bool = null,\n Datetime = null,\n Date = null,\n Uuid = null,\n Base64 = null,\n List = null,\n Set = null,\n Map = null,\n Bigint = null,\n }\n);\n" + "client": "using SeedExhaustive.Types;\nusing SeedExhaustive;\n\nvar client = new SeedExhaustiveClient(\"TOKEN\");\nawait client.Endpoints.Object.GetAndReturnWithOptionalFieldAsync(\n new ObjectWithOptionalField\n {\n String = \"string\",\n Integer = 1,\n Long = 1000000,\n Double = 1.1,\n Bool = true,\n Datetime = new DateTime(2024, 01, 15, 09, 30, 00, 000),\n Date = new DateOnly(2023, 1, 15),\n Uuid = \"d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32\",\n Base64 = \"SGVsbG8gd29ybGQh\",\n List = new List() { \"list\", \"list\" },\n Set = new HashSet() { \"set\" },\n Map = new Dictionary() { { 1, \"map\" } },\n Bigint = \"1000000\",\n }\n);\n" } }, { @@ -202,7 +202,7 @@ }, "snippet": { "type": "typescript", - "client": "using SeedExhaustive.Types;\nusing SeedExhaustive;\n\nvar client = new SeedExhaustiveClient(\"TOKEN\");\nawait client.Endpoints.Object.GetAndReturnNestedWithOptionalFieldAsync(\n new NestedObjectWithOptionalField { String = null, NestedObject = null }\n);\n" + "client": "using SeedExhaustive.Types;\nusing SeedExhaustive;\n\nvar client = new SeedExhaustiveClient(\"TOKEN\");\nawait client.Endpoints.Object.GetAndReturnNestedWithOptionalFieldAsync(\n new NestedObjectWithOptionalField\n {\n String = \"string\",\n NestedObject = new ObjectWithOptionalField\n {\n String = \"string\",\n Integer = 1,\n Long = 1000000,\n Double = 1.1,\n Bool = true,\n Datetime = new DateTime(2024, 01, 15, 09, 30, 00, 000),\n Date = new DateOnly(2023, 1, 15),\n Uuid = \"d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32\",\n Base64 = \"SGVsbG8gd29ybGQh\",\n List = new List() { \"list\", \"list\" },\n Set = new HashSet() { \"set\" },\n Map = new Dictionary() { { 1, \"map\" } },\n Bigint = \"1000000\",\n },\n }\n);\n" } }, { @@ -214,7 +214,7 @@ }, "snippet": { "type": "typescript", - "client": "using SeedExhaustive.Types;\nusing SeedExhaustive;\n\nvar client = new SeedExhaustiveClient(\"TOKEN\");\nawait client.Endpoints.Object.GetAndReturnNestedWithRequiredFieldAsync(\n \"string\",\n new NestedObjectWithRequiredField\n {\n String = \"string\",\n NestedObject = new ObjectWithOptionalField\n {\n String = null,\n Integer = null,\n Long = null,\n Double = null,\n Bool = null,\n Datetime = null,\n Date = null,\n Uuid = null,\n Base64 = null,\n List = null,\n Set = null,\n Map = null,\n Bigint = null,\n },\n }\n);\n" + "client": "using SeedExhaustive.Types;\nusing SeedExhaustive;\n\nvar client = new SeedExhaustiveClient(\"TOKEN\");\nawait client.Endpoints.Object.GetAndReturnNestedWithRequiredFieldAsync(\n \"string\",\n new NestedObjectWithRequiredField\n {\n String = \"string\",\n NestedObject = new ObjectWithOptionalField\n {\n String = \"string\",\n Integer = 1,\n Long = 1000000,\n Double = 1.1,\n Bool = true,\n Datetime = new DateTime(2024, 01, 15, 09, 30, 00, 000),\n Date = new DateOnly(2023, 1, 15),\n Uuid = \"d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32\",\n Base64 = \"SGVsbG8gd29ybGQh\",\n List = new List() { \"list\", \"list\" },\n Set = new HashSet() { \"set\" },\n Map = new Dictionary() { { 1, \"map\" } },\n Bigint = \"1000000\",\n },\n }\n);\n" } }, { @@ -226,7 +226,7 @@ }, "snippet": { "type": "typescript", - "client": "using SeedExhaustive.Types;\nusing SeedExhaustive;\n\nvar client = new SeedExhaustiveClient(\"TOKEN\");\nawait client.Endpoints.Object.GetAndReturnNestedWithRequiredFieldAsListAsync(\n new List()\n {\n new NestedObjectWithRequiredField\n {\n String = \"string\",\n NestedObject = new ObjectWithOptionalField\n {\n String = null,\n Integer = null,\n Long = null,\n Double = null,\n Bool = null,\n Datetime = null,\n Date = null,\n Uuid = null,\n Base64 = null,\n List = null,\n Set = null,\n Map = null,\n Bigint = null,\n },\n },\n new NestedObjectWithRequiredField\n {\n String = \"string\",\n NestedObject = new ObjectWithOptionalField\n {\n String = null,\n Integer = null,\n Long = null,\n Double = null,\n Bool = null,\n Datetime = null,\n Date = null,\n Uuid = null,\n Base64 = null,\n List = null,\n Set = null,\n Map = null,\n Bigint = null,\n },\n },\n }\n);\n" + "client": "using SeedExhaustive.Types;\nusing SeedExhaustive;\n\nvar client = new SeedExhaustiveClient(\"TOKEN\");\nawait client.Endpoints.Object.GetAndReturnNestedWithRequiredFieldAsListAsync(\n new List()\n {\n new NestedObjectWithRequiredField\n {\n String = \"string\",\n NestedObject = new ObjectWithOptionalField\n {\n String = \"string\",\n Integer = 1,\n Long = 1000000,\n Double = 1.1,\n Bool = true,\n Datetime = new DateTime(2024, 01, 15, 09, 30, 00, 000),\n Date = new DateOnly(2023, 1, 15),\n Uuid = \"d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32\",\n Base64 = \"SGVsbG8gd29ybGQh\",\n List = new List() { \"list\", \"list\" },\n Set = new HashSet() { \"set\" },\n Map = new Dictionary() { { 1, \"map\" } },\n Bigint = \"1000000\",\n },\n },\n new NestedObjectWithRequiredField\n {\n String = \"string\",\n NestedObject = new ObjectWithOptionalField\n {\n String = \"string\",\n Integer = 1,\n Long = 1000000,\n Double = 1.1,\n Bool = true,\n Datetime = new DateTime(2024, 01, 15, 09, 30, 00, 000),\n Date = new DateOnly(2023, 1, 15),\n Uuid = \"d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32\",\n Base64 = \"SGVsbG8gd29ybGQh\",\n List = new List() { \"list\", \"list\" },\n Set = new HashSet() { \"set\" },\n Map = new Dictionary() { { 1, \"map\" } },\n Bigint = \"1000000\",\n },\n },\n }\n);\n" } }, { @@ -418,7 +418,7 @@ }, "snippet": { "type": "typescript", - "client": "using SeedExhaustive.Types;\nusing SeedExhaustive;\n\nvar client = new SeedExhaustiveClient(\"TOKEN\");\nawait client.InlinedRequests.PostWithObjectBodyandResponseAsync(\n new PostWithObjectBody\n {\n String = \"string\",\n Integer = 1,\n NestedObject = new ObjectWithOptionalField\n {\n String = null,\n Integer = null,\n Long = null,\n Double = null,\n Bool = null,\n Datetime = null,\n Date = null,\n Uuid = null,\n Base64 = null,\n List = null,\n Set = null,\n Map = null,\n Bigint = null,\n },\n }\n);\n" + "client": "using SeedExhaustive.Types;\nusing SeedExhaustive;\n\nvar client = new SeedExhaustiveClient(\"TOKEN\");\nawait client.InlinedRequests.PostWithObjectBodyandResponseAsync(\n new PostWithObjectBody\n {\n String = \"string\",\n Integer = 1,\n NestedObject = new ObjectWithOptionalField\n {\n String = \"string\",\n Integer = 1,\n Long = 1000000,\n Double = 1.1,\n Bool = true,\n Datetime = new DateTime(2024, 01, 15, 09, 30, 00, 000),\n Date = new DateOnly(2023, 1, 15),\n Uuid = \"d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32\",\n Base64 = \"SGVsbG8gd29ybGQh\",\n List = new List() { \"list\", \"list\" },\n Set = new HashSet() { \"set\" },\n Map = new Dictionary() { { 1, \"map\" } },\n Bigint = \"1000000\",\n },\n }\n);\n" } }, { diff --git a/seed/csharp-sdk/exhaustive/no-generate-error-types/src/SeedExhaustive.Test/Unit/MockServer/GetAndReturnNestedWithOptionalFieldTest.cs b/seed/csharp-sdk/exhaustive/no-generate-error-types/src/SeedExhaustive.Test/Unit/MockServer/GetAndReturnNestedWithOptionalFieldTest.cs index 8ef208a7490..e50ddbaaf87 100644 --- a/seed/csharp-sdk/exhaustive/no-generate-error-types/src/SeedExhaustive.Test/Unit/MockServer/GetAndReturnNestedWithOptionalFieldTest.cs +++ b/seed/csharp-sdk/exhaustive/no-generate-error-types/src/SeedExhaustive.Test/Unit/MockServer/GetAndReturnNestedWithOptionalFieldTest.cs @@ -1,3 +1,4 @@ +using System.Globalization; using System.Threading.Tasks; using FluentAssertions.Json; using Newtonsoft.Json.Linq; @@ -16,7 +17,31 @@ public class GetAndReturnNestedWithOptionalFieldTest : BaseMockServerTest public async Task MockServerTest() { const string requestJson = """ - {} + { + "string": "string", + "NestedObject": { + "string": "string", + "integer": 1, + "long": 1000000, + "double": 1.1, + "bool": true, + "datetime": "2024-01-15T09:30:00.000Z", + "date": "2023-01-15", + "uuid": "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", + "base64": "SGVsbG8gd29ybGQh", + "list": [ + "list", + "list" + ], + "set": [ + "set" + ], + "map": { + "1": "map" + }, + "bigint": "1000000" + } + } """; const string mockResponse = """ @@ -63,7 +88,30 @@ public async Task MockServerTest() ); var response = await Client.Endpoints.Object.GetAndReturnNestedWithOptionalFieldAsync( - new NestedObjectWithOptionalField { String = null, NestedObject = null }, + new NestedObjectWithOptionalField + { + String = "string", + NestedObject = new ObjectWithOptionalField + { + String = "string", + Integer = 1, + Long = 1000000, + Double = 1.1, + Bool = true, + Datetime = DateTime.Parse( + "2024-01-15T09:30:00.000Z", + null, + DateTimeStyles.AdjustToUniversal + ), + Date = new DateOnly(2023, 1, 15), + Uuid = "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", + Base64 = "SGVsbG8gd29ybGQh", + List = new List() { "list", "list" }, + Set = new HashSet() { "set" }, + Map = new Dictionary() { { 1, "map" } }, + Bigint = "1000000", + }, + }, RequestOptions ); JToken diff --git a/seed/csharp-sdk/exhaustive/no-generate-error-types/src/SeedExhaustive.Test/Unit/MockServer/GetAndReturnNestedWithRequiredFieldAsListTest.cs b/seed/csharp-sdk/exhaustive/no-generate-error-types/src/SeedExhaustive.Test/Unit/MockServer/GetAndReturnNestedWithRequiredFieldAsListTest.cs index 9bdc5e2c6ea..5a01880f039 100644 --- a/seed/csharp-sdk/exhaustive/no-generate-error-types/src/SeedExhaustive.Test/Unit/MockServer/GetAndReturnNestedWithRequiredFieldAsListTest.cs +++ b/seed/csharp-sdk/exhaustive/no-generate-error-types/src/SeedExhaustive.Test/Unit/MockServer/GetAndReturnNestedWithRequiredFieldAsListTest.cs @@ -1,3 +1,4 @@ +using System.Globalization; using System.Threading.Tasks; using FluentAssertions.Json; using Newtonsoft.Json.Linq; @@ -19,11 +20,53 @@ public async Task MockServerTest() [ { "string": "string", - "NestedObject": {} + "NestedObject": { + "string": "string", + "integer": 1, + "long": 1000000, + "double": 1.1, + "bool": true, + "datetime": "2024-01-15T09:30:00.000Z", + "date": "2023-01-15", + "uuid": "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", + "base64": "SGVsbG8gd29ybGQh", + "list": [ + "list", + "list" + ], + "set": [ + "set" + ], + "map": { + "1": "map" + }, + "bigint": "1000000" + } }, { "string": "string", - "NestedObject": {} + "NestedObject": { + "string": "string", + "integer": 1, + "long": 1000000, + "double": 1.1, + "bool": true, + "datetime": "2024-01-15T09:30:00.000Z", + "date": "2023-01-15", + "uuid": "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", + "base64": "SGVsbG8gd29ybGQh", + "list": [ + "list", + "list" + ], + "set": [ + "set" + ], + "map": { + "1": "map" + }, + "bigint": "1000000" + } } ] """; @@ -79,19 +122,23 @@ public async Task MockServerTest() String = "string", NestedObject = new ObjectWithOptionalField { - String = null, - Integer = null, - Long = null, - Double = null, - Bool = null, - Datetime = null, - Date = null, - Uuid = null, - Base64 = null, - List = null, - Set = null, - Map = null, - Bigint = null, + String = "string", + Integer = 1, + Long = 1000000, + Double = 1.1, + Bool = true, + Datetime = DateTime.Parse( + "2024-01-15T09:30:00.000Z", + null, + DateTimeStyles.AdjustToUniversal + ), + Date = new DateOnly(2023, 1, 15), + Uuid = "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", + Base64 = "SGVsbG8gd29ybGQh", + List = new List() { "list", "list" }, + Set = new HashSet() { "set" }, + Map = new Dictionary() { { 1, "map" } }, + Bigint = "1000000", }, }, new NestedObjectWithRequiredField @@ -99,19 +146,23 @@ public async Task MockServerTest() String = "string", NestedObject = new ObjectWithOptionalField { - String = null, - Integer = null, - Long = null, - Double = null, - Bool = null, - Datetime = null, - Date = null, - Uuid = null, - Base64 = null, - List = null, - Set = null, - Map = null, - Bigint = null, + String = "string", + Integer = 1, + Long = 1000000, + Double = 1.1, + Bool = true, + Datetime = DateTime.Parse( + "2024-01-15T09:30:00.000Z", + null, + DateTimeStyles.AdjustToUniversal + ), + Date = new DateOnly(2023, 1, 15), + Uuid = "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", + Base64 = "SGVsbG8gd29ybGQh", + List = new List() { "list", "list" }, + Set = new HashSet() { "set" }, + Map = new Dictionary() { { 1, "map" } }, + Bigint = "1000000", }, }, }, diff --git a/seed/csharp-sdk/exhaustive/no-generate-error-types/src/SeedExhaustive.Test/Unit/MockServer/GetAndReturnNestedWithRequiredFieldTest.cs b/seed/csharp-sdk/exhaustive/no-generate-error-types/src/SeedExhaustive.Test/Unit/MockServer/GetAndReturnNestedWithRequiredFieldTest.cs index 93b5faa54ee..e1970a6f144 100644 --- a/seed/csharp-sdk/exhaustive/no-generate-error-types/src/SeedExhaustive.Test/Unit/MockServer/GetAndReturnNestedWithRequiredFieldTest.cs +++ b/seed/csharp-sdk/exhaustive/no-generate-error-types/src/SeedExhaustive.Test/Unit/MockServer/GetAndReturnNestedWithRequiredFieldTest.cs @@ -1,3 +1,4 @@ +using System.Globalization; using System.Threading.Tasks; using FluentAssertions.Json; using Newtonsoft.Json.Linq; @@ -18,7 +19,28 @@ public async Task MockServerTest() const string requestJson = """ { "string": "string", - "NestedObject": {} + "NestedObject": { + "string": "string", + "integer": 1, + "long": 1000000, + "double": 1.1, + "bool": true, + "datetime": "2024-01-15T09:30:00.000Z", + "date": "2023-01-15", + "uuid": "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", + "base64": "SGVsbG8gd29ybGQh", + "list": [ + "list", + "list" + ], + "set": [ + "set" + ], + "map": { + "1": "map" + }, + "bigint": "1000000" + } } """; @@ -72,19 +94,23 @@ public async Task MockServerTest() String = "string", NestedObject = new ObjectWithOptionalField { - String = null, - Integer = null, - Long = null, - Double = null, - Bool = null, - Datetime = null, - Date = null, - Uuid = null, - Base64 = null, - List = null, - Set = null, - Map = null, - Bigint = null, + String = "string", + Integer = 1, + Long = 1000000, + Double = 1.1, + Bool = true, + Datetime = DateTime.Parse( + "2024-01-15T09:30:00.000Z", + null, + DateTimeStyles.AdjustToUniversal + ), + Date = new DateOnly(2023, 1, 15), + Uuid = "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", + Base64 = "SGVsbG8gd29ybGQh", + List = new List() { "list", "list" }, + Set = new HashSet() { "set" }, + Map = new Dictionary() { { 1, "map" } }, + Bigint = "1000000", }, }, RequestOptions diff --git a/seed/csharp-sdk/exhaustive/no-generate-error-types/src/SeedExhaustive.Test/Unit/MockServer/GetAndReturnOptionalTest.cs b/seed/csharp-sdk/exhaustive/no-generate-error-types/src/SeedExhaustive.Test/Unit/MockServer/GetAndReturnOptionalTest.cs index 380b36737b9..f06ee4936f3 100644 --- a/seed/csharp-sdk/exhaustive/no-generate-error-types/src/SeedExhaustive.Test/Unit/MockServer/GetAndReturnOptionalTest.cs +++ b/seed/csharp-sdk/exhaustive/no-generate-error-types/src/SeedExhaustive.Test/Unit/MockServer/GetAndReturnOptionalTest.cs @@ -3,6 +3,7 @@ using Newtonsoft.Json.Linq; using NUnit.Framework; using SeedExhaustive.Core; +using SeedExhaustive.Types; #nullable enable @@ -15,7 +16,9 @@ public class GetAndReturnOptionalTest : BaseMockServerTest public async Task MockServerTest() { const string requestJson = """ - + { + "string": "string" + } """; const string mockResponse = """ @@ -30,7 +33,7 @@ public async Task MockServerTest() .RequestBuilders.Request.Create() .WithPath("/container/opt-objects") .UsingPost() - .WithBody(requestJson) + .WithBodyAsJson(requestJson) ) .RespondWith( WireMock @@ -40,7 +43,7 @@ public async Task MockServerTest() ); var response = await Client.Endpoints.Container.GetAndReturnOptionalAsync( - null, + new ObjectWithRequiredField { String = "string" }, RequestOptions ); JToken diff --git a/seed/csharp-sdk/exhaustive/no-generate-error-types/src/SeedExhaustive.Test/Unit/MockServer/GetAndReturnWithOptionalFieldTest.cs b/seed/csharp-sdk/exhaustive/no-generate-error-types/src/SeedExhaustive.Test/Unit/MockServer/GetAndReturnWithOptionalFieldTest.cs index 9aaa0b40da4..68fcf98506b 100644 --- a/seed/csharp-sdk/exhaustive/no-generate-error-types/src/SeedExhaustive.Test/Unit/MockServer/GetAndReturnWithOptionalFieldTest.cs +++ b/seed/csharp-sdk/exhaustive/no-generate-error-types/src/SeedExhaustive.Test/Unit/MockServer/GetAndReturnWithOptionalFieldTest.cs @@ -1,3 +1,4 @@ +using System.Globalization; using System.Threading.Tasks; using FluentAssertions.Json; using Newtonsoft.Json.Linq; @@ -16,7 +17,28 @@ public class GetAndReturnWithOptionalFieldTest : BaseMockServerTest public async Task MockServerTest() { const string requestJson = """ - {} + { + "string": "string", + "integer": 1, + "long": 1000000, + "double": 1.1, + "bool": true, + "datetime": "2024-01-15T09:30:00.000Z", + "date": "2023-01-15", + "uuid": "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", + "base64": "SGVsbG8gd29ybGQh", + "list": [ + "list", + "list" + ], + "set": [ + "set" + ], + "map": { + "1": "map" + }, + "bigint": "1000000" + } """; const string mockResponse = """ @@ -62,19 +84,23 @@ public async Task MockServerTest() var response = await Client.Endpoints.Object.GetAndReturnWithOptionalFieldAsync( new ObjectWithOptionalField { - String = null, - Integer = null, - Long = null, - Double = null, - Bool = null, - Datetime = null, - Date = null, - Uuid = null, - Base64 = null, - List = null, - Set = null, - Map = null, - Bigint = null, + String = "string", + Integer = 1, + Long = 1000000, + Double = 1.1, + Bool = true, + Datetime = DateTime.Parse( + "2024-01-15T09:30:00.000Z", + null, + DateTimeStyles.AdjustToUniversal + ), + Date = new DateOnly(2023, 1, 15), + Uuid = "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", + Base64 = "SGVsbG8gd29ybGQh", + List = new List() { "list", "list" }, + Set = new HashSet() { "set" }, + Map = new Dictionary() { { 1, "map" } }, + Bigint = "1000000", }, RequestOptions ); diff --git a/seed/csharp-sdk/exhaustive/no-generate-error-types/src/SeedExhaustive.Test/Unit/MockServer/PostWithObjectBodyandResponseTest.cs b/seed/csharp-sdk/exhaustive/no-generate-error-types/src/SeedExhaustive.Test/Unit/MockServer/PostWithObjectBodyandResponseTest.cs index 6f50f9fea24..17d707fd085 100644 --- a/seed/csharp-sdk/exhaustive/no-generate-error-types/src/SeedExhaustive.Test/Unit/MockServer/PostWithObjectBodyandResponseTest.cs +++ b/seed/csharp-sdk/exhaustive/no-generate-error-types/src/SeedExhaustive.Test/Unit/MockServer/PostWithObjectBodyandResponseTest.cs @@ -1,3 +1,4 @@ +using System.Globalization; using System.Threading.Tasks; using FluentAssertions.Json; using Newtonsoft.Json.Linq; @@ -20,7 +21,28 @@ public async Task MockServerTest() { "string": "string", "integer": 1, - "NestedObject": {} + "NestedObject": { + "string": "string", + "integer": 1, + "long": 1000000, + "double": 1.1, + "bool": true, + "datetime": "2024-01-15T09:30:00.000Z", + "date": "2023-01-15", + "uuid": "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", + "base64": "SGVsbG8gd29ybGQh", + "list": [ + "list", + "list" + ], + "set": [ + "set" + ], + "map": { + "1": "map" + }, + "bigint": "1000000" + } } """; @@ -71,19 +93,23 @@ public async Task MockServerTest() Integer = 1, NestedObject = new ObjectWithOptionalField { - String = null, - Integer = null, - Long = null, - Double = null, - Bool = null, - Datetime = null, - Date = null, - Uuid = null, - Base64 = null, - List = null, - Set = null, - Map = null, - Bigint = null, + String = "string", + Integer = 1, + Long = 1000000, + Double = 1.1, + Bool = true, + Datetime = DateTime.Parse( + "2024-01-15T09:30:00.000Z", + null, + DateTimeStyles.AdjustToUniversal + ), + Date = new DateOnly(2023, 1, 15), + Uuid = "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", + Base64 = "SGVsbG8gd29ybGQh", + List = new List() { "list", "list" }, + Set = new HashSet() { "set" }, + Map = new Dictionary() { { 1, "map" } }, + Bigint = "1000000", }, }, RequestOptions diff --git a/seed/csharp-sdk/exhaustive/no-generate-error-types/src/SeedExhaustive.Test/Unit/MockServer/TestPatchTest.cs b/seed/csharp-sdk/exhaustive/no-generate-error-types/src/SeedExhaustive.Test/Unit/MockServer/TestPatchTest.cs index 83152bae271..a5a295e3e95 100644 --- a/seed/csharp-sdk/exhaustive/no-generate-error-types/src/SeedExhaustive.Test/Unit/MockServer/TestPatchTest.cs +++ b/seed/csharp-sdk/exhaustive/no-generate-error-types/src/SeedExhaustive.Test/Unit/MockServer/TestPatchTest.cs @@ -1,3 +1,4 @@ +using System.Globalization; using System.Threading.Tasks; using FluentAssertions.Json; using Newtonsoft.Json.Linq; @@ -16,7 +17,28 @@ public class TestPatchTest : BaseMockServerTest public async Task MockServerTest() { const string requestJson = """ - {} + { + "string": "string", + "integer": 1, + "long": 1000000, + "double": 1.1, + "bool": true, + "datetime": "2024-01-15T09:30:00.000Z", + "date": "2023-01-15", + "uuid": "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", + "base64": "SGVsbG8gd29ybGQh", + "list": [ + "list", + "list" + ], + "set": [ + "set" + ], + "map": { + "1": "map" + }, + "bigint": "1000000" + } """; const string mockResponse = """ @@ -63,19 +85,23 @@ public async Task MockServerTest() "id", new ObjectWithOptionalField { - String = null, - Integer = null, - Long = null, - Double = null, - Bool = null, - Datetime = null, - Date = null, - Uuid = null, - Base64 = null, - List = null, - Set = null, - Map = null, - Bigint = null, + String = "string", + Integer = 1, + Long = 1000000, + Double = 1.1, + Bool = true, + Datetime = DateTime.Parse( + "2024-01-15T09:30:00.000Z", + null, + DateTimeStyles.AdjustToUniversal + ), + Date = new DateOnly(2023, 1, 15), + Uuid = "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", + Base64 = "SGVsbG8gd29ybGQh", + List = new List() { "list", "list" }, + Set = new HashSet() { "set" }, + Map = new Dictionary() { { 1, "map" } }, + Bigint = "1000000", }, RequestOptions ); diff --git a/seed/csharp-sdk/exhaustive/no-generate-error-types/src/SeedExhaustive/Endpoints/Container/ContainerClient.cs b/seed/csharp-sdk/exhaustive/no-generate-error-types/src/SeedExhaustive/Endpoints/Container/ContainerClient.cs index 36fe3134bf3..1bec750ed6b 100644 --- a/seed/csharp-sdk/exhaustive/no-generate-error-types/src/SeedExhaustive/Endpoints/Container/ContainerClient.cs +++ b/seed/csharp-sdk/exhaustive/no-generate-error-types/src/SeedExhaustive/Endpoints/Container/ContainerClient.cs @@ -298,7 +298,9 @@ public async Task< /// /// - /// await client.Endpoints.Container.GetAndReturnOptionalAsync(null); + /// await client.Endpoints.Container.GetAndReturnOptionalAsync( + /// new ObjectWithRequiredField { String = "string" } + /// ); /// /// public async Task GetAndReturnOptionalAsync( diff --git a/seed/csharp-sdk/exhaustive/no-generate-error-types/src/SeedExhaustive/Endpoints/HttpMethods/HttpMethodsClient.cs b/seed/csharp-sdk/exhaustive/no-generate-error-types/src/SeedExhaustive/Endpoints/HttpMethods/HttpMethodsClient.cs index 094e7ee6ee6..39b72149ef1 100644 --- a/seed/csharp-sdk/exhaustive/no-generate-error-types/src/SeedExhaustive/Endpoints/HttpMethods/HttpMethodsClient.cs +++ b/seed/csharp-sdk/exhaustive/no-generate-error-types/src/SeedExhaustive/Endpoints/HttpMethods/HttpMethodsClient.cs @@ -153,19 +153,19 @@ public async Task TestPutAsync( /// "id", /// new ObjectWithOptionalField /// { - /// String = null, - /// Integer = null, - /// Long = null, - /// Double = null, - /// Bool = null, - /// Datetime = null, - /// Date = null, - /// Uuid = null, - /// Base64 = null, - /// List = null, - /// Set = null, - /// Map = null, - /// Bigint = null, + /// String = "string", + /// Integer = 1, + /// Long = 1000000, + /// Double = 1.1, + /// Bool = true, + /// Datetime = new DateTime(2024, 01, 15, 09, 30, 00, 000), + /// Date = new DateOnly(2023, 1, 15), + /// Uuid = "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", + /// Base64 = "SGVsbG8gd29ybGQh", + /// List = new List<string>() { "list", "list" }, + /// Set = new HashSet<string>() { "set" }, + /// Map = new Dictionary<int, string>() { { 1, "map" } }, + /// Bigint = "1000000", /// } /// ); /// diff --git a/seed/csharp-sdk/exhaustive/no-generate-error-types/src/SeedExhaustive/Endpoints/Object/ObjectClient.cs b/seed/csharp-sdk/exhaustive/no-generate-error-types/src/SeedExhaustive/Endpoints/Object/ObjectClient.cs index 7da1e4b67af..198d63cf81c 100644 --- a/seed/csharp-sdk/exhaustive/no-generate-error-types/src/SeedExhaustive/Endpoints/Object/ObjectClient.cs +++ b/seed/csharp-sdk/exhaustive/no-generate-error-types/src/SeedExhaustive/Endpoints/Object/ObjectClient.cs @@ -23,19 +23,19 @@ internal ObjectClient(RawClient client) /// await client.Endpoints.Object.GetAndReturnWithOptionalFieldAsync( /// new ObjectWithOptionalField /// { - /// String = null, - /// Integer = null, - /// Long = null, - /// Double = null, - /// Bool = null, - /// Datetime = null, - /// Date = null, - /// Uuid = null, - /// Base64 = null, - /// List = null, - /// Set = null, - /// Map = null, - /// Bigint = null, + /// String = "string", + /// Integer = 1, + /// Long = 1000000, + /// Double = 1.1, + /// Bool = true, + /// Datetime = new DateTime(2024, 01, 15, 09, 30, 00, 000), + /// Date = new DateOnly(2023, 1, 15), + /// Uuid = "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", + /// Base64 = "SGVsbG8gd29ybGQh", + /// List = new List<string>() { "list", "list" }, + /// Set = new HashSet<string>() { "set" }, + /// Map = new Dictionary<int, string>() { { 1, "map" } }, + /// Bigint = "1000000", /// } /// ); /// @@ -177,7 +177,26 @@ public async Task GetAndReturnWithMapOfMapAsync( /// /// /// await client.Endpoints.Object.GetAndReturnNestedWithOptionalFieldAsync( - /// new NestedObjectWithOptionalField { String = null, NestedObject = null } + /// new NestedObjectWithOptionalField + /// { + /// String = "string", + /// NestedObject = new ObjectWithOptionalField + /// { + /// String = "string", + /// Integer = 1, + /// Long = 1000000, + /// Double = 1.1, + /// Bool = true, + /// Datetime = new DateTime(2024, 01, 15, 09, 30, 00, 000), + /// Date = new DateOnly(2023, 1, 15), + /// Uuid = "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", + /// Base64 = "SGVsbG8gd29ybGQh", + /// List = new List<string>() { "list", "list" }, + /// Set = new HashSet<string>() { "set" }, + /// Map = new Dictionary<int, string>() { { 1, "map" } }, + /// Bigint = "1000000", + /// }, + /// } /// ); /// /// @@ -227,19 +246,19 @@ public async Task GetAndReturnNestedWithOptionalF /// String = "string", /// NestedObject = new ObjectWithOptionalField /// { - /// String = null, - /// Integer = null, - /// Long = null, - /// Double = null, - /// Bool = null, - /// Datetime = null, - /// Date = null, - /// Uuid = null, - /// Base64 = null, - /// List = null, - /// Set = null, - /// Map = null, - /// Bigint = null, + /// String = "string", + /// Integer = 1, + /// Long = 1000000, + /// Double = 1.1, + /// Bool = true, + /// Datetime = new DateTime(2024, 01, 15, 09, 30, 00, 000), + /// Date = new DateOnly(2023, 1, 15), + /// Uuid = "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", + /// Base64 = "SGVsbG8gd29ybGQh", + /// List = new List<string>() { "list", "list" }, + /// Set = new HashSet<string>() { "set" }, + /// Map = new Dictionary<int, string>() { { 1, "map" } }, + /// Bigint = "1000000", /// }, /// } /// ); @@ -293,19 +312,19 @@ public async Task GetAndReturnNestedWithRequiredF /// String = "string", /// NestedObject = new ObjectWithOptionalField /// { - /// String = null, - /// Integer = null, - /// Long = null, - /// Double = null, - /// Bool = null, - /// Datetime = null, - /// Date = null, - /// Uuid = null, - /// Base64 = null, - /// List = null, - /// Set = null, - /// Map = null, - /// Bigint = null, + /// String = "string", + /// Integer = 1, + /// Long = 1000000, + /// Double = 1.1, + /// Bool = true, + /// Datetime = new DateTime(2024, 01, 15, 09, 30, 00, 000), + /// Date = new DateOnly(2023, 1, 15), + /// Uuid = "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", + /// Base64 = "SGVsbG8gd29ybGQh", + /// List = new List<string>() { "list", "list" }, + /// Set = new HashSet<string>() { "set" }, + /// Map = new Dictionary<int, string>() { { 1, "map" } }, + /// Bigint = "1000000", /// }, /// }, /// new NestedObjectWithRequiredField @@ -313,19 +332,19 @@ public async Task GetAndReturnNestedWithRequiredF /// String = "string", /// NestedObject = new ObjectWithOptionalField /// { - /// String = null, - /// Integer = null, - /// Long = null, - /// Double = null, - /// Bool = null, - /// Datetime = null, - /// Date = null, - /// Uuid = null, - /// Base64 = null, - /// List = null, - /// Set = null, - /// Map = null, - /// Bigint = null, + /// String = "string", + /// Integer = 1, + /// Long = 1000000, + /// Double = 1.1, + /// Bool = true, + /// Datetime = new DateTime(2024, 01, 15, 09, 30, 00, 000), + /// Date = new DateOnly(2023, 1, 15), + /// Uuid = "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", + /// Base64 = "SGVsbG8gd29ybGQh", + /// List = new List<string>() { "list", "list" }, + /// Set = new HashSet<string>() { "set" }, + /// Map = new Dictionary<int, string>() { { 1, "map" } }, + /// Bigint = "1000000", /// }, /// }, /// } diff --git a/seed/csharp-sdk/exhaustive/no-generate-error-types/src/SeedExhaustive/InlinedRequests/InlinedRequestsClient.cs b/seed/csharp-sdk/exhaustive/no-generate-error-types/src/SeedExhaustive/InlinedRequests/InlinedRequestsClient.cs index 6aee36918e8..0f45980a80e 100644 --- a/seed/csharp-sdk/exhaustive/no-generate-error-types/src/SeedExhaustive/InlinedRequests/InlinedRequestsClient.cs +++ b/seed/csharp-sdk/exhaustive/no-generate-error-types/src/SeedExhaustive/InlinedRequests/InlinedRequestsClient.cs @@ -29,19 +29,19 @@ internal InlinedRequestsClient(RawClient client) /// Integer = 1, /// NestedObject = new ObjectWithOptionalField /// { - /// String = null, - /// Integer = null, - /// Long = null, - /// Double = null, - /// Bool = null, - /// Datetime = null, - /// Date = null, - /// Uuid = null, - /// Base64 = null, - /// List = null, - /// Set = null, - /// Map = null, - /// Bigint = null, + /// String = "string", + /// Integer = 1, + /// Long = 1000000, + /// Double = 1.1, + /// Bool = true, + /// Datetime = new DateTime(2024, 01, 15, 09, 30, 00, 000), + /// Date = new DateOnly(2023, 1, 15), + /// Uuid = "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", + /// Base64 = "SGVsbG8gd29ybGQh", + /// List = new List<string>() { "list", "list" }, + /// Set = new HashSet<string>() { "set" }, + /// Map = new Dictionary<int, string>() { { 1, "map" } }, + /// Bigint = "1000000", /// }, /// } /// ); diff --git a/seed/csharp-sdk/exhaustive/no-root-namespace-for-core-classes/reference.md b/seed/csharp-sdk/exhaustive/no-root-namespace-for-core-classes/reference.md index 090794a3709..66620f803a4 100644 --- a/seed/csharp-sdk/exhaustive/no-root-namespace-for-core-classes/reference.md +++ b/seed/csharp-sdk/exhaustive/no-root-namespace-for-core-classes/reference.md @@ -275,7 +275,9 @@ await client.Endpoints.Container.GetAndReturnMapOfPrimToObjectAsync(
```csharp -await client.Endpoints.Container.GetAndReturnOptionalAsync(null); +await client.Endpoints.Container.GetAndReturnOptionalAsync( + new ObjectWithRequiredField { String = "string" } +); ```
@@ -492,19 +494,19 @@ await client.Endpoints.HttpMethods.TestPatchAsync( "id", new ObjectWithOptionalField { - String = null, - Integer = null, - Long = null, - Double = null, - Bool = null, - Datetime = null, - Date = null, - Uuid = null, - Base64 = null, - List = null, - Set = null, - Map = null, - Bigint = null, + String = "string", + Integer = 1, + Long = 1000000, + Double = 1.1, + Bool = true, + Datetime = new DateTime(2024, 01, 15, 09, 30, 00, 000), + Date = new DateOnly(2023, 1, 15), + Uuid = "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", + Base64 = "SGVsbG8gd29ybGQh", + List = new List() { "list", "list" }, + Set = new HashSet() { "set" }, + Map = new Dictionary() { { 1, "map" } }, + Bigint = "1000000", } ); ``` @@ -598,19 +600,19 @@ await client.Endpoints.HttpMethods.TestDeleteAsync("id"); await client.Endpoints.Object.GetAndReturnWithOptionalFieldAsync( new ObjectWithOptionalField { - String = null, - Integer = null, - Long = null, - Double = null, - Bool = null, - Datetime = null, - Date = null, - Uuid = null, - Base64 = null, - List = null, - Set = null, - Map = null, - Bigint = null, + String = "string", + Integer = 1, + Long = 1000000, + Double = 1.1, + Bool = true, + Datetime = new DateTime(2024, 01, 15, 09, 30, 00, 000), + Date = new DateOnly(2023, 1, 15), + Uuid = "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", + Base64 = "SGVsbG8gd29ybGQh", + List = new List() { "list", "list" }, + Set = new HashSet() { "set" }, + Map = new Dictionary() { { 1, "map" } }, + Bigint = "1000000", } ); ``` @@ -746,7 +748,26 @@ await client.Endpoints.Object.GetAndReturnWithMapOfMapAsync( ```csharp await client.Endpoints.Object.GetAndReturnNestedWithOptionalFieldAsync( - new NestedObjectWithOptionalField { String = null, NestedObject = null } + new NestedObjectWithOptionalField + { + String = "string", + NestedObject = new ObjectWithOptionalField + { + String = "string", + Integer = 1, + Long = 1000000, + Double = 1.1, + Bool = true, + Datetime = new DateTime(2024, 01, 15, 09, 30, 00, 000), + Date = new DateOnly(2023, 1, 15), + Uuid = "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", + Base64 = "SGVsbG8gd29ybGQh", + List = new List() { "list", "list" }, + Set = new HashSet() { "set" }, + Map = new Dictionary() { { 1, "map" } }, + Bigint = "1000000", + }, + } ); ``` @@ -794,19 +815,19 @@ await client.Endpoints.Object.GetAndReturnNestedWithRequiredFieldAsync( String = "string", NestedObject = new ObjectWithOptionalField { - String = null, - Integer = null, - Long = null, - Double = null, - Bool = null, - Datetime = null, - Date = null, - Uuid = null, - Base64 = null, - List = null, - Set = null, - Map = null, - Bigint = null, + String = "string", + Integer = 1, + Long = 1000000, + Double = 1.1, + Bool = true, + Datetime = new DateTime(2024, 01, 15, 09, 30, 00, 000), + Date = new DateOnly(2023, 1, 15), + Uuid = "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", + Base64 = "SGVsbG8gd29ybGQh", + List = new List() { "list", "list" }, + Set = new HashSet() { "set" }, + Map = new Dictionary() { { 1, "map" } }, + Bigint = "1000000", }, } ); @@ -865,19 +886,19 @@ await client.Endpoints.Object.GetAndReturnNestedWithRequiredFieldAsListAsync( String = "string", NestedObject = new ObjectWithOptionalField { - String = null, - Integer = null, - Long = null, - Double = null, - Bool = null, - Datetime = null, - Date = null, - Uuid = null, - Base64 = null, - List = null, - Set = null, - Map = null, - Bigint = null, + String = "string", + Integer = 1, + Long = 1000000, + Double = 1.1, + Bool = true, + Datetime = new DateTime(2024, 01, 15, 09, 30, 00, 000), + Date = new DateOnly(2023, 1, 15), + Uuid = "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", + Base64 = "SGVsbG8gd29ybGQh", + List = new List() { "list", "list" }, + Set = new HashSet() { "set" }, + Map = new Dictionary() { { 1, "map" } }, + Bigint = "1000000", }, }, new NestedObjectWithRequiredField @@ -885,19 +906,19 @@ await client.Endpoints.Object.GetAndReturnNestedWithRequiredFieldAsListAsync( String = "string", NestedObject = new ObjectWithOptionalField { - String = null, - Integer = null, - Long = null, - Double = null, - Bool = null, - Datetime = null, - Date = null, - Uuid = null, - Base64 = null, - List = null, - Set = null, - Map = null, - Bigint = null, + String = "string", + Integer = 1, + Long = 1000000, + Double = 1.1, + Bool = true, + Datetime = new DateTime(2024, 01, 15, 09, 30, 00, 000), + Date = new DateOnly(2023, 1, 15), + Uuid = "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", + Base64 = "SGVsbG8gd29ybGQh", + List = new List() { "list", "list" }, + Set = new HashSet() { "set" }, + Map = new Dictionary() { { 1, "map" } }, + Bigint = "1000000", }, }, } @@ -1659,19 +1680,19 @@ await client.InlinedRequests.PostWithObjectBodyandResponseAsync( Integer = 1, NestedObject = new ObjectWithOptionalField { - String = null, - Integer = null, - Long = null, - Double = null, - Bool = null, - Datetime = null, - Date = null, - Uuid = null, - Base64 = null, - List = null, - Set = null, - Map = null, - Bigint = null, + String = "string", + Integer = 1, + Long = 1000000, + Double = 1.1, + Bool = true, + Datetime = new DateTime(2024, 01, 15, 09, 30, 00, 000), + Date = new DateOnly(2023, 1, 15), + Uuid = "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", + Base64 = "SGVsbG8gd29ybGQh", + List = new List() { "list", "list" }, + Set = new HashSet() { "set" }, + Map = new Dictionary() { { 1, "map" } }, + Bigint = "1000000", }, } ); diff --git a/seed/csharp-sdk/exhaustive/no-root-namespace-for-core-classes/snippet.json b/seed/csharp-sdk/exhaustive/no-root-namespace-for-core-classes/snippet.json index 99b4a9decd6..a30c894e3fe 100644 --- a/seed/csharp-sdk/exhaustive/no-root-namespace-for-core-classes/snippet.json +++ b/seed/csharp-sdk/exhaustive/no-root-namespace-for-core-classes/snippet.json @@ -82,7 +82,7 @@ }, "snippet": { "type": "typescript", - "client": "using SeedExhaustive;\n\nvar client = new SeedExhaustiveClient(\"TOKEN\");\nawait client.Endpoints.Container.GetAndReturnOptionalAsync(null);\n" + "client": "using SeedExhaustive.Types;\nusing SeedExhaustive;\n\nvar client = new SeedExhaustiveClient(\"TOKEN\");\nawait client.Endpoints.Container.GetAndReturnOptionalAsync(\n new ObjectWithRequiredField { String = \"string\" }\n);\n" } }, { @@ -142,7 +142,7 @@ }, "snippet": { "type": "typescript", - "client": "using SeedExhaustive.Types;\nusing SeedExhaustive;\n\nvar client = new SeedExhaustiveClient(\"TOKEN\");\nawait client.Endpoints.HttpMethods.TestPatchAsync(\n \"id\",\n new ObjectWithOptionalField\n {\n String = null,\n Integer = null,\n Long = null,\n Double = null,\n Bool = null,\n Datetime = null,\n Date = null,\n Uuid = null,\n Base64 = null,\n List = null,\n Set = null,\n Map = null,\n Bigint = null,\n }\n);\n" + "client": "using SeedExhaustive.Types;\nusing SeedExhaustive;\n\nvar client = new SeedExhaustiveClient(\"TOKEN\");\nawait client.Endpoints.HttpMethods.TestPatchAsync(\n \"id\",\n new ObjectWithOptionalField\n {\n String = \"string\",\n Integer = 1,\n Long = 1000000,\n Double = 1.1,\n Bool = true,\n Datetime = new DateTime(2024, 01, 15, 09, 30, 00, 000),\n Date = new DateOnly(2023, 1, 15),\n Uuid = \"d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32\",\n Base64 = \"SGVsbG8gd29ybGQh\",\n List = new List() { \"list\", \"list\" },\n Set = new HashSet() { \"set\" },\n Map = new Dictionary() { { 1, \"map\" } },\n Bigint = \"1000000\",\n }\n);\n" } }, { @@ -166,7 +166,7 @@ }, "snippet": { "type": "typescript", - "client": "using SeedExhaustive.Types;\nusing SeedExhaustive;\n\nvar client = new SeedExhaustiveClient(\"TOKEN\");\nawait client.Endpoints.Object.GetAndReturnWithOptionalFieldAsync(\n new ObjectWithOptionalField\n {\n String = null,\n Integer = null,\n Long = null,\n Double = null,\n Bool = null,\n Datetime = null,\n Date = null,\n Uuid = null,\n Base64 = null,\n List = null,\n Set = null,\n Map = null,\n Bigint = null,\n }\n);\n" + "client": "using SeedExhaustive.Types;\nusing SeedExhaustive;\n\nvar client = new SeedExhaustiveClient(\"TOKEN\");\nawait client.Endpoints.Object.GetAndReturnWithOptionalFieldAsync(\n new ObjectWithOptionalField\n {\n String = \"string\",\n Integer = 1,\n Long = 1000000,\n Double = 1.1,\n Bool = true,\n Datetime = new DateTime(2024, 01, 15, 09, 30, 00, 000),\n Date = new DateOnly(2023, 1, 15),\n Uuid = \"d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32\",\n Base64 = \"SGVsbG8gd29ybGQh\",\n List = new List() { \"list\", \"list\" },\n Set = new HashSet() { \"set\" },\n Map = new Dictionary() { { 1, \"map\" } },\n Bigint = \"1000000\",\n }\n);\n" } }, { @@ -202,7 +202,7 @@ }, "snippet": { "type": "typescript", - "client": "using SeedExhaustive.Types;\nusing SeedExhaustive;\n\nvar client = new SeedExhaustiveClient(\"TOKEN\");\nawait client.Endpoints.Object.GetAndReturnNestedWithOptionalFieldAsync(\n new NestedObjectWithOptionalField { String = null, NestedObject = null }\n);\n" + "client": "using SeedExhaustive.Types;\nusing SeedExhaustive;\n\nvar client = new SeedExhaustiveClient(\"TOKEN\");\nawait client.Endpoints.Object.GetAndReturnNestedWithOptionalFieldAsync(\n new NestedObjectWithOptionalField\n {\n String = \"string\",\n NestedObject = new ObjectWithOptionalField\n {\n String = \"string\",\n Integer = 1,\n Long = 1000000,\n Double = 1.1,\n Bool = true,\n Datetime = new DateTime(2024, 01, 15, 09, 30, 00, 000),\n Date = new DateOnly(2023, 1, 15),\n Uuid = \"d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32\",\n Base64 = \"SGVsbG8gd29ybGQh\",\n List = new List() { \"list\", \"list\" },\n Set = new HashSet() { \"set\" },\n Map = new Dictionary() { { 1, \"map\" } },\n Bigint = \"1000000\",\n },\n }\n);\n" } }, { @@ -214,7 +214,7 @@ }, "snippet": { "type": "typescript", - "client": "using SeedExhaustive.Types;\nusing SeedExhaustive;\n\nvar client = new SeedExhaustiveClient(\"TOKEN\");\nawait client.Endpoints.Object.GetAndReturnNestedWithRequiredFieldAsync(\n \"string\",\n new NestedObjectWithRequiredField\n {\n String = \"string\",\n NestedObject = new ObjectWithOptionalField\n {\n String = null,\n Integer = null,\n Long = null,\n Double = null,\n Bool = null,\n Datetime = null,\n Date = null,\n Uuid = null,\n Base64 = null,\n List = null,\n Set = null,\n Map = null,\n Bigint = null,\n },\n }\n);\n" + "client": "using SeedExhaustive.Types;\nusing SeedExhaustive;\n\nvar client = new SeedExhaustiveClient(\"TOKEN\");\nawait client.Endpoints.Object.GetAndReturnNestedWithRequiredFieldAsync(\n \"string\",\n new NestedObjectWithRequiredField\n {\n String = \"string\",\n NestedObject = new ObjectWithOptionalField\n {\n String = \"string\",\n Integer = 1,\n Long = 1000000,\n Double = 1.1,\n Bool = true,\n Datetime = new DateTime(2024, 01, 15, 09, 30, 00, 000),\n Date = new DateOnly(2023, 1, 15),\n Uuid = \"d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32\",\n Base64 = \"SGVsbG8gd29ybGQh\",\n List = new List() { \"list\", \"list\" },\n Set = new HashSet() { \"set\" },\n Map = new Dictionary() { { 1, \"map\" } },\n Bigint = \"1000000\",\n },\n }\n);\n" } }, { @@ -226,7 +226,7 @@ }, "snippet": { "type": "typescript", - "client": "using SeedExhaustive.Types;\nusing SeedExhaustive;\n\nvar client = new SeedExhaustiveClient(\"TOKEN\");\nawait client.Endpoints.Object.GetAndReturnNestedWithRequiredFieldAsListAsync(\n new List()\n {\n new NestedObjectWithRequiredField\n {\n String = \"string\",\n NestedObject = new ObjectWithOptionalField\n {\n String = null,\n Integer = null,\n Long = null,\n Double = null,\n Bool = null,\n Datetime = null,\n Date = null,\n Uuid = null,\n Base64 = null,\n List = null,\n Set = null,\n Map = null,\n Bigint = null,\n },\n },\n new NestedObjectWithRequiredField\n {\n String = \"string\",\n NestedObject = new ObjectWithOptionalField\n {\n String = null,\n Integer = null,\n Long = null,\n Double = null,\n Bool = null,\n Datetime = null,\n Date = null,\n Uuid = null,\n Base64 = null,\n List = null,\n Set = null,\n Map = null,\n Bigint = null,\n },\n },\n }\n);\n" + "client": "using SeedExhaustive.Types;\nusing SeedExhaustive;\n\nvar client = new SeedExhaustiveClient(\"TOKEN\");\nawait client.Endpoints.Object.GetAndReturnNestedWithRequiredFieldAsListAsync(\n new List()\n {\n new NestedObjectWithRequiredField\n {\n String = \"string\",\n NestedObject = new ObjectWithOptionalField\n {\n String = \"string\",\n Integer = 1,\n Long = 1000000,\n Double = 1.1,\n Bool = true,\n Datetime = new DateTime(2024, 01, 15, 09, 30, 00, 000),\n Date = new DateOnly(2023, 1, 15),\n Uuid = \"d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32\",\n Base64 = \"SGVsbG8gd29ybGQh\",\n List = new List() { \"list\", \"list\" },\n Set = new HashSet() { \"set\" },\n Map = new Dictionary() { { 1, \"map\" } },\n Bigint = \"1000000\",\n },\n },\n new NestedObjectWithRequiredField\n {\n String = \"string\",\n NestedObject = new ObjectWithOptionalField\n {\n String = \"string\",\n Integer = 1,\n Long = 1000000,\n Double = 1.1,\n Bool = true,\n Datetime = new DateTime(2024, 01, 15, 09, 30, 00, 000),\n Date = new DateOnly(2023, 1, 15),\n Uuid = \"d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32\",\n Base64 = \"SGVsbG8gd29ybGQh\",\n List = new List() { \"list\", \"list\" },\n Set = new HashSet() { \"set\" },\n Map = new Dictionary() { { 1, \"map\" } },\n Bigint = \"1000000\",\n },\n },\n }\n);\n" } }, { @@ -418,7 +418,7 @@ }, "snippet": { "type": "typescript", - "client": "using SeedExhaustive.Types;\nusing SeedExhaustive;\n\nvar client = new SeedExhaustiveClient(\"TOKEN\");\nawait client.InlinedRequests.PostWithObjectBodyandResponseAsync(\n new PostWithObjectBody\n {\n String = \"string\",\n Integer = 1,\n NestedObject = new ObjectWithOptionalField\n {\n String = null,\n Integer = null,\n Long = null,\n Double = null,\n Bool = null,\n Datetime = null,\n Date = null,\n Uuid = null,\n Base64 = null,\n List = null,\n Set = null,\n Map = null,\n Bigint = null,\n },\n }\n);\n" + "client": "using SeedExhaustive.Types;\nusing SeedExhaustive;\n\nvar client = new SeedExhaustiveClient(\"TOKEN\");\nawait client.InlinedRequests.PostWithObjectBodyandResponseAsync(\n new PostWithObjectBody\n {\n String = \"string\",\n Integer = 1,\n NestedObject = new ObjectWithOptionalField\n {\n String = \"string\",\n Integer = 1,\n Long = 1000000,\n Double = 1.1,\n Bool = true,\n Datetime = new DateTime(2024, 01, 15, 09, 30, 00, 000),\n Date = new DateOnly(2023, 1, 15),\n Uuid = \"d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32\",\n Base64 = \"SGVsbG8gd29ybGQh\",\n List = new List() { \"list\", \"list\" },\n Set = new HashSet() { \"set\" },\n Map = new Dictionary() { { 1, \"map\" } },\n Bigint = \"1000000\",\n },\n }\n);\n" } }, { diff --git a/seed/csharp-sdk/exhaustive/no-root-namespace-for-core-classes/src/SeedExhaustive.Test/Unit/MockServer/GetAndReturnNestedWithOptionalFieldTest.cs b/seed/csharp-sdk/exhaustive/no-root-namespace-for-core-classes/src/SeedExhaustive.Test/Unit/MockServer/GetAndReturnNestedWithOptionalFieldTest.cs index 8ef208a7490..e50ddbaaf87 100644 --- a/seed/csharp-sdk/exhaustive/no-root-namespace-for-core-classes/src/SeedExhaustive.Test/Unit/MockServer/GetAndReturnNestedWithOptionalFieldTest.cs +++ b/seed/csharp-sdk/exhaustive/no-root-namespace-for-core-classes/src/SeedExhaustive.Test/Unit/MockServer/GetAndReturnNestedWithOptionalFieldTest.cs @@ -1,3 +1,4 @@ +using System.Globalization; using System.Threading.Tasks; using FluentAssertions.Json; using Newtonsoft.Json.Linq; @@ -16,7 +17,31 @@ public class GetAndReturnNestedWithOptionalFieldTest : BaseMockServerTest public async Task MockServerTest() { const string requestJson = """ - {} + { + "string": "string", + "NestedObject": { + "string": "string", + "integer": 1, + "long": 1000000, + "double": 1.1, + "bool": true, + "datetime": "2024-01-15T09:30:00.000Z", + "date": "2023-01-15", + "uuid": "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", + "base64": "SGVsbG8gd29ybGQh", + "list": [ + "list", + "list" + ], + "set": [ + "set" + ], + "map": { + "1": "map" + }, + "bigint": "1000000" + } + } """; const string mockResponse = """ @@ -63,7 +88,30 @@ public async Task MockServerTest() ); var response = await Client.Endpoints.Object.GetAndReturnNestedWithOptionalFieldAsync( - new NestedObjectWithOptionalField { String = null, NestedObject = null }, + new NestedObjectWithOptionalField + { + String = "string", + NestedObject = new ObjectWithOptionalField + { + String = "string", + Integer = 1, + Long = 1000000, + Double = 1.1, + Bool = true, + Datetime = DateTime.Parse( + "2024-01-15T09:30:00.000Z", + null, + DateTimeStyles.AdjustToUniversal + ), + Date = new DateOnly(2023, 1, 15), + Uuid = "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", + Base64 = "SGVsbG8gd29ybGQh", + List = new List() { "list", "list" }, + Set = new HashSet() { "set" }, + Map = new Dictionary() { { 1, "map" } }, + Bigint = "1000000", + }, + }, RequestOptions ); JToken diff --git a/seed/csharp-sdk/exhaustive/no-root-namespace-for-core-classes/src/SeedExhaustive.Test/Unit/MockServer/GetAndReturnNestedWithRequiredFieldAsListTest.cs b/seed/csharp-sdk/exhaustive/no-root-namespace-for-core-classes/src/SeedExhaustive.Test/Unit/MockServer/GetAndReturnNestedWithRequiredFieldAsListTest.cs index 9bdc5e2c6ea..5a01880f039 100644 --- a/seed/csharp-sdk/exhaustive/no-root-namespace-for-core-classes/src/SeedExhaustive.Test/Unit/MockServer/GetAndReturnNestedWithRequiredFieldAsListTest.cs +++ b/seed/csharp-sdk/exhaustive/no-root-namespace-for-core-classes/src/SeedExhaustive.Test/Unit/MockServer/GetAndReturnNestedWithRequiredFieldAsListTest.cs @@ -1,3 +1,4 @@ +using System.Globalization; using System.Threading.Tasks; using FluentAssertions.Json; using Newtonsoft.Json.Linq; @@ -19,11 +20,53 @@ public async Task MockServerTest() [ { "string": "string", - "NestedObject": {} + "NestedObject": { + "string": "string", + "integer": 1, + "long": 1000000, + "double": 1.1, + "bool": true, + "datetime": "2024-01-15T09:30:00.000Z", + "date": "2023-01-15", + "uuid": "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", + "base64": "SGVsbG8gd29ybGQh", + "list": [ + "list", + "list" + ], + "set": [ + "set" + ], + "map": { + "1": "map" + }, + "bigint": "1000000" + } }, { "string": "string", - "NestedObject": {} + "NestedObject": { + "string": "string", + "integer": 1, + "long": 1000000, + "double": 1.1, + "bool": true, + "datetime": "2024-01-15T09:30:00.000Z", + "date": "2023-01-15", + "uuid": "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", + "base64": "SGVsbG8gd29ybGQh", + "list": [ + "list", + "list" + ], + "set": [ + "set" + ], + "map": { + "1": "map" + }, + "bigint": "1000000" + } } ] """; @@ -79,19 +122,23 @@ public async Task MockServerTest() String = "string", NestedObject = new ObjectWithOptionalField { - String = null, - Integer = null, - Long = null, - Double = null, - Bool = null, - Datetime = null, - Date = null, - Uuid = null, - Base64 = null, - List = null, - Set = null, - Map = null, - Bigint = null, + String = "string", + Integer = 1, + Long = 1000000, + Double = 1.1, + Bool = true, + Datetime = DateTime.Parse( + "2024-01-15T09:30:00.000Z", + null, + DateTimeStyles.AdjustToUniversal + ), + Date = new DateOnly(2023, 1, 15), + Uuid = "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", + Base64 = "SGVsbG8gd29ybGQh", + List = new List() { "list", "list" }, + Set = new HashSet() { "set" }, + Map = new Dictionary() { { 1, "map" } }, + Bigint = "1000000", }, }, new NestedObjectWithRequiredField @@ -99,19 +146,23 @@ public async Task MockServerTest() String = "string", NestedObject = new ObjectWithOptionalField { - String = null, - Integer = null, - Long = null, - Double = null, - Bool = null, - Datetime = null, - Date = null, - Uuid = null, - Base64 = null, - List = null, - Set = null, - Map = null, - Bigint = null, + String = "string", + Integer = 1, + Long = 1000000, + Double = 1.1, + Bool = true, + Datetime = DateTime.Parse( + "2024-01-15T09:30:00.000Z", + null, + DateTimeStyles.AdjustToUniversal + ), + Date = new DateOnly(2023, 1, 15), + Uuid = "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", + Base64 = "SGVsbG8gd29ybGQh", + List = new List() { "list", "list" }, + Set = new HashSet() { "set" }, + Map = new Dictionary() { { 1, "map" } }, + Bigint = "1000000", }, }, }, diff --git a/seed/csharp-sdk/exhaustive/no-root-namespace-for-core-classes/src/SeedExhaustive.Test/Unit/MockServer/GetAndReturnNestedWithRequiredFieldTest.cs b/seed/csharp-sdk/exhaustive/no-root-namespace-for-core-classes/src/SeedExhaustive.Test/Unit/MockServer/GetAndReturnNestedWithRequiredFieldTest.cs index 93b5faa54ee..e1970a6f144 100644 --- a/seed/csharp-sdk/exhaustive/no-root-namespace-for-core-classes/src/SeedExhaustive.Test/Unit/MockServer/GetAndReturnNestedWithRequiredFieldTest.cs +++ b/seed/csharp-sdk/exhaustive/no-root-namespace-for-core-classes/src/SeedExhaustive.Test/Unit/MockServer/GetAndReturnNestedWithRequiredFieldTest.cs @@ -1,3 +1,4 @@ +using System.Globalization; using System.Threading.Tasks; using FluentAssertions.Json; using Newtonsoft.Json.Linq; @@ -18,7 +19,28 @@ public async Task MockServerTest() const string requestJson = """ { "string": "string", - "NestedObject": {} + "NestedObject": { + "string": "string", + "integer": 1, + "long": 1000000, + "double": 1.1, + "bool": true, + "datetime": "2024-01-15T09:30:00.000Z", + "date": "2023-01-15", + "uuid": "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", + "base64": "SGVsbG8gd29ybGQh", + "list": [ + "list", + "list" + ], + "set": [ + "set" + ], + "map": { + "1": "map" + }, + "bigint": "1000000" + } } """; @@ -72,19 +94,23 @@ public async Task MockServerTest() String = "string", NestedObject = new ObjectWithOptionalField { - String = null, - Integer = null, - Long = null, - Double = null, - Bool = null, - Datetime = null, - Date = null, - Uuid = null, - Base64 = null, - List = null, - Set = null, - Map = null, - Bigint = null, + String = "string", + Integer = 1, + Long = 1000000, + Double = 1.1, + Bool = true, + Datetime = DateTime.Parse( + "2024-01-15T09:30:00.000Z", + null, + DateTimeStyles.AdjustToUniversal + ), + Date = new DateOnly(2023, 1, 15), + Uuid = "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", + Base64 = "SGVsbG8gd29ybGQh", + List = new List() { "list", "list" }, + Set = new HashSet() { "set" }, + Map = new Dictionary() { { 1, "map" } }, + Bigint = "1000000", }, }, RequestOptions diff --git a/seed/csharp-sdk/exhaustive/no-root-namespace-for-core-classes/src/SeedExhaustive.Test/Unit/MockServer/GetAndReturnOptionalTest.cs b/seed/csharp-sdk/exhaustive/no-root-namespace-for-core-classes/src/SeedExhaustive.Test/Unit/MockServer/GetAndReturnOptionalTest.cs index 380b36737b9..f06ee4936f3 100644 --- a/seed/csharp-sdk/exhaustive/no-root-namespace-for-core-classes/src/SeedExhaustive.Test/Unit/MockServer/GetAndReturnOptionalTest.cs +++ b/seed/csharp-sdk/exhaustive/no-root-namespace-for-core-classes/src/SeedExhaustive.Test/Unit/MockServer/GetAndReturnOptionalTest.cs @@ -3,6 +3,7 @@ using Newtonsoft.Json.Linq; using NUnit.Framework; using SeedExhaustive.Core; +using SeedExhaustive.Types; #nullable enable @@ -15,7 +16,9 @@ public class GetAndReturnOptionalTest : BaseMockServerTest public async Task MockServerTest() { const string requestJson = """ - + { + "string": "string" + } """; const string mockResponse = """ @@ -30,7 +33,7 @@ public async Task MockServerTest() .RequestBuilders.Request.Create() .WithPath("/container/opt-objects") .UsingPost() - .WithBody(requestJson) + .WithBodyAsJson(requestJson) ) .RespondWith( WireMock @@ -40,7 +43,7 @@ public async Task MockServerTest() ); var response = await Client.Endpoints.Container.GetAndReturnOptionalAsync( - null, + new ObjectWithRequiredField { String = "string" }, RequestOptions ); JToken diff --git a/seed/csharp-sdk/exhaustive/no-root-namespace-for-core-classes/src/SeedExhaustive.Test/Unit/MockServer/GetAndReturnWithOptionalFieldTest.cs b/seed/csharp-sdk/exhaustive/no-root-namespace-for-core-classes/src/SeedExhaustive.Test/Unit/MockServer/GetAndReturnWithOptionalFieldTest.cs index 9aaa0b40da4..68fcf98506b 100644 --- a/seed/csharp-sdk/exhaustive/no-root-namespace-for-core-classes/src/SeedExhaustive.Test/Unit/MockServer/GetAndReturnWithOptionalFieldTest.cs +++ b/seed/csharp-sdk/exhaustive/no-root-namespace-for-core-classes/src/SeedExhaustive.Test/Unit/MockServer/GetAndReturnWithOptionalFieldTest.cs @@ -1,3 +1,4 @@ +using System.Globalization; using System.Threading.Tasks; using FluentAssertions.Json; using Newtonsoft.Json.Linq; @@ -16,7 +17,28 @@ public class GetAndReturnWithOptionalFieldTest : BaseMockServerTest public async Task MockServerTest() { const string requestJson = """ - {} + { + "string": "string", + "integer": 1, + "long": 1000000, + "double": 1.1, + "bool": true, + "datetime": "2024-01-15T09:30:00.000Z", + "date": "2023-01-15", + "uuid": "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", + "base64": "SGVsbG8gd29ybGQh", + "list": [ + "list", + "list" + ], + "set": [ + "set" + ], + "map": { + "1": "map" + }, + "bigint": "1000000" + } """; const string mockResponse = """ @@ -62,19 +84,23 @@ public async Task MockServerTest() var response = await Client.Endpoints.Object.GetAndReturnWithOptionalFieldAsync( new ObjectWithOptionalField { - String = null, - Integer = null, - Long = null, - Double = null, - Bool = null, - Datetime = null, - Date = null, - Uuid = null, - Base64 = null, - List = null, - Set = null, - Map = null, - Bigint = null, + String = "string", + Integer = 1, + Long = 1000000, + Double = 1.1, + Bool = true, + Datetime = DateTime.Parse( + "2024-01-15T09:30:00.000Z", + null, + DateTimeStyles.AdjustToUniversal + ), + Date = new DateOnly(2023, 1, 15), + Uuid = "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", + Base64 = "SGVsbG8gd29ybGQh", + List = new List() { "list", "list" }, + Set = new HashSet() { "set" }, + Map = new Dictionary() { { 1, "map" } }, + Bigint = "1000000", }, RequestOptions ); diff --git a/seed/csharp-sdk/exhaustive/no-root-namespace-for-core-classes/src/SeedExhaustive.Test/Unit/MockServer/PostWithObjectBodyandResponseTest.cs b/seed/csharp-sdk/exhaustive/no-root-namespace-for-core-classes/src/SeedExhaustive.Test/Unit/MockServer/PostWithObjectBodyandResponseTest.cs index 6f50f9fea24..17d707fd085 100644 --- a/seed/csharp-sdk/exhaustive/no-root-namespace-for-core-classes/src/SeedExhaustive.Test/Unit/MockServer/PostWithObjectBodyandResponseTest.cs +++ b/seed/csharp-sdk/exhaustive/no-root-namespace-for-core-classes/src/SeedExhaustive.Test/Unit/MockServer/PostWithObjectBodyandResponseTest.cs @@ -1,3 +1,4 @@ +using System.Globalization; using System.Threading.Tasks; using FluentAssertions.Json; using Newtonsoft.Json.Linq; @@ -20,7 +21,28 @@ public async Task MockServerTest() { "string": "string", "integer": 1, - "NestedObject": {} + "NestedObject": { + "string": "string", + "integer": 1, + "long": 1000000, + "double": 1.1, + "bool": true, + "datetime": "2024-01-15T09:30:00.000Z", + "date": "2023-01-15", + "uuid": "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", + "base64": "SGVsbG8gd29ybGQh", + "list": [ + "list", + "list" + ], + "set": [ + "set" + ], + "map": { + "1": "map" + }, + "bigint": "1000000" + } } """; @@ -71,19 +93,23 @@ public async Task MockServerTest() Integer = 1, NestedObject = new ObjectWithOptionalField { - String = null, - Integer = null, - Long = null, - Double = null, - Bool = null, - Datetime = null, - Date = null, - Uuid = null, - Base64 = null, - List = null, - Set = null, - Map = null, - Bigint = null, + String = "string", + Integer = 1, + Long = 1000000, + Double = 1.1, + Bool = true, + Datetime = DateTime.Parse( + "2024-01-15T09:30:00.000Z", + null, + DateTimeStyles.AdjustToUniversal + ), + Date = new DateOnly(2023, 1, 15), + Uuid = "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", + Base64 = "SGVsbG8gd29ybGQh", + List = new List() { "list", "list" }, + Set = new HashSet() { "set" }, + Map = new Dictionary() { { 1, "map" } }, + Bigint = "1000000", }, }, RequestOptions diff --git a/seed/csharp-sdk/exhaustive/no-root-namespace-for-core-classes/src/SeedExhaustive.Test/Unit/MockServer/TestPatchTest.cs b/seed/csharp-sdk/exhaustive/no-root-namespace-for-core-classes/src/SeedExhaustive.Test/Unit/MockServer/TestPatchTest.cs index 83152bae271..a5a295e3e95 100644 --- a/seed/csharp-sdk/exhaustive/no-root-namespace-for-core-classes/src/SeedExhaustive.Test/Unit/MockServer/TestPatchTest.cs +++ b/seed/csharp-sdk/exhaustive/no-root-namespace-for-core-classes/src/SeedExhaustive.Test/Unit/MockServer/TestPatchTest.cs @@ -1,3 +1,4 @@ +using System.Globalization; using System.Threading.Tasks; using FluentAssertions.Json; using Newtonsoft.Json.Linq; @@ -16,7 +17,28 @@ public class TestPatchTest : BaseMockServerTest public async Task MockServerTest() { const string requestJson = """ - {} + { + "string": "string", + "integer": 1, + "long": 1000000, + "double": 1.1, + "bool": true, + "datetime": "2024-01-15T09:30:00.000Z", + "date": "2023-01-15", + "uuid": "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", + "base64": "SGVsbG8gd29ybGQh", + "list": [ + "list", + "list" + ], + "set": [ + "set" + ], + "map": { + "1": "map" + }, + "bigint": "1000000" + } """; const string mockResponse = """ @@ -63,19 +85,23 @@ public async Task MockServerTest() "id", new ObjectWithOptionalField { - String = null, - Integer = null, - Long = null, - Double = null, - Bool = null, - Datetime = null, - Date = null, - Uuid = null, - Base64 = null, - List = null, - Set = null, - Map = null, - Bigint = null, + String = "string", + Integer = 1, + Long = 1000000, + Double = 1.1, + Bool = true, + Datetime = DateTime.Parse( + "2024-01-15T09:30:00.000Z", + null, + DateTimeStyles.AdjustToUniversal + ), + Date = new DateOnly(2023, 1, 15), + Uuid = "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", + Base64 = "SGVsbG8gd29ybGQh", + List = new List() { "list", "list" }, + Set = new HashSet() { "set" }, + Map = new Dictionary() { { 1, "map" } }, + Bigint = "1000000", }, RequestOptions ); diff --git a/seed/csharp-sdk/exhaustive/no-root-namespace-for-core-classes/src/SeedExhaustive/Endpoints/Container/ContainerClient.cs b/seed/csharp-sdk/exhaustive/no-root-namespace-for-core-classes/src/SeedExhaustive/Endpoints/Container/ContainerClient.cs index 6548c6637c4..95820ec2ced 100644 --- a/seed/csharp-sdk/exhaustive/no-root-namespace-for-core-classes/src/SeedExhaustive/Endpoints/Container/ContainerClient.cs +++ b/seed/csharp-sdk/exhaustive/no-root-namespace-for-core-classes/src/SeedExhaustive/Endpoints/Container/ContainerClient.cs @@ -297,7 +297,9 @@ public async Task< /// /// - /// await client.Endpoints.Container.GetAndReturnOptionalAsync(null); + /// await client.Endpoints.Container.GetAndReturnOptionalAsync( + /// new ObjectWithRequiredField { String = "string" } + /// ); /// /// public async Task GetAndReturnOptionalAsync( diff --git a/seed/csharp-sdk/exhaustive/no-root-namespace-for-core-classes/src/SeedExhaustive/Endpoints/HttpMethods/HttpMethodsClient.cs b/seed/csharp-sdk/exhaustive/no-root-namespace-for-core-classes/src/SeedExhaustive/Endpoints/HttpMethods/HttpMethodsClient.cs index 82abf9da82d..37b2160080a 100644 --- a/seed/csharp-sdk/exhaustive/no-root-namespace-for-core-classes/src/SeedExhaustive/Endpoints/HttpMethods/HttpMethodsClient.cs +++ b/seed/csharp-sdk/exhaustive/no-root-namespace-for-core-classes/src/SeedExhaustive/Endpoints/HttpMethods/HttpMethodsClient.cs @@ -152,19 +152,19 @@ public async Task TestPutAsync( /// "id", /// new ObjectWithOptionalField /// { - /// String = null, - /// Integer = null, - /// Long = null, - /// Double = null, - /// Bool = null, - /// Datetime = null, - /// Date = null, - /// Uuid = null, - /// Base64 = null, - /// List = null, - /// Set = null, - /// Map = null, - /// Bigint = null, + /// String = "string", + /// Integer = 1, + /// Long = 1000000, + /// Double = 1.1, + /// Bool = true, + /// Datetime = new DateTime(2024, 01, 15, 09, 30, 00, 000), + /// Date = new DateOnly(2023, 1, 15), + /// Uuid = "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", + /// Base64 = "SGVsbG8gd29ybGQh", + /// List = new List<string>() { "list", "list" }, + /// Set = new HashSet<string>() { "set" }, + /// Map = new Dictionary<int, string>() { { 1, "map" } }, + /// Bigint = "1000000", /// } /// ); /// diff --git a/seed/csharp-sdk/exhaustive/no-root-namespace-for-core-classes/src/SeedExhaustive/Endpoints/Object/ObjectClient.cs b/seed/csharp-sdk/exhaustive/no-root-namespace-for-core-classes/src/SeedExhaustive/Endpoints/Object/ObjectClient.cs index 824f5c4c05a..0b1d8a8a92b 100644 --- a/seed/csharp-sdk/exhaustive/no-root-namespace-for-core-classes/src/SeedExhaustive/Endpoints/Object/ObjectClient.cs +++ b/seed/csharp-sdk/exhaustive/no-root-namespace-for-core-classes/src/SeedExhaustive/Endpoints/Object/ObjectClient.cs @@ -22,19 +22,19 @@ internal ObjectClient(RawClient client) /// await client.Endpoints.Object.GetAndReturnWithOptionalFieldAsync( /// new ObjectWithOptionalField /// { - /// String = null, - /// Integer = null, - /// Long = null, - /// Double = null, - /// Bool = null, - /// Datetime = null, - /// Date = null, - /// Uuid = null, - /// Base64 = null, - /// List = null, - /// Set = null, - /// Map = null, - /// Bigint = null, + /// String = "string", + /// Integer = 1, + /// Long = 1000000, + /// Double = 1.1, + /// Bool = true, + /// Datetime = new DateTime(2024, 01, 15, 09, 30, 00, 000), + /// Date = new DateOnly(2023, 1, 15), + /// Uuid = "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", + /// Base64 = "SGVsbG8gd29ybGQh", + /// List = new List<string>() { "list", "list" }, + /// Set = new HashSet<string>() { "set" }, + /// Map = new Dictionary<int, string>() { { 1, "map" } }, + /// Bigint = "1000000", /// } /// ); /// @@ -176,7 +176,26 @@ public async Task GetAndReturnWithMapOfMapAsync( /// /// /// await client.Endpoints.Object.GetAndReturnNestedWithOptionalFieldAsync( - /// new NestedObjectWithOptionalField { String = null, NestedObject = null } + /// new NestedObjectWithOptionalField + /// { + /// String = "string", + /// NestedObject = new ObjectWithOptionalField + /// { + /// String = "string", + /// Integer = 1, + /// Long = 1000000, + /// Double = 1.1, + /// Bool = true, + /// Datetime = new DateTime(2024, 01, 15, 09, 30, 00, 000), + /// Date = new DateOnly(2023, 1, 15), + /// Uuid = "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", + /// Base64 = "SGVsbG8gd29ybGQh", + /// List = new List<string>() { "list", "list" }, + /// Set = new HashSet<string>() { "set" }, + /// Map = new Dictionary<int, string>() { { 1, "map" } }, + /// Bigint = "1000000", + /// }, + /// } /// ); /// /// @@ -226,19 +245,19 @@ public async Task GetAndReturnNestedWithOptionalF /// String = "string", /// NestedObject = new ObjectWithOptionalField /// { - /// String = null, - /// Integer = null, - /// Long = null, - /// Double = null, - /// Bool = null, - /// Datetime = null, - /// Date = null, - /// Uuid = null, - /// Base64 = null, - /// List = null, - /// Set = null, - /// Map = null, - /// Bigint = null, + /// String = "string", + /// Integer = 1, + /// Long = 1000000, + /// Double = 1.1, + /// Bool = true, + /// Datetime = new DateTime(2024, 01, 15, 09, 30, 00, 000), + /// Date = new DateOnly(2023, 1, 15), + /// Uuid = "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", + /// Base64 = "SGVsbG8gd29ybGQh", + /// List = new List<string>() { "list", "list" }, + /// Set = new HashSet<string>() { "set" }, + /// Map = new Dictionary<int, string>() { { 1, "map" } }, + /// Bigint = "1000000", /// }, /// } /// ); @@ -292,19 +311,19 @@ public async Task GetAndReturnNestedWithRequiredF /// String = "string", /// NestedObject = new ObjectWithOptionalField /// { - /// String = null, - /// Integer = null, - /// Long = null, - /// Double = null, - /// Bool = null, - /// Datetime = null, - /// Date = null, - /// Uuid = null, - /// Base64 = null, - /// List = null, - /// Set = null, - /// Map = null, - /// Bigint = null, + /// String = "string", + /// Integer = 1, + /// Long = 1000000, + /// Double = 1.1, + /// Bool = true, + /// Datetime = new DateTime(2024, 01, 15, 09, 30, 00, 000), + /// Date = new DateOnly(2023, 1, 15), + /// Uuid = "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", + /// Base64 = "SGVsbG8gd29ybGQh", + /// List = new List<string>() { "list", "list" }, + /// Set = new HashSet<string>() { "set" }, + /// Map = new Dictionary<int, string>() { { 1, "map" } }, + /// Bigint = "1000000", /// }, /// }, /// new NestedObjectWithRequiredField @@ -312,19 +331,19 @@ public async Task GetAndReturnNestedWithRequiredF /// String = "string", /// NestedObject = new ObjectWithOptionalField /// { - /// String = null, - /// Integer = null, - /// Long = null, - /// Double = null, - /// Bool = null, - /// Datetime = null, - /// Date = null, - /// Uuid = null, - /// Base64 = null, - /// List = null, - /// Set = null, - /// Map = null, - /// Bigint = null, + /// String = "string", + /// Integer = 1, + /// Long = 1000000, + /// Double = 1.1, + /// Bool = true, + /// Datetime = new DateTime(2024, 01, 15, 09, 30, 00, 000), + /// Date = new DateOnly(2023, 1, 15), + /// Uuid = "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", + /// Base64 = "SGVsbG8gd29ybGQh", + /// List = new List<string>() { "list", "list" }, + /// Set = new HashSet<string>() { "set" }, + /// Map = new Dictionary<int, string>() { { 1, "map" } }, + /// Bigint = "1000000", /// }, /// }, /// } diff --git a/seed/csharp-sdk/exhaustive/no-root-namespace-for-core-classes/src/SeedExhaustive/InlinedRequests/InlinedRequestsClient.cs b/seed/csharp-sdk/exhaustive/no-root-namespace-for-core-classes/src/SeedExhaustive/InlinedRequests/InlinedRequestsClient.cs index 9ff3f30a617..86594b31c4f 100644 --- a/seed/csharp-sdk/exhaustive/no-root-namespace-for-core-classes/src/SeedExhaustive/InlinedRequests/InlinedRequestsClient.cs +++ b/seed/csharp-sdk/exhaustive/no-root-namespace-for-core-classes/src/SeedExhaustive/InlinedRequests/InlinedRequestsClient.cs @@ -29,19 +29,19 @@ internal InlinedRequestsClient(RawClient client) /// Integer = 1, /// NestedObject = new ObjectWithOptionalField /// { - /// String = null, - /// Integer = null, - /// Long = null, - /// Double = null, - /// Bool = null, - /// Datetime = null, - /// Date = null, - /// Uuid = null, - /// Base64 = null, - /// List = null, - /// Set = null, - /// Map = null, - /// Bigint = null, + /// String = "string", + /// Integer = 1, + /// Long = 1000000, + /// Double = 1.1, + /// Bool = true, + /// Datetime = new DateTime(2024, 01, 15, 09, 30, 00, 000), + /// Date = new DateOnly(2023, 1, 15), + /// Uuid = "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", + /// Base64 = "SGVsbG8gd29ybGQh", + /// List = new List<string>() { "list", "list" }, + /// Set = new HashSet<string>() { "set" }, + /// Map = new Dictionary<int, string>() { { 1, "map" } }, + /// Bigint = "1000000", /// }, /// } /// ); diff --git a/seed/csharp-sdk/grpc-proto-exhaustive/no-custom-config/.mock/generators.yml b/seed/csharp-sdk/grpc-proto-exhaustive/no-custom-config/.mock/generators.yml index 972ed6d7b73..c23323621f2 100644 --- a/seed/csharp-sdk/grpc-proto-exhaustive/no-custom-config/.mock/generators.yml +++ b/seed/csharp-sdk/grpc-proto-exhaustive/no-custom-config/.mock/generators.yml @@ -1,6 +1,7 @@ api: - - proto: - root: proto - target: proto/data/v1/data.proto - overrides: overrides.yml - local-generation: true \ No newline at end of file + - path: openapi/openapi.yml + - proto: + root: proto + target: proto/data/v1/data.proto + overrides: overrides.yml + local-generation: true diff --git a/seed/csharp-sdk/grpc-proto-exhaustive/no-custom-config/.mock/openapi/openapi.yml b/seed/csharp-sdk/grpc-proto-exhaustive/no-custom-config/.mock/openapi/openapi.yml new file mode 100644 index 00000000000..ebc23143df3 --- /dev/null +++ b/seed/csharp-sdk/grpc-proto-exhaustive/no-custom-config/.mock/openapi/openapi.yml @@ -0,0 +1,33 @@ +openapi: 3.0.3 +info: + title: Test API + version: 1.0.0 +servers: + - url: https://localhost +tags: + - name: dataservice +paths: + /foo: + post: + tag: dataservice + x-fern-sdk-group-name: + - dataservice + x-fern-sdk-method-name: foo + security: + - ApiKeyAuth: [] + operationId: foo + responses: + "200": + content: + application/json: + schema: + type: object + +security: + - ApiKeyAuth: [] +components: + securitySchemes: + ApiKeyAuth: + type: apiKey + in: header + name: X-API-Key diff --git a/seed/csharp-sdk/grpc-proto-exhaustive/no-custom-config/README.md b/seed/csharp-sdk/grpc-proto-exhaustive/no-custom-config/README.md index a605ad810d0..fb7a6d7b883 100644 --- a/seed/csharp-sdk/grpc-proto-exhaustive/no-custom-config/README.md +++ b/seed/csharp-sdk/grpc-proto-exhaustive/no-custom-config/README.md @@ -18,20 +18,8 @@ Instantiate and use the client with the following: ```csharp using SeedApi; -var client = new SeedApiClient(); -await client.Dataservice.UploadAsync( - new UploadRequest - { - Columns = new List() - { - new Column - { - Id = "id", - Values = new List() { 1.1f }, - }, - }, - } -); +var client = new SeedApiClient("API_KEY"); +await client.Dataservice.FooAsync(); ``` ## Exception Handling @@ -43,7 +31,7 @@ will be thrown. using SeedApi; try { - var response = await client.Dataservice.UploadAsync(...); + var response = await client.Dataservice.FooAsync(...); } catch (SeedApiApiException e) { System.Console.WriteLine(e.Body); System.Console.WriteLine(e.StatusCode); @@ -67,7 +55,7 @@ A request is deemed retriable when any of the following HTTP status codes is ret Use the `MaxRetries` request option to configure this behavior. ```csharp -var response = await client.Dataservice.UploadAsync( +var response = await client.Dataservice.FooAsync( ..., new RequestOptions { MaxRetries: 0 // Override MaxRetries at the request level @@ -80,7 +68,7 @@ var response = await client.Dataservice.UploadAsync( The SDK defaults to a 30 second timeout. Use the `Timeout` option to configure this behavior. ```csharp -var response = await client.Dataservice.UploadAsync( +var response = await client.Dataservice.FooAsync( ..., new RequestOptions { Timeout: TimeSpan.FromSeconds(3) // Override timeout to 3s diff --git a/seed/csharp-sdk/grpc-proto-exhaustive/no-custom-config/reference.md b/seed/csharp-sdk/grpc-proto-exhaustive/no-custom-config/reference.md index 830bacdc726..b5e56eaf804 100644 --- a/seed/csharp-sdk/grpc-proto-exhaustive/no-custom-config/reference.md +++ b/seed/csharp-sdk/grpc-proto-exhaustive/no-custom-config/reference.md @@ -1,5 +1,30 @@ # Reference ## DataService +
client.Dataservice.FooAsync() -> object +
+
+ +#### 🔌 Usage + +
+
+ +
+
+ +```csharp +await client.Dataservice.FooAsync(); +``` +
+
+
+
+ + +
+
+
+
client.Dataservice.UploadAsync(UploadRequest { ... }) -> UploadResponse
diff --git a/seed/csharp-sdk/grpc-proto-exhaustive/no-custom-config/snippet.json b/seed/csharp-sdk/grpc-proto-exhaustive/no-custom-config/snippet.json index 546b49b57ee..9a76a063ec4 100644 --- a/seed/csharp-sdk/grpc-proto-exhaustive/no-custom-config/snippet.json +++ b/seed/csharp-sdk/grpc-proto-exhaustive/no-custom-config/snippet.json @@ -1,6 +1,18 @@ { "types": {}, "endpoints": [ + { + "example_identifier": null, + "id": { + "path": "/foo", + "method": "POST", + "identifier_override": "endpoint_dataservice.foo" + }, + "snippet": { + "type": "typescript", + "client": "using SeedApi;\n\nvar client = new SeedApiClient(\"API_KEY\");\nawait client.Dataservice.FooAsync();\n" + } + }, { "example_identifier": null, "id": { @@ -10,7 +22,7 @@ }, "snippet": { "type": "typescript", - "client": "using SeedApi;\n\nvar client = new SeedApiClient();\nawait client.Dataservice.UploadAsync(\n new UploadRequest\n {\n Columns = new List()\n {\n new Column\n {\n Id = \"id\",\n Values = new List() { 1.1f },\n },\n },\n }\n);\n" + "client": "using SeedApi;\n\nvar client = new SeedApiClient(\"API_KEY\");\nawait client.Dataservice.UploadAsync(\n new UploadRequest\n {\n Columns = new List()\n {\n new Column\n {\n Id = \"id\",\n Values = new List() { 1.1f },\n },\n },\n }\n);\n" } }, { @@ -22,7 +34,7 @@ }, "snippet": { "type": "typescript", - "client": "using SeedApi;\n\nvar client = new SeedApiClient();\nawait client.Dataservice.DeleteAsync(new DeleteRequest());\n" + "client": "using SeedApi;\n\nvar client = new SeedApiClient(\"API_KEY\");\nawait client.Dataservice.DeleteAsync(new DeleteRequest());\n" } }, { @@ -34,7 +46,7 @@ }, "snippet": { "type": "typescript", - "client": "using SeedApi;\n\nvar client = new SeedApiClient();\nawait client.Dataservice.DescribeAsync(new DescribeRequest());\n" + "client": "using SeedApi;\n\nvar client = new SeedApiClient(\"API_KEY\");\nawait client.Dataservice.DescribeAsync(new DescribeRequest());\n" } }, { @@ -46,7 +58,7 @@ }, "snippet": { "type": "typescript", - "client": "using SeedApi;\n\nvar client = new SeedApiClient();\nawait client.Dataservice.FetchAsync(new FetchRequest());\n" + "client": "using SeedApi;\n\nvar client = new SeedApiClient(\"API_KEY\");\nawait client.Dataservice.FetchAsync(new FetchRequest());\n" } }, { @@ -58,7 +70,7 @@ }, "snippet": { "type": "typescript", - "client": "using SeedApi;\n\nvar client = new SeedApiClient();\nawait client.Dataservice.ListAsync(new ListRequest());\n" + "client": "using SeedApi;\n\nvar client = new SeedApiClient(\"API_KEY\");\nawait client.Dataservice.ListAsync(new ListRequest());\n" } }, { @@ -70,7 +82,7 @@ }, "snippet": { "type": "typescript", - "client": "using SeedApi;\n\nvar client = new SeedApiClient();\nawait client.Dataservice.QueryAsync(new QueryRequest { TopK = 1 });\n" + "client": "using SeedApi;\n\nvar client = new SeedApiClient(\"API_KEY\");\nawait client.Dataservice.QueryAsync(new QueryRequest { TopK = 1 });\n" } }, { @@ -82,7 +94,7 @@ }, "snippet": { "type": "typescript", - "client": "using SeedApi;\n\nvar client = new SeedApiClient();\nawait client.Dataservice.UpdateAsync(new UpdateRequest { Id = \"id\" });\n" + "client": "using SeedApi;\n\nvar client = new SeedApiClient(\"API_KEY\");\nawait client.Dataservice.UpdateAsync(new UpdateRequest { Id = \"id\" });\n" } } ] diff --git a/seed/csharp-sdk/grpc-proto-exhaustive/no-custom-config/src/SeedApi/Core/Public/ClientOptions.cs b/seed/csharp-sdk/grpc-proto-exhaustive/no-custom-config/src/SeedApi/Core/Public/ClientOptions.cs index e4f22c22965..b3264cb28bb 100644 --- a/seed/csharp-sdk/grpc-proto-exhaustive/no-custom-config/src/SeedApi/Core/Public/ClientOptions.cs +++ b/seed/csharp-sdk/grpc-proto-exhaustive/no-custom-config/src/SeedApi/Core/Public/ClientOptions.cs @@ -12,7 +12,7 @@ public partial class ClientOptions /// /// The Base URL for the API. /// - public string BaseUrl { get; init; } = ""; + public string BaseUrl { get; init; } = SeedApiEnvironment.Default; /// /// The http client used to make requests. diff --git a/seed/csharp-sdk/grpc-proto-exhaustive/no-custom-config/src/SeedApi/Core/Public/SeedApiEnvironment.cs b/seed/csharp-sdk/grpc-proto-exhaustive/no-custom-config/src/SeedApi/Core/Public/SeedApiEnvironment.cs new file mode 100644 index 00000000000..14ffe5ab6c8 --- /dev/null +++ b/seed/csharp-sdk/grpc-proto-exhaustive/no-custom-config/src/SeedApi/Core/Public/SeedApiEnvironment.cs @@ -0,0 +1,6 @@ +namespace SeedApi; + +public class SeedApiEnvironment +{ + public static string Default = "https://localhost"; +} diff --git a/seed/csharp-sdk/grpc-proto-exhaustive/no-custom-config/src/SeedApi/Dataservice/DataserviceClient.cs b/seed/csharp-sdk/grpc-proto-exhaustive/no-custom-config/src/SeedApi/Dataservice/DataserviceClient.cs index 8da06ffed93..fd876a03711 100644 --- a/seed/csharp-sdk/grpc-proto-exhaustive/no-custom-config/src/SeedApi/Dataservice/DataserviceClient.cs +++ b/seed/csharp-sdk/grpc-proto-exhaustive/no-custom-config/src/SeedApi/Dataservice/DataserviceClient.cs @@ -22,6 +22,41 @@ internal DataserviceClient(RawClient client) _dataService = new DataService.DataServiceClient(_grpc.Channel); } + /// + /// + /// await client.Dataservice.FooAsync(); + /// + /// + public async Task FooAsync( + GrpcRequestOptions? options = null, + CancellationToken cancellationToken = default + ) + { + try + { + var callOptions = _grpc.CreateCallOptions( + options ?? new GrpcRequestOptions(), + cancellationToken + ); + var call = _dataService.FooAsync(null, callOptions); + var response = await call.ConfigureAwait(false); + return object.FromProto(response); + } + catch (RpcException rpc) + { + var statusCode = (int)rpc.StatusCode; + throw new SeedApiApiException( + $"Error with gRPC status code {statusCode}", + statusCode, + rpc.Message + ); + } + catch (Exception e) + { + throw new SeedApiException("Error", e); + } + } + /// /// /// await client.Dataservice.UploadAsync( diff --git a/seed/csharp-sdk/grpc-proto-exhaustive/no-custom-config/src/SeedApi/SeedApiClient.cs b/seed/csharp-sdk/grpc-proto-exhaustive/no-custom-config/src/SeedApi/SeedApiClient.cs index 017ab8726ca..a079df6c315 100644 --- a/seed/csharp-sdk/grpc-proto-exhaustive/no-custom-config/src/SeedApi/SeedApiClient.cs +++ b/seed/csharp-sdk/grpc-proto-exhaustive/no-custom-config/src/SeedApi/SeedApiClient.cs @@ -8,7 +8,7 @@ public partial class SeedApiClient { private RawClient _client; - public SeedApiClient(ClientOptions? clientOptions = null) + public SeedApiClient(string apiKey, ClientOptions? clientOptions = null) { var defaultHeaders = new Headers( new Dictionary() diff --git a/seed/csharp-sdk/grpc-proto-exhaustive/package-id/.mock/generators.yml b/seed/csharp-sdk/grpc-proto-exhaustive/package-id/.mock/generators.yml index 972ed6d7b73..c23323621f2 100644 --- a/seed/csharp-sdk/grpc-proto-exhaustive/package-id/.mock/generators.yml +++ b/seed/csharp-sdk/grpc-proto-exhaustive/package-id/.mock/generators.yml @@ -1,6 +1,7 @@ api: - - proto: - root: proto - target: proto/data/v1/data.proto - overrides: overrides.yml - local-generation: true \ No newline at end of file + - path: openapi/openapi.yml + - proto: + root: proto + target: proto/data/v1/data.proto + overrides: overrides.yml + local-generation: true diff --git a/seed/csharp-sdk/grpc-proto-exhaustive/package-id/.mock/openapi/openapi.yml b/seed/csharp-sdk/grpc-proto-exhaustive/package-id/.mock/openapi/openapi.yml new file mode 100644 index 00000000000..ebc23143df3 --- /dev/null +++ b/seed/csharp-sdk/grpc-proto-exhaustive/package-id/.mock/openapi/openapi.yml @@ -0,0 +1,33 @@ +openapi: 3.0.3 +info: + title: Test API + version: 1.0.0 +servers: + - url: https://localhost +tags: + - name: dataservice +paths: + /foo: + post: + tag: dataservice + x-fern-sdk-group-name: + - dataservice + x-fern-sdk-method-name: foo + security: + - ApiKeyAuth: [] + operationId: foo + responses: + "200": + content: + application/json: + schema: + type: object + +security: + - ApiKeyAuth: [] +components: + securitySchemes: + ApiKeyAuth: + type: apiKey + in: header + name: X-API-Key diff --git a/seed/csharp-sdk/grpc-proto-exhaustive/package-id/README.md b/seed/csharp-sdk/grpc-proto-exhaustive/package-id/README.md index 605573c3e5f..a9db3110199 100644 --- a/seed/csharp-sdk/grpc-proto-exhaustive/package-id/README.md +++ b/seed/csharp-sdk/grpc-proto-exhaustive/package-id/README.md @@ -18,20 +18,8 @@ Instantiate and use the client with the following: ```csharp using SeedApi; -var client = new SeedApiClient(); -await client.Dataservice.UploadAsync( - new UploadRequest - { - Columns = new List() - { - new Column - { - Id = "id", - Values = new List() { 1.1f }, - }, - }, - } -); +var client = new SeedApiClient("API_KEY"); +await client.Dataservice.FooAsync(); ``` ## Exception Handling @@ -43,7 +31,7 @@ will be thrown. using SeedApi; try { - var response = await client.Dataservice.UploadAsync(...); + var response = await client.Dataservice.FooAsync(...); } catch (SeedApiApiException e) { System.Console.WriteLine(e.Body); System.Console.WriteLine(e.StatusCode); @@ -67,7 +55,7 @@ A request is deemed retriable when any of the following HTTP status codes is ret Use the `MaxRetries` request option to configure this behavior. ```csharp -var response = await client.Dataservice.UploadAsync( +var response = await client.Dataservice.FooAsync( ..., new RequestOptions { MaxRetries: 0 // Override MaxRetries at the request level @@ -80,7 +68,7 @@ var response = await client.Dataservice.UploadAsync( The SDK defaults to a 30 second timeout. Use the `Timeout` option to configure this behavior. ```csharp -var response = await client.Dataservice.UploadAsync( +var response = await client.Dataservice.FooAsync( ..., new RequestOptions { Timeout: TimeSpan.FromSeconds(3) // Override timeout to 3s diff --git a/seed/csharp-sdk/grpc-proto-exhaustive/package-id/reference.md b/seed/csharp-sdk/grpc-proto-exhaustive/package-id/reference.md index 830bacdc726..b5e56eaf804 100644 --- a/seed/csharp-sdk/grpc-proto-exhaustive/package-id/reference.md +++ b/seed/csharp-sdk/grpc-proto-exhaustive/package-id/reference.md @@ -1,5 +1,30 @@ # Reference ## DataService +
client.Dataservice.FooAsync() -> object +
+
+ +#### 🔌 Usage + +
+
+ +
+
+ +```csharp +await client.Dataservice.FooAsync(); +``` +
+
+
+
+ + +
+
+
+
client.Dataservice.UploadAsync(UploadRequest { ... }) -> UploadResponse
diff --git a/seed/csharp-sdk/grpc-proto-exhaustive/package-id/snippet.json b/seed/csharp-sdk/grpc-proto-exhaustive/package-id/snippet.json index 546b49b57ee..9a76a063ec4 100644 --- a/seed/csharp-sdk/grpc-proto-exhaustive/package-id/snippet.json +++ b/seed/csharp-sdk/grpc-proto-exhaustive/package-id/snippet.json @@ -1,6 +1,18 @@ { "types": {}, "endpoints": [ + { + "example_identifier": null, + "id": { + "path": "/foo", + "method": "POST", + "identifier_override": "endpoint_dataservice.foo" + }, + "snippet": { + "type": "typescript", + "client": "using SeedApi;\n\nvar client = new SeedApiClient(\"API_KEY\");\nawait client.Dataservice.FooAsync();\n" + } + }, { "example_identifier": null, "id": { @@ -10,7 +22,7 @@ }, "snippet": { "type": "typescript", - "client": "using SeedApi;\n\nvar client = new SeedApiClient();\nawait client.Dataservice.UploadAsync(\n new UploadRequest\n {\n Columns = new List()\n {\n new Column\n {\n Id = \"id\",\n Values = new List() { 1.1f },\n },\n },\n }\n);\n" + "client": "using SeedApi;\n\nvar client = new SeedApiClient(\"API_KEY\");\nawait client.Dataservice.UploadAsync(\n new UploadRequest\n {\n Columns = new List()\n {\n new Column\n {\n Id = \"id\",\n Values = new List() { 1.1f },\n },\n },\n }\n);\n" } }, { @@ -22,7 +34,7 @@ }, "snippet": { "type": "typescript", - "client": "using SeedApi;\n\nvar client = new SeedApiClient();\nawait client.Dataservice.DeleteAsync(new DeleteRequest());\n" + "client": "using SeedApi;\n\nvar client = new SeedApiClient(\"API_KEY\");\nawait client.Dataservice.DeleteAsync(new DeleteRequest());\n" } }, { @@ -34,7 +46,7 @@ }, "snippet": { "type": "typescript", - "client": "using SeedApi;\n\nvar client = new SeedApiClient();\nawait client.Dataservice.DescribeAsync(new DescribeRequest());\n" + "client": "using SeedApi;\n\nvar client = new SeedApiClient(\"API_KEY\");\nawait client.Dataservice.DescribeAsync(new DescribeRequest());\n" } }, { @@ -46,7 +58,7 @@ }, "snippet": { "type": "typescript", - "client": "using SeedApi;\n\nvar client = new SeedApiClient();\nawait client.Dataservice.FetchAsync(new FetchRequest());\n" + "client": "using SeedApi;\n\nvar client = new SeedApiClient(\"API_KEY\");\nawait client.Dataservice.FetchAsync(new FetchRequest());\n" } }, { @@ -58,7 +70,7 @@ }, "snippet": { "type": "typescript", - "client": "using SeedApi;\n\nvar client = new SeedApiClient();\nawait client.Dataservice.ListAsync(new ListRequest());\n" + "client": "using SeedApi;\n\nvar client = new SeedApiClient(\"API_KEY\");\nawait client.Dataservice.ListAsync(new ListRequest());\n" } }, { @@ -70,7 +82,7 @@ }, "snippet": { "type": "typescript", - "client": "using SeedApi;\n\nvar client = new SeedApiClient();\nawait client.Dataservice.QueryAsync(new QueryRequest { TopK = 1 });\n" + "client": "using SeedApi;\n\nvar client = new SeedApiClient(\"API_KEY\");\nawait client.Dataservice.QueryAsync(new QueryRequest { TopK = 1 });\n" } }, { @@ -82,7 +94,7 @@ }, "snippet": { "type": "typescript", - "client": "using SeedApi;\n\nvar client = new SeedApiClient();\nawait client.Dataservice.UpdateAsync(new UpdateRequest { Id = \"id\" });\n" + "client": "using SeedApi;\n\nvar client = new SeedApiClient(\"API_KEY\");\nawait client.Dataservice.UpdateAsync(new UpdateRequest { Id = \"id\" });\n" } } ] diff --git a/seed/csharp-sdk/grpc-proto-exhaustive/package-id/src/SeedApi/Core/Public/ClientOptions.cs b/seed/csharp-sdk/grpc-proto-exhaustive/package-id/src/SeedApi/Core/Public/ClientOptions.cs index e4f22c22965..b3264cb28bb 100644 --- a/seed/csharp-sdk/grpc-proto-exhaustive/package-id/src/SeedApi/Core/Public/ClientOptions.cs +++ b/seed/csharp-sdk/grpc-proto-exhaustive/package-id/src/SeedApi/Core/Public/ClientOptions.cs @@ -12,7 +12,7 @@ public partial class ClientOptions /// /// The Base URL for the API. /// - public string BaseUrl { get; init; } = ""; + public string BaseUrl { get; init; } = SeedApiEnvironment.Default; /// /// The http client used to make requests. diff --git a/seed/csharp-sdk/grpc-proto-exhaustive/package-id/src/SeedApi/Core/Public/SeedApiEnvironment.cs b/seed/csharp-sdk/grpc-proto-exhaustive/package-id/src/SeedApi/Core/Public/SeedApiEnvironment.cs new file mode 100644 index 00000000000..14ffe5ab6c8 --- /dev/null +++ b/seed/csharp-sdk/grpc-proto-exhaustive/package-id/src/SeedApi/Core/Public/SeedApiEnvironment.cs @@ -0,0 +1,6 @@ +namespace SeedApi; + +public class SeedApiEnvironment +{ + public static string Default = "https://localhost"; +} diff --git a/seed/csharp-sdk/grpc-proto-exhaustive/package-id/src/SeedApi/Dataservice/DataserviceClient.cs b/seed/csharp-sdk/grpc-proto-exhaustive/package-id/src/SeedApi/Dataservice/DataserviceClient.cs index 8da06ffed93..fd876a03711 100644 --- a/seed/csharp-sdk/grpc-proto-exhaustive/package-id/src/SeedApi/Dataservice/DataserviceClient.cs +++ b/seed/csharp-sdk/grpc-proto-exhaustive/package-id/src/SeedApi/Dataservice/DataserviceClient.cs @@ -22,6 +22,41 @@ internal DataserviceClient(RawClient client) _dataService = new DataService.DataServiceClient(_grpc.Channel); } + /// + /// + /// await client.Dataservice.FooAsync(); + /// + /// + public async Task FooAsync( + GrpcRequestOptions? options = null, + CancellationToken cancellationToken = default + ) + { + try + { + var callOptions = _grpc.CreateCallOptions( + options ?? new GrpcRequestOptions(), + cancellationToken + ); + var call = _dataService.FooAsync(null, callOptions); + var response = await call.ConfigureAwait(false); + return object.FromProto(response); + } + catch (RpcException rpc) + { + var statusCode = (int)rpc.StatusCode; + throw new SeedApiApiException( + $"Error with gRPC status code {statusCode}", + statusCode, + rpc.Message + ); + } + catch (Exception e) + { + throw new SeedApiException("Error", e); + } + } + /// /// /// await client.Dataservice.UploadAsync( diff --git a/seed/csharp-sdk/grpc-proto-exhaustive/package-id/src/SeedApi/SeedApiClient.cs b/seed/csharp-sdk/grpc-proto-exhaustive/package-id/src/SeedApi/SeedApiClient.cs index 017ab8726ca..a079df6c315 100644 --- a/seed/csharp-sdk/grpc-proto-exhaustive/package-id/src/SeedApi/SeedApiClient.cs +++ b/seed/csharp-sdk/grpc-proto-exhaustive/package-id/src/SeedApi/SeedApiClient.cs @@ -8,7 +8,7 @@ public partial class SeedApiClient { private RawClient _client; - public SeedApiClient(ClientOptions? clientOptions = null) + public SeedApiClient(string apiKey, ClientOptions? clientOptions = null) { var defaultHeaders = new Headers( new Dictionary() diff --git a/seed/csharp-sdk/grpc-proto-exhaustive/read-only-memory/.mock/generators.yml b/seed/csharp-sdk/grpc-proto-exhaustive/read-only-memory/.mock/generators.yml index 972ed6d7b73..c23323621f2 100644 --- a/seed/csharp-sdk/grpc-proto-exhaustive/read-only-memory/.mock/generators.yml +++ b/seed/csharp-sdk/grpc-proto-exhaustive/read-only-memory/.mock/generators.yml @@ -1,6 +1,7 @@ api: - - proto: - root: proto - target: proto/data/v1/data.proto - overrides: overrides.yml - local-generation: true \ No newline at end of file + - path: openapi/openapi.yml + - proto: + root: proto + target: proto/data/v1/data.proto + overrides: overrides.yml + local-generation: true diff --git a/seed/csharp-sdk/grpc-proto-exhaustive/read-only-memory/.mock/openapi/openapi.yml b/seed/csharp-sdk/grpc-proto-exhaustive/read-only-memory/.mock/openapi/openapi.yml new file mode 100644 index 00000000000..ebc23143df3 --- /dev/null +++ b/seed/csharp-sdk/grpc-proto-exhaustive/read-only-memory/.mock/openapi/openapi.yml @@ -0,0 +1,33 @@ +openapi: 3.0.3 +info: + title: Test API + version: 1.0.0 +servers: + - url: https://localhost +tags: + - name: dataservice +paths: + /foo: + post: + tag: dataservice + x-fern-sdk-group-name: + - dataservice + x-fern-sdk-method-name: foo + security: + - ApiKeyAuth: [] + operationId: foo + responses: + "200": + content: + application/json: + schema: + type: object + +security: + - ApiKeyAuth: [] +components: + securitySchemes: + ApiKeyAuth: + type: apiKey + in: header + name: X-API-Key diff --git a/seed/csharp-sdk/grpc-proto-exhaustive/read-only-memory/README.md b/seed/csharp-sdk/grpc-proto-exhaustive/read-only-memory/README.md index d7cbceedb96..fb7a6d7b883 100644 --- a/seed/csharp-sdk/grpc-proto-exhaustive/read-only-memory/README.md +++ b/seed/csharp-sdk/grpc-proto-exhaustive/read-only-memory/README.md @@ -18,16 +18,8 @@ Instantiate and use the client with the following: ```csharp using SeedApi; -var client = new SeedApiClient(); -await client.Dataservice.UploadAsync( - new UploadRequest - { - Columns = new List() - { - new Column { Id = "id", Values = new[] { 1.1f } }, - }, - } -); +var client = new SeedApiClient("API_KEY"); +await client.Dataservice.FooAsync(); ``` ## Exception Handling @@ -39,7 +31,7 @@ will be thrown. using SeedApi; try { - var response = await client.Dataservice.UploadAsync(...); + var response = await client.Dataservice.FooAsync(...); } catch (SeedApiApiException e) { System.Console.WriteLine(e.Body); System.Console.WriteLine(e.StatusCode); @@ -63,7 +55,7 @@ A request is deemed retriable when any of the following HTTP status codes is ret Use the `MaxRetries` request option to configure this behavior. ```csharp -var response = await client.Dataservice.UploadAsync( +var response = await client.Dataservice.FooAsync( ..., new RequestOptions { MaxRetries: 0 // Override MaxRetries at the request level @@ -76,7 +68,7 @@ var response = await client.Dataservice.UploadAsync( The SDK defaults to a 30 second timeout. Use the `Timeout` option to configure this behavior. ```csharp -var response = await client.Dataservice.UploadAsync( +var response = await client.Dataservice.FooAsync( ..., new RequestOptions { Timeout: TimeSpan.FromSeconds(3) // Override timeout to 3s diff --git a/seed/csharp-sdk/grpc-proto-exhaustive/read-only-memory/reference.md b/seed/csharp-sdk/grpc-proto-exhaustive/read-only-memory/reference.md index b5cdd6e8580..e862902bd0f 100644 --- a/seed/csharp-sdk/grpc-proto-exhaustive/read-only-memory/reference.md +++ b/seed/csharp-sdk/grpc-proto-exhaustive/read-only-memory/reference.md @@ -1,5 +1,30 @@ # Reference ## DataService +
client.Dataservice.FooAsync() -> object +
+
+ +#### 🔌 Usage + +
+
+ +
+
+ +```csharp +await client.Dataservice.FooAsync(); +``` +
+
+
+
+ + +
+
+
+
client.Dataservice.UploadAsync(UploadRequest { ... }) -> UploadResponse
diff --git a/seed/csharp-sdk/grpc-proto-exhaustive/read-only-memory/snippet.json b/seed/csharp-sdk/grpc-proto-exhaustive/read-only-memory/snippet.json index 66926a40e09..062bf9a5e73 100644 --- a/seed/csharp-sdk/grpc-proto-exhaustive/read-only-memory/snippet.json +++ b/seed/csharp-sdk/grpc-proto-exhaustive/read-only-memory/snippet.json @@ -1,6 +1,18 @@ { "types": {}, "endpoints": [ + { + "example_identifier": null, + "id": { + "path": "/foo", + "method": "POST", + "identifier_override": "endpoint_dataservice.foo" + }, + "snippet": { + "type": "typescript", + "client": "using SeedApi;\n\nvar client = new SeedApiClient(\"API_KEY\");\nawait client.Dataservice.FooAsync();\n" + } + }, { "example_identifier": null, "id": { @@ -10,7 +22,7 @@ }, "snippet": { "type": "typescript", - "client": "using SeedApi;\n\nvar client = new SeedApiClient();\nawait client.Dataservice.UploadAsync(\n new UploadRequest\n {\n Columns = new List()\n {\n new Column { Id = \"id\", Values = new[] { 1.1f } },\n },\n }\n);\n" + "client": "using SeedApi;\n\nvar client = new SeedApiClient(\"API_KEY\");\nawait client.Dataservice.UploadAsync(\n new UploadRequest\n {\n Columns = new List()\n {\n new Column { Id = \"id\", Values = new[] { 1.1f } },\n },\n }\n);\n" } }, { @@ -22,7 +34,7 @@ }, "snippet": { "type": "typescript", - "client": "using SeedApi;\n\nvar client = new SeedApiClient();\nawait client.Dataservice.DeleteAsync(new DeleteRequest());\n" + "client": "using SeedApi;\n\nvar client = new SeedApiClient(\"API_KEY\");\nawait client.Dataservice.DeleteAsync(new DeleteRequest());\n" } }, { @@ -34,7 +46,7 @@ }, "snippet": { "type": "typescript", - "client": "using SeedApi;\n\nvar client = new SeedApiClient();\nawait client.Dataservice.DescribeAsync(new DescribeRequest());\n" + "client": "using SeedApi;\n\nvar client = new SeedApiClient(\"API_KEY\");\nawait client.Dataservice.DescribeAsync(new DescribeRequest());\n" } }, { @@ -46,7 +58,7 @@ }, "snippet": { "type": "typescript", - "client": "using SeedApi;\n\nvar client = new SeedApiClient();\nawait client.Dataservice.FetchAsync(new FetchRequest());\n" + "client": "using SeedApi;\n\nvar client = new SeedApiClient(\"API_KEY\");\nawait client.Dataservice.FetchAsync(new FetchRequest());\n" } }, { @@ -58,7 +70,7 @@ }, "snippet": { "type": "typescript", - "client": "using SeedApi;\n\nvar client = new SeedApiClient();\nawait client.Dataservice.ListAsync(new ListRequest());\n" + "client": "using SeedApi;\n\nvar client = new SeedApiClient(\"API_KEY\");\nawait client.Dataservice.ListAsync(new ListRequest());\n" } }, { @@ -70,7 +82,7 @@ }, "snippet": { "type": "typescript", - "client": "using SeedApi;\n\nvar client = new SeedApiClient();\nawait client.Dataservice.QueryAsync(new QueryRequest { TopK = 1 });\n" + "client": "using SeedApi;\n\nvar client = new SeedApiClient(\"API_KEY\");\nawait client.Dataservice.QueryAsync(new QueryRequest { TopK = 1 });\n" } }, { @@ -82,7 +94,7 @@ }, "snippet": { "type": "typescript", - "client": "using SeedApi;\n\nvar client = new SeedApiClient();\nawait client.Dataservice.UpdateAsync(new UpdateRequest { Id = \"id\" });\n" + "client": "using SeedApi;\n\nvar client = new SeedApiClient(\"API_KEY\");\nawait client.Dataservice.UpdateAsync(new UpdateRequest { Id = \"id\" });\n" } } ] diff --git a/seed/csharp-sdk/grpc-proto-exhaustive/read-only-memory/src/SeedApi/Core/Public/ClientOptions.cs b/seed/csharp-sdk/grpc-proto-exhaustive/read-only-memory/src/SeedApi/Core/Public/ClientOptions.cs index e4f22c22965..b3264cb28bb 100644 --- a/seed/csharp-sdk/grpc-proto-exhaustive/read-only-memory/src/SeedApi/Core/Public/ClientOptions.cs +++ b/seed/csharp-sdk/grpc-proto-exhaustive/read-only-memory/src/SeedApi/Core/Public/ClientOptions.cs @@ -12,7 +12,7 @@ public partial class ClientOptions /// /// The Base URL for the API. /// - public string BaseUrl { get; init; } = ""; + public string BaseUrl { get; init; } = SeedApiEnvironment.Default; /// /// The http client used to make requests. diff --git a/seed/csharp-sdk/grpc-proto-exhaustive/read-only-memory/src/SeedApi/Core/Public/SeedApiEnvironment.cs b/seed/csharp-sdk/grpc-proto-exhaustive/read-only-memory/src/SeedApi/Core/Public/SeedApiEnvironment.cs new file mode 100644 index 00000000000..14ffe5ab6c8 --- /dev/null +++ b/seed/csharp-sdk/grpc-proto-exhaustive/read-only-memory/src/SeedApi/Core/Public/SeedApiEnvironment.cs @@ -0,0 +1,6 @@ +namespace SeedApi; + +public class SeedApiEnvironment +{ + public static string Default = "https://localhost"; +} diff --git a/seed/csharp-sdk/grpc-proto-exhaustive/read-only-memory/src/SeedApi/Dataservice/DataserviceClient.cs b/seed/csharp-sdk/grpc-proto-exhaustive/read-only-memory/src/SeedApi/Dataservice/DataserviceClient.cs index 9c85dcc2d0e..30a2cfcf383 100644 --- a/seed/csharp-sdk/grpc-proto-exhaustive/read-only-memory/src/SeedApi/Dataservice/DataserviceClient.cs +++ b/seed/csharp-sdk/grpc-proto-exhaustive/read-only-memory/src/SeedApi/Dataservice/DataserviceClient.cs @@ -22,6 +22,41 @@ internal DataserviceClient(RawClient client) _dataService = new DataService.DataServiceClient(_grpc.Channel); } + /// + /// + /// await client.Dataservice.FooAsync(); + /// + /// + public async Task FooAsync( + GrpcRequestOptions? options = null, + CancellationToken cancellationToken = default + ) + { + try + { + var callOptions = _grpc.CreateCallOptions( + options ?? new GrpcRequestOptions(), + cancellationToken + ); + var call = _dataService.FooAsync(null, callOptions); + var response = await call.ConfigureAwait(false); + return object.FromProto(response); + } + catch (RpcException rpc) + { + var statusCode = (int)rpc.StatusCode; + throw new SeedApiApiException( + $"Error with gRPC status code {statusCode}", + statusCode, + rpc.Message + ); + } + catch (Exception e) + { + throw new SeedApiException("Error", e); + } + } + /// /// /// await client.Dataservice.UploadAsync( diff --git a/seed/csharp-sdk/grpc-proto-exhaustive/read-only-memory/src/SeedApi/SeedApiClient.cs b/seed/csharp-sdk/grpc-proto-exhaustive/read-only-memory/src/SeedApi/SeedApiClient.cs index 017ab8726ca..a079df6c315 100644 --- a/seed/csharp-sdk/grpc-proto-exhaustive/read-only-memory/src/SeedApi/SeedApiClient.cs +++ b/seed/csharp-sdk/grpc-proto-exhaustive/read-only-memory/src/SeedApi/SeedApiClient.cs @@ -8,7 +8,7 @@ public partial class SeedApiClient { private RawClient _client; - public SeedApiClient(ClientOptions? clientOptions = null) + public SeedApiClient(string apiKey, ClientOptions? clientOptions = null) { var defaultHeaders = new Headers( new Dictionary() diff --git a/seed/csharp-sdk/literal/src/SeedLiteral.Test/Unit/MockServer/SendTest.cs b/seed/csharp-sdk/literal/src/SeedLiteral.Test/Unit/MockServer/SendTest.cs index cfe3bb8b2bb..9cef472b3a9 100644 --- a/seed/csharp-sdk/literal/src/SeedLiteral.Test/Unit/MockServer/SendTest.cs +++ b/seed/csharp-sdk/literal/src/SeedLiteral.Test/Unit/MockServer/SendTest.cs @@ -21,6 +21,7 @@ public async Task MockServerTest_1() "query": "query", "stream": false, "context": "You're super wise", + "maybeContext": "You're super wise", "containerObject": { "nestedObjects": [ { @@ -68,7 +69,7 @@ public async Task MockServerTest_1() Query = "query", Stream = false, Context = "You're super wise", - MaybeContext = null, + MaybeContext = "You're super wise", ContainerObject = new ContainerObject { NestedObjects = new List() diff --git a/seed/csharp-sdk/mixed-case/.mock/definition/service.yml b/seed/csharp-sdk/mixed-case/.mock/definition/service.yml index 5991572a42f..7a38e853c35 100644 --- a/seed/csharp-sdk/mixed-case/.mock/definition/service.yml +++ b/seed/csharp-sdk/mixed-case/.mock/definition/service.yml @@ -56,6 +56,7 @@ types: Organization: Organization examples: - value: + status: ACTIVE resource_type: user userName: username metadata_tags: @@ -80,6 +81,7 @@ service: ResourceID: "rsc-xyz" response: body: + status: ACTIVE resource_type: user userName: username metadata_tags: @@ -106,6 +108,7 @@ service: response: body: - resource_type: user + status: ACTIVE userName: username metadata_tags: - tag1 diff --git a/seed/csharp-sdk/mixed-file-directory/reference.md b/seed/csharp-sdk/mixed-file-directory/reference.md index 77a5c62a766..317352cdf46 100644 --- a/seed/csharp-sdk/mixed-file-directory/reference.md +++ b/seed/csharp-sdk/mixed-file-directory/reference.md @@ -82,7 +82,7 @@ List all users.
```csharp -await client.User.ListAsync(new ListUsersRequest()); +await client.User.ListAsync(new ListUsersRequest { Limit = 1 }); ```
@@ -137,7 +137,7 @@ List all user events.
```csharp -await client.User.Events.ListEventsAsync(new ListUserEventsRequest()); +await client.User.Events.ListEventsAsync(new ListUserEventsRequest { Limit = 1 }); ```
diff --git a/seed/csharp-sdk/mixed-file-directory/snippet.json b/seed/csharp-sdk/mixed-file-directory/snippet.json index 9b6f4459a8b..eab14b713e6 100644 --- a/seed/csharp-sdk/mixed-file-directory/snippet.json +++ b/seed/csharp-sdk/mixed-file-directory/snippet.json @@ -22,7 +22,7 @@ }, "snippet": { "type": "typescript", - "client": "using SeedMixedFileDirectory;\n\nvar client = new SeedMixedFileDirectoryClient();\nawait client.User.ListAsync(new ListUsersRequest());\n" + "client": "using SeedMixedFileDirectory;\n\nvar client = new SeedMixedFileDirectoryClient();\nawait client.User.ListAsync(new ListUsersRequest { Limit = 1 });\n" } }, { @@ -34,7 +34,7 @@ }, "snippet": { "type": "typescript", - "client": "using SeedMixedFileDirectory.User;\nusing SeedMixedFileDirectory;\n\nvar client = new SeedMixedFileDirectoryClient();\nawait client.User.Events.ListEventsAsync(new ListUserEventsRequest());\n" + "client": "using SeedMixedFileDirectory.User;\nusing SeedMixedFileDirectory;\n\nvar client = new SeedMixedFileDirectoryClient();\nawait client.User.Events.ListEventsAsync(new ListUserEventsRequest { Limit = 1 });\n" } }, { diff --git a/seed/csharp-sdk/mixed-file-directory/src/SeedMixedFileDirectory.Test/Unit/MockServer/ListEventsTest.cs b/seed/csharp-sdk/mixed-file-directory/src/SeedMixedFileDirectory.Test/Unit/MockServer/ListEventsTest.cs index d95f06a8c22..66ce0e2c1cf 100644 --- a/seed/csharp-sdk/mixed-file-directory/src/SeedMixedFileDirectory.Test/Unit/MockServer/ListEventsTest.cs +++ b/seed/csharp-sdk/mixed-file-directory/src/SeedMixedFileDirectory.Test/Unit/MockServer/ListEventsTest.cs @@ -29,7 +29,13 @@ public async Task MockServerTest() """; Server - .Given(WireMock.RequestBuilders.Request.Create().WithPath("/users/events/").UsingGet()) + .Given( + WireMock + .RequestBuilders.Request.Create() + .WithPath("/users/events/") + .WithParam("limit", "1") + .UsingGet() + ) .RespondWith( WireMock .ResponseBuilders.Response.Create() @@ -38,7 +44,7 @@ public async Task MockServerTest() ); var response = await Client.User.Events.ListEventsAsync( - new ListUserEventsRequest(), + new ListUserEventsRequest { Limit = 1 }, RequestOptions ); JToken diff --git a/seed/csharp-sdk/mixed-file-directory/src/SeedMixedFileDirectory.Test/Unit/MockServer/ListTest.cs b/seed/csharp-sdk/mixed-file-directory/src/SeedMixedFileDirectory.Test/Unit/MockServer/ListTest.cs index bb9194c10a8..b349eae73f7 100644 --- a/seed/csharp-sdk/mixed-file-directory/src/SeedMixedFileDirectory.Test/Unit/MockServer/ListTest.cs +++ b/seed/csharp-sdk/mixed-file-directory/src/SeedMixedFileDirectory.Test/Unit/MockServer/ListTest.cs @@ -31,7 +31,13 @@ public async Task MockServerTest() """; Server - .Given(WireMock.RequestBuilders.Request.Create().WithPath("/users/").UsingGet()) + .Given( + WireMock + .RequestBuilders.Request.Create() + .WithPath("/users/") + .WithParam("limit", "1") + .UsingGet() + ) .RespondWith( WireMock .ResponseBuilders.Response.Create() @@ -39,7 +45,10 @@ public async Task MockServerTest() .WithBody(mockResponse) ); - var response = await Client.User.ListAsync(new ListUsersRequest(), RequestOptions); + var response = await Client.User.ListAsync( + new ListUsersRequest { Limit = 1 }, + RequestOptions + ); JToken .Parse(mockResponse) .Should() diff --git a/seed/csharp-sdk/mixed-file-directory/src/SeedMixedFileDirectory/User/Events/EventsClient.cs b/seed/csharp-sdk/mixed-file-directory/src/SeedMixedFileDirectory/User/Events/EventsClient.cs index a4329d391d5..8730001c7fa 100644 --- a/seed/csharp-sdk/mixed-file-directory/src/SeedMixedFileDirectory/User/Events/EventsClient.cs +++ b/seed/csharp-sdk/mixed-file-directory/src/SeedMixedFileDirectory/User/Events/EventsClient.cs @@ -26,7 +26,7 @@ internal EventsClient(RawClient client) /// /// /// - /// await client.User.Events.ListEventsAsync(new ListUserEventsRequest()); + /// await client.User.Events.ListEventsAsync(new ListUserEventsRequest { Limit = 1 }); /// /// public async Task> ListEventsAsync( diff --git a/seed/csharp-sdk/mixed-file-directory/src/SeedMixedFileDirectory/User/UserClient.cs b/seed/csharp-sdk/mixed-file-directory/src/SeedMixedFileDirectory/User/UserClient.cs index c2d4312af63..c4866333fb5 100644 --- a/seed/csharp-sdk/mixed-file-directory/src/SeedMixedFileDirectory/User/UserClient.cs +++ b/seed/csharp-sdk/mixed-file-directory/src/SeedMixedFileDirectory/User/UserClient.cs @@ -25,7 +25,7 @@ internal UserClient(RawClient client) /// /// /// - /// await client.User.ListAsync(new ListUsersRequest()); + /// await client.User.ListAsync(new ListUsersRequest { Limit = 1 }); /// /// public async Task> ListAsync( diff --git a/seed/csharp-sdk/multi-line-docs/README.md b/seed/csharp-sdk/multi-line-docs/README.md index d70e7cd7051..3ab40813aea 100644 --- a/seed/csharp-sdk/multi-line-docs/README.md +++ b/seed/csharp-sdk/multi-line-docs/README.md @@ -19,7 +19,7 @@ Instantiate and use the client with the following: using SeedMultiLineDocs; var client = new SeedMultiLineDocsClient(); -await client.User.CreateUserAsync(new CreateUserRequest { Name = "name", Age = null }); +await client.User.CreateUserAsync(new CreateUserRequest { Name = "name", Age = 1 }); ``` ## Exception Handling diff --git a/seed/csharp-sdk/multi-line-docs/reference.md b/seed/csharp-sdk/multi-line-docs/reference.md index 9b71db0a629..9b623c91d5c 100644 --- a/seed/csharp-sdk/multi-line-docs/reference.md +++ b/seed/csharp-sdk/multi-line-docs/reference.md @@ -86,7 +86,7 @@ This endpoint is used to create a new user.
```csharp -await client.User.CreateUserAsync(new CreateUserRequest { Name = "name", Age = null }); +await client.User.CreateUserAsync(new CreateUserRequest { Name = "name", Age = 1 }); ```
diff --git a/seed/csharp-sdk/multi-line-docs/snippet.json b/seed/csharp-sdk/multi-line-docs/snippet.json index 705c93dbccf..ef4bf9b4c2d 100644 --- a/seed/csharp-sdk/multi-line-docs/snippet.json +++ b/seed/csharp-sdk/multi-line-docs/snippet.json @@ -22,7 +22,7 @@ }, "snippet": { "type": "typescript", - "client": "using SeedMultiLineDocs;\n\nvar client = new SeedMultiLineDocsClient();\nawait client.User.CreateUserAsync(new CreateUserRequest { Name = \"name\", Age = null });\n" + "client": "using SeedMultiLineDocs;\n\nvar client = new SeedMultiLineDocsClient();\nawait client.User.CreateUserAsync(new CreateUserRequest { Name = \"name\", Age = 1 });\n" } } ] diff --git a/seed/csharp-sdk/multi-line-docs/src/SeedMultiLineDocs.Test/Unit/MockServer/CreateUserTest.cs b/seed/csharp-sdk/multi-line-docs/src/SeedMultiLineDocs.Test/Unit/MockServer/CreateUserTest.cs index ba66162ffe7..8d6567f2618 100644 --- a/seed/csharp-sdk/multi-line-docs/src/SeedMultiLineDocs.Test/Unit/MockServer/CreateUserTest.cs +++ b/seed/csharp-sdk/multi-line-docs/src/SeedMultiLineDocs.Test/Unit/MockServer/CreateUserTest.cs @@ -17,7 +17,8 @@ public async Task MockServerTest() { const string requestJson = """ { - "name": "name" + "name": "name", + "age": 1 } """; @@ -45,7 +46,7 @@ public async Task MockServerTest() ); var response = await Client.User.CreateUserAsync( - new CreateUserRequest { Name = "name", Age = null }, + new CreateUserRequest { Name = "name", Age = 1 }, RequestOptions ); JToken diff --git a/seed/csharp-sdk/multi-line-docs/src/SeedMultiLineDocs/User/UserClient.cs b/seed/csharp-sdk/multi-line-docs/src/SeedMultiLineDocs/User/UserClient.cs index f32ad427df1..e344de9c75a 100644 --- a/seed/csharp-sdk/multi-line-docs/src/SeedMultiLineDocs/User/UserClient.cs +++ b/seed/csharp-sdk/multi-line-docs/src/SeedMultiLineDocs/User/UserClient.cs @@ -60,7 +60,7 @@ public async Task GetUserAsync( /// /// /// - /// await client.User.CreateUserAsync(new CreateUserRequest { Name = "name", Age = null }); + /// await client.User.CreateUserAsync(new CreateUserRequest { Name = "name", Age = 1 }); /// /// public async Task CreateUserAsync( diff --git a/seed/csharp-sdk/oauth-client-credentials-environment-variables/README.md b/seed/csharp-sdk/oauth-client-credentials-environment-variables/README.md index 15bad4b9118..cdc7ffb76af 100644 --- a/seed/csharp-sdk/oauth-client-credentials-environment-variables/README.md +++ b/seed/csharp-sdk/oauth-client-credentials-environment-variables/README.md @@ -26,7 +26,7 @@ await client.Auth.GetTokenWithClientCredentialsAsync( ClientSecret = "client_secret", Audience = "https://api.example.com", GrantType = "client_credentials", - Scope = null, + Scope = "scope", } ); ``` diff --git a/seed/csharp-sdk/oauth-client-credentials-environment-variables/reference.md b/seed/csharp-sdk/oauth-client-credentials-environment-variables/reference.md index 009ce7bba9d..0cf9ccf49a4 100644 --- a/seed/csharp-sdk/oauth-client-credentials-environment-variables/reference.md +++ b/seed/csharp-sdk/oauth-client-credentials-environment-variables/reference.md @@ -20,7 +20,7 @@ await client.Auth.GetTokenWithClientCredentialsAsync( ClientSecret = "client_secret", Audience = "https://api.example.com", GrantType = "client_credentials", - Scope = null, + Scope = "scope", } ); ``` @@ -70,7 +70,7 @@ await client.Auth.RefreshTokenAsync( RefreshToken = "refresh_token", Audience = "https://api.example.com", GrantType = "refresh_token", - Scope = null, + Scope = "scope", } ); ``` diff --git a/seed/csharp-sdk/oauth-client-credentials-environment-variables/snippet.json b/seed/csharp-sdk/oauth-client-credentials-environment-variables/snippet.json index 4d929500e39..d3b20375a07 100644 --- a/seed/csharp-sdk/oauth-client-credentials-environment-variables/snippet.json +++ b/seed/csharp-sdk/oauth-client-credentials-environment-variables/snippet.json @@ -10,7 +10,7 @@ }, "snippet": { "type": "typescript", - "client": "using SeedOauthClientCredentialsEnvironmentVariables;\n\nvar client = new SeedOauthClientCredentialsEnvironmentVariablesClient(\"CLIENT_ID\", \"CLIENT_SECRET\");\nawait client.Auth.GetTokenWithClientCredentialsAsync(\n new GetTokenRequest\n {\n ClientId = \"client_id\",\n ClientSecret = \"client_secret\",\n Audience = \"https://api.example.com\",\n GrantType = \"client_credentials\",\n Scope = null,\n }\n);\n" + "client": "using SeedOauthClientCredentialsEnvironmentVariables;\n\nvar client = new SeedOauthClientCredentialsEnvironmentVariablesClient(\"CLIENT_ID\", \"CLIENT_SECRET\");\nawait client.Auth.GetTokenWithClientCredentialsAsync(\n new GetTokenRequest\n {\n ClientId = \"client_id\",\n ClientSecret = \"client_secret\",\n Audience = \"https://api.example.com\",\n GrantType = \"client_credentials\",\n Scope = \"scope\",\n }\n);\n" } }, { @@ -22,7 +22,7 @@ }, "snippet": { "type": "typescript", - "client": "using SeedOauthClientCredentialsEnvironmentVariables;\n\nvar client = new SeedOauthClientCredentialsEnvironmentVariablesClient(\"CLIENT_ID\", \"CLIENT_SECRET\");\nawait client.Auth.RefreshTokenAsync(\n new RefreshTokenRequest\n {\n ClientId = \"client_id\",\n ClientSecret = \"client_secret\",\n RefreshToken = \"refresh_token\",\n Audience = \"https://api.example.com\",\n GrantType = \"refresh_token\",\n Scope = null,\n }\n);\n" + "client": "using SeedOauthClientCredentialsEnvironmentVariables;\n\nvar client = new SeedOauthClientCredentialsEnvironmentVariablesClient(\"CLIENT_ID\", \"CLIENT_SECRET\");\nawait client.Auth.RefreshTokenAsync(\n new RefreshTokenRequest\n {\n ClientId = \"client_id\",\n ClientSecret = \"client_secret\",\n RefreshToken = \"refresh_token\",\n Audience = \"https://api.example.com\",\n GrantType = \"refresh_token\",\n Scope = \"scope\",\n }\n);\n" } } ] diff --git a/seed/csharp-sdk/oauth-client-credentials-environment-variables/src/SeedOauthClientCredentialsEnvironmentVariables.Test/Unit/MockServer/GetTokenWithClientCredentialsTest.cs b/seed/csharp-sdk/oauth-client-credentials-environment-variables/src/SeedOauthClientCredentialsEnvironmentVariables.Test/Unit/MockServer/GetTokenWithClientCredentialsTest.cs index 4da48db5612..3c6eb48952c 100644 --- a/seed/csharp-sdk/oauth-client-credentials-environment-variables/src/SeedOauthClientCredentialsEnvironmentVariables.Test/Unit/MockServer/GetTokenWithClientCredentialsTest.cs +++ b/seed/csharp-sdk/oauth-client-credentials-environment-variables/src/SeedOauthClientCredentialsEnvironmentVariables.Test/Unit/MockServer/GetTokenWithClientCredentialsTest.cs @@ -20,7 +20,8 @@ public async Task MockServerTest() "client_id": "client_id", "client_secret": "client_secret", "audience": "https://api.example.com", - "grant_type": "client_credentials" + "grant_type": "client_credentials", + "scope": "scope" } """; @@ -54,7 +55,7 @@ public async Task MockServerTest() ClientSecret = "client_secret", Audience = "https://api.example.com", GrantType = "client_credentials", - Scope = null, + Scope = "scope", }, RequestOptions ); diff --git a/seed/csharp-sdk/oauth-client-credentials-environment-variables/src/SeedOauthClientCredentialsEnvironmentVariables.Test/Unit/MockServer/RefreshTokenTest.cs b/seed/csharp-sdk/oauth-client-credentials-environment-variables/src/SeedOauthClientCredentialsEnvironmentVariables.Test/Unit/MockServer/RefreshTokenTest.cs index be6651cf2a1..8e61f60eba1 100644 --- a/seed/csharp-sdk/oauth-client-credentials-environment-variables/src/SeedOauthClientCredentialsEnvironmentVariables.Test/Unit/MockServer/RefreshTokenTest.cs +++ b/seed/csharp-sdk/oauth-client-credentials-environment-variables/src/SeedOauthClientCredentialsEnvironmentVariables.Test/Unit/MockServer/RefreshTokenTest.cs @@ -21,7 +21,8 @@ public async Task MockServerTest() "client_secret": "client_secret", "refresh_token": "refresh_token", "audience": "https://api.example.com", - "grant_type": "refresh_token" + "grant_type": "refresh_token", + "scope": "scope" } """; @@ -56,7 +57,7 @@ public async Task MockServerTest() RefreshToken = "refresh_token", Audience = "https://api.example.com", GrantType = "refresh_token", - Scope = null, + Scope = "scope", }, RequestOptions ); diff --git a/seed/csharp-sdk/oauth-client-credentials-environment-variables/src/SeedOauthClientCredentialsEnvironmentVariables/Auth/AuthClient.cs b/seed/csharp-sdk/oauth-client-credentials-environment-variables/src/SeedOauthClientCredentialsEnvironmentVariables/Auth/AuthClient.cs index ace972c9be2..460862f8af8 100644 --- a/seed/csharp-sdk/oauth-client-credentials-environment-variables/src/SeedOauthClientCredentialsEnvironmentVariables/Auth/AuthClient.cs +++ b/seed/csharp-sdk/oauth-client-credentials-environment-variables/src/SeedOauthClientCredentialsEnvironmentVariables/Auth/AuthClient.cs @@ -25,7 +25,7 @@ internal AuthClient(RawClient client) /// ClientSecret = "client_secret", /// Audience = "https://api.example.com", /// GrantType = "client_credentials", - /// Scope = null, + /// Scope = "scope", /// } /// ); ///
@@ -80,7 +80,7 @@ public async Task GetTokenWithClientCredentialsAsync( /// RefreshToken = "refresh_token", /// Audience = "https://api.example.com", /// GrantType = "refresh_token", - /// Scope = null, + /// Scope = "scope", /// } /// ); /// diff --git a/seed/csharp-sdk/oauth-client-credentials-nested-root/README.md b/seed/csharp-sdk/oauth-client-credentials-nested-root/README.md index 98d32f9b8f4..fa1033470cf 100644 --- a/seed/csharp-sdk/oauth-client-credentials-nested-root/README.md +++ b/seed/csharp-sdk/oauth-client-credentials-nested-root/README.md @@ -27,7 +27,7 @@ await client.Auth.GetTokenAsync( ClientSecret = "client_secret", Audience = "https://api.example.com", GrantType = "client_credentials", - Scope = null, + Scope = "scope", } ); ``` diff --git a/seed/csharp-sdk/oauth-client-credentials-nested-root/reference.md b/seed/csharp-sdk/oauth-client-credentials-nested-root/reference.md index d499c702d9c..0b5a4d941f1 100644 --- a/seed/csharp-sdk/oauth-client-credentials-nested-root/reference.md +++ b/seed/csharp-sdk/oauth-client-credentials-nested-root/reference.md @@ -20,7 +20,7 @@ await client.Auth.GetTokenAsync( ClientSecret = "client_secret", Audience = "https://api.example.com", GrantType = "client_credentials", - Scope = null, + Scope = "scope", } ); ``` diff --git a/seed/csharp-sdk/oauth-client-credentials-nested-root/snippet.json b/seed/csharp-sdk/oauth-client-credentials-nested-root/snippet.json index e5045585b2b..e39f7dbdfd7 100644 --- a/seed/csharp-sdk/oauth-client-credentials-nested-root/snippet.json +++ b/seed/csharp-sdk/oauth-client-credentials-nested-root/snippet.json @@ -10,7 +10,7 @@ }, "snippet": { "type": "typescript", - "client": "using SeedOauthClientCredentials.Auth;\nusing SeedOauthClientCredentials;\n\nvar client = new SeedOauthClientCredentialsClient(\"CLIENT_ID\", \"CLIENT_SECRET\");\nawait client.Auth.GetTokenAsync(\n new GetTokenRequest\n {\n ClientId = \"client_id\",\n ClientSecret = \"client_secret\",\n Audience = \"https://api.example.com\",\n GrantType = \"client_credentials\",\n Scope = null,\n }\n);\n" + "client": "using SeedOauthClientCredentials.Auth;\nusing SeedOauthClientCredentials;\n\nvar client = new SeedOauthClientCredentialsClient(\"CLIENT_ID\", \"CLIENT_SECRET\");\nawait client.Auth.GetTokenAsync(\n new GetTokenRequest\n {\n ClientId = \"client_id\",\n ClientSecret = \"client_secret\",\n Audience = \"https://api.example.com\",\n GrantType = \"client_credentials\",\n Scope = \"scope\",\n }\n);\n" } } ] diff --git a/seed/csharp-sdk/oauth-client-credentials-nested-root/src/SeedOauthClientCredentials.Test/Unit/MockServer/GetTokenTest.cs b/seed/csharp-sdk/oauth-client-credentials-nested-root/src/SeedOauthClientCredentials.Test/Unit/MockServer/GetTokenTest.cs index 8f30e7471bb..1c6f068090c 100644 --- a/seed/csharp-sdk/oauth-client-credentials-nested-root/src/SeedOauthClientCredentials.Test/Unit/MockServer/GetTokenTest.cs +++ b/seed/csharp-sdk/oauth-client-credentials-nested-root/src/SeedOauthClientCredentials.Test/Unit/MockServer/GetTokenTest.cs @@ -20,7 +20,8 @@ public async Task MockServerTest() "client_id": "client_id", "client_secret": "client_secret", "audience": "https://api.example.com", - "grant_type": "client_credentials" + "grant_type": "client_credentials", + "scope": "scope" } """; @@ -54,7 +55,7 @@ public async Task MockServerTest() ClientSecret = "client_secret", Audience = "https://api.example.com", GrantType = "client_credentials", - Scope = null, + Scope = "scope", }, RequestOptions ); diff --git a/seed/csharp-sdk/oauth-client-credentials-nested-root/src/SeedOauthClientCredentials/Auth/AuthClient.cs b/seed/csharp-sdk/oauth-client-credentials-nested-root/src/SeedOauthClientCredentials/Auth/AuthClient.cs index d915ece7a45..244e8c07351 100644 --- a/seed/csharp-sdk/oauth-client-credentials-nested-root/src/SeedOauthClientCredentials/Auth/AuthClient.cs +++ b/seed/csharp-sdk/oauth-client-credentials-nested-root/src/SeedOauthClientCredentials/Auth/AuthClient.cs @@ -26,7 +26,7 @@ internal AuthClient(RawClient client) /// ClientSecret = "client_secret", /// Audience = "https://api.example.com", /// GrantType = "client_credentials", - /// Scope = null, + /// Scope = "scope", /// } /// ); /// diff --git a/seed/csharp-sdk/oauth-client-credentials/README.md b/seed/csharp-sdk/oauth-client-credentials/README.md index 059219529ad..33128686ea2 100644 --- a/seed/csharp-sdk/oauth-client-credentials/README.md +++ b/seed/csharp-sdk/oauth-client-credentials/README.md @@ -26,7 +26,7 @@ await client.Auth.GetTokenWithClientCredentialsAsync( ClientSecret = "client_secret", Audience = "https://api.example.com", GrantType = "client_credentials", - Scope = null, + Scope = "scope", } ); ``` diff --git a/seed/csharp-sdk/oauth-client-credentials/reference.md b/seed/csharp-sdk/oauth-client-credentials/reference.md index a1513ed0f8e..068cd95a61b 100644 --- a/seed/csharp-sdk/oauth-client-credentials/reference.md +++ b/seed/csharp-sdk/oauth-client-credentials/reference.md @@ -20,7 +20,7 @@ await client.Auth.GetTokenWithClientCredentialsAsync( ClientSecret = "client_secret", Audience = "https://api.example.com", GrantType = "client_credentials", - Scope = null, + Scope = "scope", } ); ``` @@ -70,7 +70,7 @@ await client.Auth.RefreshTokenAsync( RefreshToken = "refresh_token", Audience = "https://api.example.com", GrantType = "refresh_token", - Scope = null, + Scope = "scope", } ); ``` diff --git a/seed/csharp-sdk/oauth-client-credentials/snippet.json b/seed/csharp-sdk/oauth-client-credentials/snippet.json index a33171e2e04..4b8f52cce00 100644 --- a/seed/csharp-sdk/oauth-client-credentials/snippet.json +++ b/seed/csharp-sdk/oauth-client-credentials/snippet.json @@ -10,7 +10,7 @@ }, "snippet": { "type": "typescript", - "client": "using SeedOauthClientCredentials;\n\nvar client = new SeedOauthClientCredentialsClient(\"CLIENT_ID\", \"CLIENT_SECRET\");\nawait client.Auth.GetTokenWithClientCredentialsAsync(\n new GetTokenRequest\n {\n ClientId = \"client_id\",\n ClientSecret = \"client_secret\",\n Audience = \"https://api.example.com\",\n GrantType = \"client_credentials\",\n Scope = null,\n }\n);\n" + "client": "using SeedOauthClientCredentials;\n\nvar client = new SeedOauthClientCredentialsClient(\"CLIENT_ID\", \"CLIENT_SECRET\");\nawait client.Auth.GetTokenWithClientCredentialsAsync(\n new GetTokenRequest\n {\n ClientId = \"client_id\",\n ClientSecret = \"client_secret\",\n Audience = \"https://api.example.com\",\n GrantType = \"client_credentials\",\n Scope = \"scope\",\n }\n);\n" } }, { @@ -22,7 +22,7 @@ }, "snippet": { "type": "typescript", - "client": "using SeedOauthClientCredentials;\n\nvar client = new SeedOauthClientCredentialsClient(\"CLIENT_ID\", \"CLIENT_SECRET\");\nawait client.Auth.RefreshTokenAsync(\n new RefreshTokenRequest\n {\n ClientId = \"client_id\",\n ClientSecret = \"client_secret\",\n RefreshToken = \"refresh_token\",\n Audience = \"https://api.example.com\",\n GrantType = \"refresh_token\",\n Scope = null,\n }\n);\n" + "client": "using SeedOauthClientCredentials;\n\nvar client = new SeedOauthClientCredentialsClient(\"CLIENT_ID\", \"CLIENT_SECRET\");\nawait client.Auth.RefreshTokenAsync(\n new RefreshTokenRequest\n {\n ClientId = \"client_id\",\n ClientSecret = \"client_secret\",\n RefreshToken = \"refresh_token\",\n Audience = \"https://api.example.com\",\n GrantType = \"refresh_token\",\n Scope = \"scope\",\n }\n);\n" } } ] diff --git a/seed/csharp-sdk/oauth-client-credentials/src/SeedOauthClientCredentials.Test/Unit/MockServer/GetTokenWithClientCredentialsTest.cs b/seed/csharp-sdk/oauth-client-credentials/src/SeedOauthClientCredentials.Test/Unit/MockServer/GetTokenWithClientCredentialsTest.cs index 09341d35542..1bb38f32c64 100644 --- a/seed/csharp-sdk/oauth-client-credentials/src/SeedOauthClientCredentials.Test/Unit/MockServer/GetTokenWithClientCredentialsTest.cs +++ b/seed/csharp-sdk/oauth-client-credentials/src/SeedOauthClientCredentials.Test/Unit/MockServer/GetTokenWithClientCredentialsTest.cs @@ -20,7 +20,8 @@ public async Task MockServerTest() "client_id": "client_id", "client_secret": "client_secret", "audience": "https://api.example.com", - "grant_type": "client_credentials" + "grant_type": "client_credentials", + "scope": "scope" } """; @@ -54,7 +55,7 @@ public async Task MockServerTest() ClientSecret = "client_secret", Audience = "https://api.example.com", GrantType = "client_credentials", - Scope = null, + Scope = "scope", }, RequestOptions ); diff --git a/seed/csharp-sdk/oauth-client-credentials/src/SeedOauthClientCredentials.Test/Unit/MockServer/RefreshTokenTest.cs b/seed/csharp-sdk/oauth-client-credentials/src/SeedOauthClientCredentials.Test/Unit/MockServer/RefreshTokenTest.cs index bce9af83ac8..c055ec03c78 100644 --- a/seed/csharp-sdk/oauth-client-credentials/src/SeedOauthClientCredentials.Test/Unit/MockServer/RefreshTokenTest.cs +++ b/seed/csharp-sdk/oauth-client-credentials/src/SeedOauthClientCredentials.Test/Unit/MockServer/RefreshTokenTest.cs @@ -21,7 +21,8 @@ public async Task MockServerTest() "client_secret": "client_secret", "refresh_token": "refresh_token", "audience": "https://api.example.com", - "grant_type": "refresh_token" + "grant_type": "refresh_token", + "scope": "scope" } """; @@ -56,7 +57,7 @@ public async Task MockServerTest() RefreshToken = "refresh_token", Audience = "https://api.example.com", GrantType = "refresh_token", - Scope = null, + Scope = "scope", }, RequestOptions ); diff --git a/seed/csharp-sdk/oauth-client-credentials/src/SeedOauthClientCredentials/Auth/AuthClient.cs b/seed/csharp-sdk/oauth-client-credentials/src/SeedOauthClientCredentials/Auth/AuthClient.cs index 8fd5af38fc9..6d7ea5e26a2 100644 --- a/seed/csharp-sdk/oauth-client-credentials/src/SeedOauthClientCredentials/Auth/AuthClient.cs +++ b/seed/csharp-sdk/oauth-client-credentials/src/SeedOauthClientCredentials/Auth/AuthClient.cs @@ -25,7 +25,7 @@ internal AuthClient(RawClient client) /// ClientSecret = "client_secret", /// Audience = "https://api.example.com", /// GrantType = "client_credentials", - /// Scope = null, + /// Scope = "scope", /// } /// ); /// @@ -77,7 +77,7 @@ public async Task GetTokenWithClientCredentialsAsync( /// RefreshToken = "refresh_token", /// Audience = "https://api.example.com", /// GrantType = "refresh_token", - /// Scope = null, + /// Scope = "scope", /// } /// ); /// diff --git a/seed/csharp-sdk/optional/no-simplify-object-dictionaries/README.md b/seed/csharp-sdk/optional/no-simplify-object-dictionaries/README.md index 0ae498cf969..42082bb87f7 100644 --- a/seed/csharp-sdk/optional/no-simplify-object-dictionaries/README.md +++ b/seed/csharp-sdk/optional/no-simplify-object-dictionaries/README.md @@ -19,7 +19,15 @@ Instantiate and use the client with the following: using SeedObjectsWithImports; var client = new SeedObjectsWithImportsClient(); -await client.Optional.SendOptionalBodyAsync(null); +await client.Optional.SendOptionalBodyAsync( + new Dictionary() + { + { + "string", + new Dictionary() { { "key", "value" } } + }, + } +); ``` ## Exception Handling diff --git a/seed/csharp-sdk/optional/no-simplify-object-dictionaries/reference.md b/seed/csharp-sdk/optional/no-simplify-object-dictionaries/reference.md index 85cca5de8c2..33b44a0e342 100644 --- a/seed/csharp-sdk/optional/no-simplify-object-dictionaries/reference.md +++ b/seed/csharp-sdk/optional/no-simplify-object-dictionaries/reference.md @@ -13,7 +13,15 @@
```csharp -await client.Optional.SendOptionalBodyAsync(null); +await client.Optional.SendOptionalBodyAsync( + new Dictionary() + { + { + "string", + new Dictionary() { { "key", "value" } } + }, + } +); ```
diff --git a/seed/csharp-sdk/optional/no-simplify-object-dictionaries/snippet.json b/seed/csharp-sdk/optional/no-simplify-object-dictionaries/snippet.json index 0546f62073f..4aa103e15da 100644 --- a/seed/csharp-sdk/optional/no-simplify-object-dictionaries/snippet.json +++ b/seed/csharp-sdk/optional/no-simplify-object-dictionaries/snippet.json @@ -10,7 +10,7 @@ }, "snippet": { "type": "typescript", - "client": "using SeedObjectsWithImports;\n\nvar client = new SeedObjectsWithImportsClient();\nawait client.Optional.SendOptionalBodyAsync(null);\n" + "client": "using SeedObjectsWithImports;\n\nvar client = new SeedObjectsWithImportsClient();\nawait client.Optional.SendOptionalBodyAsync(\n new Dictionary()\n {\n {\n \"string\",\n new Dictionary() { { \"key\", \"value\" } }\n },\n }\n);\n" } } ] diff --git a/seed/csharp-sdk/optional/no-simplify-object-dictionaries/src/SeedObjectsWithImports.Test/Unit/MockServer/SendOptionalBodyTest.cs b/seed/csharp-sdk/optional/no-simplify-object-dictionaries/src/SeedObjectsWithImports.Test/Unit/MockServer/SendOptionalBodyTest.cs index 2b933e5671c..30eaf83aa46 100644 --- a/seed/csharp-sdk/optional/no-simplify-object-dictionaries/src/SeedObjectsWithImports.Test/Unit/MockServer/SendOptionalBodyTest.cs +++ b/seed/csharp-sdk/optional/no-simplify-object-dictionaries/src/SeedObjectsWithImports.Test/Unit/MockServer/SendOptionalBodyTest.cs @@ -15,7 +15,11 @@ public class SendOptionalBodyTest : BaseMockServerTest public async Task MockServerTest() { const string requestJson = """ - + { + "string": { + "key": "value" + } + } """; const string mockResponse = """ @@ -28,7 +32,7 @@ public async Task MockServerTest() .RequestBuilders.Request.Create() .WithPath("/send-optional-body") .UsingPost() - .WithBody(requestJson) + .WithBodyAsJson(requestJson) ) .RespondWith( WireMock @@ -37,7 +41,16 @@ public async Task MockServerTest() .WithBody(mockResponse) ); - var response = await Client.Optional.SendOptionalBodyAsync(null, RequestOptions); + var response = await Client.Optional.SendOptionalBodyAsync( + new Dictionary() + { + { + "string", + new Dictionary() { { "key", "value" } } + }, + }, + RequestOptions + ); JToken .Parse(mockResponse) .Should() diff --git a/seed/csharp-sdk/optional/no-simplify-object-dictionaries/src/SeedObjectsWithImports/Optional/OptionalClient.cs b/seed/csharp-sdk/optional/no-simplify-object-dictionaries/src/SeedObjectsWithImports/Optional/OptionalClient.cs index f6cb148b5ea..6e6c625c8de 100644 --- a/seed/csharp-sdk/optional/no-simplify-object-dictionaries/src/SeedObjectsWithImports/Optional/OptionalClient.cs +++ b/seed/csharp-sdk/optional/no-simplify-object-dictionaries/src/SeedObjectsWithImports/Optional/OptionalClient.cs @@ -18,7 +18,15 @@ internal OptionalClient(RawClient client) /// /// - /// await client.Optional.SendOptionalBodyAsync(null); + /// await client.Optional.SendOptionalBodyAsync( + /// new Dictionary<string, object>() + /// { + /// { + /// "string", + /// new Dictionary<object, object?>() { { "key", "value" } } + /// }, + /// } + /// ); /// /// public async Task SendOptionalBodyAsync( diff --git a/seed/csharp-sdk/pagination/README.md b/seed/csharp-sdk/pagination/README.md index 0a1c2d228e6..51b5856f401 100644 --- a/seed/csharp-sdk/pagination/README.md +++ b/seed/csharp-sdk/pagination/README.md @@ -20,7 +20,7 @@ using SeedPagination; var client = new SeedPaginationClient("TOKEN"); await client.Users.ListWithBodyCursorPaginationAsync( - new ListUsersBodyCursorPaginationRequest { Pagination = null } + new ListUsersBodyCursorPaginationRequest { Pagination = new WithCursor { Cursor = "cursor" } } ); ``` diff --git a/seed/csharp-sdk/pagination/reference.md b/seed/csharp-sdk/pagination/reference.md index 1fd815ad0ef..a58df02639d 100644 --- a/seed/csharp-sdk/pagination/reference.md +++ b/seed/csharp-sdk/pagination/reference.md @@ -13,7 +13,15 @@
```csharp -await client.Users.ListWithCursorPaginationAsync(new ListUsersCursorPaginationRequest()); +await client.Users.ListWithCursorPaginationAsync( + new ListUsersCursorPaginationRequest + { + Page = 1, + PerPage = 1, + Order = Order.Asc, + StartingAfter = "starting_after", + } +); ```
@@ -54,7 +62,7 @@ await client.Users.ListWithCursorPaginationAsync(new ListUsersCursorPaginationRe ```csharp await client.Users.ListWithBodyCursorPaginationAsync( - new ListUsersBodyCursorPaginationRequest { Pagination = null } + new ListUsersBodyCursorPaginationRequest { Pagination = new WithCursor { Cursor = "cursor" } } ); ``` @@ -95,7 +103,15 @@ await client.Users.ListWithBodyCursorPaginationAsync(
```csharp -await client.Users.ListWithOffsetPaginationAsync(new ListUsersOffsetPaginationRequest()); +await client.Users.ListWithOffsetPaginationAsync( + new ListUsersOffsetPaginationRequest + { + Page = 1, + PerPage = 1, + Order = Order.Asc, + StartingAfter = "starting_after", + } +); ```
@@ -136,7 +152,7 @@ await client.Users.ListWithOffsetPaginationAsync(new ListUsersOffsetPaginationRe ```csharp await client.Users.ListWithBodyOffsetPaginationAsync( - new ListUsersBodyOffsetPaginationRequest { Pagination = null } + new ListUsersBodyOffsetPaginationRequest { Pagination = new WithPage { Page = 1 } } ); ``` @@ -177,7 +193,14 @@ await client.Users.ListWithBodyOffsetPaginationAsync(
```csharp -await client.Users.ListWithOffsetStepPaginationAsync(new ListUsersOffsetStepPaginationRequest()); +await client.Users.ListWithOffsetStepPaginationAsync( + new ListUsersOffsetStepPaginationRequest + { + Page = 1, + Limit = 1, + Order = Order.Asc, + } +); ```
@@ -218,7 +241,12 @@ await client.Users.ListWithOffsetStepPaginationAsync(new ListUsersOffsetStepPagi ```csharp await client.Users.ListWithOffsetPaginationHasNextPageAsync( - new ListWithOffsetPaginationHasNextPageRequest() + new ListWithOffsetPaginationHasNextPageRequest + { + Page = 1, + Limit = 1, + Order = Order.Asc, + } ); ``` @@ -259,7 +287,9 @@ await client.Users.ListWithOffsetPaginationHasNextPageAsync(
```csharp -await client.Users.ListWithExtendedResultsAsync(new ListUsersExtendedRequest()); +await client.Users.ListWithExtendedResultsAsync( + new ListUsersExtendedRequest { Cursor = "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32" } +); ```
@@ -300,7 +330,7 @@ await client.Users.ListWithExtendedResultsAsync(new ListUsersExtendedRequest()); ```csharp await client.Users.ListWithExtendedResultsAndOptionalDataAsync( - new ListUsersExtendedRequestForOptionalData() + new ListUsersExtendedRequestForOptionalData { Cursor = "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32" } ); ``` @@ -341,7 +371,9 @@ await client.Users.ListWithExtendedResultsAndOptionalDataAsync(
```csharp -await client.Users.ListUsernamesAsync(new ListUsernamesRequest()); +await client.Users.ListUsernamesAsync( + new ListUsernamesRequest { StartingAfter = "starting_after" } +); ```
@@ -381,7 +413,7 @@ await client.Users.ListUsernamesAsync(new ListUsernamesRequest());
```csharp -await client.Users.ListWithGlobalConfigAsync(new ListWithGlobalConfigRequest()); +await client.Users.ListWithGlobalConfigAsync(new ListWithGlobalConfigRequest { Offset = 1 }); ```
diff --git a/seed/csharp-sdk/pagination/snippet.json b/seed/csharp-sdk/pagination/snippet.json index 8968a1ac7e7..9a02cb682ec 100644 --- a/seed/csharp-sdk/pagination/snippet.json +++ b/seed/csharp-sdk/pagination/snippet.json @@ -10,7 +10,7 @@ }, "snippet": { "type": "typescript", - "client": "using SeedPagination;\n\nvar client = new SeedPaginationClient(\"TOKEN\");\nawait client.Users.ListWithCursorPaginationAsync(new ListUsersCursorPaginationRequest());\n" + "client": "using SeedPagination;\n\nvar client = new SeedPaginationClient(\"TOKEN\");\nawait client.Users.ListWithCursorPaginationAsync(\n new ListUsersCursorPaginationRequest\n {\n Page = 1,\n PerPage = 1,\n Order = Order.Asc,\n StartingAfter = \"starting_after\",\n }\n);\n" } }, { @@ -22,7 +22,7 @@ }, "snippet": { "type": "typescript", - "client": "using SeedPagination;\n\nvar client = new SeedPaginationClient(\"TOKEN\");\nawait client.Users.ListWithBodyCursorPaginationAsync(\n new ListUsersBodyCursorPaginationRequest { Pagination = null }\n);\n" + "client": "using SeedPagination;\n\nvar client = new SeedPaginationClient(\"TOKEN\");\nawait client.Users.ListWithBodyCursorPaginationAsync(\n new ListUsersBodyCursorPaginationRequest { Pagination = new WithCursor { Cursor = \"cursor\" } }\n);\n" } }, { @@ -34,7 +34,7 @@ }, "snippet": { "type": "typescript", - "client": "using SeedPagination;\n\nvar client = new SeedPaginationClient(\"TOKEN\");\nawait client.Users.ListWithOffsetPaginationAsync(new ListUsersOffsetPaginationRequest());\n" + "client": "using SeedPagination;\n\nvar client = new SeedPaginationClient(\"TOKEN\");\nawait client.Users.ListWithOffsetPaginationAsync(\n new ListUsersOffsetPaginationRequest\n {\n Page = 1,\n PerPage = 1,\n Order = Order.Asc,\n StartingAfter = \"starting_after\",\n }\n);\n" } }, { @@ -46,7 +46,7 @@ }, "snippet": { "type": "typescript", - "client": "using SeedPagination;\n\nvar client = new SeedPaginationClient(\"TOKEN\");\nawait client.Users.ListWithBodyOffsetPaginationAsync(\n new ListUsersBodyOffsetPaginationRequest { Pagination = null }\n);\n" + "client": "using SeedPagination;\n\nvar client = new SeedPaginationClient(\"TOKEN\");\nawait client.Users.ListWithBodyOffsetPaginationAsync(\n new ListUsersBodyOffsetPaginationRequest { Pagination = new WithPage { Page = 1 } }\n);\n" } }, { @@ -58,7 +58,7 @@ }, "snippet": { "type": "typescript", - "client": "using SeedPagination;\n\nvar client = new SeedPaginationClient(\"TOKEN\");\nawait client.Users.ListWithOffsetStepPaginationAsync(new ListUsersOffsetStepPaginationRequest());\n" + "client": "using SeedPagination;\n\nvar client = new SeedPaginationClient(\"TOKEN\");\nawait client.Users.ListWithOffsetStepPaginationAsync(\n new ListUsersOffsetStepPaginationRequest\n {\n Page = 1,\n Limit = 1,\n Order = Order.Asc,\n }\n);\n" } }, { @@ -70,7 +70,7 @@ }, "snippet": { "type": "typescript", - "client": "using SeedPagination;\n\nvar client = new SeedPaginationClient(\"TOKEN\");\nawait client.Users.ListWithOffsetPaginationHasNextPageAsync(\n new ListWithOffsetPaginationHasNextPageRequest()\n);\n" + "client": "using SeedPagination;\n\nvar client = new SeedPaginationClient(\"TOKEN\");\nawait client.Users.ListWithOffsetPaginationHasNextPageAsync(\n new ListWithOffsetPaginationHasNextPageRequest\n {\n Page = 1,\n Limit = 1,\n Order = Order.Asc,\n }\n);\n" } }, { @@ -82,7 +82,7 @@ }, "snippet": { "type": "typescript", - "client": "using SeedPagination;\n\nvar client = new SeedPaginationClient(\"TOKEN\");\nawait client.Users.ListWithExtendedResultsAsync(new ListUsersExtendedRequest());\n" + "client": "using SeedPagination;\n\nvar client = new SeedPaginationClient(\"TOKEN\");\nawait client.Users.ListWithExtendedResultsAsync(\n new ListUsersExtendedRequest { Cursor = \"d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32\" }\n);\n" } }, { @@ -94,7 +94,7 @@ }, "snippet": { "type": "typescript", - "client": "using SeedPagination;\n\nvar client = new SeedPaginationClient(\"TOKEN\");\nawait client.Users.ListWithExtendedResultsAndOptionalDataAsync(\n new ListUsersExtendedRequestForOptionalData()\n);\n" + "client": "using SeedPagination;\n\nvar client = new SeedPaginationClient(\"TOKEN\");\nawait client.Users.ListWithExtendedResultsAndOptionalDataAsync(\n new ListUsersExtendedRequestForOptionalData { Cursor = \"d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32\" }\n);\n" } }, { @@ -106,7 +106,7 @@ }, "snippet": { "type": "typescript", - "client": "using SeedPagination;\n\nvar client = new SeedPaginationClient(\"TOKEN\");\nawait client.Users.ListUsernamesAsync(new ListUsernamesRequest());\n" + "client": "using SeedPagination;\n\nvar client = new SeedPaginationClient(\"TOKEN\");\nawait client.Users.ListUsernamesAsync(\n new ListUsernamesRequest { StartingAfter = \"starting_after\" }\n);\n" } }, { @@ -118,7 +118,7 @@ }, "snippet": { "type": "typescript", - "client": "using SeedPagination;\n\nvar client = new SeedPaginationClient(\"TOKEN\");\nawait client.Users.ListWithGlobalConfigAsync(new ListWithGlobalConfigRequest());\n" + "client": "using SeedPagination;\n\nvar client = new SeedPaginationClient(\"TOKEN\");\nawait client.Users.ListWithGlobalConfigAsync(new ListWithGlobalConfigRequest { Offset = 1 });\n" } } ] diff --git a/seed/csharp-sdk/pagination/src/SeedPagination.Test/Unit/MockServer/ListUsernamesTest.cs b/seed/csharp-sdk/pagination/src/SeedPagination.Test/Unit/MockServer/ListUsernamesTest.cs index fb0eb168fa8..ae3186eece7 100644 --- a/seed/csharp-sdk/pagination/src/SeedPagination.Test/Unit/MockServer/ListUsernamesTest.cs +++ b/seed/csharp-sdk/pagination/src/SeedPagination.Test/Unit/MockServer/ListUsernamesTest.cs @@ -28,7 +28,13 @@ public async Task MockServerTest() """; Server - .Given(WireMock.RequestBuilders.Request.Create().WithPath("/users").UsingGet()) + .Given( + WireMock + .RequestBuilders.Request.Create() + .WithPath("/users") + .WithParam("starting_after", "starting_after") + .UsingGet() + ) .RespondWith( WireMock .ResponseBuilders.Response.Create() @@ -37,7 +43,7 @@ public async Task MockServerTest() ); var response = await Client.Users.ListUsernamesAsync( - new ListUsernamesRequest(), + new ListUsernamesRequest { StartingAfter = "starting_after" }, RequestOptions ); JToken diff --git a/seed/csharp-sdk/pagination/src/SeedPagination.Test/Unit/MockServer/ListWithBodyCursorPaginationTest.cs b/seed/csharp-sdk/pagination/src/SeedPagination.Test/Unit/MockServer/ListWithBodyCursorPaginationTest.cs index 82429bf56fd..7ec736377ba 100644 --- a/seed/csharp-sdk/pagination/src/SeedPagination.Test/Unit/MockServer/ListWithBodyCursorPaginationTest.cs +++ b/seed/csharp-sdk/pagination/src/SeedPagination.Test/Unit/MockServer/ListWithBodyCursorPaginationTest.cs @@ -16,7 +16,11 @@ public class ListWithBodyCursorPaginationTest : BaseMockServerTest public async Task MockServerTest() { const string requestJson = """ - {} + { + "pagination": { + "cursor": "cursor" + } + } """; const string mockResponse = """ @@ -61,7 +65,10 @@ public async Task MockServerTest() ); var response = await Client.Users.ListWithBodyCursorPaginationAsync( - new ListUsersBodyCursorPaginationRequest { Pagination = null }, + new ListUsersBodyCursorPaginationRequest + { + Pagination = new WithCursor { Cursor = "cursor" }, + }, RequestOptions ); JToken diff --git a/seed/csharp-sdk/pagination/src/SeedPagination.Test/Unit/MockServer/ListWithBodyOffsetPaginationTest.cs b/seed/csharp-sdk/pagination/src/SeedPagination.Test/Unit/MockServer/ListWithBodyOffsetPaginationTest.cs index 6500ad89df7..d8e44127b48 100644 --- a/seed/csharp-sdk/pagination/src/SeedPagination.Test/Unit/MockServer/ListWithBodyOffsetPaginationTest.cs +++ b/seed/csharp-sdk/pagination/src/SeedPagination.Test/Unit/MockServer/ListWithBodyOffsetPaginationTest.cs @@ -16,7 +16,11 @@ public class ListWithBodyOffsetPaginationTest : BaseMockServerTest public async Task MockServerTest() { const string requestJson = """ - {} + { + "pagination": { + "page": 1 + } + } """; const string mockResponse = """ @@ -61,7 +65,7 @@ public async Task MockServerTest() ); var response = await Client.Users.ListWithBodyOffsetPaginationAsync( - new ListUsersBodyOffsetPaginationRequest { Pagination = null }, + new ListUsersBodyOffsetPaginationRequest { Pagination = new WithPage { Page = 1 } }, RequestOptions ); JToken diff --git a/seed/csharp-sdk/pagination/src/SeedPagination.Test/Unit/MockServer/ListWithCursorPaginationTest.cs b/seed/csharp-sdk/pagination/src/SeedPagination.Test/Unit/MockServer/ListWithCursorPaginationTest.cs index e5e951d61fa..9d97ada8589 100644 --- a/seed/csharp-sdk/pagination/src/SeedPagination.Test/Unit/MockServer/ListWithCursorPaginationTest.cs +++ b/seed/csharp-sdk/pagination/src/SeedPagination.Test/Unit/MockServer/ListWithCursorPaginationTest.cs @@ -42,7 +42,16 @@ public async Task MockServerTest() """; Server - .Given(WireMock.RequestBuilders.Request.Create().WithPath("/users").UsingGet()) + .Given( + WireMock + .RequestBuilders.Request.Create() + .WithPath("/users") + .WithParam("page", "1") + .WithParam("per_page", "1") + .WithParam("order", "asc") + .WithParam("starting_after", "starting_after") + .UsingGet() + ) .RespondWith( WireMock .ResponseBuilders.Response.Create() @@ -51,7 +60,13 @@ public async Task MockServerTest() ); var response = await Client.Users.ListWithCursorPaginationAsync( - new ListUsersCursorPaginationRequest(), + new ListUsersCursorPaginationRequest + { + Page = 1, + PerPage = 1, + Order = Order.Asc, + StartingAfter = "starting_after", + }, RequestOptions ); JToken diff --git a/seed/csharp-sdk/pagination/src/SeedPagination.Test/Unit/MockServer/ListWithExtendedResultsAndOptionalDataTest.cs b/seed/csharp-sdk/pagination/src/SeedPagination.Test/Unit/MockServer/ListWithExtendedResultsAndOptionalDataTest.cs index c23b376032c..74d0f4138cb 100644 --- a/seed/csharp-sdk/pagination/src/SeedPagination.Test/Unit/MockServer/ListWithExtendedResultsAndOptionalDataTest.cs +++ b/seed/csharp-sdk/pagination/src/SeedPagination.Test/Unit/MockServer/ListWithExtendedResultsAndOptionalDataTest.cs @@ -22,7 +22,13 @@ public async Task MockServerTest() """; Server - .Given(WireMock.RequestBuilders.Request.Create().WithPath("/users").UsingGet()) + .Given( + WireMock + .RequestBuilders.Request.Create() + .WithPath("/users") + .WithParam("cursor", "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32") + .UsingGet() + ) .RespondWith( WireMock .ResponseBuilders.Response.Create() @@ -31,7 +37,10 @@ public async Task MockServerTest() ); var response = await Client.Users.ListWithExtendedResultsAndOptionalDataAsync( - new ListUsersExtendedRequestForOptionalData(), + new ListUsersExtendedRequestForOptionalData + { + Cursor = "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", + }, RequestOptions ); JToken diff --git a/seed/csharp-sdk/pagination/src/SeedPagination.Test/Unit/MockServer/ListWithExtendedResultsTest.cs b/seed/csharp-sdk/pagination/src/SeedPagination.Test/Unit/MockServer/ListWithExtendedResultsTest.cs index 7f21119310d..aaf400738a0 100644 --- a/seed/csharp-sdk/pagination/src/SeedPagination.Test/Unit/MockServer/ListWithExtendedResultsTest.cs +++ b/seed/csharp-sdk/pagination/src/SeedPagination.Test/Unit/MockServer/ListWithExtendedResultsTest.cs @@ -22,7 +22,13 @@ public async Task MockServerTest() """; Server - .Given(WireMock.RequestBuilders.Request.Create().WithPath("/users").UsingGet()) + .Given( + WireMock + .RequestBuilders.Request.Create() + .WithPath("/users") + .WithParam("cursor", "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32") + .UsingGet() + ) .RespondWith( WireMock .ResponseBuilders.Response.Create() @@ -31,7 +37,7 @@ public async Task MockServerTest() ); var response = await Client.Users.ListWithExtendedResultsAsync( - new ListUsersExtendedRequest(), + new ListUsersExtendedRequest { Cursor = "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32" }, RequestOptions ); JToken diff --git a/seed/csharp-sdk/pagination/src/SeedPagination.Test/Unit/MockServer/ListWithGlobalConfigTest.cs b/seed/csharp-sdk/pagination/src/SeedPagination.Test/Unit/MockServer/ListWithGlobalConfigTest.cs index 1929f7a4093..5a98621c0fa 100644 --- a/seed/csharp-sdk/pagination/src/SeedPagination.Test/Unit/MockServer/ListWithGlobalConfigTest.cs +++ b/seed/csharp-sdk/pagination/src/SeedPagination.Test/Unit/MockServer/ListWithGlobalConfigTest.cs @@ -25,7 +25,13 @@ public async Task MockServerTest() """; Server - .Given(WireMock.RequestBuilders.Request.Create().WithPath("/users").UsingGet()) + .Given( + WireMock + .RequestBuilders.Request.Create() + .WithPath("/users") + .WithParam("offset", "1") + .UsingGet() + ) .RespondWith( WireMock .ResponseBuilders.Response.Create() @@ -34,7 +40,7 @@ public async Task MockServerTest() ); var response = await Client.Users.ListWithGlobalConfigAsync( - new ListWithGlobalConfigRequest(), + new ListWithGlobalConfigRequest { Offset = 1 }, RequestOptions ); JToken diff --git a/seed/csharp-sdk/pagination/src/SeedPagination.Test/Unit/MockServer/ListWithOffsetPaginationHasNextPageTest.cs b/seed/csharp-sdk/pagination/src/SeedPagination.Test/Unit/MockServer/ListWithOffsetPaginationHasNextPageTest.cs index bdc085b1aa4..d70397dbbdd 100644 --- a/seed/csharp-sdk/pagination/src/SeedPagination.Test/Unit/MockServer/ListWithOffsetPaginationHasNextPageTest.cs +++ b/seed/csharp-sdk/pagination/src/SeedPagination.Test/Unit/MockServer/ListWithOffsetPaginationHasNextPageTest.cs @@ -42,7 +42,15 @@ public async Task MockServerTest() """; Server - .Given(WireMock.RequestBuilders.Request.Create().WithPath("/users").UsingGet()) + .Given( + WireMock + .RequestBuilders.Request.Create() + .WithPath("/users") + .WithParam("page", "1") + .WithParam("limit", "1") + .WithParam("order", "asc") + .UsingGet() + ) .RespondWith( WireMock .ResponseBuilders.Response.Create() @@ -51,7 +59,12 @@ public async Task MockServerTest() ); var response = await Client.Users.ListWithOffsetPaginationHasNextPageAsync( - new ListWithOffsetPaginationHasNextPageRequest(), + new ListWithOffsetPaginationHasNextPageRequest + { + Page = 1, + Limit = 1, + Order = Order.Asc, + }, RequestOptions ); JToken diff --git a/seed/csharp-sdk/pagination/src/SeedPagination.Test/Unit/MockServer/ListWithOffsetPaginationTest.cs b/seed/csharp-sdk/pagination/src/SeedPagination.Test/Unit/MockServer/ListWithOffsetPaginationTest.cs index b0d169fe28e..ae9cf557bdc 100644 --- a/seed/csharp-sdk/pagination/src/SeedPagination.Test/Unit/MockServer/ListWithOffsetPaginationTest.cs +++ b/seed/csharp-sdk/pagination/src/SeedPagination.Test/Unit/MockServer/ListWithOffsetPaginationTest.cs @@ -42,7 +42,16 @@ public async Task MockServerTest() """; Server - .Given(WireMock.RequestBuilders.Request.Create().WithPath("/users").UsingGet()) + .Given( + WireMock + .RequestBuilders.Request.Create() + .WithPath("/users") + .WithParam("page", "1") + .WithParam("per_page", "1") + .WithParam("order", "asc") + .WithParam("starting_after", "starting_after") + .UsingGet() + ) .RespondWith( WireMock .ResponseBuilders.Response.Create() @@ -51,7 +60,13 @@ public async Task MockServerTest() ); var response = await Client.Users.ListWithOffsetPaginationAsync( - new ListUsersOffsetPaginationRequest(), + new ListUsersOffsetPaginationRequest + { + Page = 1, + PerPage = 1, + Order = Order.Asc, + StartingAfter = "starting_after", + }, RequestOptions ); JToken diff --git a/seed/csharp-sdk/pagination/src/SeedPagination.Test/Unit/MockServer/ListWithOffsetStepPaginationTest.cs b/seed/csharp-sdk/pagination/src/SeedPagination.Test/Unit/MockServer/ListWithOffsetStepPaginationTest.cs index d3f97991b4a..374471bcc9a 100644 --- a/seed/csharp-sdk/pagination/src/SeedPagination.Test/Unit/MockServer/ListWithOffsetStepPaginationTest.cs +++ b/seed/csharp-sdk/pagination/src/SeedPagination.Test/Unit/MockServer/ListWithOffsetStepPaginationTest.cs @@ -42,7 +42,15 @@ public async Task MockServerTest() """; Server - .Given(WireMock.RequestBuilders.Request.Create().WithPath("/users").UsingGet()) + .Given( + WireMock + .RequestBuilders.Request.Create() + .WithPath("/users") + .WithParam("page", "1") + .WithParam("limit", "1") + .WithParam("order", "asc") + .UsingGet() + ) .RespondWith( WireMock .ResponseBuilders.Response.Create() @@ -51,7 +59,12 @@ public async Task MockServerTest() ); var response = await Client.Users.ListWithOffsetStepPaginationAsync( - new ListUsersOffsetStepPaginationRequest(), + new ListUsersOffsetStepPaginationRequest + { + Page = 1, + Limit = 1, + Order = Order.Asc, + }, RequestOptions ); JToken diff --git a/seed/csharp-sdk/pagination/src/SeedPagination/Users/UsersClient.cs b/seed/csharp-sdk/pagination/src/SeedPagination/Users/UsersClient.cs index 6947264f465..314aefdc2ff 100644 --- a/seed/csharp-sdk/pagination/src/SeedPagination/Users/UsersClient.cs +++ b/seed/csharp-sdk/pagination/src/SeedPagination/Users/UsersClient.cs @@ -18,7 +18,15 @@ internal UsersClient(RawClient client) /// /// - /// await client.Users.ListWithCursorPaginationAsync(new ListUsersCursorPaginationRequest()); + /// await client.Users.ListWithCursorPaginationAsync( + /// new ListUsersCursorPaginationRequest + /// { + /// Page = 1, + /// PerPage = 1, + /// Order = Order.Asc, + /// StartingAfter = "starting_after", + /// } + /// ); /// /// public async Task ListWithCursorPaginationAsync( @@ -78,7 +86,7 @@ public async Task ListWithCursorPaginationAsync( /// /// /// await client.Users.ListWithBodyCursorPaginationAsync( - /// new ListUsersBodyCursorPaginationRequest { Pagination = null } + /// new ListUsersBodyCursorPaginationRequest { Pagination = new WithCursor { Cursor = "cursor" } } /// ); /// /// @@ -121,7 +129,15 @@ public async Task ListWithBodyCursorPaginationAsync /// /// - /// await client.Users.ListWithOffsetPaginationAsync(new ListUsersOffsetPaginationRequest()); + /// await client.Users.ListWithOffsetPaginationAsync( + /// new ListUsersOffsetPaginationRequest + /// { + /// Page = 1, + /// PerPage = 1, + /// Order = Order.Asc, + /// StartingAfter = "starting_after", + /// } + /// ); /// /// public async Task ListWithOffsetPaginationAsync( @@ -181,7 +197,7 @@ public async Task ListWithOffsetPaginationAsync( /// /// /// await client.Users.ListWithBodyOffsetPaginationAsync( - /// new ListUsersBodyOffsetPaginationRequest { Pagination = null } + /// new ListUsersBodyOffsetPaginationRequest { Pagination = new WithPage { Page = 1 } } /// ); /// /// @@ -224,7 +240,14 @@ public async Task ListWithBodyOffsetPaginationAsync /// /// - /// await client.Users.ListWithOffsetStepPaginationAsync(new ListUsersOffsetStepPaginationRequest()); + /// await client.Users.ListWithOffsetStepPaginationAsync( + /// new ListUsersOffsetStepPaginationRequest + /// { + /// Page = 1, + /// Limit = 1, + /// Order = Order.Asc, + /// } + /// ); /// /// public async Task ListWithOffsetStepPaginationAsync( @@ -280,7 +303,12 @@ public async Task ListWithOffsetStepPaginationAsync /// /// /// await client.Users.ListWithOffsetPaginationHasNextPageAsync( - /// new ListWithOffsetPaginationHasNextPageRequest() + /// new ListWithOffsetPaginationHasNextPageRequest + /// { + /// Page = 1, + /// Limit = 1, + /// Order = Order.Asc, + /// } /// ); /// /// @@ -336,7 +364,9 @@ public async Task ListWithOffsetPaginationHasNextPa /// /// - /// await client.Users.ListWithExtendedResultsAsync(new ListUsersExtendedRequest()); + /// await client.Users.ListWithExtendedResultsAsync( + /// new ListUsersExtendedRequest { Cursor = "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32" } + /// ); /// /// public async Task ListWithExtendedResultsAsync( @@ -384,7 +414,7 @@ public async Task ListWithExtendedResultsAsync( /// /// /// await client.Users.ListWithExtendedResultsAndOptionalDataAsync( - /// new ListUsersExtendedRequestForOptionalData() + /// new ListUsersExtendedRequestForOptionalData { Cursor = "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32" } /// ); /// /// @@ -432,7 +462,9 @@ public async Task ListWithExtendedResults /// /// - /// await client.Users.ListUsernamesAsync(new ListUsernamesRequest()); + /// await client.Users.ListUsernamesAsync( + /// new ListUsernamesRequest { StartingAfter = "starting_after" } + /// ); /// /// public async Task ListUsernamesAsync( @@ -479,7 +511,7 @@ public async Task ListUsernamesAsync( /// /// - /// await client.Users.ListWithGlobalConfigAsync(new ListWithGlobalConfigRequest()); + /// await client.Users.ListWithGlobalConfigAsync(new ListWithGlobalConfigRequest { Offset = 1 }); /// /// public async Task ListWithGlobalConfigAsync( diff --git a/seed/csharp-sdk/trace/reference.md b/seed/csharp-sdk/trace/reference.md index 5b75bf31efe..79e4035e32e 100644 --- a/seed/csharp-sdk/trace/reference.md +++ b/seed/csharp-sdk/trace/reference.md @@ -272,19 +272,57 @@ await client.Admin.StoreTracedTestCaseAsync( { SubmissionId = "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", LineNumber = 1, - ReturnValue = null, - ExpressionLocation = null, - Stack = new StackInformation { NumStackFrames = 1, TopStackFrame = null }, - Stdout = null, + ReturnValue = 1, + ExpressionLocation = new ExpressionLocation { Start = 1, Offset = 1 }, + Stack = new StackInformation + { + NumStackFrames = 1, + TopStackFrame = new StackFrame + { + MethodName = "methodName", + LineNumber = 1, + Scopes = new List() + { + new Scope + { + Variables = new Dictionary() { { "variables", 1 } }, + }, + new Scope + { + Variables = new Dictionary() { { "variables", 1 } }, + }, + }, + }, + }, + Stdout = "stdout", }, new TraceResponse { SubmissionId = "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", LineNumber = 1, - ReturnValue = null, - ExpressionLocation = null, - Stack = new StackInformation { NumStackFrames = 1, TopStackFrame = null }, - Stdout = null, + ReturnValue = 1, + ExpressionLocation = new ExpressionLocation { Start = 1, Offset = 1 }, + Stack = new StackInformation + { + NumStackFrames = 1, + TopStackFrame = new StackFrame + { + MethodName = "methodName", + LineNumber = 1, + Scopes = new List() + { + new Scope + { + Variables = new Dictionary() { { "variables", 1 } }, + }, + new Scope + { + Variables = new Dictionary() { { "variables", 1 } }, + }, + }, + }, + }, + Stdout = "stdout", }, }, } @@ -354,20 +392,58 @@ await client.Admin.StoreTracedTestCaseV2Async( SubmissionId = "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", LineNumber = 1, File = new TracedFile { Filename = "filename", Directory = "directory" }, - ReturnValue = null, - ExpressionLocation = null, - Stack = new StackInformation { NumStackFrames = 1, TopStackFrame = null }, - Stdout = null, + ReturnValue = 1, + ExpressionLocation = new ExpressionLocation { Start = 1, Offset = 1 }, + Stack = new StackInformation + { + NumStackFrames = 1, + TopStackFrame = new StackFrame + { + MethodName = "methodName", + LineNumber = 1, + Scopes = new List() + { + new Scope + { + Variables = new Dictionary() { { "variables", 1 } }, + }, + new Scope + { + Variables = new Dictionary() { { "variables", 1 } }, + }, + }, + }, + }, + Stdout = "stdout", }, new TraceResponseV2 { SubmissionId = "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", LineNumber = 1, File = new TracedFile { Filename = "filename", Directory = "directory" }, - ReturnValue = null, - ExpressionLocation = null, - Stack = new StackInformation { NumStackFrames = 1, TopStackFrame = null }, - Stdout = null, + ReturnValue = 1, + ExpressionLocation = new ExpressionLocation { Start = 1, Offset = 1 }, + Stack = new StackInformation + { + NumStackFrames = 1, + TopStackFrame = new StackFrame + { + MethodName = "methodName", + LineNumber = 1, + Scopes = new List() + { + new Scope + { + Variables = new Dictionary() { { "variables", 1 } }, + }, + new Scope + { + Variables = new Dictionary() { { "variables", 1 } }, + }, + }, + }, + }, + Stdout = "stdout", }, } ); @@ -432,8 +508,18 @@ await client.Admin.StoreTracedWorkspaceAsync( { WorkspaceRunDetails = new WorkspaceRunDetails { - ExceptionV2 = null, - Exception = null, + ExceptionV2 = new ExceptionInfo + { + ExceptionType = "exceptionType", + ExceptionMessage = "exceptionMessage", + ExceptionStacktrace = "exceptionStacktrace", + }, + Exception = new ExceptionInfo + { + ExceptionType = "exceptionType", + ExceptionMessage = "exceptionMessage", + ExceptionStacktrace = "exceptionStacktrace", + }, Stdout = "stdout", }, TraceResponses = new List() @@ -442,19 +528,57 @@ await client.Admin.StoreTracedWorkspaceAsync( { SubmissionId = "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", LineNumber = 1, - ReturnValue = null, - ExpressionLocation = null, - Stack = new StackInformation { NumStackFrames = 1, TopStackFrame = null }, - Stdout = null, + ReturnValue = 1, + ExpressionLocation = new ExpressionLocation { Start = 1, Offset = 1 }, + Stack = new StackInformation + { + NumStackFrames = 1, + TopStackFrame = new StackFrame + { + MethodName = "methodName", + LineNumber = 1, + Scopes = new List() + { + new Scope + { + Variables = new Dictionary() { { "variables", 1 } }, + }, + new Scope + { + Variables = new Dictionary() { { "variables", 1 } }, + }, + }, + }, + }, + Stdout = "stdout", }, new TraceResponse { SubmissionId = "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", LineNumber = 1, - ReturnValue = null, - ExpressionLocation = null, - Stack = new StackInformation { NumStackFrames = 1, TopStackFrame = null }, - Stdout = null, + ReturnValue = 1, + ExpressionLocation = new ExpressionLocation { Start = 1, Offset = 1 }, + Stack = new StackInformation + { + NumStackFrames = 1, + TopStackFrame = new StackFrame + { + MethodName = "methodName", + LineNumber = 1, + Scopes = new List() + { + new Scope + { + Variables = new Dictionary() { { "variables", 1 } }, + }, + new Scope + { + Variables = new Dictionary() { { "variables", 1 } }, + }, + }, + }, + }, + Stdout = "stdout", }, }, } @@ -515,20 +639,58 @@ await client.Admin.StoreTracedWorkspaceV2Async( SubmissionId = "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", LineNumber = 1, File = new TracedFile { Filename = "filename", Directory = "directory" }, - ReturnValue = null, - ExpressionLocation = null, - Stack = new StackInformation { NumStackFrames = 1, TopStackFrame = null }, - Stdout = null, + ReturnValue = 1, + ExpressionLocation = new ExpressionLocation { Start = 1, Offset = 1 }, + Stack = new StackInformation + { + NumStackFrames = 1, + TopStackFrame = new StackFrame + { + MethodName = "methodName", + LineNumber = 1, + Scopes = new List() + { + new Scope + { + Variables = new Dictionary() { { "variables", 1 } }, + }, + new Scope + { + Variables = new Dictionary() { { "variables", 1 } }, + }, + }, + }, + }, + Stdout = "stdout", }, new TraceResponseV2 { SubmissionId = "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", LineNumber = 1, File = new TracedFile { Filename = "filename", Directory = "directory" }, - ReturnValue = null, - ExpressionLocation = null, - Stack = new StackInformation { NumStackFrames = 1, TopStackFrame = null }, - Stdout = null, + ReturnValue = 1, + ExpressionLocation = new ExpressionLocation { Start = 1, Offset = 1 }, + Stack = new StackInformation + { + NumStackFrames = 1, + TopStackFrame = new StackFrame + { + MethodName = "methodName", + LineNumber = 1, + Scopes = new List() + { + new Scope + { + Variables = new Dictionary() { { "variables", 1 } }, + }, + new Scope + { + Variables = new Dictionary() { { "variables", 1 } }, + }, + }, + }, + }, + Stdout = "stdout", }, } ); @@ -708,6 +870,7 @@ await client.Playlist.CreatePlaylistAsync( new CreatePlaylistRequest { Datetime = new DateTime(2024, 01, 15, 09, 30, 00, 000), + OptionalDatetime = new DateTime(2024, 01, 15, 09, 30, 00, 000), Body = new PlaylistCreateRequest { Name = "name", @@ -780,8 +943,10 @@ await client.Playlist.GetPlaylistsAsync( 1, new GetPlaylistsRequest { + Limit = 1, OtherField = "otherField", MultiLineDocs = "multiLineDocs", + OptionalMultipleField = ["optionalMultipleField"], MultipleField = ["multipleField"], } ); @@ -908,7 +1073,15 @@ Updates a playlist
```csharp -await client.Playlist.UpdatePlaylistAsync(1, "playlistId", null); +await client.Playlist.UpdatePlaylistAsync( + 1, + "playlistId", + new UpdatePlaylistRequest + { + Name = "name", + Problems = new List() { "problems", "problems" }, + } +); ```
diff --git a/seed/csharp-sdk/trace/snippet.json b/seed/csharp-sdk/trace/snippet.json index d6645cf2a6b..15b6724cbfd 100644 --- a/seed/csharp-sdk/trace/snippet.json +++ b/seed/csharp-sdk/trace/snippet.json @@ -70,7 +70,7 @@ }, "snippet": { "type": "typescript", - "client": "using SeedTrace;\n\nvar client = new SeedTraceClient(\"TOKEN\");\nawait client.Admin.StoreTracedTestCaseAsync(\n \"d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32\",\n \"testCaseId\",\n new StoreTracedTestCaseRequest\n {\n Result = new TestCaseResultWithStdout\n {\n Result = new TestCaseResult\n {\n ExpectedResult = 1,\n ActualResult = 1,\n Passed = true,\n },\n Stdout = \"stdout\",\n },\n TraceResponses = new List()\n {\n new TraceResponse\n {\n SubmissionId = \"d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32\",\n LineNumber = 1,\n ReturnValue = null,\n ExpressionLocation = null,\n Stack = new StackInformation { NumStackFrames = 1, TopStackFrame = null },\n Stdout = null,\n },\n new TraceResponse\n {\n SubmissionId = \"d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32\",\n LineNumber = 1,\n ReturnValue = null,\n ExpressionLocation = null,\n Stack = new StackInformation { NumStackFrames = 1, TopStackFrame = null },\n Stdout = null,\n },\n },\n }\n);\n" + "client": "using SeedTrace;\n\nvar client = new SeedTraceClient(\"TOKEN\");\nawait client.Admin.StoreTracedTestCaseAsync(\n \"d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32\",\n \"testCaseId\",\n new StoreTracedTestCaseRequest\n {\n Result = new TestCaseResultWithStdout\n {\n Result = new TestCaseResult\n {\n ExpectedResult = 1,\n ActualResult = 1,\n Passed = true,\n },\n Stdout = \"stdout\",\n },\n TraceResponses = new List()\n {\n new TraceResponse\n {\n SubmissionId = \"d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32\",\n LineNumber = 1,\n ReturnValue = 1,\n ExpressionLocation = new ExpressionLocation { Start = 1, Offset = 1 },\n Stack = new StackInformation\n {\n NumStackFrames = 1,\n TopStackFrame = new StackFrame\n {\n MethodName = \"methodName\",\n LineNumber = 1,\n Scopes = new List()\n {\n new Scope\n {\n Variables = new Dictionary() { { \"variables\", 1 } },\n },\n new Scope\n {\n Variables = new Dictionary() { { \"variables\", 1 } },\n },\n },\n },\n },\n Stdout = \"stdout\",\n },\n new TraceResponse\n {\n SubmissionId = \"d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32\",\n LineNumber = 1,\n ReturnValue = 1,\n ExpressionLocation = new ExpressionLocation { Start = 1, Offset = 1 },\n Stack = new StackInformation\n {\n NumStackFrames = 1,\n TopStackFrame = new StackFrame\n {\n MethodName = \"methodName\",\n LineNumber = 1,\n Scopes = new List()\n {\n new Scope\n {\n Variables = new Dictionary() { { \"variables\", 1 } },\n },\n new Scope\n {\n Variables = new Dictionary() { { \"variables\", 1 } },\n },\n },\n },\n },\n Stdout = \"stdout\",\n },\n },\n }\n);\n" } }, { @@ -82,7 +82,7 @@ }, "snippet": { "type": "typescript", - "client": "using SeedTrace;\n\nvar client = new SeedTraceClient(\"TOKEN\");\nawait client.Admin.StoreTracedTestCaseV2Async(\n \"d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32\",\n \"testCaseId\",\n new List()\n {\n new TraceResponseV2\n {\n SubmissionId = \"d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32\",\n LineNumber = 1,\n File = new TracedFile { Filename = \"filename\", Directory = \"directory\" },\n ReturnValue = null,\n ExpressionLocation = null,\n Stack = new StackInformation { NumStackFrames = 1, TopStackFrame = null },\n Stdout = null,\n },\n new TraceResponseV2\n {\n SubmissionId = \"d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32\",\n LineNumber = 1,\n File = new TracedFile { Filename = \"filename\", Directory = \"directory\" },\n ReturnValue = null,\n ExpressionLocation = null,\n Stack = new StackInformation { NumStackFrames = 1, TopStackFrame = null },\n Stdout = null,\n },\n }\n);\n" + "client": "using SeedTrace;\n\nvar client = new SeedTraceClient(\"TOKEN\");\nawait client.Admin.StoreTracedTestCaseV2Async(\n \"d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32\",\n \"testCaseId\",\n new List()\n {\n new TraceResponseV2\n {\n SubmissionId = \"d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32\",\n LineNumber = 1,\n File = new TracedFile { Filename = \"filename\", Directory = \"directory\" },\n ReturnValue = 1,\n ExpressionLocation = new ExpressionLocation { Start = 1, Offset = 1 },\n Stack = new StackInformation\n {\n NumStackFrames = 1,\n TopStackFrame = new StackFrame\n {\n MethodName = \"methodName\",\n LineNumber = 1,\n Scopes = new List()\n {\n new Scope\n {\n Variables = new Dictionary() { { \"variables\", 1 } },\n },\n new Scope\n {\n Variables = new Dictionary() { { \"variables\", 1 } },\n },\n },\n },\n },\n Stdout = \"stdout\",\n },\n new TraceResponseV2\n {\n SubmissionId = \"d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32\",\n LineNumber = 1,\n File = new TracedFile { Filename = \"filename\", Directory = \"directory\" },\n ReturnValue = 1,\n ExpressionLocation = new ExpressionLocation { Start = 1, Offset = 1 },\n Stack = new StackInformation\n {\n NumStackFrames = 1,\n TopStackFrame = new StackFrame\n {\n MethodName = \"methodName\",\n LineNumber = 1,\n Scopes = new List()\n {\n new Scope\n {\n Variables = new Dictionary() { { \"variables\", 1 } },\n },\n new Scope\n {\n Variables = new Dictionary() { { \"variables\", 1 } },\n },\n },\n },\n },\n Stdout = \"stdout\",\n },\n }\n);\n" } }, { @@ -94,7 +94,7 @@ }, "snippet": { "type": "typescript", - "client": "using SeedTrace;\n\nvar client = new SeedTraceClient(\"TOKEN\");\nawait client.Admin.StoreTracedWorkspaceAsync(\n \"d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32\",\n new StoreTracedWorkspaceRequest\n {\n WorkspaceRunDetails = new WorkspaceRunDetails\n {\n ExceptionV2 = null,\n Exception = null,\n Stdout = \"stdout\",\n },\n TraceResponses = new List()\n {\n new TraceResponse\n {\n SubmissionId = \"d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32\",\n LineNumber = 1,\n ReturnValue = null,\n ExpressionLocation = null,\n Stack = new StackInformation { NumStackFrames = 1, TopStackFrame = null },\n Stdout = null,\n },\n new TraceResponse\n {\n SubmissionId = \"d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32\",\n LineNumber = 1,\n ReturnValue = null,\n ExpressionLocation = null,\n Stack = new StackInformation { NumStackFrames = 1, TopStackFrame = null },\n Stdout = null,\n },\n },\n }\n);\n" + "client": "using SeedTrace;\n\nvar client = new SeedTraceClient(\"TOKEN\");\nawait client.Admin.StoreTracedWorkspaceAsync(\n \"d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32\",\n new StoreTracedWorkspaceRequest\n {\n WorkspaceRunDetails = new WorkspaceRunDetails\n {\n ExceptionV2 = new ExceptionInfo\n {\n ExceptionType = \"exceptionType\",\n ExceptionMessage = \"exceptionMessage\",\n ExceptionStacktrace = \"exceptionStacktrace\",\n },\n Exception = new ExceptionInfo\n {\n ExceptionType = \"exceptionType\",\n ExceptionMessage = \"exceptionMessage\",\n ExceptionStacktrace = \"exceptionStacktrace\",\n },\n Stdout = \"stdout\",\n },\n TraceResponses = new List()\n {\n new TraceResponse\n {\n SubmissionId = \"d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32\",\n LineNumber = 1,\n ReturnValue = 1,\n ExpressionLocation = new ExpressionLocation { Start = 1, Offset = 1 },\n Stack = new StackInformation\n {\n NumStackFrames = 1,\n TopStackFrame = new StackFrame\n {\n MethodName = \"methodName\",\n LineNumber = 1,\n Scopes = new List()\n {\n new Scope\n {\n Variables = new Dictionary() { { \"variables\", 1 } },\n },\n new Scope\n {\n Variables = new Dictionary() { { \"variables\", 1 } },\n },\n },\n },\n },\n Stdout = \"stdout\",\n },\n new TraceResponse\n {\n SubmissionId = \"d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32\",\n LineNumber = 1,\n ReturnValue = 1,\n ExpressionLocation = new ExpressionLocation { Start = 1, Offset = 1 },\n Stack = new StackInformation\n {\n NumStackFrames = 1,\n TopStackFrame = new StackFrame\n {\n MethodName = \"methodName\",\n LineNumber = 1,\n Scopes = new List()\n {\n new Scope\n {\n Variables = new Dictionary() { { \"variables\", 1 } },\n },\n new Scope\n {\n Variables = new Dictionary() { { \"variables\", 1 } },\n },\n },\n },\n },\n Stdout = \"stdout\",\n },\n },\n }\n);\n" } }, { @@ -106,7 +106,7 @@ }, "snippet": { "type": "typescript", - "client": "using SeedTrace;\n\nvar client = new SeedTraceClient(\"TOKEN\");\nawait client.Admin.StoreTracedWorkspaceV2Async(\n \"d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32\",\n new List()\n {\n new TraceResponseV2\n {\n SubmissionId = \"d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32\",\n LineNumber = 1,\n File = new TracedFile { Filename = \"filename\", Directory = \"directory\" },\n ReturnValue = null,\n ExpressionLocation = null,\n Stack = new StackInformation { NumStackFrames = 1, TopStackFrame = null },\n Stdout = null,\n },\n new TraceResponseV2\n {\n SubmissionId = \"d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32\",\n LineNumber = 1,\n File = new TracedFile { Filename = \"filename\", Directory = \"directory\" },\n ReturnValue = null,\n ExpressionLocation = null,\n Stack = new StackInformation { NumStackFrames = 1, TopStackFrame = null },\n Stdout = null,\n },\n }\n);\n" + "client": "using SeedTrace;\n\nvar client = new SeedTraceClient(\"TOKEN\");\nawait client.Admin.StoreTracedWorkspaceV2Async(\n \"d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32\",\n new List()\n {\n new TraceResponseV2\n {\n SubmissionId = \"d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32\",\n LineNumber = 1,\n File = new TracedFile { Filename = \"filename\", Directory = \"directory\" },\n ReturnValue = 1,\n ExpressionLocation = new ExpressionLocation { Start = 1, Offset = 1 },\n Stack = new StackInformation\n {\n NumStackFrames = 1,\n TopStackFrame = new StackFrame\n {\n MethodName = \"methodName\",\n LineNumber = 1,\n Scopes = new List()\n {\n new Scope\n {\n Variables = new Dictionary() { { \"variables\", 1 } },\n },\n new Scope\n {\n Variables = new Dictionary() { { \"variables\", 1 } },\n },\n },\n },\n },\n Stdout = \"stdout\",\n },\n new TraceResponseV2\n {\n SubmissionId = \"d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32\",\n LineNumber = 1,\n File = new TracedFile { Filename = \"filename\", Directory = \"directory\" },\n ReturnValue = 1,\n ExpressionLocation = new ExpressionLocation { Start = 1, Offset = 1 },\n Stack = new StackInformation\n {\n NumStackFrames = 1,\n TopStackFrame = new StackFrame\n {\n MethodName = \"methodName\",\n LineNumber = 1,\n Scopes = new List()\n {\n new Scope\n {\n Variables = new Dictionary() { { \"variables\", 1 } },\n },\n new Scope\n {\n Variables = new Dictionary() { { \"variables\", 1 } },\n },\n },\n },\n },\n Stdout = \"stdout\",\n },\n }\n);\n" } }, { @@ -154,7 +154,7 @@ }, "snippet": { "type": "typescript", - "client": "using SeedTrace;\n\nvar client = new SeedTraceClient(\"TOKEN\");\nawait client.Playlist.CreatePlaylistAsync(\n 1,\n new CreatePlaylistRequest\n {\n Datetime = new DateTime(2024, 01, 15, 09, 30, 00, 000),\n Body = new PlaylistCreateRequest\n {\n Name = \"name\",\n Problems = new List() { \"problems\", \"problems\" },\n },\n }\n);\n" + "client": "using SeedTrace;\n\nvar client = new SeedTraceClient(\"TOKEN\");\nawait client.Playlist.CreatePlaylistAsync(\n 1,\n new CreatePlaylistRequest\n {\n Datetime = new DateTime(2024, 01, 15, 09, 30, 00, 000),\n OptionalDatetime = new DateTime(2024, 01, 15, 09, 30, 00, 000),\n Body = new PlaylistCreateRequest\n {\n Name = \"name\",\n Problems = new List() { \"problems\", \"problems\" },\n },\n }\n);\n" } }, { @@ -166,7 +166,7 @@ }, "snippet": { "type": "typescript", - "client": "using SeedTrace;\n\nvar client = new SeedTraceClient(\"TOKEN\");\nawait client.Playlist.GetPlaylistsAsync(\n 1,\n new GetPlaylistsRequest\n {\n OtherField = \"otherField\",\n MultiLineDocs = \"multiLineDocs\",\n MultipleField = [\"multipleField\"],\n }\n);\n" + "client": "using SeedTrace;\n\nvar client = new SeedTraceClient(\"TOKEN\");\nawait client.Playlist.GetPlaylistsAsync(\n 1,\n new GetPlaylistsRequest\n {\n Limit = 1,\n OtherField = \"otherField\",\n MultiLineDocs = \"multiLineDocs\",\n OptionalMultipleField = [\"optionalMultipleField\"],\n MultipleField = [\"multipleField\"],\n }\n);\n" } }, { @@ -190,7 +190,7 @@ }, "snippet": { "type": "typescript", - "client": "using SeedTrace;\n\nvar client = new SeedTraceClient(\"TOKEN\");\nawait client.Playlist.UpdatePlaylistAsync(1, \"playlistId\", null);\n" + "client": "using SeedTrace;\n\nvar client = new SeedTraceClient(\"TOKEN\");\nawait client.Playlist.UpdatePlaylistAsync(\n 1,\n \"playlistId\",\n new UpdatePlaylistRequest\n {\n Name = \"name\",\n Problems = new List() { \"problems\", \"problems\" },\n }\n);\n" } }, { diff --git a/seed/csharp-sdk/trace/src/SeedTrace.Test/Unit/MockServer/CreatePlaylistTest.cs b/seed/csharp-sdk/trace/src/SeedTrace.Test/Unit/MockServer/CreatePlaylistTest.cs index b473fbe7c69..d4f02f9f353 100644 --- a/seed/csharp-sdk/trace/src/SeedTrace.Test/Unit/MockServer/CreatePlaylistTest.cs +++ b/seed/csharp-sdk/trace/src/SeedTrace.Test/Unit/MockServer/CreatePlaylistTest.cs @@ -39,6 +39,7 @@ public async Task MockServerTest() .RequestBuilders.Request.Create() .WithPath("/v2/playlist/1/create") .WithParam("datetime", "2024-01-15T09:30:00.000Z") + .WithParam("optionalDatetime", "2024-01-15T09:30:00.000Z") .UsingPost() .WithBodyAsJson(requestJson) ) @@ -58,6 +59,11 @@ public async Task MockServerTest() null, DateTimeStyles.AdjustToUniversal ), + OptionalDatetime = DateTime.Parse( + "2024-01-15T09:30:00.000Z", + null, + DateTimeStyles.AdjustToUniversal + ), Body = new PlaylistCreateRequest { Name = "name", diff --git a/seed/csharp-sdk/trace/src/SeedTrace.Test/Unit/MockServer/GetPlaylistsTest.cs b/seed/csharp-sdk/trace/src/SeedTrace.Test/Unit/MockServer/GetPlaylistsTest.cs index ad38512002a..719c6032545 100644 --- a/seed/csharp-sdk/trace/src/SeedTrace.Test/Unit/MockServer/GetPlaylistsTest.cs +++ b/seed/csharp-sdk/trace/src/SeedTrace.Test/Unit/MockServer/GetPlaylistsTest.cs @@ -33,8 +33,10 @@ public async Task MockServerTest() WireMock .RequestBuilders.Request.Create() .WithPath("/v2/playlist/1/all") + .WithParam("limit", "1") .WithParam("otherField", "otherField") .WithParam("multiLineDocs", "multiLineDocs") + .WithParam("optionalMultipleField", "optionalMultipleField") .WithParam("multipleField", "multipleField") .UsingGet() ) @@ -49,8 +51,10 @@ public async Task MockServerTest() 1, new GetPlaylistsRequest { + Limit = 1, OtherField = "otherField", MultiLineDocs = "multiLineDocs", + OptionalMultipleField = ["optionalMultipleField"], MultipleField = ["multipleField"], }, RequestOptions diff --git a/seed/csharp-sdk/trace/src/SeedTrace.Test/Unit/MockServer/StoreTracedTestCaseTest.cs b/seed/csharp-sdk/trace/src/SeedTrace.Test/Unit/MockServer/StoreTracedTestCaseTest.cs index d1adbcec051..e7c860f8dbf 100644 --- a/seed/csharp-sdk/trace/src/SeedTrace.Test/Unit/MockServer/StoreTracedTestCaseTest.cs +++ b/seed/csharp-sdk/trace/src/SeedTrace.Test/Unit/MockServer/StoreTracedTestCaseTest.cs @@ -34,16 +34,78 @@ public void MockServerTest() { "submissionId": "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", "lineNumber": 1, + "returnValue": { + "type": "integerValue", + "value": 1 + }, + "expressionLocation": { + "start": 1, + "offset": 1 + }, "stack": { - "numStackFrames": 1 - } + "numStackFrames": 1, + "topStackFrame": { + "methodName": "methodName", + "lineNumber": 1, + "scopes": [ + { + "variables": { + "variables": { + "type": "integerValue", + "value": 1 + } + } + }, + { + "variables": { + "variables": { + "type": "integerValue", + "value": 1 + } + } + } + ] + } + }, + "stdout": "stdout" }, { "submissionId": "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", "lineNumber": 1, + "returnValue": { + "type": "integerValue", + "value": 1 + }, + "expressionLocation": { + "start": 1, + "offset": 1 + }, "stack": { - "numStackFrames": 1 - } + "numStackFrames": 1, + "topStackFrame": { + "methodName": "methodName", + "lineNumber": 1, + "scopes": [ + { + "variables": { + "variables": { + "type": "integerValue", + "value": 1 + } + } + }, + { + "variables": { + "variables": { + "type": "integerValue", + "value": 1 + } + } + } + ] + } + }, + "stdout": "stdout" } ] } @@ -84,27 +146,77 @@ await Client.Admin.StoreTracedTestCaseAsync( { SubmissionId = "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", LineNumber = 1, - ReturnValue = null, - ExpressionLocation = null, + ReturnValue = 1, + ExpressionLocation = new ExpressionLocation + { + Start = 1, + Offset = 1, + }, Stack = new StackInformation { NumStackFrames = 1, - TopStackFrame = null, + TopStackFrame = new StackFrame + { + MethodName = "methodName", + LineNumber = 1, + Scopes = new List() + { + new Scope + { + Variables = new Dictionary() + { + { "variables", 1 }, + }, + }, + new Scope + { + Variables = new Dictionary() + { + { "variables", 1 }, + }, + }, + }, + }, }, - Stdout = null, + Stdout = "stdout", }, new TraceResponse { SubmissionId = "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", LineNumber = 1, - ReturnValue = null, - ExpressionLocation = null, + ReturnValue = 1, + ExpressionLocation = new ExpressionLocation + { + Start = 1, + Offset = 1, + }, Stack = new StackInformation { NumStackFrames = 1, - TopStackFrame = null, + TopStackFrame = new StackFrame + { + MethodName = "methodName", + LineNumber = 1, + Scopes = new List() + { + new Scope + { + Variables = new Dictionary() + { + { "variables", 1 }, + }, + }, + new Scope + { + Variables = new Dictionary() + { + { "variables", 1 }, + }, + }, + }, + }, }, - Stdout = null, + Stdout = "stdout", }, }, }, diff --git a/seed/csharp-sdk/trace/src/SeedTrace.Test/Unit/MockServer/StoreTracedTestCaseV2Test.cs b/seed/csharp-sdk/trace/src/SeedTrace.Test/Unit/MockServer/StoreTracedTestCaseV2Test.cs index ffcda90a01d..1571bef498a 100644 --- a/seed/csharp-sdk/trace/src/SeedTrace.Test/Unit/MockServer/StoreTracedTestCaseV2Test.cs +++ b/seed/csharp-sdk/trace/src/SeedTrace.Test/Unit/MockServer/StoreTracedTestCaseV2Test.cs @@ -20,9 +20,40 @@ public void MockServerTest() "filename": "filename", "directory": "directory" }, + "returnValue": { + "type": "integerValue", + "value": 1 + }, + "expressionLocation": { + "start": 1, + "offset": 1 + }, "stack": { - "numStackFrames": 1 - } + "numStackFrames": 1, + "topStackFrame": { + "methodName": "methodName", + "lineNumber": 1, + "scopes": [ + { + "variables": { + "variables": { + "type": "integerValue", + "value": 1 + } + } + }, + { + "variables": { + "variables": { + "type": "integerValue", + "value": 1 + } + } + } + ] + } + }, + "stdout": "stdout" }, { "submissionId": "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", @@ -31,9 +62,40 @@ public void MockServerTest() "filename": "filename", "directory": "directory" }, + "returnValue": { + "type": "integerValue", + "value": 1 + }, + "expressionLocation": { + "start": 1, + "offset": 1 + }, "stack": { - "numStackFrames": 1 - } + "numStackFrames": 1, + "topStackFrame": { + "methodName": "methodName", + "lineNumber": 1, + "scopes": [ + { + "variables": { + "variables": { + "type": "integerValue", + "value": 1 + } + } + }, + { + "variables": { + "variables": { + "type": "integerValue", + "value": 1 + } + } + } + ] + } + }, + "stdout": "stdout" } ] """; @@ -66,14 +128,35 @@ await Client.Admin.StoreTracedTestCaseV2Async( Filename = "filename", Directory = "directory", }, - ReturnValue = null, - ExpressionLocation = null, + ReturnValue = 1, + ExpressionLocation = new ExpressionLocation { Start = 1, Offset = 1 }, Stack = new StackInformation { NumStackFrames = 1, - TopStackFrame = null, + TopStackFrame = new StackFrame + { + MethodName = "methodName", + LineNumber = 1, + Scopes = new List() + { + new Scope + { + Variables = new Dictionary() + { + { "variables", 1 }, + }, + }, + new Scope + { + Variables = new Dictionary() + { + { "variables", 1 }, + }, + }, + }, + }, }, - Stdout = null, + Stdout = "stdout", }, new TraceResponseV2 { @@ -84,14 +167,35 @@ await Client.Admin.StoreTracedTestCaseV2Async( Filename = "filename", Directory = "directory", }, - ReturnValue = null, - ExpressionLocation = null, + ReturnValue = 1, + ExpressionLocation = new ExpressionLocation { Start = 1, Offset = 1 }, Stack = new StackInformation { NumStackFrames = 1, - TopStackFrame = null, + TopStackFrame = new StackFrame + { + MethodName = "methodName", + LineNumber = 1, + Scopes = new List() + { + new Scope + { + Variables = new Dictionary() + { + { "variables", 1 }, + }, + }, + new Scope + { + Variables = new Dictionary() + { + { "variables", 1 }, + }, + }, + }, + }, }, - Stdout = null, + Stdout = "stdout", }, }, RequestOptions diff --git a/seed/csharp-sdk/trace/src/SeedTrace.Test/Unit/MockServer/StoreTracedWorkspaceTest.cs b/seed/csharp-sdk/trace/src/SeedTrace.Test/Unit/MockServer/StoreTracedWorkspaceTest.cs index 843220cd1c9..2ee1831cfdc 100644 --- a/seed/csharp-sdk/trace/src/SeedTrace.Test/Unit/MockServer/StoreTracedWorkspaceTest.cs +++ b/seed/csharp-sdk/trace/src/SeedTrace.Test/Unit/MockServer/StoreTracedWorkspaceTest.cs @@ -14,22 +14,95 @@ public void MockServerTest() const string requestJson = """ { "workspaceRunDetails": { + "exceptionV2": { + "type": "generic", + "exceptionType": "exceptionType", + "exceptionMessage": "exceptionMessage", + "exceptionStacktrace": "exceptionStacktrace" + }, + "exception": { + "exceptionType": "exceptionType", + "exceptionMessage": "exceptionMessage", + "exceptionStacktrace": "exceptionStacktrace" + }, "stdout": "stdout" }, "traceResponses": [ { "submissionId": "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", "lineNumber": 1, + "returnValue": { + "type": "integerValue", + "value": 1 + }, + "expressionLocation": { + "start": 1, + "offset": 1 + }, "stack": { - "numStackFrames": 1 - } + "numStackFrames": 1, + "topStackFrame": { + "methodName": "methodName", + "lineNumber": 1, + "scopes": [ + { + "variables": { + "variables": { + "type": "integerValue", + "value": 1 + } + } + }, + { + "variables": { + "variables": { + "type": "integerValue", + "value": 1 + } + } + } + ] + } + }, + "stdout": "stdout" }, { "submissionId": "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", "lineNumber": 1, + "returnValue": { + "type": "integerValue", + "value": 1 + }, + "expressionLocation": { + "start": 1, + "offset": 1 + }, "stack": { - "numStackFrames": 1 - } + "numStackFrames": 1, + "topStackFrame": { + "methodName": "methodName", + "lineNumber": 1, + "scopes": [ + { + "variables": { + "variables": { + "type": "integerValue", + "value": 1 + } + } + }, + { + "variables": { + "variables": { + "type": "integerValue", + "value": 1 + } + } + } + ] + } + }, + "stdout": "stdout" } ] } @@ -55,8 +128,18 @@ await Client.Admin.StoreTracedWorkspaceAsync( { WorkspaceRunDetails = new WorkspaceRunDetails { - ExceptionV2 = null, - Exception = null, + ExceptionV2 = new ExceptionInfo + { + ExceptionType = "exceptionType", + ExceptionMessage = "exceptionMessage", + ExceptionStacktrace = "exceptionStacktrace", + }, + Exception = new ExceptionInfo + { + ExceptionType = "exceptionType", + ExceptionMessage = "exceptionMessage", + ExceptionStacktrace = "exceptionStacktrace", + }, Stdout = "stdout", }, TraceResponses = new List() @@ -65,27 +148,77 @@ await Client.Admin.StoreTracedWorkspaceAsync( { SubmissionId = "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", LineNumber = 1, - ReturnValue = null, - ExpressionLocation = null, + ReturnValue = 1, + ExpressionLocation = new ExpressionLocation + { + Start = 1, + Offset = 1, + }, Stack = new StackInformation { NumStackFrames = 1, - TopStackFrame = null, + TopStackFrame = new StackFrame + { + MethodName = "methodName", + LineNumber = 1, + Scopes = new List() + { + new Scope + { + Variables = new Dictionary() + { + { "variables", 1 }, + }, + }, + new Scope + { + Variables = new Dictionary() + { + { "variables", 1 }, + }, + }, + }, + }, }, - Stdout = null, + Stdout = "stdout", }, new TraceResponse { SubmissionId = "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", LineNumber = 1, - ReturnValue = null, - ExpressionLocation = null, + ReturnValue = 1, + ExpressionLocation = new ExpressionLocation + { + Start = 1, + Offset = 1, + }, Stack = new StackInformation { NumStackFrames = 1, - TopStackFrame = null, + TopStackFrame = new StackFrame + { + MethodName = "methodName", + LineNumber = 1, + Scopes = new List() + { + new Scope + { + Variables = new Dictionary() + { + { "variables", 1 }, + }, + }, + new Scope + { + Variables = new Dictionary() + { + { "variables", 1 }, + }, + }, + }, + }, }, - Stdout = null, + Stdout = "stdout", }, }, }, diff --git a/seed/csharp-sdk/trace/src/SeedTrace.Test/Unit/MockServer/StoreTracedWorkspaceV2Test.cs b/seed/csharp-sdk/trace/src/SeedTrace.Test/Unit/MockServer/StoreTracedWorkspaceV2Test.cs index 1d5bb0a47c8..b8a5098f953 100644 --- a/seed/csharp-sdk/trace/src/SeedTrace.Test/Unit/MockServer/StoreTracedWorkspaceV2Test.cs +++ b/seed/csharp-sdk/trace/src/SeedTrace.Test/Unit/MockServer/StoreTracedWorkspaceV2Test.cs @@ -20,9 +20,40 @@ public void MockServerTest() "filename": "filename", "directory": "directory" }, + "returnValue": { + "type": "integerValue", + "value": 1 + }, + "expressionLocation": { + "start": 1, + "offset": 1 + }, "stack": { - "numStackFrames": 1 - } + "numStackFrames": 1, + "topStackFrame": { + "methodName": "methodName", + "lineNumber": 1, + "scopes": [ + { + "variables": { + "variables": { + "type": "integerValue", + "value": 1 + } + } + }, + { + "variables": { + "variables": { + "type": "integerValue", + "value": 1 + } + } + } + ] + } + }, + "stdout": "stdout" }, { "submissionId": "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", @@ -31,9 +62,40 @@ public void MockServerTest() "filename": "filename", "directory": "directory" }, + "returnValue": { + "type": "integerValue", + "value": 1 + }, + "expressionLocation": { + "start": 1, + "offset": 1 + }, "stack": { - "numStackFrames": 1 - } + "numStackFrames": 1, + "topStackFrame": { + "methodName": "methodName", + "lineNumber": 1, + "scopes": [ + { + "variables": { + "variables": { + "type": "integerValue", + "value": 1 + } + } + }, + { + "variables": { + "variables": { + "type": "integerValue", + "value": 1 + } + } + } + ] + } + }, + "stdout": "stdout" } ] """; @@ -65,14 +127,35 @@ await Client.Admin.StoreTracedWorkspaceV2Async( Filename = "filename", Directory = "directory", }, - ReturnValue = null, - ExpressionLocation = null, + ReturnValue = 1, + ExpressionLocation = new ExpressionLocation { Start = 1, Offset = 1 }, Stack = new StackInformation { NumStackFrames = 1, - TopStackFrame = null, + TopStackFrame = new StackFrame + { + MethodName = "methodName", + LineNumber = 1, + Scopes = new List() + { + new Scope + { + Variables = new Dictionary() + { + { "variables", 1 }, + }, + }, + new Scope + { + Variables = new Dictionary() + { + { "variables", 1 }, + }, + }, + }, + }, }, - Stdout = null, + Stdout = "stdout", }, new TraceResponseV2 { @@ -83,14 +166,35 @@ await Client.Admin.StoreTracedWorkspaceV2Async( Filename = "filename", Directory = "directory", }, - ReturnValue = null, - ExpressionLocation = null, + ReturnValue = 1, + ExpressionLocation = new ExpressionLocation { Start = 1, Offset = 1 }, Stack = new StackInformation { NumStackFrames = 1, - TopStackFrame = null, + TopStackFrame = new StackFrame + { + MethodName = "methodName", + LineNumber = 1, + Scopes = new List() + { + new Scope + { + Variables = new Dictionary() + { + { "variables", 1 }, + }, + }, + new Scope + { + Variables = new Dictionary() + { + { "variables", 1 }, + }, + }, + }, + }, }, - Stdout = null, + Stdout = "stdout", }, }, RequestOptions diff --git a/seed/csharp-sdk/trace/src/SeedTrace.Test/Unit/MockServer/UpdatePlaylistTest.cs b/seed/csharp-sdk/trace/src/SeedTrace.Test/Unit/MockServer/UpdatePlaylistTest.cs index de90d228c3b..1218665b44d 100644 --- a/seed/csharp-sdk/trace/src/SeedTrace.Test/Unit/MockServer/UpdatePlaylistTest.cs +++ b/seed/csharp-sdk/trace/src/SeedTrace.Test/Unit/MockServer/UpdatePlaylistTest.cs @@ -2,6 +2,7 @@ using FluentAssertions.Json; using Newtonsoft.Json.Linq; using NUnit.Framework; +using SeedTrace; using SeedTrace.Core; #nullable enable @@ -15,7 +16,13 @@ public class UpdatePlaylistTest : BaseMockServerTest public async Task MockServerTest() { const string requestJson = """ - + { + "name": "name", + "problems": [ + "problems", + "problems" + ] + } """; const string mockResponse = """ @@ -31,7 +38,7 @@ public async Task MockServerTest() .RequestBuilders.Request.Create() .WithPath("/v2/playlist/1/playlistId") .UsingPut() - .WithBody(requestJson) + .WithBodyAsJson(requestJson) ) .RespondWith( WireMock @@ -43,7 +50,11 @@ public async Task MockServerTest() var response = await Client.Playlist.UpdatePlaylistAsync( 1, "playlistId", - null, + new UpdatePlaylistRequest + { + Name = "name", + Problems = new List() { "problems", "problems" }, + }, RequestOptions ); JToken diff --git a/seed/csharp-sdk/trace/src/SeedTrace/Admin/AdminClient.cs b/seed/csharp-sdk/trace/src/SeedTrace/Admin/AdminClient.cs index 6763b4292a5..d9b64cf0d55 100644 --- a/seed/csharp-sdk/trace/src/SeedTrace/Admin/AdminClient.cs +++ b/seed/csharp-sdk/trace/src/SeedTrace/Admin/AdminClient.cs @@ -199,19 +199,57 @@ public async Task SendWorkspaceSubmissionUpdateAsync( /// { /// SubmissionId = "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", /// LineNumber = 1, - /// ReturnValue = null, - /// ExpressionLocation = null, - /// Stack = new StackInformation { NumStackFrames = 1, TopStackFrame = null }, - /// Stdout = null, + /// ReturnValue = 1, + /// ExpressionLocation = new ExpressionLocation { Start = 1, Offset = 1 }, + /// Stack = new StackInformation + /// { + /// NumStackFrames = 1, + /// TopStackFrame = new StackFrame + /// { + /// MethodName = "methodName", + /// LineNumber = 1, + /// Scopes = new List<Scope>() + /// { + /// new Scope + /// { + /// Variables = new Dictionary<string, object>() { { "variables", 1 } }, + /// }, + /// new Scope + /// { + /// Variables = new Dictionary<string, object>() { { "variables", 1 } }, + /// }, + /// }, + /// }, + /// }, + /// Stdout = "stdout", /// }, /// new TraceResponse /// { /// SubmissionId = "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", /// LineNumber = 1, - /// ReturnValue = null, - /// ExpressionLocation = null, - /// Stack = new StackInformation { NumStackFrames = 1, TopStackFrame = null }, - /// Stdout = null, + /// ReturnValue = 1, + /// ExpressionLocation = new ExpressionLocation { Start = 1, Offset = 1 }, + /// Stack = new StackInformation + /// { + /// NumStackFrames = 1, + /// TopStackFrame = new StackFrame + /// { + /// MethodName = "methodName", + /// LineNumber = 1, + /// Scopes = new List<Scope>() + /// { + /// new Scope + /// { + /// Variables = new Dictionary<string, object>() { { "variables", 1 } }, + /// }, + /// new Scope + /// { + /// Variables = new Dictionary<string, object>() { { "variables", 1 } }, + /// }, + /// }, + /// }, + /// }, + /// Stdout = "stdout", /// }, /// }, /// } @@ -261,20 +299,58 @@ public async Task StoreTracedTestCaseAsync( /// SubmissionId = "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", /// LineNumber = 1, /// File = new TracedFile { Filename = "filename", Directory = "directory" }, - /// ReturnValue = null, - /// ExpressionLocation = null, - /// Stack = new StackInformation { NumStackFrames = 1, TopStackFrame = null }, - /// Stdout = null, + /// ReturnValue = 1, + /// ExpressionLocation = new ExpressionLocation { Start = 1, Offset = 1 }, + /// Stack = new StackInformation + /// { + /// NumStackFrames = 1, + /// TopStackFrame = new StackFrame + /// { + /// MethodName = "methodName", + /// LineNumber = 1, + /// Scopes = new List<Scope>() + /// { + /// new Scope + /// { + /// Variables = new Dictionary<string, object>() { { "variables", 1 } }, + /// }, + /// new Scope + /// { + /// Variables = new Dictionary<string, object>() { { "variables", 1 } }, + /// }, + /// }, + /// }, + /// }, + /// Stdout = "stdout", /// }, /// new TraceResponseV2 /// { /// SubmissionId = "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", /// LineNumber = 1, /// File = new TracedFile { Filename = "filename", Directory = "directory" }, - /// ReturnValue = null, - /// ExpressionLocation = null, - /// Stack = new StackInformation { NumStackFrames = 1, TopStackFrame = null }, - /// Stdout = null, + /// ReturnValue = 1, + /// ExpressionLocation = new ExpressionLocation { Start = 1, Offset = 1 }, + /// Stack = new StackInformation + /// { + /// NumStackFrames = 1, + /// TopStackFrame = new StackFrame + /// { + /// MethodName = "methodName", + /// LineNumber = 1, + /// Scopes = new List<Scope>() + /// { + /// new Scope + /// { + /// Variables = new Dictionary<string, object>() { { "variables", 1 } }, + /// }, + /// new Scope + /// { + /// Variables = new Dictionary<string, object>() { { "variables", 1 } }, + /// }, + /// }, + /// }, + /// }, + /// Stdout = "stdout", /// }, /// } /// ); @@ -320,8 +396,18 @@ public async Task StoreTracedTestCaseV2Async( /// { /// WorkspaceRunDetails = new WorkspaceRunDetails /// { - /// ExceptionV2 = null, - /// Exception = null, + /// ExceptionV2 = new ExceptionInfo + /// { + /// ExceptionType = "exceptionType", + /// ExceptionMessage = "exceptionMessage", + /// ExceptionStacktrace = "exceptionStacktrace", + /// }, + /// Exception = new ExceptionInfo + /// { + /// ExceptionType = "exceptionType", + /// ExceptionMessage = "exceptionMessage", + /// ExceptionStacktrace = "exceptionStacktrace", + /// }, /// Stdout = "stdout", /// }, /// TraceResponses = new List<TraceResponse>() @@ -330,19 +416,57 @@ public async Task StoreTracedTestCaseV2Async( /// { /// SubmissionId = "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", /// LineNumber = 1, - /// ReturnValue = null, - /// ExpressionLocation = null, - /// Stack = new StackInformation { NumStackFrames = 1, TopStackFrame = null }, - /// Stdout = null, + /// ReturnValue = 1, + /// ExpressionLocation = new ExpressionLocation { Start = 1, Offset = 1 }, + /// Stack = new StackInformation + /// { + /// NumStackFrames = 1, + /// TopStackFrame = new StackFrame + /// { + /// MethodName = "methodName", + /// LineNumber = 1, + /// Scopes = new List<Scope>() + /// { + /// new Scope + /// { + /// Variables = new Dictionary<string, object>() { { "variables", 1 } }, + /// }, + /// new Scope + /// { + /// Variables = new Dictionary<string, object>() { { "variables", 1 } }, + /// }, + /// }, + /// }, + /// }, + /// Stdout = "stdout", /// }, /// new TraceResponse /// { /// SubmissionId = "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", /// LineNumber = 1, - /// ReturnValue = null, - /// ExpressionLocation = null, - /// Stack = new StackInformation { NumStackFrames = 1, TopStackFrame = null }, - /// Stdout = null, + /// ReturnValue = 1, + /// ExpressionLocation = new ExpressionLocation { Start = 1, Offset = 1 }, + /// Stack = new StackInformation + /// { + /// NumStackFrames = 1, + /// TopStackFrame = new StackFrame + /// { + /// MethodName = "methodName", + /// LineNumber = 1, + /// Scopes = new List<Scope>() + /// { + /// new Scope + /// { + /// Variables = new Dictionary<string, object>() { { "variables", 1 } }, + /// }, + /// new Scope + /// { + /// Variables = new Dictionary<string, object>() { { "variables", 1 } }, + /// }, + /// }, + /// }, + /// }, + /// Stdout = "stdout", /// }, /// }, /// } @@ -390,20 +514,58 @@ public async Task StoreTracedWorkspaceAsync( /// SubmissionId = "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", /// LineNumber = 1, /// File = new TracedFile { Filename = "filename", Directory = "directory" }, - /// ReturnValue = null, - /// ExpressionLocation = null, - /// Stack = new StackInformation { NumStackFrames = 1, TopStackFrame = null }, - /// Stdout = null, + /// ReturnValue = 1, + /// ExpressionLocation = new ExpressionLocation { Start = 1, Offset = 1 }, + /// Stack = new StackInformation + /// { + /// NumStackFrames = 1, + /// TopStackFrame = new StackFrame + /// { + /// MethodName = "methodName", + /// LineNumber = 1, + /// Scopes = new List<Scope>() + /// { + /// new Scope + /// { + /// Variables = new Dictionary<string, object>() { { "variables", 1 } }, + /// }, + /// new Scope + /// { + /// Variables = new Dictionary<string, object>() { { "variables", 1 } }, + /// }, + /// }, + /// }, + /// }, + /// Stdout = "stdout", /// }, /// new TraceResponseV2 /// { /// SubmissionId = "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", /// LineNumber = 1, /// File = new TracedFile { Filename = "filename", Directory = "directory" }, - /// ReturnValue = null, - /// ExpressionLocation = null, - /// Stack = new StackInformation { NumStackFrames = 1, TopStackFrame = null }, - /// Stdout = null, + /// ReturnValue = 1, + /// ExpressionLocation = new ExpressionLocation { Start = 1, Offset = 1 }, + /// Stack = new StackInformation + /// { + /// NumStackFrames = 1, + /// TopStackFrame = new StackFrame + /// { + /// MethodName = "methodName", + /// LineNumber = 1, + /// Scopes = new List<Scope>() + /// { + /// new Scope + /// { + /// Variables = new Dictionary<string, object>() { { "variables", 1 } }, + /// }, + /// new Scope + /// { + /// Variables = new Dictionary<string, object>() { { "variables", 1 } }, + /// }, + /// }, + /// }, + /// }, + /// Stdout = "stdout", /// }, /// } /// ); diff --git a/seed/csharp-sdk/trace/src/SeedTrace/Playlist/PlaylistClient.cs b/seed/csharp-sdk/trace/src/SeedTrace/Playlist/PlaylistClient.cs index 83c472d0e3b..fe856c661af 100644 --- a/seed/csharp-sdk/trace/src/SeedTrace/Playlist/PlaylistClient.cs +++ b/seed/csharp-sdk/trace/src/SeedTrace/Playlist/PlaylistClient.cs @@ -27,6 +27,7 @@ internal PlaylistClient(RawClient client) /// new CreatePlaylistRequest /// { /// Datetime = new DateTime(2024, 01, 15, 09, 30, 00, 000), + /// OptionalDatetime = new DateTime(2024, 01, 15, 09, 30, 00, 000), /// Body = new PlaylistCreateRequest /// { /// Name = "name", @@ -92,8 +93,10 @@ public async Task CreatePlaylistAsync( /// 1, /// new GetPlaylistsRequest /// { + /// Limit = 1, /// OtherField = "otherField", /// MultiLineDocs = "multiLineDocs", + /// OptionalMultipleField = ["optionalMultipleField"], /// MultipleField = ["multipleField"], /// } /// ); @@ -196,7 +199,15 @@ public async Task GetPlaylistAsync( /// /// /// - /// await client.Playlist.UpdatePlaylistAsync(1, "playlistId", null); + /// await client.Playlist.UpdatePlaylistAsync( + /// 1, + /// "playlistId", + /// new UpdatePlaylistRequest + /// { + /// Name = "name", + /// Problems = new List<string>() { "problems", "problems" }, + /// } + /// ); /// /// public async Task UpdatePlaylistAsync( diff --git a/seed/fastapi/grpc-proto-exhaustive/.mock/generators.yml b/seed/fastapi/grpc-proto-exhaustive/.mock/generators.yml index 972ed6d7b73..c23323621f2 100644 --- a/seed/fastapi/grpc-proto-exhaustive/.mock/generators.yml +++ b/seed/fastapi/grpc-proto-exhaustive/.mock/generators.yml @@ -1,6 +1,7 @@ api: - - proto: - root: proto - target: proto/data/v1/data.proto - overrides: overrides.yml - local-generation: true \ No newline at end of file + - path: openapi/openapi.yml + - proto: + root: proto + target: proto/data/v1/data.proto + overrides: overrides.yml + local-generation: true diff --git a/seed/fastapi/grpc-proto-exhaustive/.mock/openapi/openapi.yml b/seed/fastapi/grpc-proto-exhaustive/.mock/openapi/openapi.yml new file mode 100644 index 00000000000..ebc23143df3 --- /dev/null +++ b/seed/fastapi/grpc-proto-exhaustive/.mock/openapi/openapi.yml @@ -0,0 +1,33 @@ +openapi: 3.0.3 +info: + title: Test API + version: 1.0.0 +servers: + - url: https://localhost +tags: + - name: dataservice +paths: + /foo: + post: + tag: dataservice + x-fern-sdk-group-name: + - dataservice + x-fern-sdk-method-name: foo + security: + - ApiKeyAuth: [] + operationId: foo + responses: + "200": + content: + application/json: + schema: + type: object + +security: + - ApiKeyAuth: [] +components: + securitySchemes: + ApiKeyAuth: + type: apiKey + in: header + name: X-API-Key diff --git a/seed/fastapi/grpc-proto-exhaustive/__init__.py b/seed/fastapi/grpc-proto-exhaustive/__init__.py index f6880eeb568..5d12cddf903 100644 --- a/seed/fastapi/grpc-proto-exhaustive/__init__.py +++ b/seed/fastapi/grpc-proto-exhaustive/__init__.py @@ -8,6 +8,7 @@ UploadRequest, dataservice, ) +from .security import ApiAuth from .types import ( Column, DeleteResponse, @@ -30,6 +31,7 @@ ) __all__ = [ + "ApiAuth", "Column", "DeleteRequest", "DeleteResponse", diff --git a/seed/fastapi/grpc-proto-exhaustive/resources/dataservice/service/service.py b/seed/fastapi/grpc-proto-exhaustive/resources/dataservice/service/service.py index ad37342c366..c4ee4269b48 100644 --- a/seed/fastapi/grpc-proto-exhaustive/resources/dataservice/service/service.py +++ b/seed/fastapi/grpc-proto-exhaustive/resources/dataservice/service/service.py @@ -1,14 +1,15 @@ # This file was auto-generated by Fern from our API Definition. from ....core.abstract_fern_service import AbstractFernService +from ....security import ApiAuth +import typing +import abc from .upload_request import UploadRequest from ....types.upload_response import UploadResponse -import abc from .delete_request import DeleteRequest from ....types.delete_response import DeleteResponse from .describe_request import DescribeRequest from ....types.describe_response import DescribeResponse -import typing from ....types.fetch_response import FetchResponse from ....types.list_response import ListResponse from .query_request import QueryRequest @@ -17,6 +18,7 @@ from ....types.update_response import UpdateResponse import fastapi import inspect +from ....security import FernAuth from ....core.exceptions.fern_http_exception import FernHTTPException import logging import functools @@ -32,6 +34,11 @@ class AbstractDataserviceService(AbstractFernService): function. """ + @abc.abstractmethod + def foo( + self, *, auth: ApiAuth + ) -> typing.Dict[str, typing.Optional[typing.Any]]: ... + @abc.abstractmethod def upload(self, *, body: UploadRequest) -> UploadResponse: ... @@ -72,6 +79,7 @@ def update(self, *, body: UpdateRequest) -> UpdateResponse: ... @classmethod def _init_fern(cls, router: fastapi.APIRouter) -> None: + cls.__init_foo(router=router) cls.__init_upload(router=router) cls.__init_delete(router=router) cls.__init_describe(router=router) @@ -80,6 +88,52 @@ def _init_fern(cls, router: fastapi.APIRouter) -> None: cls.__init_query(router=router) cls.__init_update(router=router) + @classmethod + def __init_foo(cls, router: fastapi.APIRouter) -> None: + endpoint_function = inspect.signature(cls.foo) + new_parameters: typing.List[inspect.Parameter] = [] + for index, (parameter_name, parameter) in enumerate( + endpoint_function.parameters.items() + ): + if index == 0: + new_parameters.append(parameter.replace(default=fastapi.Depends(cls))) + elif parameter_name == "auth": + new_parameters.append( + parameter.replace(default=fastapi.Depends(FernAuth)) + ) + else: + new_parameters.append(parameter) + setattr( + cls.foo, + "__signature__", + endpoint_function.replace(parameters=new_parameters), + ) + + @functools.wraps(cls.foo) + def wrapper( + *args: typing.Any, **kwargs: typing.Any + ) -> typing.Dict[str, typing.Optional[typing.Any]]: + try: + return cls.foo(*args, **kwargs) + except FernHTTPException as e: + logging.getLogger(f"{cls.__module__}.{cls.__name__}").warn( + f"Endpoint 'foo' unexpectedly threw {e.__class__.__name__}. " + + f"If this was intentional, please add {e.__class__.__name__} to " + + "the endpoint's errors list in your Fern Definition." + ) + raise e + + # this is necessary for FastAPI to find forward-ref'ed type hints. + # https://github.com/tiangolo/fastapi/pull/5077 + wrapper.__globals__.update(cls.foo.__globals__) + + router.post( + path="/foo", + response_model=typing.Dict[str, typing.Optional[typing.Any]], + description=AbstractDataserviceService.foo.__doc__, + **get_route_args(cls.foo, default_tag="dataservice"), + )(wrapper) + @classmethod def __init_upload(cls, router: fastapi.APIRouter) -> None: endpoint_function = inspect.signature(cls.upload) diff --git a/seed/fastapi/grpc-proto-exhaustive/security.py b/seed/fastapi/grpc-proto-exhaustive/security.py new file mode 100644 index 00000000000..bbf34e45c13 --- /dev/null +++ b/seed/fastapi/grpc-proto-exhaustive/security.py @@ -0,0 +1,9 @@ +# This file was auto-generated by Fern from our API Definition. + +import fastapi + +ApiAuth = str + + +def FernAuth(auth: str = fastapi.Header(alias="X-API-Key")) -> str: + return auth diff --git a/seed/go-fiber/grpc-proto-exhaustive/.mock/generators.yml b/seed/go-fiber/grpc-proto-exhaustive/.mock/generators.yml index 972ed6d7b73..c23323621f2 100644 --- a/seed/go-fiber/grpc-proto-exhaustive/.mock/generators.yml +++ b/seed/go-fiber/grpc-proto-exhaustive/.mock/generators.yml @@ -1,6 +1,7 @@ api: - - proto: - root: proto - target: proto/data/v1/data.proto - overrides: overrides.yml - local-generation: true \ No newline at end of file + - path: openapi/openapi.yml + - proto: + root: proto + target: proto/data/v1/data.proto + overrides: overrides.yml + local-generation: true diff --git a/seed/go-fiber/grpc-proto-exhaustive/.mock/openapi/openapi.yml b/seed/go-fiber/grpc-proto-exhaustive/.mock/openapi/openapi.yml new file mode 100644 index 00000000000..ebc23143df3 --- /dev/null +++ b/seed/go-fiber/grpc-proto-exhaustive/.mock/openapi/openapi.yml @@ -0,0 +1,33 @@ +openapi: 3.0.3 +info: + title: Test API + version: 1.0.0 +servers: + - url: https://localhost +tags: + - name: dataservice +paths: + /foo: + post: + tag: dataservice + x-fern-sdk-group-name: + - dataservice + x-fern-sdk-method-name: foo + security: + - ApiKeyAuth: [] + operationId: foo + responses: + "200": + content: + application/json: + schema: + type: object + +security: + - ApiKeyAuth: [] +components: + securitySchemes: + ApiKeyAuth: + type: apiKey + in: header + name: X-API-Key diff --git a/seed/go-model/grpc-proto-exhaustive/.mock/generators.yml b/seed/go-model/grpc-proto-exhaustive/.mock/generators.yml index 972ed6d7b73..c23323621f2 100644 --- a/seed/go-model/grpc-proto-exhaustive/.mock/generators.yml +++ b/seed/go-model/grpc-proto-exhaustive/.mock/generators.yml @@ -1,6 +1,7 @@ api: - - proto: - root: proto - target: proto/data/v1/data.proto - overrides: overrides.yml - local-generation: true \ No newline at end of file + - path: openapi/openapi.yml + - proto: + root: proto + target: proto/data/v1/data.proto + overrides: overrides.yml + local-generation: true diff --git a/seed/go-model/grpc-proto-exhaustive/.mock/openapi/openapi.yml b/seed/go-model/grpc-proto-exhaustive/.mock/openapi/openapi.yml new file mode 100644 index 00000000000..ebc23143df3 --- /dev/null +++ b/seed/go-model/grpc-proto-exhaustive/.mock/openapi/openapi.yml @@ -0,0 +1,33 @@ +openapi: 3.0.3 +info: + title: Test API + version: 1.0.0 +servers: + - url: https://localhost +tags: + - name: dataservice +paths: + /foo: + post: + tag: dataservice + x-fern-sdk-group-name: + - dataservice + x-fern-sdk-method-name: foo + security: + - ApiKeyAuth: [] + operationId: foo + responses: + "200": + content: + application/json: + schema: + type: object + +security: + - ApiKeyAuth: [] +components: + securitySchemes: + ApiKeyAuth: + type: apiKey + in: header + name: X-API-Key diff --git a/seed/go-sdk/grpc-proto-exhaustive/.mock/generators.yml b/seed/go-sdk/grpc-proto-exhaustive/.mock/generators.yml index 972ed6d7b73..c23323621f2 100644 --- a/seed/go-sdk/grpc-proto-exhaustive/.mock/generators.yml +++ b/seed/go-sdk/grpc-proto-exhaustive/.mock/generators.yml @@ -1,6 +1,7 @@ api: - - proto: - root: proto - target: proto/data/v1/data.proto - overrides: overrides.yml - local-generation: true \ No newline at end of file + - path: openapi/openapi.yml + - proto: + root: proto + target: proto/data/v1/data.proto + overrides: overrides.yml + local-generation: true diff --git a/seed/go-sdk/grpc-proto-exhaustive/.mock/openapi/openapi.yml b/seed/go-sdk/grpc-proto-exhaustive/.mock/openapi/openapi.yml new file mode 100644 index 00000000000..ebc23143df3 --- /dev/null +++ b/seed/go-sdk/grpc-proto-exhaustive/.mock/openapi/openapi.yml @@ -0,0 +1,33 @@ +openapi: 3.0.3 +info: + title: Test API + version: 1.0.0 +servers: + - url: https://localhost +tags: + - name: dataservice +paths: + /foo: + post: + tag: dataservice + x-fern-sdk-group-name: + - dataservice + x-fern-sdk-method-name: foo + security: + - ApiKeyAuth: [] + operationId: foo + responses: + "200": + content: + application/json: + schema: + type: object + +security: + - ApiKeyAuth: [] +components: + securitySchemes: + ApiKeyAuth: + type: apiKey + in: header + name: X-API-Key diff --git a/seed/go-sdk/grpc-proto-exhaustive/core/request_option.go b/seed/go-sdk/grpc-proto-exhaustive/core/request_option.go index b558ccc7b58..041ca0a5c30 100644 --- a/seed/go-sdk/grpc-proto-exhaustive/core/request_option.go +++ b/seed/go-sdk/grpc-proto-exhaustive/core/request_option.go @@ -3,6 +3,7 @@ package core import ( + fmt "fmt" http "net/http" url "net/url" ) @@ -23,6 +24,7 @@ type RequestOptions struct { BodyProperties map[string]interface{} QueryParameters url.Values MaxAttempts uint + ApiKey string } // NewRequestOptions returns a new *RequestOptions value. @@ -43,7 +45,13 @@ func NewRequestOptions(opts ...RequestOption) *RequestOptions { // ToHeader maps the configured request options into a http.Header used // for the request(s). -func (r *RequestOptions) ToHeader() http.Header { return r.cloneHeader() } +func (r *RequestOptions) ToHeader() http.Header { + header := r.cloneHeader() + if r.ApiKey != "" { + header.Set("X-API-Key", fmt.Sprintf("%v", r.ApiKey)) + } + return header +} func (r *RequestOptions) cloneHeader() http.Header { headers := r.HTTPHeader.Clone() @@ -106,3 +114,12 @@ type MaxAttemptsOption struct { func (m *MaxAttemptsOption) applyRequestOptions(opts *RequestOptions) { opts.MaxAttempts = m.MaxAttempts } + +// ApiKeyOption implements the RequestOption interface. +type ApiKeyOption struct { + ApiKey string +} + +func (a *ApiKeyOption) applyRequestOptions(opts *RequestOptions) { + opts.ApiKey = a.ApiKey +} diff --git a/seed/go-sdk/grpc-proto-exhaustive/dataservice/client.go b/seed/go-sdk/grpc-proto-exhaustive/dataservice/client.go index 5c093d0701b..ce804fb0bff 100644 --- a/seed/go-sdk/grpc-proto-exhaustive/dataservice/client.go +++ b/seed/go-sdk/grpc-proto-exhaustive/dataservice/client.go @@ -30,6 +30,42 @@ func NewClient(opts ...option.RequestOption) *Client { } } +func (c *Client) Foo( + ctx context.Context, + opts ...option.RequestOption, +) (map[string]interface{}, error) { + options := core.NewRequestOptions(opts...) + + baseURL := "https://localhost" + if c.baseURL != "" { + baseURL = c.baseURL + } + if options.BaseURL != "" { + baseURL = options.BaseURL + } + endpointURL := baseURL + "/foo" + + headers := core.MergeHeaders(c.header.Clone(), options.ToHeader()) + + var response map[string]interface{} + if err := c.caller.Call( + ctx, + &core.CallParams{ + URL: endpointURL, + Method: http.MethodPost, + MaxAttempts: options.MaxAttempts, + Headers: headers, + BodyProperties: options.BodyProperties, + QueryParameters: options.QueryParameters, + Client: options.HTTPClient, + Response: &response, + }, + ); err != nil { + return nil, err + } + return response, nil +} + func (c *Client) Upload( ctx context.Context, request *fern.UploadRequest, @@ -37,7 +73,7 @@ func (c *Client) Upload( ) (*fern.UploadResponse, error) { options := core.NewRequestOptions(opts...) - baseURL := "" + baseURL := "https://localhost" if c.baseURL != "" { baseURL = c.baseURL } @@ -76,7 +112,7 @@ func (c *Client) Delete( ) (*fern.DeleteResponse, error) { options := core.NewRequestOptions(opts...) - baseURL := "" + baseURL := "https://localhost" if c.baseURL != "" { baseURL = c.baseURL } @@ -115,7 +151,7 @@ func (c *Client) Describe( ) (*fern.DescribeResponse, error) { options := core.NewRequestOptions(opts...) - baseURL := "" + baseURL := "https://localhost" if c.baseURL != "" { baseURL = c.baseURL } @@ -154,7 +190,7 @@ func (c *Client) Fetch( ) (*fern.FetchResponse, error) { options := core.NewRequestOptions(opts...) - baseURL := "" + baseURL := "https://localhost" if c.baseURL != "" { baseURL = c.baseURL } @@ -199,7 +235,7 @@ func (c *Client) List( ) (*fern.ListResponse, error) { options := core.NewRequestOptions(opts...) - baseURL := "" + baseURL := "https://localhost" if c.baseURL != "" { baseURL = c.baseURL } @@ -244,7 +280,7 @@ func (c *Client) Query( ) (*fern.QueryResponse, error) { options := core.NewRequestOptions(opts...) - baseURL := "" + baseURL := "https://localhost" if c.baseURL != "" { baseURL = c.baseURL } @@ -283,7 +319,7 @@ func (c *Client) Update( ) (*fern.UpdateResponse, error) { options := core.NewRequestOptions(opts...) - baseURL := "" + baseURL := "https://localhost" if c.baseURL != "" { baseURL = c.baseURL } diff --git a/seed/go-sdk/grpc-proto-exhaustive/dynamic-snippets/example0/snippet.go b/seed/go-sdk/grpc-proto-exhaustive/dynamic-snippets/example0/snippet.go index 79f9e7be997..569c8747c98 100644 --- a/seed/go-sdk/grpc-proto-exhaustive/dynamic-snippets/example0/snippet.go +++ b/seed/go-sdk/grpc-proto-exhaustive/dynamic-snippets/example0/snippet.go @@ -2,23 +2,17 @@ package example import ( client "github.com/grpc-proto-exhaustive/fern/client" + option "github.com/grpc-proto-exhaustive/fern/option" context "context" - fern "github.com/grpc-proto-exhaustive/fern" ) func do() () { - client := client.NewClient() - client.Dataservice.Upload( + client := client.NewClient( + option.WithApiKey( + "", + ), + ) + client.Dataservice.Foo( context.TODO(), - &fern.UploadRequest{ - Columns: []*fern.Column{ - &fern.Column{ - Id: "id", - Values: []float64{ - 1.1, - }, - }, - }, - }, ) } diff --git a/seed/go-sdk/grpc-proto-exhaustive/dynamic-snippets/example1/snippet.go b/seed/go-sdk/grpc-proto-exhaustive/dynamic-snippets/example1/snippet.go index fcb02e89261..569c8747c98 100644 --- a/seed/go-sdk/grpc-proto-exhaustive/dynamic-snippets/example1/snippet.go +++ b/seed/go-sdk/grpc-proto-exhaustive/dynamic-snippets/example1/snippet.go @@ -2,68 +2,17 @@ package example import ( client "github.com/grpc-proto-exhaustive/fern/client" + option "github.com/grpc-proto-exhaustive/fern/option" context "context" - fern "github.com/grpc-proto-exhaustive/fern" ) func do() () { - client := client.NewClient() - client.Dataservice.Upload( + client := client.NewClient( + option.WithApiKey( + "", + ), + ) + client.Dataservice.Foo( context.TODO(), - &fern.UploadRequest{ - Columns: []*fern.Column{ - &fern.Column{ - Id: "id", - Values: []float64{ - 1.1, - 1.1, - }, - Metadata: &fern.Metadata{ - StringMetadataValueMap: map[string]*fern.MetadataValue{ - "metadata": &fern.MetadataValue{ - Double: 1.1, - }, - }, - }, - IndexedData: &fern.IndexedData{ - Indices: []int{ - 1, - 1, - }, - Values: []float64{ - 1.1, - 1.1, - }, - }, - }, - &fern.Column{ - Id: "id", - Values: []float64{ - 1.1, - 1.1, - }, - Metadata: &fern.Metadata{ - StringMetadataValueMap: map[string]*fern.MetadataValue{ - "metadata": &fern.MetadataValue{ - Double: 1.1, - }, - }, - }, - IndexedData: &fern.IndexedData{ - Indices: []int{ - 1, - 1, - }, - Values: []float64{ - 1.1, - 1.1, - }, - }, - }, - }, - Namespace: fern.String( - "namespace", - ), - }, ) } diff --git a/seed/go-sdk/grpc-proto-exhaustive/dynamic-snippets/example10/snippet.go b/seed/go-sdk/grpc-proto-exhaustive/dynamic-snippets/example10/snippet.go index 238ba15826d..a844ea3f4c2 100644 --- a/seed/go-sdk/grpc-proto-exhaustive/dynamic-snippets/example10/snippet.go +++ b/seed/go-sdk/grpc-proto-exhaustive/dynamic-snippets/example10/snippet.go @@ -2,16 +2,19 @@ package example import ( client "github.com/grpc-proto-exhaustive/fern/client" + option "github.com/grpc-proto-exhaustive/fern/option" context "context" fern "github.com/grpc-proto-exhaustive/fern" ) func do() () { - client := client.NewClient() - client.Dataservice.Query( + client := client.NewClient( + option.WithApiKey( + "", + ), + ) + client.Dataservice.List( context.TODO(), - &fern.QueryRequest{ - TopK: 1, - }, + &fern.ListRequest{}, ) } diff --git a/seed/go-sdk/grpc-proto-exhaustive/dynamic-snippets/example11/snippet.go b/seed/go-sdk/grpc-proto-exhaustive/dynamic-snippets/example11/snippet.go index 0b18781d36f..65f25a0f318 100644 --- a/seed/go-sdk/grpc-proto-exhaustive/dynamic-snippets/example11/snippet.go +++ b/seed/go-sdk/grpc-proto-exhaustive/dynamic-snippets/example11/snippet.go @@ -2,109 +2,32 @@ package example import ( client "github.com/grpc-proto-exhaustive/fern/client" + option "github.com/grpc-proto-exhaustive/fern/option" context "context" fern "github.com/grpc-proto-exhaustive/fern" ) func do() () { - client := client.NewClient() - client.Dataservice.Query( + client := client.NewClient( + option.WithApiKey( + "", + ), + ) + client.Dataservice.List( context.TODO(), - &fern.QueryRequest{ - Namespace: fern.String( - "namespace", + &fern.ListRequest{ + Prefix: fern.String( + "prefix", ), - TopK: 1, - Filter: &fern.Metadata{ - StringMetadataValueMap: map[string]*fern.MetadataValue{ - "filter": &fern.MetadataValue{ - Double: 1.1, - }, - }, - }, - IncludeValues: fern.Bool( - true, + Limit: fern.Int( + 1, ), - IncludeMetadata: fern.Bool( - true, + PaginationToken: fern.String( + "paginationToken", ), - Queries: []*fern.QueryColumn{ - &fern.QueryColumn{ - Values: []float64{ - 1.1, - 1.1, - }, - TopK: fern.Int( - 1, - ), - Namespace: fern.String( - "namespace", - ), - Filter: &fern.Metadata{ - StringMetadataValueMap: map[string]*fern.MetadataValue{ - "filter": &fern.MetadataValue{ - Double: 1.1, - }, - }, - }, - IndexedData: &fern.IndexedData{ - Indices: []int{ - 1, - 1, - }, - Values: []float64{ - 1.1, - 1.1, - }, - }, - }, - &fern.QueryColumn{ - Values: []float64{ - 1.1, - 1.1, - }, - TopK: fern.Int( - 1, - ), - Namespace: fern.String( - "namespace", - ), - Filter: &fern.Metadata{ - StringMetadataValueMap: map[string]*fern.MetadataValue{ - "filter": &fern.MetadataValue{ - Double: 1.1, - }, - }, - }, - IndexedData: &fern.IndexedData{ - Indices: []int{ - 1, - 1, - }, - Values: []float64{ - 1.1, - 1.1, - }, - }, - }, - }, - Column: []float64{ - 1.1, - 1.1, - }, - Id: fern.String( - "id", + Namespace: fern.String( + "namespace", ), - IndexedData: &fern.IndexedData{ - Indices: []int{ - 1, - 1, - }, - Values: []float64{ - 1.1, - 1.1, - }, - }, }, ) } diff --git a/seed/go-sdk/grpc-proto-exhaustive/dynamic-snippets/example12/snippet.go b/seed/go-sdk/grpc-proto-exhaustive/dynamic-snippets/example12/snippet.go index 505f7aad44b..3b653ac7f46 100644 --- a/seed/go-sdk/grpc-proto-exhaustive/dynamic-snippets/example12/snippet.go +++ b/seed/go-sdk/grpc-proto-exhaustive/dynamic-snippets/example12/snippet.go @@ -2,16 +2,21 @@ package example import ( client "github.com/grpc-proto-exhaustive/fern/client" + option "github.com/grpc-proto-exhaustive/fern/option" context "context" fern "github.com/grpc-proto-exhaustive/fern" ) func do() () { - client := client.NewClient() - client.Dataservice.Update( + client := client.NewClient( + option.WithApiKey( + "", + ), + ) + client.Dataservice.Query( context.TODO(), - &fern.UpdateRequest{ - Id: "id", + &fern.QueryRequest{ + TopK: 1, }, ) } diff --git a/seed/go-sdk/grpc-proto-exhaustive/dynamic-snippets/example13/snippet.go b/seed/go-sdk/grpc-proto-exhaustive/dynamic-snippets/example13/snippet.go index 60b7abb6f5d..57bf407e009 100644 --- a/seed/go-sdk/grpc-proto-exhaustive/dynamic-snippets/example13/snippet.go +++ b/seed/go-sdk/grpc-proto-exhaustive/dynamic-snippets/example13/snippet.go @@ -2,29 +2,103 @@ package example import ( client "github.com/grpc-proto-exhaustive/fern/client" + option "github.com/grpc-proto-exhaustive/fern/option" context "context" fern "github.com/grpc-proto-exhaustive/fern" ) func do() () { - client := client.NewClient() - client.Dataservice.Update( + client := client.NewClient( + option.WithApiKey( + "", + ), + ) + client.Dataservice.Query( context.TODO(), - &fern.UpdateRequest{ - Id: "id", - Values: []float64{ - 1.1, - 1.1, - }, - SetMetadata: &fern.Metadata{ + &fern.QueryRequest{ + Namespace: fern.String( + "namespace", + ), + TopK: 1, + Filter: &fern.Metadata{ StringMetadataValueMap: map[string]*fern.MetadataValue{ - "setMetadata": &fern.MetadataValue{ + "filter": &fern.MetadataValue{ Double: 1.1, }, }, }, - Namespace: fern.String( - "namespace", + IncludeValues: fern.Bool( + true, + ), + IncludeMetadata: fern.Bool( + true, + ), + Queries: []*fern.QueryColumn{ + &fern.QueryColumn{ + Values: []float64{ + 1.1, + 1.1, + }, + TopK: fern.Int( + 1, + ), + Namespace: fern.String( + "namespace", + ), + Filter: &fern.Metadata{ + StringMetadataValueMap: map[string]*fern.MetadataValue{ + "filter": &fern.MetadataValue{ + Double: 1.1, + }, + }, + }, + IndexedData: &fern.IndexedData{ + Indices: []int{ + 1, + 1, + }, + Values: []float64{ + 1.1, + 1.1, + }, + }, + }, + &fern.QueryColumn{ + Values: []float64{ + 1.1, + 1.1, + }, + TopK: fern.Int( + 1, + ), + Namespace: fern.String( + "namespace", + ), + Filter: &fern.Metadata{ + StringMetadataValueMap: map[string]*fern.MetadataValue{ + "filter": &fern.MetadataValue{ + Double: 1.1, + }, + }, + }, + IndexedData: &fern.IndexedData{ + Indices: []int{ + 1, + 1, + }, + Values: []float64{ + 1.1, + 1.1, + }, + }, + }, + }, + Column: []float64{ + 1.1, + 1.1, + }, + Id: fern.String( + "id", ), IndexedData: &fern.IndexedData{ Indices: []int{ diff --git a/seed/go-sdk/grpc-proto-exhaustive/dynamic-snippets/example14/snippet.go b/seed/go-sdk/grpc-proto-exhaustive/dynamic-snippets/example14/snippet.go new file mode 100644 index 00000000000..547e2167858 --- /dev/null +++ b/seed/go-sdk/grpc-proto-exhaustive/dynamic-snippets/example14/snippet.go @@ -0,0 +1,22 @@ +package example + +import ( + client "github.com/grpc-proto-exhaustive/fern/client" + option "github.com/grpc-proto-exhaustive/fern/option" + context "context" + fern "github.com/grpc-proto-exhaustive/fern" +) + +func do() () { + client := client.NewClient( + option.WithApiKey( + "", + ), + ) + client.Dataservice.Update( + context.TODO(), + &fern.UpdateRequest{ + Id: "id", + }, + ) +} diff --git a/seed/go-sdk/grpc-proto-exhaustive/dynamic-snippets/example15/snippet.go b/seed/go-sdk/grpc-proto-exhaustive/dynamic-snippets/example15/snippet.go new file mode 100644 index 00000000000..6727ce2d16e --- /dev/null +++ b/seed/go-sdk/grpc-proto-exhaustive/dynamic-snippets/example15/snippet.go @@ -0,0 +1,46 @@ +package example + +import ( + client "github.com/grpc-proto-exhaustive/fern/client" + option "github.com/grpc-proto-exhaustive/fern/option" + context "context" + fern "github.com/grpc-proto-exhaustive/fern" +) + +func do() () { + client := client.NewClient( + option.WithApiKey( + "", + ), + ) + client.Dataservice.Update( + context.TODO(), + &fern.UpdateRequest{ + Id: "id", + Values: []float64{ + 1.1, + 1.1, + }, + SetMetadata: &fern.Metadata{ + StringMetadataValueMap: map[string]*fern.MetadataValue{ + "setMetadata": &fern.MetadataValue{ + Double: 1.1, + }, + }, + }, + Namespace: fern.String( + "namespace", + ), + IndexedData: &fern.IndexedData{ + Indices: []int{ + 1, + 1, + }, + Values: []float64{ + 1.1, + 1.1, + }, + }, + }, + ) +} diff --git a/seed/go-sdk/grpc-proto-exhaustive/dynamic-snippets/example2/snippet.go b/seed/go-sdk/grpc-proto-exhaustive/dynamic-snippets/example2/snippet.go index b25c652a645..8f941aecc89 100644 --- a/seed/go-sdk/grpc-proto-exhaustive/dynamic-snippets/example2/snippet.go +++ b/seed/go-sdk/grpc-proto-exhaustive/dynamic-snippets/example2/snippet.go @@ -2,14 +2,28 @@ package example import ( client "github.com/grpc-proto-exhaustive/fern/client" + option "github.com/grpc-proto-exhaustive/fern/option" context "context" fern "github.com/grpc-proto-exhaustive/fern" ) func do() () { - client := client.NewClient() - client.Dataservice.Delete( + client := client.NewClient( + option.WithApiKey( + "", + ), + ) + client.Dataservice.Upload( context.TODO(), - &fern.DeleteRequest{}, + &fern.UploadRequest{ + Columns: []*fern.Column{ + &fern.Column{ + Id: "id", + Values: []float64{ + 1.1, + }, + }, + }, + }, ) } diff --git a/seed/go-sdk/grpc-proto-exhaustive/dynamic-snippets/example3/snippet.go b/seed/go-sdk/grpc-proto-exhaustive/dynamic-snippets/example3/snippet.go index 3dea14255ef..a02503edbb9 100644 --- a/seed/go-sdk/grpc-proto-exhaustive/dynamic-snippets/example3/snippet.go +++ b/seed/go-sdk/grpc-proto-exhaustive/dynamic-snippets/example3/snippet.go @@ -2,32 +2,73 @@ package example import ( client "github.com/grpc-proto-exhaustive/fern/client" + option "github.com/grpc-proto-exhaustive/fern/option" context "context" fern "github.com/grpc-proto-exhaustive/fern" ) func do() () { - client := client.NewClient() - client.Dataservice.Delete( + client := client.NewClient( + option.WithApiKey( + "", + ), + ) + client.Dataservice.Upload( context.TODO(), - &fern.DeleteRequest{ - Ids: []string{ - "ids", - "ids", + &fern.UploadRequest{ + Columns: []*fern.Column{ + &fern.Column{ + Id: "id", + Values: []float64{ + 1.1, + 1.1, + }, + Metadata: &fern.Metadata{ + StringMetadataValueMap: map[string]*fern.MetadataValue{ + "metadata": &fern.MetadataValue{ + Double: 1.1, + }, + }, + }, + IndexedData: &fern.IndexedData{ + Indices: []int{ + 1, + 1, + }, + Values: []float64{ + 1.1, + 1.1, + }, + }, + }, + &fern.Column{ + Id: "id", + Values: []float64{ + 1.1, + 1.1, + }, + Metadata: &fern.Metadata{ + StringMetadataValueMap: map[string]*fern.MetadataValue{ + "metadata": &fern.MetadataValue{ + Double: 1.1, + }, + }, + }, + IndexedData: &fern.IndexedData{ + Indices: []int{ + 1, + 1, + }, + Values: []float64{ + 1.1, + 1.1, + }, + }, + }, }, - DeleteAll: fern.Bool( - true, - ), Namespace: fern.String( "namespace", ), - Filter: &fern.Metadata{ - StringMetadataValueMap: map[string]*fern.MetadataValue{ - "filter": &fern.MetadataValue{ - Double: 1.1, - }, - }, - }, }, ) } diff --git a/seed/go-sdk/grpc-proto-exhaustive/dynamic-snippets/example4/snippet.go b/seed/go-sdk/grpc-proto-exhaustive/dynamic-snippets/example4/snippet.go index 353e659ba4c..85dfefd270b 100644 --- a/seed/go-sdk/grpc-proto-exhaustive/dynamic-snippets/example4/snippet.go +++ b/seed/go-sdk/grpc-proto-exhaustive/dynamic-snippets/example4/snippet.go @@ -2,14 +2,19 @@ package example import ( client "github.com/grpc-proto-exhaustive/fern/client" + option "github.com/grpc-proto-exhaustive/fern/option" context "context" fern "github.com/grpc-proto-exhaustive/fern" ) func do() () { - client := client.NewClient() - client.Dataservice.Describe( + client := client.NewClient( + option.WithApiKey( + "", + ), + ) + client.Dataservice.Delete( context.TODO(), - &fern.DescribeRequest{}, + &fern.DeleteRequest{}, ) } diff --git a/seed/go-sdk/grpc-proto-exhaustive/dynamic-snippets/example5/snippet.go b/seed/go-sdk/grpc-proto-exhaustive/dynamic-snippets/example5/snippet.go index a354b54b846..2c473a86a57 100644 --- a/seed/go-sdk/grpc-proto-exhaustive/dynamic-snippets/example5/snippet.go +++ b/seed/go-sdk/grpc-proto-exhaustive/dynamic-snippets/example5/snippet.go @@ -2,15 +2,30 @@ package example import ( client "github.com/grpc-proto-exhaustive/fern/client" + option "github.com/grpc-proto-exhaustive/fern/option" context "context" fern "github.com/grpc-proto-exhaustive/fern" ) func do() () { - client := client.NewClient() - client.Dataservice.Describe( + client := client.NewClient( + option.WithApiKey( + "", + ), + ) + client.Dataservice.Delete( context.TODO(), - &fern.DescribeRequest{ + &fern.DeleteRequest{ + Ids: []string{ + "ids", + "ids", + }, + DeleteAll: fern.Bool( + true, + ), + Namespace: fern.String( + "namespace", + ), Filter: &fern.Metadata{ StringMetadataValueMap: map[string]*fern.MetadataValue{ "filter": &fern.MetadataValue{ diff --git a/seed/go-sdk/grpc-proto-exhaustive/dynamic-snippets/example6/snippet.go b/seed/go-sdk/grpc-proto-exhaustive/dynamic-snippets/example6/snippet.go index 4c87525c2c0..f04239e9b7f 100644 --- a/seed/go-sdk/grpc-proto-exhaustive/dynamic-snippets/example6/snippet.go +++ b/seed/go-sdk/grpc-proto-exhaustive/dynamic-snippets/example6/snippet.go @@ -2,14 +2,19 @@ package example import ( client "github.com/grpc-proto-exhaustive/fern/client" + option "github.com/grpc-proto-exhaustive/fern/option" context "context" fern "github.com/grpc-proto-exhaustive/fern" ) func do() () { - client := client.NewClient() - client.Dataservice.Fetch( + client := client.NewClient( + option.WithApiKey( + "", + ), + ) + client.Dataservice.Describe( context.TODO(), - &fern.FetchRequest{}, + &fern.DescribeRequest{}, ) } diff --git a/seed/go-sdk/grpc-proto-exhaustive/dynamic-snippets/example7/snippet.go b/seed/go-sdk/grpc-proto-exhaustive/dynamic-snippets/example7/snippet.go index 121d5619871..ab562721877 100644 --- a/seed/go-sdk/grpc-proto-exhaustive/dynamic-snippets/example7/snippet.go +++ b/seed/go-sdk/grpc-proto-exhaustive/dynamic-snippets/example7/snippet.go @@ -2,23 +2,27 @@ package example import ( client "github.com/grpc-proto-exhaustive/fern/client" + option "github.com/grpc-proto-exhaustive/fern/option" context "context" fern "github.com/grpc-proto-exhaustive/fern" ) func do() () { - client := client.NewClient() - client.Dataservice.Fetch( + client := client.NewClient( + option.WithApiKey( + "", + ), + ) + client.Dataservice.Describe( context.TODO(), - &fern.FetchRequest{ - Ids: []*string{ - fern.String( - "ids", - ), + &fern.DescribeRequest{ + Filter: &fern.Metadata{ + StringMetadataValueMap: map[string]*fern.MetadataValue{ + "filter": &fern.MetadataValue{ + Double: 1.1, + }, + }, }, - Namespace: fern.String( - "namespace", - ), }, ) } diff --git a/seed/go-sdk/grpc-proto-exhaustive/dynamic-snippets/example8/snippet.go b/seed/go-sdk/grpc-proto-exhaustive/dynamic-snippets/example8/snippet.go index 14650a0c793..9e21345a9d1 100644 --- a/seed/go-sdk/grpc-proto-exhaustive/dynamic-snippets/example8/snippet.go +++ b/seed/go-sdk/grpc-proto-exhaustive/dynamic-snippets/example8/snippet.go @@ -2,14 +2,19 @@ package example import ( client "github.com/grpc-proto-exhaustive/fern/client" + option "github.com/grpc-proto-exhaustive/fern/option" context "context" fern "github.com/grpc-proto-exhaustive/fern" ) func do() () { - client := client.NewClient() - client.Dataservice.List( + client := client.NewClient( + option.WithApiKey( + "", + ), + ) + client.Dataservice.Fetch( context.TODO(), - &fern.ListRequest{}, + &fern.FetchRequest{}, ) } diff --git a/seed/go-sdk/grpc-proto-exhaustive/dynamic-snippets/example9/snippet.go b/seed/go-sdk/grpc-proto-exhaustive/dynamic-snippets/example9/snippet.go index 4d3b68c7168..ec65ea78e05 100644 --- a/seed/go-sdk/grpc-proto-exhaustive/dynamic-snippets/example9/snippet.go +++ b/seed/go-sdk/grpc-proto-exhaustive/dynamic-snippets/example9/snippet.go @@ -2,24 +2,25 @@ package example import ( client "github.com/grpc-proto-exhaustive/fern/client" + option "github.com/grpc-proto-exhaustive/fern/option" context "context" fern "github.com/grpc-proto-exhaustive/fern" ) func do() () { - client := client.NewClient() - client.Dataservice.List( + client := client.NewClient( + option.WithApiKey( + "", + ), + ) + client.Dataservice.Fetch( context.TODO(), - &fern.ListRequest{ - Prefix: fern.String( - "prefix", - ), - Limit: fern.Int( - 1, - ), - PaginationToken: fern.String( - "paginationToken", - ), + &fern.FetchRequest{ + Ids: []*string{ + fern.String( + "ids", + ), + }, Namespace: fern.String( "namespace", ), diff --git a/seed/go-sdk/grpc-proto-exhaustive/environments.go b/seed/go-sdk/grpc-proto-exhaustive/environments.go new file mode 100644 index 00000000000..654f73c2254 --- /dev/null +++ b/seed/go-sdk/grpc-proto-exhaustive/environments.go @@ -0,0 +1,13 @@ +// This file was auto-generated by Fern from our API Definition. + +package api + +// Environments defines all of the API environments. +// These values can be used with the WithBaseURL +// RequestOption to override the client's default environment, +// if any. +var Environments = struct { + Default string +}{ + Default: "https://localhost", +} diff --git a/seed/go-sdk/grpc-proto-exhaustive/option/request_option.go b/seed/go-sdk/grpc-proto-exhaustive/option/request_option.go index 5cf734e7b24..0a9781f034e 100644 --- a/seed/go-sdk/grpc-proto-exhaustive/option/request_option.go +++ b/seed/go-sdk/grpc-proto-exhaustive/option/request_option.go @@ -62,3 +62,10 @@ func WithMaxAttempts(attempts uint) *core.MaxAttemptsOption { MaxAttempts: attempts, } } + +// WithApiKey sets the apiKey auth request header. +func WithApiKey(apiKey string) *core.ApiKeyOption { + return &core.ApiKeyOption{ + ApiKey: apiKey, + } +} diff --git a/seed/go-sdk/grpc-proto-exhaustive/snippet.json b/seed/go-sdk/grpc-proto-exhaustive/snippet.json index 8d1dd886d21..fec7d94a819 100644 --- a/seed/go-sdk/grpc-proto-exhaustive/snippet.json +++ b/seed/go-sdk/grpc-proto-exhaustive/snippet.json @@ -8,7 +8,7 @@ }, "snippet": { "type": "go", - "client": "import (\n\tcontext \"context\"\n\tfern \"github.com/grpc-proto-exhaustive/fern\"\n\tfernclient \"github.com/grpc-proto-exhaustive/fern/client\"\n)\n\nclient := fernclient.NewClient()\nresponse, err := client.Dataservice.Upload(\n\tcontext.TODO(),\n\t\u0026fern.UploadRequest{\n\t\tColumns: []*fern.Column{\n\t\t\t\u0026fern.Column{\n\t\t\t\tId: \"id\",\n\t\t\t\tValues: []float64{\n\t\t\t\t\t1.1,\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t},\n)\n" + "client": "import (\n\tcontext \"context\"\n\tfern \"github.com/grpc-proto-exhaustive/fern\"\n\tfernclient \"github.com/grpc-proto-exhaustive/fern/client\"\n\toption \"github.com/grpc-proto-exhaustive/fern/option\"\n)\n\nclient := fernclient.NewClient(\n\toption.WithApiKey(\n\t\t\"\u003cYOUR_ApiKey\u003e\",\n\t),\n)\nresponse, err := client.Dataservice.Upload(\n\tcontext.TODO(),\n\t\u0026fern.UploadRequest{\n\t\tColumns: []*fern.Column{\n\t\t\t\u0026fern.Column{\n\t\t\t\tId: \"id\",\n\t\t\t\tValues: []float64{\n\t\t\t\t\t1.1,\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t},\n)\n" } }, { @@ -19,7 +19,7 @@ }, "snippet": { "type": "go", - "client": "import (\n\tcontext \"context\"\n\tfern \"github.com/grpc-proto-exhaustive/fern\"\n\tfernclient \"github.com/grpc-proto-exhaustive/fern/client\"\n)\n\nclient := fernclient.NewClient()\nresponse, err := client.Dataservice.Delete(\n\tcontext.TODO(),\n\t\u0026fern.DeleteRequest{},\n)\n" + "client": "import (\n\tcontext \"context\"\n\tfern \"github.com/grpc-proto-exhaustive/fern\"\n\tfernclient \"github.com/grpc-proto-exhaustive/fern/client\"\n\toption \"github.com/grpc-proto-exhaustive/fern/option\"\n)\n\nclient := fernclient.NewClient(\n\toption.WithApiKey(\n\t\t\"\u003cYOUR_ApiKey\u003e\",\n\t),\n)\nresponse, err := client.Dataservice.Delete(\n\tcontext.TODO(),\n\t\u0026fern.DeleteRequest{},\n)\n" } }, { @@ -30,7 +30,7 @@ }, "snippet": { "type": "go", - "client": "import (\n\tcontext \"context\"\n\tfern \"github.com/grpc-proto-exhaustive/fern\"\n\tfernclient \"github.com/grpc-proto-exhaustive/fern/client\"\n)\n\nclient := fernclient.NewClient()\nresponse, err := client.Dataservice.Describe(\n\tcontext.TODO(),\n\t\u0026fern.DescribeRequest{},\n)\n" + "client": "import (\n\tcontext \"context\"\n\tfern \"github.com/grpc-proto-exhaustive/fern\"\n\tfernclient \"github.com/grpc-proto-exhaustive/fern/client\"\n\toption \"github.com/grpc-proto-exhaustive/fern/option\"\n)\n\nclient := fernclient.NewClient(\n\toption.WithApiKey(\n\t\t\"\u003cYOUR_ApiKey\u003e\",\n\t),\n)\nresponse, err := client.Dataservice.Describe(\n\tcontext.TODO(),\n\t\u0026fern.DescribeRequest{},\n)\n" } }, { @@ -41,7 +41,7 @@ }, "snippet": { "type": "go", - "client": "import (\n\tcontext \"context\"\n\tfern \"github.com/grpc-proto-exhaustive/fern\"\n\tfernclient \"github.com/grpc-proto-exhaustive/fern/client\"\n)\n\nclient := fernclient.NewClient()\nresponse, err := client.Dataservice.Fetch(\n\tcontext.TODO(),\n\t\u0026fern.FetchRequest{},\n)\n" + "client": "import (\n\tcontext \"context\"\n\tfern \"github.com/grpc-proto-exhaustive/fern\"\n\tfernclient \"github.com/grpc-proto-exhaustive/fern/client\"\n\toption \"github.com/grpc-proto-exhaustive/fern/option\"\n)\n\nclient := fernclient.NewClient(\n\toption.WithApiKey(\n\t\t\"\u003cYOUR_ApiKey\u003e\",\n\t),\n)\nresponse, err := client.Dataservice.Fetch(\n\tcontext.TODO(),\n\t\u0026fern.FetchRequest{},\n)\n" } }, { @@ -52,7 +52,7 @@ }, "snippet": { "type": "go", - "client": "import (\n\tcontext \"context\"\n\tfern \"github.com/grpc-proto-exhaustive/fern\"\n\tfernclient \"github.com/grpc-proto-exhaustive/fern/client\"\n)\n\nclient := fernclient.NewClient()\nresponse, err := client.Dataservice.List(\n\tcontext.TODO(),\n\t\u0026fern.ListRequest{},\n)\n" + "client": "import (\n\tcontext \"context\"\n\tfern \"github.com/grpc-proto-exhaustive/fern\"\n\tfernclient \"github.com/grpc-proto-exhaustive/fern/client\"\n\toption \"github.com/grpc-proto-exhaustive/fern/option\"\n)\n\nclient := fernclient.NewClient(\n\toption.WithApiKey(\n\t\t\"\u003cYOUR_ApiKey\u003e\",\n\t),\n)\nresponse, err := client.Dataservice.List(\n\tcontext.TODO(),\n\t\u0026fern.ListRequest{},\n)\n" } }, { @@ -63,7 +63,7 @@ }, "snippet": { "type": "go", - "client": "import (\n\tcontext \"context\"\n\tfern \"github.com/grpc-proto-exhaustive/fern\"\n\tfernclient \"github.com/grpc-proto-exhaustive/fern/client\"\n)\n\nclient := fernclient.NewClient()\nresponse, err := client.Dataservice.Query(\n\tcontext.TODO(),\n\t\u0026fern.QueryRequest{\n\t\tTopK: 1,\n\t},\n)\n" + "client": "import (\n\tcontext \"context\"\n\tfern \"github.com/grpc-proto-exhaustive/fern\"\n\tfernclient \"github.com/grpc-proto-exhaustive/fern/client\"\n\toption \"github.com/grpc-proto-exhaustive/fern/option\"\n)\n\nclient := fernclient.NewClient(\n\toption.WithApiKey(\n\t\t\"\u003cYOUR_ApiKey\u003e\",\n\t),\n)\nresponse, err := client.Dataservice.Query(\n\tcontext.TODO(),\n\t\u0026fern.QueryRequest{\n\t\tTopK: 1,\n\t},\n)\n" } }, { @@ -74,7 +74,18 @@ }, "snippet": { "type": "go", - "client": "import (\n\tcontext \"context\"\n\tfern \"github.com/grpc-proto-exhaustive/fern\"\n\tfernclient \"github.com/grpc-proto-exhaustive/fern/client\"\n)\n\nclient := fernclient.NewClient()\nresponse, err := client.Dataservice.Update(\n\tcontext.TODO(),\n\t\u0026fern.UpdateRequest{\n\t\tId: \"id\",\n\t},\n)\n" + "client": "import (\n\tcontext \"context\"\n\tfern \"github.com/grpc-proto-exhaustive/fern\"\n\tfernclient \"github.com/grpc-proto-exhaustive/fern/client\"\n\toption \"github.com/grpc-proto-exhaustive/fern/option\"\n)\n\nclient := fernclient.NewClient(\n\toption.WithApiKey(\n\t\t\"\u003cYOUR_ApiKey\u003e\",\n\t),\n)\nresponse, err := client.Dataservice.Update(\n\tcontext.TODO(),\n\t\u0026fern.UpdateRequest{\n\t\tId: \"id\",\n\t},\n)\n" + } + }, + { + "id": { + "path": "/foo", + "method": "POST", + "identifier_override": "endpoint_dataservice.foo" + }, + "snippet": { + "type": "go", + "client": "import (\n\tcontext \"context\"\n\tfernclient \"github.com/grpc-proto-exhaustive/fern/client\"\n\toption \"github.com/grpc-proto-exhaustive/fern/option\"\n)\n\nclient := fernclient.NewClient(\n\toption.WithApiKey(\n\t\t\"\u003cYOUR_ApiKey\u003e\",\n\t),\n)\nresponse, err := client.Dataservice.Foo(\n\tcontext.TODO(),\n)\n" } } ] diff --git a/seed/php-model/grpc-proto-exhaustive/.mock/generators.yml b/seed/php-model/grpc-proto-exhaustive/.mock/generators.yml index 972ed6d7b73..c23323621f2 100644 --- a/seed/php-model/grpc-proto-exhaustive/.mock/generators.yml +++ b/seed/php-model/grpc-proto-exhaustive/.mock/generators.yml @@ -1,6 +1,7 @@ api: - - proto: - root: proto - target: proto/data/v1/data.proto - overrides: overrides.yml - local-generation: true \ No newline at end of file + - path: openapi/openapi.yml + - proto: + root: proto + target: proto/data/v1/data.proto + overrides: overrides.yml + local-generation: true diff --git a/seed/php-model/grpc-proto-exhaustive/.mock/openapi/openapi.yml b/seed/php-model/grpc-proto-exhaustive/.mock/openapi/openapi.yml new file mode 100644 index 00000000000..ebc23143df3 --- /dev/null +++ b/seed/php-model/grpc-proto-exhaustive/.mock/openapi/openapi.yml @@ -0,0 +1,33 @@ +openapi: 3.0.3 +info: + title: Test API + version: 1.0.0 +servers: + - url: https://localhost +tags: + - name: dataservice +paths: + /foo: + post: + tag: dataservice + x-fern-sdk-group-name: + - dataservice + x-fern-sdk-method-name: foo + security: + - ApiKeyAuth: [] + operationId: foo + responses: + "200": + content: + application/json: + schema: + type: object + +security: + - ApiKeyAuth: [] +components: + securitySchemes: + ApiKeyAuth: + type: apiKey + in: header + name: X-API-Key diff --git a/seed/php-sdk/grpc-proto-exhaustive/.mock/generators.yml b/seed/php-sdk/grpc-proto-exhaustive/.mock/generators.yml index 972ed6d7b73..c23323621f2 100644 --- a/seed/php-sdk/grpc-proto-exhaustive/.mock/generators.yml +++ b/seed/php-sdk/grpc-proto-exhaustive/.mock/generators.yml @@ -1,6 +1,7 @@ api: - - proto: - root: proto - target: proto/data/v1/data.proto - overrides: overrides.yml - local-generation: true \ No newline at end of file + - path: openapi/openapi.yml + - proto: + root: proto + target: proto/data/v1/data.proto + overrides: overrides.yml + local-generation: true diff --git a/seed/php-sdk/grpc-proto-exhaustive/.mock/openapi/openapi.yml b/seed/php-sdk/grpc-proto-exhaustive/.mock/openapi/openapi.yml new file mode 100644 index 00000000000..ebc23143df3 --- /dev/null +++ b/seed/php-sdk/grpc-proto-exhaustive/.mock/openapi/openapi.yml @@ -0,0 +1,33 @@ +openapi: 3.0.3 +info: + title: Test API + version: 1.0.0 +servers: + - url: https://localhost +tags: + - name: dataservice +paths: + /foo: + post: + tag: dataservice + x-fern-sdk-group-name: + - dataservice + x-fern-sdk-method-name: foo + security: + - ApiKeyAuth: [] + operationId: foo + responses: + "200": + content: + application/json: + schema: + type: object + +security: + - ApiKeyAuth: [] +components: + securitySchemes: + ApiKeyAuth: + type: apiKey + in: header + name: X-API-Key diff --git a/seed/php-sdk/grpc-proto-exhaustive/src/Dataservice/DataserviceClient.php b/seed/php-sdk/grpc-proto-exhaustive/src/Dataservice/DataserviceClient.php index b7c93f9ef7a..69e79844853 100644 --- a/seed/php-sdk/grpc-proto-exhaustive/src/Dataservice/DataserviceClient.php +++ b/seed/php-sdk/grpc-proto-exhaustive/src/Dataservice/DataserviceClient.php @@ -3,14 +3,16 @@ namespace Seed\Dataservice; use Seed\Core\Client\RawClient; -use Seed\Dataservice\Requests\UploadRequest; -use Seed\Types\UploadResponse; use Seed\Exceptions\SeedException; use Seed\Exceptions\SeedApiException; use Seed\Core\Json\JsonApiRequest; +use Seed\Environments; use Seed\Core\Client\HttpMethod; +use Seed\Core\Json\JsonDecoder; use JsonException; use Psr\Http\Client\ClientExceptionInterface; +use Seed\Dataservice\Requests\UploadRequest; +use Seed\Types\UploadResponse; use Seed\Dataservice\Requests\DeleteRequest; use Seed\Types\DeleteResponse; use Seed\Dataservice\Requests\DescribeRequest; @@ -40,6 +42,41 @@ public function __construct( $this->client = $client; } + /** + * @param ?array{ + * baseUrl?: string, + * } $options + * @return array + * @throws SeedException + * @throws SeedApiException + */ + public function foo(?array $options = null): array + { + try { + $response = $this->client->sendRequest( + new JsonApiRequest( + baseUrl: $options['baseUrl'] ?? $this->client->options['baseUrl'] ?? Environments::Default_->value, + path: "foo", + method: HttpMethod::POST, + ), + ); + $statusCode = $response->getStatusCode(); + if ($statusCode >= 200 && $statusCode < 400) { + $json = $response->getBody()->getContents(); + return JsonDecoder::decodeArray($json, ['string' => 'mixed']); // @phpstan-ignore-line + } + } catch (JsonException $e) { + throw new SeedException(message: "Failed to deserialize response: {$e->getMessage()}", previous: $e); + } catch (ClientExceptionInterface $e) { + throw new SeedException(message: $e->getMessage(), previous: $e); + } + throw new SeedApiException( + message: 'API request failed', + statusCode: $statusCode, + body: $response->getBody()->getContents(), + ); + } + /** * @param UploadRequest $request * @param ?array{ @@ -54,7 +91,7 @@ public function upload(UploadRequest $request, ?array $options = null): UploadRe try { $response = $this->client->sendRequest( new JsonApiRequest( - baseUrl: $options['baseUrl'] ?? $this->client->options['baseUrl'] ?? '', + baseUrl: $options['baseUrl'] ?? $this->client->options['baseUrl'] ?? Environments::Default_->value, path: "data", method: HttpMethod::POST, body: $request, @@ -91,7 +128,7 @@ public function delete(DeleteRequest $request, ?array $options = null): DeleteRe try { $response = $this->client->sendRequest( new JsonApiRequest( - baseUrl: $options['baseUrl'] ?? $this->client->options['baseUrl'] ?? '', + baseUrl: $options['baseUrl'] ?? $this->client->options['baseUrl'] ?? Environments::Default_->value, path: "data/delete", method: HttpMethod::POST, body: $request, @@ -128,7 +165,7 @@ public function describe(DescribeRequest $request, ?array $options = null): Desc try { $response = $this->client->sendRequest( new JsonApiRequest( - baseUrl: $options['baseUrl'] ?? $this->client->options['baseUrl'] ?? '', + baseUrl: $options['baseUrl'] ?? $this->client->options['baseUrl'] ?? Environments::Default_->value, path: "data/describe", method: HttpMethod::POST, body: $request, @@ -172,7 +209,7 @@ public function fetch(FetchRequest $request, ?array $options = null): FetchRespo try { $response = $this->client->sendRequest( new JsonApiRequest( - baseUrl: $options['baseUrl'] ?? $this->client->options['baseUrl'] ?? '', + baseUrl: $options['baseUrl'] ?? $this->client->options['baseUrl'] ?? Environments::Default_->value, path: "data/fetch", method: HttpMethod::GET, query: $query, @@ -222,7 +259,7 @@ public function list(ListRequest $request, ?array $options = null): ListResponse try { $response = $this->client->sendRequest( new JsonApiRequest( - baseUrl: $options['baseUrl'] ?? $this->client->options['baseUrl'] ?? '', + baseUrl: $options['baseUrl'] ?? $this->client->options['baseUrl'] ?? Environments::Default_->value, path: "data/list", method: HttpMethod::GET, query: $query, @@ -259,7 +296,7 @@ public function query(QueryRequest $request, ?array $options = null): QueryRespo try { $response = $this->client->sendRequest( new JsonApiRequest( - baseUrl: $options['baseUrl'] ?? $this->client->options['baseUrl'] ?? '', + baseUrl: $options['baseUrl'] ?? $this->client->options['baseUrl'] ?? Environments::Default_->value, path: "data/query", method: HttpMethod::POST, body: $request, @@ -296,7 +333,7 @@ public function update(UpdateRequest $request, ?array $options = null): UpdateRe try { $response = $this->client->sendRequest( new JsonApiRequest( - baseUrl: $options['baseUrl'] ?? $this->client->options['baseUrl'] ?? '', + baseUrl: $options['baseUrl'] ?? $this->client->options['baseUrl'] ?? Environments::Default_->value, path: "data/update", method: HttpMethod::POST, body: $request, diff --git a/seed/php-sdk/grpc-proto-exhaustive/src/Environments.php b/seed/php-sdk/grpc-proto-exhaustive/src/Environments.php new file mode 100644 index 00000000000..8227b311410 --- /dev/null +++ b/seed/php-sdk/grpc-proto-exhaustive/src/Environments.php @@ -0,0 +1,8 @@ + 'Seed', 'X-Fern-SDK-Version' => '0.0.1', ]; + if ($apiKey != null) { + $defaultHeaders['X-API-Key'] = $apiKey; + } $this->options = $options ?? []; $this->options['headers'] = array_merge( diff --git a/seed/postman/grpc-proto-exhaustive/.mock/generators.yml b/seed/postman/grpc-proto-exhaustive/.mock/generators.yml index 972ed6d7b73..c23323621f2 100644 --- a/seed/postman/grpc-proto-exhaustive/.mock/generators.yml +++ b/seed/postman/grpc-proto-exhaustive/.mock/generators.yml @@ -1,6 +1,7 @@ api: - - proto: - root: proto - target: proto/data/v1/data.proto - overrides: overrides.yml - local-generation: true \ No newline at end of file + - path: openapi/openapi.yml + - proto: + root: proto + target: proto/data/v1/data.proto + overrides: overrides.yml + local-generation: true diff --git a/seed/postman/grpc-proto-exhaustive/.mock/openapi/openapi.yml b/seed/postman/grpc-proto-exhaustive/.mock/openapi/openapi.yml new file mode 100644 index 00000000000..ebc23143df3 --- /dev/null +++ b/seed/postman/grpc-proto-exhaustive/.mock/openapi/openapi.yml @@ -0,0 +1,33 @@ +openapi: 3.0.3 +info: + title: Test API + version: 1.0.0 +servers: + - url: https://localhost +tags: + - name: dataservice +paths: + /foo: + post: + tag: dataservice + x-fern-sdk-group-name: + - dataservice + x-fern-sdk-method-name: foo + security: + - ApiKeyAuth: [] + operationId: foo + responses: + "200": + content: + application/json: + schema: + type: object + +security: + - ApiKeyAuth: [] +components: + securitySchemes: + ApiKeyAuth: + type: apiKey + in: header + name: X-API-Key diff --git a/seed/postman/grpc-proto-exhaustive/collection.json b/seed/postman/grpc-proto-exhaustive/collection.json index c0fea25880a..e9ec034ceb1 100644 --- a/seed/postman/grpc-proto-exhaustive/collection.json +++ b/seed/postman/grpc-proto-exhaustive/collection.json @@ -1,23 +1,159 @@ { "info": { - "name": "\"\"", + "name": "Test API", "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json", "description": null }, "variable": [ { "key": "baseUrl", + "value": "https://localhost", + "type": "string" + }, + { + "key": "apiKey", "value": "", "type": "string" } ], - "auth": null, + "auth": { + "type": "apikey", + "apikey": [ + { + "key": "value", + "value": "{{apiKey}}", + "type": "string" + }, + { + "key": "key", + "value": "X-API-Key", + "type": "string" + }, + { + "key": "in", + "value": "header", + "type": "string" + } + ] + }, "item": [ { "_type": "container", "description": null, "name": "DataService", "item": [ + { + "_type": "endpoint", + "name": "Foo", + "request": { + "description": null, + "url": { + "raw": "{{baseUrl}}/foo", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "foo" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "X-API-Key", + "value": "{{apiKey}}", + "type": "string", + "description": null + }, + { + "type": "text", + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "auth": null, + "body": null + }, + "response": [ + { + "name": "Success", + "status": "OK", + "code": 200, + "originalRequest": { + "description": null, + "url": { + "raw": "{{baseUrl}}/foo", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "foo" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "X-API-Key", + "value": "{{apiKey}}", + "type": "string", + "description": null + }, + { + "type": "text", + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "auth": null, + "body": null + }, + "description": null, + "body": "{\n \"key\": \"value\"\n}", + "_postman_previewlanguage": "json" + }, + { + "name": "Success", + "status": "OK", + "code": 200, + "originalRequest": { + "description": null, + "url": { + "raw": "{{baseUrl}}/foo", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "foo" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "X-API-Key", + "value": "{{apiKey}}", + "type": "string", + "description": null + }, + { + "type": "text", + "key": "Content-Type", + "value": "application/json" + } + ], + "method": "POST", + "auth": null, + "body": null + }, + "description": null, + "body": "{\n \"string\": {\n \"key\": \"value\"\n }\n}", + "_postman_previewlanguage": "json" + } + ] + }, { "_type": "endpoint", "name": "Upload", @@ -35,6 +171,12 @@ "variable": [] }, "header": [ + { + "key": "X-API-Key", + "value": "{{apiKey}}", + "type": "string", + "description": null + }, { "type": "text", "key": "Content-Type", @@ -72,6 +214,12 @@ "variable": [] }, "header": [ + { + "key": "X-API-Key", + "value": "{{apiKey}}", + "type": "string", + "description": null + }, { "type": "text", "key": "Content-Type", @@ -112,6 +260,12 @@ "variable": [] }, "header": [ + { + "key": "X-API-Key", + "value": "{{apiKey}}", + "type": "string", + "description": null + }, { "type": "text", "key": "Content-Type", @@ -154,6 +308,12 @@ "variable": [] }, "header": [ + { + "key": "X-API-Key", + "value": "{{apiKey}}", + "type": "string", + "description": null + }, { "type": "text", "key": "Content-Type", @@ -192,6 +352,12 @@ "variable": [] }, "header": [ + { + "key": "X-API-Key", + "value": "{{apiKey}}", + "type": "string", + "description": null + }, { "type": "text", "key": "Content-Type", @@ -233,6 +399,12 @@ "variable": [] }, "header": [ + { + "key": "X-API-Key", + "value": "{{apiKey}}", + "type": "string", + "description": null + }, { "type": "text", "key": "Content-Type", @@ -275,6 +447,12 @@ "variable": [] }, "header": [ + { + "key": "X-API-Key", + "value": "{{apiKey}}", + "type": "string", + "description": null + }, { "type": "text", "key": "Content-Type", @@ -313,6 +491,12 @@ "variable": [] }, "header": [ + { + "key": "X-API-Key", + "value": "{{apiKey}}", + "type": "string", + "description": null + }, { "type": "text", "key": "Content-Type", @@ -354,6 +538,12 @@ "variable": [] }, "header": [ + { + "key": "X-API-Key", + "value": "{{apiKey}}", + "type": "string", + "description": null + }, { "type": "text", "key": "Content-Type", @@ -396,6 +586,12 @@ "variable": [] }, "header": [ + { + "key": "X-API-Key", + "value": "{{apiKey}}", + "type": "string", + "description": null + }, { "type": "text", "key": "Content-Type", @@ -426,6 +622,12 @@ "variable": [] }, "header": [ + { + "key": "X-API-Key", + "value": "{{apiKey}}", + "type": "string", + "description": null + }, { "type": "text", "key": "Content-Type", @@ -470,6 +672,12 @@ "variable": [] }, "header": [ + { + "key": "X-API-Key", + "value": "{{apiKey}}", + "type": "string", + "description": null + }, { "type": "text", "key": "Content-Type", @@ -504,6 +712,12 @@ "variable": [] }, "header": [ + { + "key": "X-API-Key", + "value": "{{apiKey}}", + "type": "string", + "description": null + }, { "type": "text", "key": "Content-Type", @@ -534,6 +748,12 @@ "variable": [] }, "header": [ + { + "key": "X-API-Key", + "value": "{{apiKey}}", + "type": "string", + "description": null + }, { "type": "text", "key": "Content-Type", @@ -588,6 +808,12 @@ "variable": [] }, "header": [ + { + "key": "X-API-Key", + "value": "{{apiKey}}", + "type": "string", + "description": null + }, { "type": "text", "key": "Content-Type", @@ -622,6 +848,12 @@ "variable": [] }, "header": [ + { + "key": "X-API-Key", + "value": "{{apiKey}}", + "type": "string", + "description": null + }, { "type": "text", "key": "Content-Type", @@ -660,6 +892,12 @@ "variable": [] }, "header": [ + { + "key": "X-API-Key", + "value": "{{apiKey}}", + "type": "string", + "description": null + }, { "type": "text", "key": "Content-Type", @@ -701,6 +939,12 @@ "variable": [] }, "header": [ + { + "key": "X-API-Key", + "value": "{{apiKey}}", + "type": "string", + "description": null + }, { "type": "text", "key": "Content-Type", @@ -743,6 +987,12 @@ "variable": [] }, "header": [ + { + "key": "X-API-Key", + "value": "{{apiKey}}", + "type": "string", + "description": null + }, { "type": "text", "key": "Content-Type", @@ -781,6 +1031,12 @@ "variable": [] }, "header": [ + { + "key": "X-API-Key", + "value": "{{apiKey}}", + "type": "string", + "description": null + }, { "type": "text", "key": "Content-Type", @@ -822,6 +1078,12 @@ "variable": [] }, "header": [ + { + "key": "X-API-Key", + "value": "{{apiKey}}", + "type": "string", + "description": null + }, { "type": "text", "key": "Content-Type", diff --git a/seed/pydantic/grpc-proto-exhaustive/.mock/generators.yml b/seed/pydantic/grpc-proto-exhaustive/.mock/generators.yml index 972ed6d7b73..c23323621f2 100644 --- a/seed/pydantic/grpc-proto-exhaustive/.mock/generators.yml +++ b/seed/pydantic/grpc-proto-exhaustive/.mock/generators.yml @@ -1,6 +1,7 @@ api: - - proto: - root: proto - target: proto/data/v1/data.proto - overrides: overrides.yml - local-generation: true \ No newline at end of file + - path: openapi/openapi.yml + - proto: + root: proto + target: proto/data/v1/data.proto + overrides: overrides.yml + local-generation: true diff --git a/seed/pydantic/grpc-proto-exhaustive/.mock/openapi/openapi.yml b/seed/pydantic/grpc-proto-exhaustive/.mock/openapi/openapi.yml new file mode 100644 index 00000000000..ebc23143df3 --- /dev/null +++ b/seed/pydantic/grpc-proto-exhaustive/.mock/openapi/openapi.yml @@ -0,0 +1,33 @@ +openapi: 3.0.3 +info: + title: Test API + version: 1.0.0 +servers: + - url: https://localhost +tags: + - name: dataservice +paths: + /foo: + post: + tag: dataservice + x-fern-sdk-group-name: + - dataservice + x-fern-sdk-method-name: foo + security: + - ApiKeyAuth: [] + operationId: foo + responses: + "200": + content: + application/json: + schema: + type: object + +security: + - ApiKeyAuth: [] +components: + securitySchemes: + ApiKeyAuth: + type: apiKey + in: header + name: X-API-Key diff --git a/seed/ruby-sdk/auth-environment-variables/lib/requests.rb b/seed/ruby-sdk/auth-environment-variables/lib/requests.rb index a4f9ecb9ffc..12e2dd27bff 100644 --- a/seed/ruby-sdk/auth-environment-variables/lib/requests.rb +++ b/seed/ruby-sdk/auth-environment-variables/lib/requests.rb @@ -48,7 +48,7 @@ def get_headers "X-Fern-SDK-Name": "fern_auth_environment_variables", "X-Fern-SDK-Version": "0.0.1" } - headers["X-FERN-API-KEY"] = ((@api_key.is_a? Method) ? @api_key.call : @api_key) unless @api_key.nil? + headers["X-FERN-API-KEY"] = (@api_key.is_a?(Method) ? @api_key.call : @api_key) unless @api_key.nil? headers end end @@ -97,7 +97,7 @@ def get_headers "X-Fern-SDK-Name": "fern_auth_environment_variables", "X-Fern-SDK-Version": "0.0.1" } - headers["X-FERN-API-KEY"] = ((@api_key.is_a? Method) ? @api_key.call : @api_key) unless @api_key.nil? + headers["X-FERN-API-KEY"] = (@api_key.is_a?(Method) ? @api_key.call : @api_key) unless @api_key.nil? headers end end diff --git a/seed/ruby-sdk/basic-auth-environment-variables/lib/requests.rb b/seed/ruby-sdk/basic-auth-environment-variables/lib/requests.rb index 5429dae9806..0011ed19086 100644 --- a/seed/ruby-sdk/basic-auth-environment-variables/lib/requests.rb +++ b/seed/ruby-sdk/basic-auth-environment-variables/lib/requests.rb @@ -46,7 +46,7 @@ def get_headers } unless @basic_auth_token.nil? headers["Authorization"] = - ((@basic_auth_token.is_a? Method) ? @basic_auth_token.call : @basic_auth_token) + (@basic_auth_token.is_a?(Method) ? @basic_auth_token.call : @basic_auth_token) end headers end @@ -94,7 +94,7 @@ def get_headers } unless @basic_auth_token.nil? headers["Authorization"] = - ((@basic_auth_token.is_a? Method) ? @basic_auth_token.call : @basic_auth_token) + (@basic_auth_token.is_a?(Method) ? @basic_auth_token.call : @basic_auth_token) end headers end diff --git a/seed/ruby-sdk/basic-auth/lib/requests.rb b/seed/ruby-sdk/basic-auth/lib/requests.rb index 64c8475c5b1..7e186119f6e 100644 --- a/seed/ruby-sdk/basic-auth/lib/requests.rb +++ b/seed/ruby-sdk/basic-auth/lib/requests.rb @@ -41,7 +41,7 @@ def get_headers headers = { "X-Fern-Language": "Ruby", "X-Fern-SDK-Name": "fern_basic_auth", "X-Fern-SDK-Version": "0.0.1" } unless @basic_auth_token.nil? headers["Authorization"] = - ((@basic_auth_token.is_a? Method) ? @basic_auth_token.call : @basic_auth_token) + (@basic_auth_token.is_a?(Method) ? @basic_auth_token.call : @basic_auth_token) end headers end @@ -84,7 +84,7 @@ def get_headers headers = { "X-Fern-Language": "Ruby", "X-Fern-SDK-Name": "fern_basic_auth", "X-Fern-SDK-Version": "0.0.1" } unless @basic_auth_token.nil? headers["Authorization"] = - ((@basic_auth_token.is_a? Method) ? @basic_auth_token.call : @basic_auth_token) + (@basic_auth_token.is_a?(Method) ? @basic_auth_token.call : @basic_auth_token) end headers end diff --git a/seed/ruby-sdk/bearer-token-environment-variable/lib/requests.rb b/seed/ruby-sdk/bearer-token-environment-variable/lib/requests.rb index 5fac6e937ca..aad047be45b 100644 --- a/seed/ruby-sdk/bearer-token-environment-variable/lib/requests.rb +++ b/seed/ruby-sdk/bearer-token-environment-variable/lib/requests.rb @@ -42,7 +42,7 @@ def get_headers "X-Fern-SDK-Name": "fern_bearer_token_environment_variable", "X-Fern-SDK-Version": "0.0.1" } - headers["Authorization"] = ((@api_key.is_a? Method) ? @api_key.call : @api_key) unless @api_key.nil? + headers["Authorization"] = (@api_key.is_a?(Method) ? @api_key.call : @api_key) unless @api_key.nil? headers end end @@ -85,7 +85,7 @@ def get_headers "X-Fern-SDK-Name": "fern_bearer_token_environment_variable", "X-Fern-SDK-Version": "0.0.1" } - headers["Authorization"] = ((@api_key.is_a? Method) ? @api_key.call : @api_key) unless @api_key.nil? + headers["Authorization"] = (@api_key.is_a?(Method) ? @api_key.call : @api_key) unless @api_key.nil? headers end end diff --git a/seed/ruby-sdk/custom-auth/lib/requests.rb b/seed/ruby-sdk/custom-auth/lib/requests.rb index ef4768f5209..e89062905f7 100644 --- a/seed/ruby-sdk/custom-auth/lib/requests.rb +++ b/seed/ruby-sdk/custom-auth/lib/requests.rb @@ -40,7 +40,7 @@ def get_headers headers = { "X-Fern-Language": "Ruby", "X-Fern-SDK-Name": "fern_custom_auth", "X-Fern-SDK-Version": "0.0.1" } unless @custom_auth_scheme.nil? headers["X-API-KEY"] = - ((@custom_auth_scheme.is_a? Method) ? @custom_auth_scheme.call : @custom_auth_scheme) + (@custom_auth_scheme.is_a?(Method) ? @custom_auth_scheme.call : @custom_auth_scheme) end headers end @@ -82,7 +82,7 @@ def get_headers headers = { "X-Fern-Language": "Ruby", "X-Fern-SDK-Name": "fern_custom_auth", "X-Fern-SDK-Version": "0.0.1" } unless @custom_auth_scheme.nil? headers["X-API-KEY"] = - ((@custom_auth_scheme.is_a? Method) ? @custom_auth_scheme.call : @custom_auth_scheme) + (@custom_auth_scheme.is_a?(Method) ? @custom_auth_scheme.call : @custom_auth_scheme) end headers end diff --git a/seed/ruby-sdk/examples/lib/requests.rb b/seed/ruby-sdk/examples/lib/requests.rb index 55854b05251..732c11c2d10 100644 --- a/seed/ruby-sdk/examples/lib/requests.rb +++ b/seed/ruby-sdk/examples/lib/requests.rb @@ -43,7 +43,7 @@ def get_url(request_options: nil) # @return [Hash{String => String}] def get_headers headers = { "X-Fern-Language": "Ruby", "X-Fern-SDK-Name": "fern_examples", "X-Fern-SDK-Version": "0.0.1" } - headers["Authorization"] = ((@token.is_a? Method) ? @token.call : @token) unless @token.nil? + headers["Authorization"] = (@token.is_a?(Method) ? @token.call : @token) unless @token.nil? headers end end @@ -86,7 +86,7 @@ def get_url(request_options: nil) # @return [Hash{String => String}] def get_headers headers = { "X-Fern-Language": "Ruby", "X-Fern-SDK-Name": "fern_examples", "X-Fern-SDK-Version": "0.0.1" } - headers["Authorization"] = ((@token.is_a? Method) ? @token.call : @token) unless @token.nil? + headers["Authorization"] = (@token.is_a?(Method) ? @token.call : @token) unless @token.nil? headers end end diff --git a/seed/ruby-sdk/exhaustive/extra-deps/lib/requests.rb b/seed/ruby-sdk/exhaustive/extra-deps/lib/requests.rb index 169a4ce306f..94eba2bf232 100644 --- a/seed/ruby-sdk/exhaustive/extra-deps/lib/requests.rb +++ b/seed/ruby-sdk/exhaustive/extra-deps/lib/requests.rb @@ -38,7 +38,7 @@ def get_url(request_options: nil) # @return [Hash{String => String}] def get_headers headers = { "X-Fern-Language": "Ruby", "X-Fern-SDK-Name": "fern_exhaustive", "X-Fern-SDK-Version": "0.0.1" } - headers["Authorization"] = ((@token.is_a? Method) ? @token.call : @token) unless @token.nil? + headers["Authorization"] = (@token.is_a?(Method) ? @token.call : @token) unless @token.nil? headers end end @@ -77,7 +77,7 @@ def get_url(request_options: nil) # @return [Hash{String => String}] def get_headers headers = { "X-Fern-Language": "Ruby", "X-Fern-SDK-Name": "fern_exhaustive", "X-Fern-SDK-Version": "0.0.1" } - headers["Authorization"] = ((@token.is_a? Method) ? @token.call : @token) unless @token.nil? + headers["Authorization"] = (@token.is_a?(Method) ? @token.call : @token) unless @token.nil? headers end end diff --git a/seed/ruby-sdk/exhaustive/flattened-module-structure/lib/requests.rb b/seed/ruby-sdk/exhaustive/flattened-module-structure/lib/requests.rb index 169a4ce306f..94eba2bf232 100644 --- a/seed/ruby-sdk/exhaustive/flattened-module-structure/lib/requests.rb +++ b/seed/ruby-sdk/exhaustive/flattened-module-structure/lib/requests.rb @@ -38,7 +38,7 @@ def get_url(request_options: nil) # @return [Hash{String => String}] def get_headers headers = { "X-Fern-Language": "Ruby", "X-Fern-SDK-Name": "fern_exhaustive", "X-Fern-SDK-Version": "0.0.1" } - headers["Authorization"] = ((@token.is_a? Method) ? @token.call : @token) unless @token.nil? + headers["Authorization"] = (@token.is_a?(Method) ? @token.call : @token) unless @token.nil? headers end end @@ -77,7 +77,7 @@ def get_url(request_options: nil) # @return [Hash{String => String}] def get_headers headers = { "X-Fern-Language": "Ruby", "X-Fern-SDK-Name": "fern_exhaustive", "X-Fern-SDK-Version": "0.0.1" } - headers["Authorization"] = ((@token.is_a? Method) ? @token.call : @token) unless @token.nil? + headers["Authorization"] = (@token.is_a?(Method) ? @token.call : @token) unless @token.nil? headers end end diff --git a/seed/ruby-sdk/exhaustive/no-custom-config/lib/requests.rb b/seed/ruby-sdk/exhaustive/no-custom-config/lib/requests.rb index 169a4ce306f..94eba2bf232 100644 --- a/seed/ruby-sdk/exhaustive/no-custom-config/lib/requests.rb +++ b/seed/ruby-sdk/exhaustive/no-custom-config/lib/requests.rb @@ -38,7 +38,7 @@ def get_url(request_options: nil) # @return [Hash{String => String}] def get_headers headers = { "X-Fern-Language": "Ruby", "X-Fern-SDK-Name": "fern_exhaustive", "X-Fern-SDK-Version": "0.0.1" } - headers["Authorization"] = ((@token.is_a? Method) ? @token.call : @token) unless @token.nil? + headers["Authorization"] = (@token.is_a?(Method) ? @token.call : @token) unless @token.nil? headers end end @@ -77,7 +77,7 @@ def get_url(request_options: nil) # @return [Hash{String => String}] def get_headers headers = { "X-Fern-Language": "Ruby", "X-Fern-SDK-Name": "fern_exhaustive", "X-Fern-SDK-Version": "0.0.1" } - headers["Authorization"] = ((@token.is_a? Method) ? @token.call : @token) unless @token.nil? + headers["Authorization"] = (@token.is_a?(Method) ? @token.call : @token) unless @token.nil? headers end end diff --git a/seed/ruby-sdk/grpc-proto-exhaustive/.mock/generators.yml b/seed/ruby-sdk/grpc-proto-exhaustive/.mock/generators.yml index 972ed6d7b73..c23323621f2 100644 --- a/seed/ruby-sdk/grpc-proto-exhaustive/.mock/generators.yml +++ b/seed/ruby-sdk/grpc-proto-exhaustive/.mock/generators.yml @@ -1,6 +1,7 @@ api: - - proto: - root: proto - target: proto/data/v1/data.proto - overrides: overrides.yml - local-generation: true \ No newline at end of file + - path: openapi/openapi.yml + - proto: + root: proto + target: proto/data/v1/data.proto + overrides: overrides.yml + local-generation: true diff --git a/seed/ruby-sdk/grpc-proto-exhaustive/.mock/openapi/openapi.yml b/seed/ruby-sdk/grpc-proto-exhaustive/.mock/openapi/openapi.yml new file mode 100644 index 00000000000..ebc23143df3 --- /dev/null +++ b/seed/ruby-sdk/grpc-proto-exhaustive/.mock/openapi/openapi.yml @@ -0,0 +1,33 @@ +openapi: 3.0.3 +info: + title: Test API + version: 1.0.0 +servers: + - url: https://localhost +tags: + - name: dataservice +paths: + /foo: + post: + tag: dataservice + x-fern-sdk-group-name: + - dataservice + x-fern-sdk-method-name: foo + security: + - ApiKeyAuth: [] + operationId: foo + responses: + "200": + content: + application/json: + schema: + type: object + +security: + - ApiKeyAuth: [] +components: + securitySchemes: + ApiKeyAuth: + type: apiKey + in: header + name: X-API-Key diff --git a/seed/ruby-sdk/grpc-proto-exhaustive/lib/environment.rb b/seed/ruby-sdk/grpc-proto-exhaustive/lib/environment.rb new file mode 100644 index 00000000000..d22f8c57f0d --- /dev/null +++ b/seed/ruby-sdk/grpc-proto-exhaustive/lib/environment.rb @@ -0,0 +1,7 @@ +# frozen_string_literal: true + +module SeedApiClient + class Environment + DEFAULT = "https://localhost" + end +end diff --git a/seed/ruby-sdk/grpc-proto-exhaustive/lib/fern_grpc_proto_exhaustive.rb b/seed/ruby-sdk/grpc-proto-exhaustive/lib/fern_grpc_proto_exhaustive.rb index e9cf4dc09e8..102b9913a3d 100644 --- a/seed/ruby-sdk/grpc-proto-exhaustive/lib/fern_grpc_proto_exhaustive.rb +++ b/seed/ruby-sdk/grpc-proto-exhaustive/lib/fern_grpc_proto_exhaustive.rb @@ -1,5 +1,6 @@ # frozen_string_literal: true +require_relative "environment" require_relative "types_export" require_relative "requests" require_relative "fern_grpc_proto_exhaustive/dataservice/client" @@ -10,14 +11,19 @@ class Client attr_reader :dataservice # @param base_url [String] + # @param environment [SeedApiClient::Environment] # @param max_retries [Long] The number of times to retry a failed request, defaults to 2. # @param timeout_in_seconds [Long] + # @param api_key [String] # @return [SeedApiClient::Client] - def initialize(base_url: nil, max_retries: nil, timeout_in_seconds: nil) + def initialize(api_key:, base_url: nil, environment: SeedApiClient::Environment::DEFAULT, max_retries: nil, + timeout_in_seconds: nil) @request_client = SeedApiClient::RequestClient.new( base_url: base_url, + environment: environment, max_retries: max_retries, - timeout_in_seconds: timeout_in_seconds + timeout_in_seconds: timeout_in_seconds, + api_key: api_key ) @dataservice = SeedApiClient::DataserviceClient.new(request_client: @request_client) end @@ -28,14 +34,19 @@ class AsyncClient attr_reader :dataservice # @param base_url [String] + # @param environment [SeedApiClient::Environment] # @param max_retries [Long] The number of times to retry a failed request, defaults to 2. # @param timeout_in_seconds [Long] + # @param api_key [String] # @return [SeedApiClient::AsyncClient] - def initialize(base_url: nil, max_retries: nil, timeout_in_seconds: nil) + def initialize(api_key:, base_url: nil, environment: SeedApiClient::Environment::DEFAULT, max_retries: nil, + timeout_in_seconds: nil) @async_request_client = SeedApiClient::AsyncRequestClient.new( base_url: base_url, + environment: environment, max_retries: max_retries, - timeout_in_seconds: timeout_in_seconds + timeout_in_seconds: timeout_in_seconds, + api_key: api_key ) @dataservice = SeedApiClient::AsyncDataserviceClient.new(request_client: @async_request_client) end diff --git a/seed/ruby-sdk/grpc-proto-exhaustive/lib/fern_grpc_proto_exhaustive/dataservice/client.rb b/seed/ruby-sdk/grpc-proto-exhaustive/lib/fern_grpc_proto_exhaustive/dataservice/client.rb index 5f593e4c3ce..e303d2ecb84 100644 --- a/seed/ruby-sdk/grpc-proto-exhaustive/lib/fern_grpc_proto_exhaustive/dataservice/client.rb +++ b/seed/ruby-sdk/grpc-proto-exhaustive/lib/fern_grpc_proto_exhaustive/dataservice/client.rb @@ -1,6 +1,7 @@ # frozen_string_literal: true require_relative "../../requests" +require "json" require_relative "../types/column" require_relative "../types/upload_response" require_relative "../types/metadata" @@ -25,6 +26,35 @@ def initialize(request_client:) @request_client = request_client end + # @param request_options [SeedApiClient::RequestOptions] + # @return [Hash{String => Object}] + # @example + # api = SeedApiClient::Client.new( + # base_url: "https://api.example.com", + # environment: SeedApiClient::Environment::DEFAULT, + # api_key: "YOUR_API_KEY" + # ) + # api.dataservice.foo + def foo(request_options: nil) + response = @request_client.conn.post do |req| + req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? + req.headers["X-API-Key"] = request_options.api_key unless request_options&.api_key.nil? + req.headers = { + **(req.headers || {}), + **@request_client.get_headers, + **(request_options&.additional_headers || {}) + }.compact + unless request_options.nil? || request_options&.additional_query_parameters.nil? + req.params = { **(request_options&.additional_query_parameters || {}) }.compact + end + unless request_options.nil? || request_options&.additional_body_parameters.nil? + req.body = { **(request_options&.additional_body_parameters || {}) }.compact + end + req.url "#{@request_client.get_url(request_options: request_options)}/foo" + end + JSON.parse(response.body) + end + # @param columns [Array] Request of type Array, as a Hash # * :id (String) # * :values (Array) @@ -36,11 +66,16 @@ def initialize(request_client:) # @param request_options [SeedApiClient::RequestOptions] # @return [SeedApiClient::UploadResponse] # @example - # api = SeedApiClient::Client.new(base_url: "https://api.example.com") + # api = SeedApiClient::Client.new( + # base_url: "https://api.example.com", + # environment: SeedApiClient::Environment::DEFAULT, + # api_key: "YOUR_API_KEY" + # ) # api.dataservice.upload(columns: [{ id: "id", values: [1.1] }]) def upload(columns:, namespace: nil, request_options: nil) response = @request_client.conn.post do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? + req.headers["X-API-Key"] = request_options.api_key unless request_options&.api_key.nil? req.headers = { **(req.headers || {}), **@request_client.get_headers, @@ -66,11 +101,16 @@ def upload(columns:, namespace: nil, request_options: nil) # @param request_options [SeedApiClient::RequestOptions] # @return [SeedApiClient::DeleteResponse] # @example - # api = SeedApiClient::Client.new(base_url: "https://api.example.com") + # api = SeedApiClient::Client.new( + # base_url: "https://api.example.com", + # environment: SeedApiClient::Environment::DEFAULT, + # api_key: "YOUR_API_KEY" + # ) # api.dataservice.delete def delete(ids: nil, delete_all: nil, namespace: nil, filter: nil, request_options: nil) response = @request_client.conn.post do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? + req.headers["X-API-Key"] = request_options.api_key unless request_options&.api_key.nil? req.headers = { **(req.headers || {}), **@request_client.get_headers, @@ -95,11 +135,16 @@ def delete(ids: nil, delete_all: nil, namespace: nil, filter: nil, request_optio # @param request_options [SeedApiClient::RequestOptions] # @return [SeedApiClient::DescribeResponse] # @example - # api = SeedApiClient::Client.new(base_url: "https://api.example.com") + # api = SeedApiClient::Client.new( + # base_url: "https://api.example.com", + # environment: SeedApiClient::Environment::DEFAULT, + # api_key: "YOUR_API_KEY" + # ) # api.dataservice.describe def describe(filter: nil, request_options: nil) response = @request_client.conn.post do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? + req.headers["X-API-Key"] = request_options.api_key unless request_options&.api_key.nil? req.headers = { **(req.headers || {}), **@request_client.get_headers, @@ -119,11 +164,16 @@ def describe(filter: nil, request_options: nil) # @param request_options [SeedApiClient::RequestOptions] # @return [SeedApiClient::FetchResponse] # @example - # api = SeedApiClient::Client.new(base_url: "https://api.example.com") + # api = SeedApiClient::Client.new( + # base_url: "https://api.example.com", + # environment: SeedApiClient::Environment::DEFAULT, + # api_key: "YOUR_API_KEY" + # ) # api.dataservice.fetch def fetch(ids: nil, namespace: nil, request_options: nil) response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? + req.headers["X-API-Key"] = request_options.api_key unless request_options&.api_key.nil? req.headers = { **(req.headers || {}), **@request_client.get_headers, @@ -149,11 +199,16 @@ def fetch(ids: nil, namespace: nil, request_options: nil) # @param request_options [SeedApiClient::RequestOptions] # @return [SeedApiClient::ListResponse] # @example - # api = SeedApiClient::Client.new(base_url: "https://api.example.com") + # api = SeedApiClient::Client.new( + # base_url: "https://api.example.com", + # environment: SeedApiClient::Environment::DEFAULT, + # api_key: "YOUR_API_KEY" + # ) # api.dataservice.list def list(prefix: nil, limit: nil, pagination_token: nil, namespace: nil, request_options: nil) response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? + req.headers["X-API-Key"] = request_options.api_key unless request_options&.api_key.nil? req.headers = { **(req.headers || {}), **@request_client.get_headers, @@ -195,12 +250,17 @@ def list(prefix: nil, limit: nil, pagination_token: nil, namespace: nil, request # @param request_options [SeedApiClient::RequestOptions] # @return [SeedApiClient::QueryResponse] # @example - # api = SeedApiClient::Client.new(base_url: "https://api.example.com") + # api = SeedApiClient::Client.new( + # base_url: "https://api.example.com", + # environment: SeedApiClient::Environment::DEFAULT, + # api_key: "YOUR_API_KEY" + # ) # api.dataservice.query(top_k: 1) def query(top_k:, namespace: nil, filter: nil, include_values: nil, include_metadata: nil, queries: nil, column: nil, id: nil, indexed_data: nil, request_options: nil) response = @request_client.conn.post do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? + req.headers["X-API-Key"] = request_options.api_key unless request_options&.api_key.nil? req.headers = { **(req.headers || {}), **@request_client.get_headers, @@ -236,11 +296,16 @@ def query(top_k:, namespace: nil, filter: nil, include_values: nil, include_meta # @param request_options [SeedApiClient::RequestOptions] # @return [SeedApiClient::UpdateResponse] # @example - # api = SeedApiClient::Client.new(base_url: "https://api.example.com") + # api = SeedApiClient::Client.new( + # base_url: "https://api.example.com", + # environment: SeedApiClient::Environment::DEFAULT, + # api_key: "YOUR_API_KEY" + # ) # api.dataservice.update(id: "id") def update(id:, values: nil, set_metadata: nil, namespace: nil, indexed_data: nil, request_options: nil) response = @request_client.conn.post do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? + req.headers["X-API-Key"] = request_options.api_key unless request_options&.api_key.nil? req.headers = { **(req.headers || {}), **@request_client.get_headers, @@ -273,6 +338,38 @@ def initialize(request_client:) @request_client = request_client end + # @param request_options [SeedApiClient::RequestOptions] + # @return [Hash{String => Object}] + # @example + # api = SeedApiClient::Client.new( + # base_url: "https://api.example.com", + # environment: SeedApiClient::Environment::DEFAULT, + # api_key: "YOUR_API_KEY" + # ) + # api.dataservice.foo + def foo(request_options: nil) + Async do + response = @request_client.conn.post do |req| + req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? + req.headers["X-API-Key"] = request_options.api_key unless request_options&.api_key.nil? + req.headers = { + **(req.headers || {}), + **@request_client.get_headers, + **(request_options&.additional_headers || {}) + }.compact + unless request_options.nil? || request_options&.additional_query_parameters.nil? + req.params = { **(request_options&.additional_query_parameters || {}) }.compact + end + unless request_options.nil? || request_options&.additional_body_parameters.nil? + req.body = { **(request_options&.additional_body_parameters || {}) }.compact + end + req.url "#{@request_client.get_url(request_options: request_options)}/foo" + end + parsed_json = JSON.parse(response.body) + parsed_json + end + end + # @param columns [Array] Request of type Array, as a Hash # * :id (String) # * :values (Array) @@ -284,12 +381,17 @@ def initialize(request_client:) # @param request_options [SeedApiClient::RequestOptions] # @return [SeedApiClient::UploadResponse] # @example - # api = SeedApiClient::Client.new(base_url: "https://api.example.com") + # api = SeedApiClient::Client.new( + # base_url: "https://api.example.com", + # environment: SeedApiClient::Environment::DEFAULT, + # api_key: "YOUR_API_KEY" + # ) # api.dataservice.upload(columns: [{ id: "id", values: [1.1] }]) def upload(columns:, namespace: nil, request_options: nil) Async do response = @request_client.conn.post do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? + req.headers["X-API-Key"] = request_options.api_key unless request_options&.api_key.nil? req.headers = { **(req.headers || {}), **@request_client.get_headers, @@ -316,12 +418,17 @@ def upload(columns:, namespace: nil, request_options: nil) # @param request_options [SeedApiClient::RequestOptions] # @return [SeedApiClient::DeleteResponse] # @example - # api = SeedApiClient::Client.new(base_url: "https://api.example.com") + # api = SeedApiClient::Client.new( + # base_url: "https://api.example.com", + # environment: SeedApiClient::Environment::DEFAULT, + # api_key: "YOUR_API_KEY" + # ) # api.dataservice.delete def delete(ids: nil, delete_all: nil, namespace: nil, filter: nil, request_options: nil) Async do response = @request_client.conn.post do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? + req.headers["X-API-Key"] = request_options.api_key unless request_options&.api_key.nil? req.headers = { **(req.headers || {}), **@request_client.get_headers, @@ -347,12 +454,17 @@ def delete(ids: nil, delete_all: nil, namespace: nil, filter: nil, request_optio # @param request_options [SeedApiClient::RequestOptions] # @return [SeedApiClient::DescribeResponse] # @example - # api = SeedApiClient::Client.new(base_url: "https://api.example.com") + # api = SeedApiClient::Client.new( + # base_url: "https://api.example.com", + # environment: SeedApiClient::Environment::DEFAULT, + # api_key: "YOUR_API_KEY" + # ) # api.dataservice.describe def describe(filter: nil, request_options: nil) Async do response = @request_client.conn.post do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? + req.headers["X-API-Key"] = request_options.api_key unless request_options&.api_key.nil? req.headers = { **(req.headers || {}), **@request_client.get_headers, @@ -373,12 +485,17 @@ def describe(filter: nil, request_options: nil) # @param request_options [SeedApiClient::RequestOptions] # @return [SeedApiClient::FetchResponse] # @example - # api = SeedApiClient::Client.new(base_url: "https://api.example.com") + # api = SeedApiClient::Client.new( + # base_url: "https://api.example.com", + # environment: SeedApiClient::Environment::DEFAULT, + # api_key: "YOUR_API_KEY" + # ) # api.dataservice.fetch def fetch(ids: nil, namespace: nil, request_options: nil) Async do response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? + req.headers["X-API-Key"] = request_options.api_key unless request_options&.api_key.nil? req.headers = { **(req.headers || {}), **@request_client.get_headers, @@ -405,12 +522,17 @@ def fetch(ids: nil, namespace: nil, request_options: nil) # @param request_options [SeedApiClient::RequestOptions] # @return [SeedApiClient::ListResponse] # @example - # api = SeedApiClient::Client.new(base_url: "https://api.example.com") + # api = SeedApiClient::Client.new( + # base_url: "https://api.example.com", + # environment: SeedApiClient::Environment::DEFAULT, + # api_key: "YOUR_API_KEY" + # ) # api.dataservice.list def list(prefix: nil, limit: nil, pagination_token: nil, namespace: nil, request_options: nil) Async do response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? + req.headers["X-API-Key"] = request_options.api_key unless request_options&.api_key.nil? req.headers = { **(req.headers || {}), **@request_client.get_headers, @@ -453,13 +575,18 @@ def list(prefix: nil, limit: nil, pagination_token: nil, namespace: nil, request # @param request_options [SeedApiClient::RequestOptions] # @return [SeedApiClient::QueryResponse] # @example - # api = SeedApiClient::Client.new(base_url: "https://api.example.com") + # api = SeedApiClient::Client.new( + # base_url: "https://api.example.com", + # environment: SeedApiClient::Environment::DEFAULT, + # api_key: "YOUR_API_KEY" + # ) # api.dataservice.query(top_k: 1) def query(top_k:, namespace: nil, filter: nil, include_values: nil, include_metadata: nil, queries: nil, column: nil, id: nil, indexed_data: nil, request_options: nil) Async do response = @request_client.conn.post do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? + req.headers["X-API-Key"] = request_options.api_key unless request_options&.api_key.nil? req.headers = { **(req.headers || {}), **@request_client.get_headers, @@ -496,12 +623,17 @@ def query(top_k:, namespace: nil, filter: nil, include_values: nil, include_meta # @param request_options [SeedApiClient::RequestOptions] # @return [SeedApiClient::UpdateResponse] # @example - # api = SeedApiClient::Client.new(base_url: "https://api.example.com") + # api = SeedApiClient::Client.new( + # base_url: "https://api.example.com", + # environment: SeedApiClient::Environment::DEFAULT, + # api_key: "YOUR_API_KEY" + # ) # api.dataservice.update(id: "id") def update(id:, values: nil, set_metadata: nil, namespace: nil, indexed_data: nil, request_options: nil) Async do response = @request_client.conn.post do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? + req.headers["X-API-Key"] = request_options.api_key unless request_options&.api_key.nil? req.headers = { **(req.headers || {}), **@request_client.get_headers, diff --git a/seed/ruby-sdk/grpc-proto-exhaustive/lib/requests.rb b/seed/ruby-sdk/grpc-proto-exhaustive/lib/requests.rb index e6adb4478dd..d181557796e 100644 --- a/seed/ruby-sdk/grpc-proto-exhaustive/lib/requests.rb +++ b/seed/ruby-sdk/grpc-proto-exhaustive/lib/requests.rb @@ -1,5 +1,6 @@ # frozen_string_literal: true +require_relative "environment" require "faraday" require "faraday/retry" require "async/http/faraday" @@ -10,13 +11,22 @@ class RequestClient attr_reader :conn # @return [String] attr_reader :base_url + # @return [String] + attr_reader :api_key + # @return [String] + attr_reader :default_environment # @param base_url [String] + # @param environment [SeedApiClient::Environment] # @param max_retries [Long] The number of times to retry a failed request, defaults to 2. # @param timeout_in_seconds [Long] + # @param api_key [String] # @return [SeedApiClient::RequestClient] - def initialize(base_url: nil, max_retries: nil, timeout_in_seconds: nil) - @base_url = base_url + def initialize(api_key:, base_url: nil, environment: SeedApiClient::Environment::DEFAULT, max_retries: nil, + timeout_in_seconds: nil) + @default_environment = environment + @base_url = environment || base_url + @api_key = api_key @conn = Faraday.new do |faraday| faraday.request :json faraday.response :raise_error, include_request: true @@ -28,16 +38,18 @@ def initialize(base_url: nil, max_retries: nil, timeout_in_seconds: nil) # @param request_options [SeedApiClient::RequestOptions] # @return [String] def get_url(request_options: nil) - request_options&.base_url || @base_url + request_options&.base_url || @default_environment || @base_url end # @return [Hash{String => String}] def get_headers - { + headers = { "X-Fern-Language": "Ruby", "X-Fern-SDK-Name": "fern_grpc_proto_exhaustive", "X-Fern-SDK-Version": "0.0.1" } + headers["X-API-Key"] = (@api_key.is_a?(Method) ? @api_key.call : @api_key) unless @api_key.nil? + headers end end @@ -46,13 +58,22 @@ class AsyncRequestClient attr_reader :conn # @return [String] attr_reader :base_url + # @return [String] + attr_reader :api_key + # @return [String] + attr_reader :default_environment # @param base_url [String] + # @param environment [SeedApiClient::Environment] # @param max_retries [Long] The number of times to retry a failed request, defaults to 2. # @param timeout_in_seconds [Long] + # @param api_key [String] # @return [SeedApiClient::AsyncRequestClient] - def initialize(base_url: nil, max_retries: nil, timeout_in_seconds: nil) - @base_url = base_url + def initialize(api_key:, base_url: nil, environment: SeedApiClient::Environment::DEFAULT, max_retries: nil, + timeout_in_seconds: nil) + @default_environment = environment + @base_url = environment || base_url + @api_key = api_key @conn = Faraday.new do |faraday| faraday.request :json faraday.response :raise_error, include_request: true @@ -65,16 +86,18 @@ def initialize(base_url: nil, max_retries: nil, timeout_in_seconds: nil) # @param request_options [SeedApiClient::RequestOptions] # @return [String] def get_url(request_options: nil) - request_options&.base_url || @base_url + request_options&.base_url || @default_environment || @base_url end # @return [Hash{String => String}] def get_headers - { + headers = { "X-Fern-Language": "Ruby", "X-Fern-SDK-Name": "fern_grpc_proto_exhaustive", "X-Fern-SDK-Version": "0.0.1" } + headers["X-API-Key"] = (@api_key.is_a?(Method) ? @api_key.call : @api_key) unless @api_key.nil? + headers end end @@ -83,6 +106,8 @@ def get_headers class RequestOptions # @return [String] attr_reader :base_url + # @return [String] + attr_reader :api_key # @return [Hash{String => Object}] attr_reader :additional_headers # @return [Hash{String => Object}] @@ -93,14 +118,16 @@ class RequestOptions attr_reader :timeout_in_seconds # @param base_url [String] + # @param api_key [String] # @param additional_headers [Hash{String => Object}] # @param additional_query_parameters [Hash{String => Object}] # @param additional_body_parameters [Hash{String => Object}] # @param timeout_in_seconds [Long] # @return [SeedApiClient::RequestOptions] - def initialize(base_url: nil, additional_headers: nil, additional_query_parameters: nil, + def initialize(base_url: nil, api_key: nil, additional_headers: nil, additional_query_parameters: nil, additional_body_parameters: nil, timeout_in_seconds: nil) @base_url = base_url + @api_key = api_key @additional_headers = additional_headers @additional_query_parameters = additional_query_parameters @additional_body_parameters = additional_body_parameters @@ -113,6 +140,8 @@ def initialize(base_url: nil, additional_headers: nil, additional_query_paramete class IdempotencyRequestOptions # @return [String] attr_reader :base_url + # @return [String] + attr_reader :api_key # @return [Hash{String => Object}] attr_reader :additional_headers # @return [Hash{String => Object}] @@ -123,14 +152,16 @@ class IdempotencyRequestOptions attr_reader :timeout_in_seconds # @param base_url [String] + # @param api_key [String] # @param additional_headers [Hash{String => Object}] # @param additional_query_parameters [Hash{String => Object}] # @param additional_body_parameters [Hash{String => Object}] # @param timeout_in_seconds [Long] # @return [SeedApiClient::IdempotencyRequestOptions] - def initialize(base_url: nil, additional_headers: nil, additional_query_parameters: nil, + def initialize(base_url: nil, api_key: nil, additional_headers: nil, additional_query_parameters: nil, additional_body_parameters: nil, timeout_in_seconds: nil) @base_url = base_url + @api_key = api_key @additional_headers = additional_headers @additional_query_parameters = additional_query_parameters @additional_body_parameters = additional_body_parameters diff --git a/seed/ruby-sdk/grpc-proto-exhaustive/snippet.json b/seed/ruby-sdk/grpc-proto-exhaustive/snippet.json index 4512da57430..ebab85334d4 100644 --- a/seed/ruby-sdk/grpc-proto-exhaustive/snippet.json +++ b/seed/ruby-sdk/grpc-proto-exhaustive/snippet.json @@ -1,5 +1,16 @@ { "endpoints": [ + { + "id": { + "path": "/foo", + "method": "POST", + "identifierOverride": "endpoint_dataservice.foo" + }, + "snippet": { + "client": "require \"fern_grpc_proto_exhaustive\"\n\napi = SeedApiClient::Client.new(\n base_url: \"https://api.example.com\",\n environment: SeedApiClient::Environment::DEFAULT,\n api_key: \"YOUR_API_KEY\"\n)\napi.dataservice.foo", + "type": "ruby" + } + }, { "id": { "path": "/data", @@ -7,7 +18,7 @@ "identifierOverride": "endpoint_dataservice.upload" }, "snippet": { - "client": "require \"fern_grpc_proto_exhaustive\"\n\napi = SeedApiClient::Client.new(base_url: \"https://api.example.com\")\napi.dataservice.upload(columns: [{ id: \"id\", values: [1.1] }])", + "client": "require \"fern_grpc_proto_exhaustive\"\n\napi = SeedApiClient::Client.new(\n base_url: \"https://api.example.com\",\n environment: SeedApiClient::Environment::DEFAULT,\n api_key: \"YOUR_API_KEY\"\n)\napi.dataservice.upload(columns: [{ id: \"id\", values: [1.1] }])", "type": "ruby" } }, @@ -18,7 +29,7 @@ "identifierOverride": "endpoint_dataservice.delete" }, "snippet": { - "client": "require \"fern_grpc_proto_exhaustive\"\n\napi = SeedApiClient::Client.new(base_url: \"https://api.example.com\")\napi.dataservice.delete", + "client": "require \"fern_grpc_proto_exhaustive\"\n\napi = SeedApiClient::Client.new(\n base_url: \"https://api.example.com\",\n environment: SeedApiClient::Environment::DEFAULT,\n api_key: \"YOUR_API_KEY\"\n)\napi.dataservice.delete", "type": "ruby" } }, @@ -29,7 +40,7 @@ "identifierOverride": "endpoint_dataservice.describe" }, "snippet": { - "client": "require \"fern_grpc_proto_exhaustive\"\n\napi = SeedApiClient::Client.new(base_url: \"https://api.example.com\")\napi.dataservice.describe", + "client": "require \"fern_grpc_proto_exhaustive\"\n\napi = SeedApiClient::Client.new(\n base_url: \"https://api.example.com\",\n environment: SeedApiClient::Environment::DEFAULT,\n api_key: \"YOUR_API_KEY\"\n)\napi.dataservice.describe", "type": "ruby" } }, @@ -40,7 +51,7 @@ "identifierOverride": "endpoint_dataservice.fetch" }, "snippet": { - "client": "require \"fern_grpc_proto_exhaustive\"\n\napi = SeedApiClient::Client.new(base_url: \"https://api.example.com\")\napi.dataservice.fetch", + "client": "require \"fern_grpc_proto_exhaustive\"\n\napi = SeedApiClient::Client.new(\n base_url: \"https://api.example.com\",\n environment: SeedApiClient::Environment::DEFAULT,\n api_key: \"YOUR_API_KEY\"\n)\napi.dataservice.fetch", "type": "ruby" } }, @@ -51,7 +62,7 @@ "identifierOverride": "endpoint_dataservice.list" }, "snippet": { - "client": "require \"fern_grpc_proto_exhaustive\"\n\napi = SeedApiClient::Client.new(base_url: \"https://api.example.com\")\napi.dataservice.list", + "client": "require \"fern_grpc_proto_exhaustive\"\n\napi = SeedApiClient::Client.new(\n base_url: \"https://api.example.com\",\n environment: SeedApiClient::Environment::DEFAULT,\n api_key: \"YOUR_API_KEY\"\n)\napi.dataservice.list", "type": "ruby" } }, @@ -62,7 +73,7 @@ "identifierOverride": "endpoint_dataservice.query" }, "snippet": { - "client": "require \"fern_grpc_proto_exhaustive\"\n\napi = SeedApiClient::Client.new(base_url: \"https://api.example.com\")\napi.dataservice.query(top_k: 1)", + "client": "require \"fern_grpc_proto_exhaustive\"\n\napi = SeedApiClient::Client.new(\n base_url: \"https://api.example.com\",\n environment: SeedApiClient::Environment::DEFAULT,\n api_key: \"YOUR_API_KEY\"\n)\napi.dataservice.query(top_k: 1)", "type": "ruby" } }, @@ -73,7 +84,18 @@ "identifierOverride": "endpoint_dataservice.update" }, "snippet": { - "client": "require \"fern_grpc_proto_exhaustive\"\n\napi = SeedApiClient::Client.new(base_url: \"https://api.example.com\")\napi.dataservice.update(id: \"id\")", + "client": "require \"fern_grpc_proto_exhaustive\"\n\napi = SeedApiClient::Client.new(\n base_url: \"https://api.example.com\",\n environment: SeedApiClient::Environment::DEFAULT,\n api_key: \"YOUR_API_KEY\"\n)\napi.dataservice.update(id: \"id\")", + "type": "ruby" + } + }, + { + "id": { + "path": "/foo", + "method": "POST", + "identifierOverride": "endpoint_dataservice.foo" + }, + "snippet": { + "client": "require \"fern_grpc_proto_exhaustive\"\n\napi = SeedApiClient::Client.new(\n base_url: \"https://api.example.com\",\n environment: SeedApiClient::Environment::DEFAULT,\n api_key: \"YOUR_API_KEY\"\n)\napi.dataservice.foo", "type": "ruby" } }, @@ -84,7 +106,7 @@ "identifierOverride": "endpoint_dataservice.upload" }, "snippet": { - "client": "require \"fern_grpc_proto_exhaustive\"\n\napi = SeedApiClient::Client.new(base_url: \"https://api.example.com\")\napi.dataservice.upload(columns: [{ id: \"id\", values: [1.1] }])", + "client": "require \"fern_grpc_proto_exhaustive\"\n\napi = SeedApiClient::Client.new(\n base_url: \"https://api.example.com\",\n environment: SeedApiClient::Environment::DEFAULT,\n api_key: \"YOUR_API_KEY\"\n)\napi.dataservice.upload(columns: [{ id: \"id\", values: [1.1] }])", "type": "ruby" } }, @@ -95,7 +117,7 @@ "identifierOverride": "endpoint_dataservice.delete" }, "snippet": { - "client": "require \"fern_grpc_proto_exhaustive\"\n\napi = SeedApiClient::Client.new(base_url: \"https://api.example.com\")\napi.dataservice.delete", + "client": "require \"fern_grpc_proto_exhaustive\"\n\napi = SeedApiClient::Client.new(\n base_url: \"https://api.example.com\",\n environment: SeedApiClient::Environment::DEFAULT,\n api_key: \"YOUR_API_KEY\"\n)\napi.dataservice.delete", "type": "ruby" } }, @@ -106,7 +128,7 @@ "identifierOverride": "endpoint_dataservice.describe" }, "snippet": { - "client": "require \"fern_grpc_proto_exhaustive\"\n\napi = SeedApiClient::Client.new(base_url: \"https://api.example.com\")\napi.dataservice.describe", + "client": "require \"fern_grpc_proto_exhaustive\"\n\napi = SeedApiClient::Client.new(\n base_url: \"https://api.example.com\",\n environment: SeedApiClient::Environment::DEFAULT,\n api_key: \"YOUR_API_KEY\"\n)\napi.dataservice.describe", "type": "ruby" } }, @@ -117,7 +139,7 @@ "identifierOverride": "endpoint_dataservice.fetch" }, "snippet": { - "client": "require \"fern_grpc_proto_exhaustive\"\n\napi = SeedApiClient::Client.new(base_url: \"https://api.example.com\")\napi.dataservice.fetch", + "client": "require \"fern_grpc_proto_exhaustive\"\n\napi = SeedApiClient::Client.new(\n base_url: \"https://api.example.com\",\n environment: SeedApiClient::Environment::DEFAULT,\n api_key: \"YOUR_API_KEY\"\n)\napi.dataservice.fetch", "type": "ruby" } }, @@ -128,7 +150,7 @@ "identifierOverride": "endpoint_dataservice.list" }, "snippet": { - "client": "require \"fern_grpc_proto_exhaustive\"\n\napi = SeedApiClient::Client.new(base_url: \"https://api.example.com\")\napi.dataservice.list", + "client": "require \"fern_grpc_proto_exhaustive\"\n\napi = SeedApiClient::Client.new(\n base_url: \"https://api.example.com\",\n environment: SeedApiClient::Environment::DEFAULT,\n api_key: \"YOUR_API_KEY\"\n)\napi.dataservice.list", "type": "ruby" } }, @@ -139,7 +161,7 @@ "identifierOverride": "endpoint_dataservice.query" }, "snippet": { - "client": "require \"fern_grpc_proto_exhaustive\"\n\napi = SeedApiClient::Client.new(base_url: \"https://api.example.com\")\napi.dataservice.query(top_k: 1)", + "client": "require \"fern_grpc_proto_exhaustive\"\n\napi = SeedApiClient::Client.new(\n base_url: \"https://api.example.com\",\n environment: SeedApiClient::Environment::DEFAULT,\n api_key: \"YOUR_API_KEY\"\n)\napi.dataservice.query(top_k: 1)", "type": "ruby" } }, @@ -150,7 +172,7 @@ "identifierOverride": "endpoint_dataservice.update" }, "snippet": { - "client": "require \"fern_grpc_proto_exhaustive\"\n\napi = SeedApiClient::Client.new(base_url: \"https://api.example.com\")\napi.dataservice.update(id: \"id\")", + "client": "require \"fern_grpc_proto_exhaustive\"\n\napi = SeedApiClient::Client.new(\n base_url: \"https://api.example.com\",\n environment: SeedApiClient::Environment::DEFAULT,\n api_key: \"YOUR_API_KEY\"\n)\napi.dataservice.update(id: \"id\")", "type": "ruby" } } diff --git a/seed/ruby-sdk/idempotency-headers/lib/requests.rb b/seed/ruby-sdk/idempotency-headers/lib/requests.rb index 2624a925af5..eb22dfc2450 100644 --- a/seed/ruby-sdk/idempotency-headers/lib/requests.rb +++ b/seed/ruby-sdk/idempotency-headers/lib/requests.rb @@ -42,7 +42,7 @@ def get_headers "X-Fern-SDK-Name": "fern_idempotency_headers", "X-Fern-SDK-Version": "0.0.1" } - headers["Authorization"] = ((@token.is_a? Method) ? @token.call : @token) unless @token.nil? + headers["Authorization"] = (@token.is_a?(Method) ? @token.call : @token) unless @token.nil? headers end end @@ -85,7 +85,7 @@ def get_headers "X-Fern-SDK-Name": "fern_idempotency_headers", "X-Fern-SDK-Version": "0.0.1" } - headers["Authorization"] = ((@token.is_a? Method) ? @token.call : @token) unless @token.nil? + headers["Authorization"] = (@token.is_a?(Method) ? @token.call : @token) unless @token.nil? headers end end diff --git a/seed/ruby-sdk/imdb/lib/requests.rb b/seed/ruby-sdk/imdb/lib/requests.rb index 7d7a5483a6b..2bfe527ab18 100644 --- a/seed/ruby-sdk/imdb/lib/requests.rb +++ b/seed/ruby-sdk/imdb/lib/requests.rb @@ -38,7 +38,7 @@ def get_url(request_options: nil) # @return [Hash{String => String}] def get_headers headers = { "X-Fern-Language": "Ruby", "X-Fern-SDK-Name": "fern_imdb", "X-Fern-SDK-Version": "0.0.1" } - headers["Authorization"] = ((@token.is_a? Method) ? @token.call : @token) unless @token.nil? + headers["Authorization"] = (@token.is_a?(Method) ? @token.call : @token) unless @token.nil? headers end end @@ -77,7 +77,7 @@ def get_url(request_options: nil) # @return [Hash{String => String}] def get_headers headers = { "X-Fern-Language": "Ruby", "X-Fern-SDK-Name": "fern_imdb", "X-Fern-SDK-Version": "0.0.1" } - headers["Authorization"] = ((@token.is_a? Method) ? @token.call : @token) unless @token.nil? + headers["Authorization"] = (@token.is_a?(Method) ? @token.call : @token) unless @token.nil? headers end end diff --git a/seed/ruby-sdk/multi-url-environment-no-default/lib/requests.rb b/seed/ruby-sdk/multi-url-environment-no-default/lib/requests.rb index 5bc93b9c056..8eebcedae93 100644 --- a/seed/ruby-sdk/multi-url-environment-no-default/lib/requests.rb +++ b/seed/ruby-sdk/multi-url-environment-no-default/lib/requests.rb @@ -47,7 +47,7 @@ def get_headers "X-Fern-SDK-Name": "fern_multi_url_environment_no_default", "X-Fern-SDK-Version": "0.0.1" } - headers["Authorization"] = ((@token.is_a? Method) ? @token.call : @token) unless @token.nil? + headers["Authorization"] = (@token.is_a?(Method) ? @token.call : @token) unless @token.nil? headers end end @@ -94,7 +94,7 @@ def get_headers "X-Fern-SDK-Name": "fern_multi_url_environment_no_default", "X-Fern-SDK-Version": "0.0.1" } - headers["Authorization"] = ((@token.is_a? Method) ? @token.call : @token) unless @token.nil? + headers["Authorization"] = (@token.is_a?(Method) ? @token.call : @token) unless @token.nil? headers end end diff --git a/seed/ruby-sdk/multi-url-environment/lib/requests.rb b/seed/ruby-sdk/multi-url-environment/lib/requests.rb index 4fd227a5150..780a8a9d2ef 100644 --- a/seed/ruby-sdk/multi-url-environment/lib/requests.rb +++ b/seed/ruby-sdk/multi-url-environment/lib/requests.rb @@ -48,7 +48,7 @@ def get_headers "X-Fern-SDK-Name": "fern_multi_url_environment", "X-Fern-SDK-Version": "0.0.1" } - headers["Authorization"] = ((@token.is_a? Method) ? @token.call : @token) unless @token.nil? + headers["Authorization"] = (@token.is_a?(Method) ? @token.call : @token) unless @token.nil? headers end end @@ -96,7 +96,7 @@ def get_headers "X-Fern-SDK-Name": "fern_multi_url_environment", "X-Fern-SDK-Version": "0.0.1" } - headers["Authorization"] = ((@token.is_a? Method) ? @token.call : @token) unless @token.nil? + headers["Authorization"] = (@token.is_a?(Method) ? @token.call : @token) unless @token.nil? headers end end diff --git a/seed/ruby-sdk/no-environment/lib/requests.rb b/seed/ruby-sdk/no-environment/lib/requests.rb index 25486ee3ff9..182e45d6111 100644 --- a/seed/ruby-sdk/no-environment/lib/requests.rb +++ b/seed/ruby-sdk/no-environment/lib/requests.rb @@ -38,7 +38,7 @@ def get_url(request_options: nil) # @return [Hash{String => String}] def get_headers headers = { "X-Fern-Language": "Ruby", "X-Fern-SDK-Name": "fern_no_environment", "X-Fern-SDK-Version": "0.0.1" } - headers["Authorization"] = ((@token.is_a? Method) ? @token.call : @token) unless @token.nil? + headers["Authorization"] = (@token.is_a?(Method) ? @token.call : @token) unless @token.nil? headers end end @@ -77,7 +77,7 @@ def get_url(request_options: nil) # @return [Hash{String => String}] def get_headers headers = { "X-Fern-Language": "Ruby", "X-Fern-SDK-Name": "fern_no_environment", "X-Fern-SDK-Version": "0.0.1" } - headers["Authorization"] = ((@token.is_a? Method) ? @token.call : @token) unless @token.nil? + headers["Authorization"] = (@token.is_a?(Method) ? @token.call : @token) unless @token.nil? headers end end diff --git a/seed/ruby-sdk/oauth-client-credentials-default/lib/requests.rb b/seed/ruby-sdk/oauth-client-credentials-default/lib/requests.rb index 9d85a782ece..79ac655e970 100644 --- a/seed/ruby-sdk/oauth-client-credentials-default/lib/requests.rb +++ b/seed/ruby-sdk/oauth-client-credentials-default/lib/requests.rb @@ -42,7 +42,7 @@ def get_headers "X-Fern-SDK-Name": "fern_oauth_client_credentials_default", "X-Fern-SDK-Version": "0.0.1" } - headers["Authorization"] = ((@token.is_a? Method) ? @token.call : @token) unless @token.nil? + headers["Authorization"] = (@token.is_a?(Method) ? @token.call : @token) unless @token.nil? headers end end @@ -85,7 +85,7 @@ def get_headers "X-Fern-SDK-Name": "fern_oauth_client_credentials_default", "X-Fern-SDK-Version": "0.0.1" } - headers["Authorization"] = ((@token.is_a? Method) ? @token.call : @token) unless @token.nil? + headers["Authorization"] = (@token.is_a?(Method) ? @token.call : @token) unless @token.nil? headers end end diff --git a/seed/ruby-sdk/oauth-client-credentials-environment-variables/lib/requests.rb b/seed/ruby-sdk/oauth-client-credentials-environment-variables/lib/requests.rb index e3f92478a06..ffcc711efff 100644 --- a/seed/ruby-sdk/oauth-client-credentials-environment-variables/lib/requests.rb +++ b/seed/ruby-sdk/oauth-client-credentials-environment-variables/lib/requests.rb @@ -42,7 +42,7 @@ def get_headers "X-Fern-SDK-Name": "fern_oauth_client_credentials_environment_variables", "X-Fern-SDK-Version": "0.0.1" } - headers["Authorization"] = ((@token.is_a? Method) ? @token.call : @token) unless @token.nil? + headers["Authorization"] = (@token.is_a?(Method) ? @token.call : @token) unless @token.nil? headers end end @@ -85,7 +85,7 @@ def get_headers "X-Fern-SDK-Name": "fern_oauth_client_credentials_environment_variables", "X-Fern-SDK-Version": "0.0.1" } - headers["Authorization"] = ((@token.is_a? Method) ? @token.call : @token) unless @token.nil? + headers["Authorization"] = (@token.is_a?(Method) ? @token.call : @token) unless @token.nil? headers end end diff --git a/seed/ruby-sdk/oauth-client-credentials-nested-root/lib/requests.rb b/seed/ruby-sdk/oauth-client-credentials-nested-root/lib/requests.rb index b896b8132f6..5ebf719f78c 100644 --- a/seed/ruby-sdk/oauth-client-credentials-nested-root/lib/requests.rb +++ b/seed/ruby-sdk/oauth-client-credentials-nested-root/lib/requests.rb @@ -42,7 +42,7 @@ def get_headers "X-Fern-SDK-Name": "fern_oauth_client_credentials_nested_root", "X-Fern-SDK-Version": "0.0.1" } - headers["Authorization"] = ((@token.is_a? Method) ? @token.call : @token) unless @token.nil? + headers["Authorization"] = (@token.is_a?(Method) ? @token.call : @token) unless @token.nil? headers end end @@ -85,7 +85,7 @@ def get_headers "X-Fern-SDK-Name": "fern_oauth_client_credentials_nested_root", "X-Fern-SDK-Version": "0.0.1" } - headers["Authorization"] = ((@token.is_a? Method) ? @token.call : @token) unless @token.nil? + headers["Authorization"] = (@token.is_a?(Method) ? @token.call : @token) unless @token.nil? headers end end diff --git a/seed/ruby-sdk/oauth-client-credentials/lib/requests.rb b/seed/ruby-sdk/oauth-client-credentials/lib/requests.rb index 8ba45142eca..9f4d2a46cc9 100644 --- a/seed/ruby-sdk/oauth-client-credentials/lib/requests.rb +++ b/seed/ruby-sdk/oauth-client-credentials/lib/requests.rb @@ -42,7 +42,7 @@ def get_headers "X-Fern-SDK-Name": "fern_oauth_client_credentials", "X-Fern-SDK-Version": "0.0.1" } - headers["Authorization"] = ((@token.is_a? Method) ? @token.call : @token) unless @token.nil? + headers["Authorization"] = (@token.is_a?(Method) ? @token.call : @token) unless @token.nil? headers end end @@ -85,7 +85,7 @@ def get_headers "X-Fern-SDK-Name": "fern_oauth_client_credentials", "X-Fern-SDK-Version": "0.0.1" } - headers["Authorization"] = ((@token.is_a? Method) ? @token.call : @token) unless @token.nil? + headers["Authorization"] = (@token.is_a?(Method) ? @token.call : @token) unless @token.nil? headers end end diff --git a/seed/ruby-sdk/pagination/lib/requests.rb b/seed/ruby-sdk/pagination/lib/requests.rb index 7af3897c564..597e66d14ab 100644 --- a/seed/ruby-sdk/pagination/lib/requests.rb +++ b/seed/ruby-sdk/pagination/lib/requests.rb @@ -38,7 +38,7 @@ def get_url(request_options: nil) # @return [Hash{String => String}] def get_headers headers = { "X-Fern-Language": "Ruby", "X-Fern-SDK-Name": "fern_pagination", "X-Fern-SDK-Version": "0.0.1" } - headers["Authorization"] = ((@token.is_a? Method) ? @token.call : @token) unless @token.nil? + headers["Authorization"] = (@token.is_a?(Method) ? @token.call : @token) unless @token.nil? headers end end @@ -77,7 +77,7 @@ def get_url(request_options: nil) # @return [Hash{String => String}] def get_headers headers = { "X-Fern-Language": "Ruby", "X-Fern-SDK-Name": "fern_pagination", "X-Fern-SDK-Version": "0.0.1" } - headers["Authorization"] = ((@token.is_a? Method) ? @token.call : @token) unless @token.nil? + headers["Authorization"] = (@token.is_a?(Method) ? @token.call : @token) unless @token.nil? headers end end diff --git a/seed/ruby-sdk/single-url-environment-default/lib/requests.rb b/seed/ruby-sdk/single-url-environment-default/lib/requests.rb index c67e0c9b273..c01c8cd55b0 100644 --- a/seed/ruby-sdk/single-url-environment-default/lib/requests.rb +++ b/seed/ruby-sdk/single-url-environment-default/lib/requests.rb @@ -48,7 +48,7 @@ def get_headers "X-Fern-SDK-Name": "fern_single_url_environment_default", "X-Fern-SDK-Version": "0.0.1" } - headers["Authorization"] = ((@token.is_a? Method) ? @token.call : @token) unless @token.nil? + headers["Authorization"] = (@token.is_a?(Method) ? @token.call : @token) unless @token.nil? headers end end @@ -96,7 +96,7 @@ def get_headers "X-Fern-SDK-Name": "fern_single_url_environment_default", "X-Fern-SDK-Version": "0.0.1" } - headers["Authorization"] = ((@token.is_a? Method) ? @token.call : @token) unless @token.nil? + headers["Authorization"] = (@token.is_a?(Method) ? @token.call : @token) unless @token.nil? headers end end diff --git a/seed/ruby-sdk/single-url-environment-no-default/lib/requests.rb b/seed/ruby-sdk/single-url-environment-no-default/lib/requests.rb index f786ce2825f..695344a1d0f 100644 --- a/seed/ruby-sdk/single-url-environment-no-default/lib/requests.rb +++ b/seed/ruby-sdk/single-url-environment-no-default/lib/requests.rb @@ -47,7 +47,7 @@ def get_headers "X-Fern-SDK-Name": "fern_single_url_environment_no_default", "X-Fern-SDK-Version": "0.0.1" } - headers["Authorization"] = ((@token.is_a? Method) ? @token.call : @token) unless @token.nil? + headers["Authorization"] = (@token.is_a?(Method) ? @token.call : @token) unless @token.nil? headers end end @@ -94,7 +94,7 @@ def get_headers "X-Fern-SDK-Name": "fern_single_url_environment_no_default", "X-Fern-SDK-Version": "0.0.1" } - headers["Authorization"] = ((@token.is_a? Method) ? @token.call : @token) unless @token.nil? + headers["Authorization"] = (@token.is_a?(Method) ? @token.call : @token) unless @token.nil? headers end end diff --git a/seed/ruby-sdk/trace/lib/requests.rb b/seed/ruby-sdk/trace/lib/requests.rb index 9c9c5bf6d40..034ca567d58 100644 --- a/seed/ruby-sdk/trace/lib/requests.rb +++ b/seed/ruby-sdk/trace/lib/requests.rb @@ -47,7 +47,7 @@ def get_url(request_options: nil) # @return [Hash{String => String}] def get_headers headers = { "X-Fern-Language": "Ruby", "X-Fern-SDK-Name": "fern_trace", "X-Fern-SDK-Version": "0.0.1" } - headers["Authorization"] = ((@token.is_a? Method) ? @token.call : @token) unless @token.nil? + headers["Authorization"] = (@token.is_a?(Method) ? @token.call : @token) unless @token.nil? headers end end @@ -94,7 +94,7 @@ def get_url(request_options: nil) # @return [Hash{String => String}] def get_headers headers = { "X-Fern-Language": "Ruby", "X-Fern-SDK-Name": "fern_trace", "X-Fern-SDK-Version": "0.0.1" } - headers["Authorization"] = ((@token.is_a? Method) ? @token.call : @token) unless @token.nil? + headers["Authorization"] = (@token.is_a?(Method) ? @token.call : @token) unless @token.nil? headers end end diff --git a/seed/ts-sdk/grpc-proto-exhaustive/.mock/generators.yml b/seed/ts-sdk/grpc-proto-exhaustive/.mock/generators.yml index 972ed6d7b73..c23323621f2 100644 --- a/seed/ts-sdk/grpc-proto-exhaustive/.mock/generators.yml +++ b/seed/ts-sdk/grpc-proto-exhaustive/.mock/generators.yml @@ -1,6 +1,7 @@ api: - - proto: - root: proto - target: proto/data/v1/data.proto - overrides: overrides.yml - local-generation: true \ No newline at end of file + - path: openapi/openapi.yml + - proto: + root: proto + target: proto/data/v1/data.proto + overrides: overrides.yml + local-generation: true diff --git a/seed/ts-sdk/grpc-proto-exhaustive/.mock/openapi/openapi.yml b/seed/ts-sdk/grpc-proto-exhaustive/.mock/openapi/openapi.yml new file mode 100644 index 00000000000..ebc23143df3 --- /dev/null +++ b/seed/ts-sdk/grpc-proto-exhaustive/.mock/openapi/openapi.yml @@ -0,0 +1,33 @@ +openapi: 3.0.3 +info: + title: Test API + version: 1.0.0 +servers: + - url: https://localhost +tags: + - name: dataservice +paths: + /foo: + post: + tag: dataservice + x-fern-sdk-group-name: + - dataservice + x-fern-sdk-method-name: foo + security: + - ApiKeyAuth: [] + operationId: foo + responses: + "200": + content: + application/json: + schema: + type: object + +security: + - ApiKeyAuth: [] +components: + securitySchemes: + ApiKeyAuth: + type: apiKey + in: header + name: X-API-Key diff --git a/seed/ts-sdk/grpc-proto-exhaustive/README.md b/seed/ts-sdk/grpc-proto-exhaustive/README.md index 1d744ab0d4b..6afc2becf4d 100644 --- a/seed/ts-sdk/grpc-proto-exhaustive/README.md +++ b/seed/ts-sdk/grpc-proto-exhaustive/README.md @@ -20,17 +20,10 @@ A full reference for this library is available [here](./reference.md). Instantiate and use the client with the following: ```typescript -import { SeedApiClient, SeedApi } from "@fern/grpc-proto-exhaustive"; - -const client = new SeedApiClient({ environment: "YOUR_BASE_URL" }); -await client.dataservice.upload({ - columns: [ - { - id: "id", - values: [1.1], - }, - ], -}); +import { SeedApiClient } from "@fern/grpc-proto-exhaustive"; + +const client = new SeedApiClient({ apiKey: "YOUR_API_KEY" }); +await client.dataservice.foo(); ``` ## Request And Response Types @@ -55,7 +48,7 @@ will be thrown. import { SeedApiError } from "@fern/grpc-proto-exhaustive"; try { - await client.dataservice.upload(...); + await client.dataservice.foo(...); } catch (err) { if (err instanceof SeedApiError) { console.log(err.statusCode); @@ -82,7 +75,7 @@ A request is deemed retriable when any of the following HTTP status codes is ret Use the `maxRetries` request option to configure this behavior. ```typescript -const response = await client.dataservice.upload(..., { +const response = await client.dataservice.foo(..., { maxRetries: 0 // override maxRetries at the request level }); ``` @@ -92,7 +85,7 @@ const response = await client.dataservice.upload(..., { The SDK defaults to a 60 second timeout. Use the `timeoutInSeconds` option to configure this behavior. ```typescript -const response = await client.dataservice.upload(..., { +const response = await client.dataservice.foo(..., { timeoutInSeconds: 30 // override timeout to 30s }); ``` @@ -103,7 +96,7 @@ The SDK allows users to abort requests at any point by passing in an abort signa ```typescript const controller = new AbortController(); -const response = await client.dataservice.upload(..., { +const response = await client.dataservice.foo(..., { abortSignal: controller.signal }); controller.abort(); // aborts the request diff --git a/seed/ts-sdk/grpc-proto-exhaustive/reference.md b/seed/ts-sdk/grpc-proto-exhaustive/reference.md index 3c3c3ce64ee..74f0b1a937e 100644 --- a/seed/ts-sdk/grpc-proto-exhaustive/reference.md +++ b/seed/ts-sdk/grpc-proto-exhaustive/reference.md @@ -2,6 +2,46 @@ ## DataService +
client.dataservice.foo() -> Record +
+
+ +#### 🔌 Usage + +
+
+ +
+
+ +```typescript +await client.dataservice.foo(); +``` + +
+
+
+
+ +#### ⚙️ Parameters + +
+
+ +
+
+ +**requestOptions:** `Dataservice.RequestOptions` + +
+
+
+
+ +
+
+
+
client.dataservice.upload({ ...params }) -> SeedApi.UploadResponse
diff --git a/seed/ts-sdk/grpc-proto-exhaustive/resolved-snippet-templates.md b/seed/ts-sdk/grpc-proto-exhaustive/resolved-snippet-templates.md index 0b164384dfa..d8072715ed0 100644 --- a/seed/ts-sdk/grpc-proto-exhaustive/resolved-snippet-templates.md +++ b/seed/ts-sdk/grpc-proto-exhaustive/resolved-snippet-templates.md @@ -1,7 +1,25 @@ ```typescript import { SeedApiClient } from "@fern/grpc-proto-exhaustive"; -const client = new SeedApiClient({ environment: "YOUR_BASE_URL" }); +const client = new SeedApiClient({ apiKey: "YOUR_AUTHORIZATION" }); +await client.dataservice.foo(); + +``` + + +```typescript +import { SeedApiClient } from "@fern/grpc-proto-exhaustive"; + +const client = new SeedApiClient({ apiKey: "YOUR_AUTHORIZATION" }); +await client.dataservice.foo(); + +``` + + +```typescript +import { SeedApiClient } from "@fern/grpc-proto-exhaustive"; + +const client = new SeedApiClient({ apiKey: "YOUR_AUTHORIZATION" }); await client.dataservice.upload({ columns: [ { @@ -16,7 +34,7 @@ await client.dataservice.upload({ ```typescript import { SeedApiClient } from "@fern/grpc-proto-exhaustive"; -const client = new SeedApiClient({ environment: "YOUR_BASE_URL" }); +const client = new SeedApiClient({ apiKey: "YOUR_AUTHORIZATION" }); await client.dataservice.upload({ columns: [ { @@ -35,7 +53,7 @@ await client.dataservice.upload({ ```typescript import { SeedApiClient } from "@fern/grpc-proto-exhaustive"; -const client = new SeedApiClient({ environment: "YOUR_BASE_URL" }); +const client = new SeedApiClient({ apiKey: "YOUR_AUTHORIZATION" }); undefined; ``` @@ -44,7 +62,7 @@ undefined; ```typescript import { SeedApiClient } from "@fern/grpc-proto-exhaustive"; -const client = new SeedApiClient({ environment: "YOUR_BASE_URL" }); +const client = new SeedApiClient({ apiKey: "YOUR_AUTHORIZATION" }); await client.dataservice.delete({ ids: ["ids", "ids"], deleteAll: true, @@ -57,7 +75,7 @@ await client.dataservice.delete({ ```typescript import { SeedApiClient } from "@fern/grpc-proto-exhaustive"; -const client = new SeedApiClient({ environment: "YOUR_BASE_URL" }); +const client = new SeedApiClient({ apiKey: "YOUR_AUTHORIZATION" }); undefined; ``` @@ -66,7 +84,7 @@ undefined; ```typescript import { SeedApiClient } from "@fern/grpc-proto-exhaustive"; -const client = new SeedApiClient({ environment: "YOUR_BASE_URL" }); +const client = new SeedApiClient({ apiKey: "YOUR_AUTHORIZATION" }); undefined; ``` @@ -75,7 +93,7 @@ undefined; ```typescript import { SeedApiClient } from "@fern/grpc-proto-exhaustive"; -const client = new SeedApiClient({ environment: "YOUR_BASE_URL" }); +const client = new SeedApiClient({ apiKey: "YOUR_AUTHORIZATION" }); undefined; ``` @@ -84,7 +102,7 @@ undefined; ```typescript import { SeedApiClient } from "@fern/grpc-proto-exhaustive"; -const client = new SeedApiClient({ environment: "YOUR_BASE_URL" }); +const client = new SeedApiClient({ apiKey: "YOUR_AUTHORIZATION" }); await client.dataservice.fetch({ ids: "ids", namespace: "namespace", @@ -96,7 +114,7 @@ await client.dataservice.fetch({ ```typescript import { SeedApiClient } from "@fern/grpc-proto-exhaustive"; -const client = new SeedApiClient({ environment: "YOUR_BASE_URL" }); +const client = new SeedApiClient({ apiKey: "YOUR_AUTHORIZATION" }); undefined; ``` @@ -105,7 +123,7 @@ undefined; ```typescript import { SeedApiClient } from "@fern/grpc-proto-exhaustive"; -const client = new SeedApiClient({ environment: "YOUR_BASE_URL" }); +const client = new SeedApiClient({ apiKey: "YOUR_AUTHORIZATION" }); await client.dataservice.list({ prefix: "prefix", limit: 1, @@ -119,7 +137,7 @@ await client.dataservice.list({ ```typescript import { SeedApiClient } from "@fern/grpc-proto-exhaustive"; -const client = new SeedApiClient({ environment: "YOUR_BASE_URL" }); +const client = new SeedApiClient({ apiKey: "YOUR_AUTHORIZATION" }); await client.dataservice.query({ topK: 1, }); @@ -130,7 +148,7 @@ await client.dataservice.query({ ```typescript import { SeedApiClient } from "@fern/grpc-proto-exhaustive"; -const client = new SeedApiClient({ environment: "YOUR_BASE_URL" }); +const client = new SeedApiClient({ apiKey: "YOUR_AUTHORIZATION" }); await client.dataservice.query({ namespace: "namespace", topK: 1, @@ -168,7 +186,7 @@ await client.dataservice.query({ ```typescript import { SeedApiClient } from "@fern/grpc-proto-exhaustive"; -const client = new SeedApiClient({ environment: "YOUR_BASE_URL" }); +const client = new SeedApiClient({ apiKey: "YOUR_AUTHORIZATION" }); await client.dataservice.update({ id: "id", }); @@ -179,7 +197,7 @@ await client.dataservice.update({ ```typescript import { SeedApiClient } from "@fern/grpc-proto-exhaustive"; -const client = new SeedApiClient({ environment: "YOUR_BASE_URL" }); +const client = new SeedApiClient({ apiKey: "YOUR_AUTHORIZATION" }); await client.dataservice.update({ id: "id", values: [1.1, 1.1], diff --git a/seed/ts-sdk/grpc-proto-exhaustive/snippet-templates.json b/seed/ts-sdk/grpc-proto-exhaustive/snippet-templates.json index b8618245ee0..e27fdcb4151 100644 --- a/seed/ts-sdk/grpc-proto-exhaustive/snippet-templates.json +++ b/seed/ts-sdk/grpc-proto-exhaustive/snippet-templates.json @@ -1,4 +1,65 @@ [ + { + "sdk": { + "package": "@fern/grpc-proto-exhaustive", + "version": "0.0.1", + "type": "typescript" + }, + "endpointId": { + "path": "/foo", + "method": "POST", + "identifierOverride": "endpoint_dataservice.foo" + }, + "snippetTemplate": { + "clientInstantiation": { + "imports": [ + "import { SeedApiClient } from \"@fern/grpc-proto-exhaustive\";" + ], + "templateString": "const client = new SeedApiClient($FERN_INPUT);", + "isOptional": false, + "inputDelimiter": ",", + "templateInputs": [ + { + "value": { + "imports": [], + "templateString": "{ $FERN_INPUT }", + "isOptional": true, + "templateInputs": [ + { + "value": { + "imports": [], + "templateString": "apiKey: $FERN_INPUT", + "isOptional": false, + "templateInputs": [ + { + "location": "AUTH", + "path": "Authorization", + "type": "payload" + } + ], + "type": "generic" + }, + "type": "template" + } + ], + "type": "generic" + }, + "type": "template" + } + ], + "type": "generic" + }, + "functionInvocation": { + "imports": [], + "templateString": "await client.dataservice.foo()", + "isOptional": false, + "inputDelimiter": ",\n\t", + "templateInputs": [], + "type": "generic" + }, + "type": "v1" + } + }, { "sdk": { "package": "@fern/grpc-proto-exhaustive", @@ -28,9 +89,15 @@ { "value": { "imports": [], - "templateString": "environment: \"YOUR_BASE_URL\"", + "templateString": "apiKey: $FERN_INPUT", "isOptional": false, - "templateInputs": [], + "templateInputs": [ + { + "location": "AUTH", + "path": "Authorization", + "type": "payload" + } + ], "type": "generic" }, "type": "template" @@ -422,9 +489,15 @@ { "value": { "imports": [], - "templateString": "environment: \"YOUR_BASE_URL\"", + "templateString": "apiKey: $FERN_INPUT", "isOptional": false, - "templateInputs": [], + "templateInputs": [ + { + "location": "AUTH", + "path": "Authorization", + "type": "payload" + } + ], "type": "generic" }, "type": "template" @@ -726,9 +799,15 @@ { "value": { "imports": [], - "templateString": "environment: \"YOUR_BASE_URL\"", + "templateString": "apiKey: $FERN_INPUT", "isOptional": false, - "templateInputs": [], + "templateInputs": [ + { + "location": "AUTH", + "path": "Authorization", + "type": "payload" + } + ], "type": "generic" }, "type": "template" @@ -971,9 +1050,15 @@ { "value": { "imports": [], - "templateString": "environment: \"YOUR_BASE_URL\"", + "templateString": "apiKey: $FERN_INPUT", "isOptional": false, - "templateInputs": [], + "templateInputs": [ + { + "location": "AUTH", + "path": "Authorization", + "type": "payload" + } + ], "type": "generic" }, "type": "template" @@ -1071,9 +1156,15 @@ { "value": { "imports": [], - "templateString": "environment: \"YOUR_BASE_URL\"", + "templateString": "apiKey: $FERN_INPUT", "isOptional": false, - "templateInputs": [], + "templateInputs": [ + { + "location": "AUTH", + "path": "Authorization", + "type": "payload" + } + ], "type": "generic" }, "type": "template" @@ -1203,9 +1294,15 @@ { "value": { "imports": [], - "templateString": "environment: \"YOUR_BASE_URL\"", + "templateString": "apiKey: $FERN_INPUT", "isOptional": false, - "templateInputs": [], + "templateInputs": [ + { + "location": "AUTH", + "path": "Authorization", + "type": "payload" + } + ], "type": "generic" }, "type": "template" @@ -1947,9 +2044,15 @@ { "value": { "imports": [], - "templateString": "environment: \"YOUR_BASE_URL\"", + "templateString": "apiKey: $FERN_INPUT", "isOptional": false, - "templateInputs": [], + "templateInputs": [ + { + "location": "AUTH", + "path": "Authorization", + "type": "payload" + } + ], "type": "generic" }, "type": "template" diff --git a/seed/ts-sdk/grpc-proto-exhaustive/snippet.json b/seed/ts-sdk/grpc-proto-exhaustive/snippet.json index fb9f9f4d68b..6b90c262f8b 100644 --- a/seed/ts-sdk/grpc-proto-exhaustive/snippet.json +++ b/seed/ts-sdk/grpc-proto-exhaustive/snippet.json @@ -1,5 +1,16 @@ { "endpoints": [ + { + "id": { + "path": "/foo", + "method": "POST", + "identifier_override": "endpoint_dataservice.foo" + }, + "snippet": { + "type": "typescript", + "client": "import { SeedApiClient } from \"@fern/grpc-proto-exhaustive\";\n\nconst client = new SeedApiClient({ apiKey: \"YOUR_API_KEY\" });\nawait client.dataservice.foo();\n" + } + }, { "id": { "path": "/data", @@ -8,7 +19,7 @@ }, "snippet": { "type": "typescript", - "client": "import { SeedApiClient, SeedApi } from \"@fern/grpc-proto-exhaustive\";\n\nconst client = new SeedApiClient({ environment: \"YOUR_BASE_URL\" });\nawait client.dataservice.upload({\n columns: [{\n id: \"id\",\n values: [1.1]\n }]\n});\n" + "client": "import { SeedApiClient, SeedApi } from \"@fern/grpc-proto-exhaustive\";\n\nconst client = new SeedApiClient({ apiKey: \"YOUR_API_KEY\" });\nawait client.dataservice.upload({\n columns: [{\n id: \"id\",\n values: [1.1]\n }]\n});\n" } }, { @@ -19,7 +30,7 @@ }, "snippet": { "type": "typescript", - "client": "import { SeedApiClient, SeedApi } from \"@fern/grpc-proto-exhaustive\";\n\nconst client = new SeedApiClient({ environment: \"YOUR_BASE_URL\" });\nawait client.dataservice.delete();\n" + "client": "import { SeedApiClient, SeedApi } from \"@fern/grpc-proto-exhaustive\";\n\nconst client = new SeedApiClient({ apiKey: \"YOUR_API_KEY\" });\nawait client.dataservice.delete();\n" } }, { @@ -30,7 +41,7 @@ }, "snippet": { "type": "typescript", - "client": "import { SeedApiClient, SeedApi } from \"@fern/grpc-proto-exhaustive\";\n\nconst client = new SeedApiClient({ environment: \"YOUR_BASE_URL\" });\nawait client.dataservice.describe();\n" + "client": "import { SeedApiClient, SeedApi } from \"@fern/grpc-proto-exhaustive\";\n\nconst client = new SeedApiClient({ apiKey: \"YOUR_API_KEY\" });\nawait client.dataservice.describe();\n" } }, { @@ -41,7 +52,7 @@ }, "snippet": { "type": "typescript", - "client": "import { SeedApiClient, SeedApi } from \"@fern/grpc-proto-exhaustive\";\n\nconst client = new SeedApiClient({ environment: \"YOUR_BASE_URL\" });\nawait client.dataservice.fetch();\n" + "client": "import { SeedApiClient, SeedApi } from \"@fern/grpc-proto-exhaustive\";\n\nconst client = new SeedApiClient({ apiKey: \"YOUR_API_KEY\" });\nawait client.dataservice.fetch();\n" } }, { @@ -52,7 +63,7 @@ }, "snippet": { "type": "typescript", - "client": "import { SeedApiClient, SeedApi } from \"@fern/grpc-proto-exhaustive\";\n\nconst client = new SeedApiClient({ environment: \"YOUR_BASE_URL\" });\nawait client.dataservice.list();\n" + "client": "import { SeedApiClient, SeedApi } from \"@fern/grpc-proto-exhaustive\";\n\nconst client = new SeedApiClient({ apiKey: \"YOUR_API_KEY\" });\nawait client.dataservice.list();\n" } }, { @@ -63,7 +74,7 @@ }, "snippet": { "type": "typescript", - "client": "import { SeedApiClient, SeedApi } from \"@fern/grpc-proto-exhaustive\";\n\nconst client = new SeedApiClient({ environment: \"YOUR_BASE_URL\" });\nawait client.dataservice.query({\n topK: 1\n});\n" + "client": "import { SeedApiClient, SeedApi } from \"@fern/grpc-proto-exhaustive\";\n\nconst client = new SeedApiClient({ apiKey: \"YOUR_API_KEY\" });\nawait client.dataservice.query({\n topK: 1\n});\n" } }, { @@ -74,7 +85,7 @@ }, "snippet": { "type": "typescript", - "client": "import { SeedApiClient, SeedApi } from \"@fern/grpc-proto-exhaustive\";\n\nconst client = new SeedApiClient({ environment: \"YOUR_BASE_URL\" });\nawait client.dataservice.update({\n id: \"id\"\n});\n" + "client": "import { SeedApiClient, SeedApi } from \"@fern/grpc-proto-exhaustive\";\n\nconst client = new SeedApiClient({ apiKey: \"YOUR_API_KEY\" });\nawait client.dataservice.update({\n id: \"id\"\n});\n" } } ], diff --git a/seed/ts-sdk/grpc-proto-exhaustive/src/Client.ts b/seed/ts-sdk/grpc-proto-exhaustive/src/Client.ts index 5e7e40b02de..f0ef236f969 100644 --- a/seed/ts-sdk/grpc-proto-exhaustive/src/Client.ts +++ b/seed/ts-sdk/grpc-proto-exhaustive/src/Client.ts @@ -2,12 +2,14 @@ * This file was auto-generated by Fern from our API Definition. */ +import * as environments from "./environments"; import * as core from "./core"; import { Dataservice } from "./api/resources/dataservice/client/Client"; export declare namespace SeedApiClient { interface Options { - environment: core.Supplier; + environment?: core.Supplier; + apiKey?: core.Supplier; } interface RequestOptions { @@ -21,7 +23,7 @@ export declare namespace SeedApiClient { } export class SeedApiClient { - constructor(protected readonly _options: SeedApiClient.Options) {} + constructor(protected readonly _options: SeedApiClient.Options = {}) {} protected _dataservice: Dataservice | undefined; diff --git a/seed/ts-sdk/grpc-proto-exhaustive/src/api/resources/dataservice/client/Client.ts b/seed/ts-sdk/grpc-proto-exhaustive/src/api/resources/dataservice/client/Client.ts index 353ee106b3a..f16218f86c9 100644 --- a/seed/ts-sdk/grpc-proto-exhaustive/src/api/resources/dataservice/client/Client.ts +++ b/seed/ts-sdk/grpc-proto-exhaustive/src/api/resources/dataservice/client/Client.ts @@ -2,15 +2,17 @@ * This file was auto-generated by Fern from our API Definition. */ +import * as environments from "../../../../environments"; import * as core from "../../../../core"; -import * as SeedApi from "../../../index"; -import * as serializers from "../../../../serialization/index"; import urlJoin from "url-join"; +import * as serializers from "../../../../serialization/index"; import * as errors from "../../../../errors/index"; +import * as SeedApi from "../../../index"; export declare namespace Dataservice { interface Options { - environment: core.Supplier; + environment?: core.Supplier; + apiKey?: core.Supplier; } interface RequestOptions { @@ -24,7 +26,66 @@ export declare namespace Dataservice { } export class Dataservice { - constructor(protected readonly _options: Dataservice.Options) {} + constructor(protected readonly _options: Dataservice.Options = {}) {} + + /** + * @param {Dataservice.RequestOptions} requestOptions - Request-specific configuration. + * + * @example + * await client.dataservice.foo() + */ + public async foo(requestOptions?: Dataservice.RequestOptions): Promise> { + const _response = await core.fetcher({ + url: urlJoin( + (await core.Supplier.get(this._options.environment)) ?? environments.SeedApiEnvironment.Default, + "foo" + ), + method: "POST", + headers: { + "X-Fern-Language": "JavaScript", + "X-Fern-SDK-Name": "@fern/grpc-proto-exhaustive", + "X-Fern-SDK-Version": "0.0.1", + "User-Agent": "@fern/grpc-proto-exhaustive/0.0.1", + "X-Fern-Runtime": core.RUNTIME.type, + "X-Fern-Runtime-Version": core.RUNTIME.version, + ...(await this._getCustomAuthorizationHeaders()), + }, + contentType: "application/json", + requestType: "json", + timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, + maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, + }); + if (_response.ok) { + return serializers.dataservice.foo.Response.parseOrThrow(_response.body, { + unrecognizedObjectKeys: "passthrough", + allowUnrecognizedUnionMembers: true, + allowUnrecognizedEnumValues: true, + breadcrumbsPrefix: ["response"], + }); + } + + if (_response.error.reason === "status-code") { + throw new errors.SeedApiError({ + statusCode: _response.error.statusCode, + body: _response.error.body, + }); + } + + switch (_response.error.reason) { + case "non-json": + throw new errors.SeedApiError({ + statusCode: _response.error.statusCode, + body: _response.error.rawBody, + }); + case "timeout": + throw new errors.SeedApiTimeoutError(); + case "unknown": + throw new errors.SeedApiError({ + message: _response.error.errorMessage, + }); + } + } /** * @param {SeedApi.UploadRequest} request @@ -43,7 +104,10 @@ export class Dataservice { requestOptions?: Dataservice.RequestOptions ): Promise { const _response = await core.fetcher({ - url: urlJoin(await core.Supplier.get(this._options.environment), "data"), + url: urlJoin( + (await core.Supplier.get(this._options.environment)) ?? environments.SeedApiEnvironment.Default, + "data" + ), method: "POST", headers: { "X-Fern-Language": "JavaScript", @@ -52,6 +116,7 @@ export class Dataservice { "User-Agent": "@fern/grpc-proto-exhaustive/0.0.1", "X-Fern-Runtime": core.RUNTIME.type, "X-Fern-Runtime-Version": core.RUNTIME.version, + ...(await this._getCustomAuthorizationHeaders()), }, contentType: "application/json", requestType: "json", @@ -103,7 +168,10 @@ export class Dataservice { requestOptions?: Dataservice.RequestOptions ): Promise { const _response = await core.fetcher({ - url: urlJoin(await core.Supplier.get(this._options.environment), "data/delete"), + url: urlJoin( + (await core.Supplier.get(this._options.environment)) ?? environments.SeedApiEnvironment.Default, + "data/delete" + ), method: "POST", headers: { "X-Fern-Language": "JavaScript", @@ -112,6 +180,7 @@ export class Dataservice { "User-Agent": "@fern/grpc-proto-exhaustive/0.0.1", "X-Fern-Runtime": core.RUNTIME.type, "X-Fern-Runtime-Version": core.RUNTIME.version, + ...(await this._getCustomAuthorizationHeaders()), }, contentType: "application/json", requestType: "json", @@ -163,7 +232,10 @@ export class Dataservice { requestOptions?: Dataservice.RequestOptions ): Promise { const _response = await core.fetcher({ - url: urlJoin(await core.Supplier.get(this._options.environment), "data/describe"), + url: urlJoin( + (await core.Supplier.get(this._options.environment)) ?? environments.SeedApiEnvironment.Default, + "data/describe" + ), method: "POST", headers: { "X-Fern-Language": "JavaScript", @@ -172,6 +244,7 @@ export class Dataservice { "User-Agent": "@fern/grpc-proto-exhaustive/0.0.1", "X-Fern-Runtime": core.RUNTIME.type, "X-Fern-Runtime-Version": core.RUNTIME.version, + ...(await this._getCustomAuthorizationHeaders()), }, contentType: "application/json", requestType: "json", @@ -237,7 +310,10 @@ export class Dataservice { } const _response = await core.fetcher({ - url: urlJoin(await core.Supplier.get(this._options.environment), "data/fetch"), + url: urlJoin( + (await core.Supplier.get(this._options.environment)) ?? environments.SeedApiEnvironment.Default, + "data/fetch" + ), method: "GET", headers: { "X-Fern-Language": "JavaScript", @@ -246,6 +322,7 @@ export class Dataservice { "User-Agent": "@fern/grpc-proto-exhaustive/0.0.1", "X-Fern-Runtime": core.RUNTIME.type, "X-Fern-Runtime-Version": core.RUNTIME.version, + ...(await this._getCustomAuthorizationHeaders()), }, contentType: "application/json", queryParameters: _queryParams, @@ -315,7 +392,10 @@ export class Dataservice { } const _response = await core.fetcher({ - url: urlJoin(await core.Supplier.get(this._options.environment), "data/list"), + url: urlJoin( + (await core.Supplier.get(this._options.environment)) ?? environments.SeedApiEnvironment.Default, + "data/list" + ), method: "GET", headers: { "X-Fern-Language": "JavaScript", @@ -324,6 +404,7 @@ export class Dataservice { "User-Agent": "@fern/grpc-proto-exhaustive/0.0.1", "X-Fern-Runtime": core.RUNTIME.type, "X-Fern-Runtime-Version": core.RUNTIME.version, + ...(await this._getCustomAuthorizationHeaders()), }, contentType: "application/json", queryParameters: _queryParams, @@ -377,7 +458,10 @@ export class Dataservice { requestOptions?: Dataservice.RequestOptions ): Promise { const _response = await core.fetcher({ - url: urlJoin(await core.Supplier.get(this._options.environment), "data/query"), + url: urlJoin( + (await core.Supplier.get(this._options.environment)) ?? environments.SeedApiEnvironment.Default, + "data/query" + ), method: "POST", headers: { "X-Fern-Language": "JavaScript", @@ -386,6 +470,7 @@ export class Dataservice { "User-Agent": "@fern/grpc-proto-exhaustive/0.0.1", "X-Fern-Runtime": core.RUNTIME.type, "X-Fern-Runtime-Version": core.RUNTIME.version, + ...(await this._getCustomAuthorizationHeaders()), }, contentType: "application/json", requestType: "json", @@ -439,7 +524,10 @@ export class Dataservice { requestOptions?: Dataservice.RequestOptions ): Promise { const _response = await core.fetcher({ - url: urlJoin(await core.Supplier.get(this._options.environment), "data/update"), + url: urlJoin( + (await core.Supplier.get(this._options.environment)) ?? environments.SeedApiEnvironment.Default, + "data/update" + ), method: "POST", headers: { "X-Fern-Language": "JavaScript", @@ -448,6 +536,7 @@ export class Dataservice { "User-Agent": "@fern/grpc-proto-exhaustive/0.0.1", "X-Fern-Runtime": core.RUNTIME.type, "X-Fern-Runtime-Version": core.RUNTIME.version, + ...(await this._getCustomAuthorizationHeaders()), }, contentType: "application/json", requestType: "json", @@ -486,4 +575,9 @@ export class Dataservice { }); } } + + protected async _getCustomAuthorizationHeaders() { + const apiKeyValue = await core.Supplier.get(this._options.apiKey); + return { "X-API-Key": apiKeyValue }; + } } diff --git a/seed/ts-sdk/grpc-proto-exhaustive/src/environments.ts b/seed/ts-sdk/grpc-proto-exhaustive/src/environments.ts new file mode 100644 index 00000000000..0cec2791589 --- /dev/null +++ b/seed/ts-sdk/grpc-proto-exhaustive/src/environments.ts @@ -0,0 +1,9 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +export const SeedApiEnvironment = { + Default: "https://localhost", +} as const; + +export type SeedApiEnvironment = typeof SeedApiEnvironment.Default; diff --git a/seed/ts-sdk/grpc-proto-exhaustive/src/index.ts b/seed/ts-sdk/grpc-proto-exhaustive/src/index.ts index bed9941cdaa..9157dadc454 100644 --- a/seed/ts-sdk/grpc-proto-exhaustive/src/index.ts +++ b/seed/ts-sdk/grpc-proto-exhaustive/src/index.ts @@ -1,3 +1,4 @@ export * as SeedApi from "./api"; export { SeedApiClient } from "./Client"; +export { SeedApiEnvironment } from "./environments"; export { SeedApiError, SeedApiTimeoutError } from "./errors"; diff --git a/seed/ts-sdk/grpc-proto-exhaustive/src/serialization/resources/dataservice/client/foo.ts b/seed/ts-sdk/grpc-proto-exhaustive/src/serialization/resources/dataservice/client/foo.ts new file mode 100644 index 00000000000..3bdfc81c307 --- /dev/null +++ b/seed/ts-sdk/grpc-proto-exhaustive/src/serialization/resources/dataservice/client/foo.ts @@ -0,0 +1,15 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as serializers from "../../../index"; +import * as core from "../../../../core"; + +export const Response: core.serialization.Schema< + serializers.dataservice.foo.Response.Raw, + Record +> = core.serialization.record(core.serialization.string(), core.serialization.unknown()); + +export declare namespace Response { + type Raw = Record; +} diff --git a/seed/ts-sdk/grpc-proto-exhaustive/src/serialization/resources/dataservice/client/index.ts b/seed/ts-sdk/grpc-proto-exhaustive/src/serialization/resources/dataservice/client/index.ts index 415726b7fea..734c128303e 100644 --- a/seed/ts-sdk/grpc-proto-exhaustive/src/serialization/resources/dataservice/client/index.ts +++ b/seed/ts-sdk/grpc-proto-exhaustive/src/serialization/resources/dataservice/client/index.ts @@ -1 +1,2 @@ +export * as foo from "./foo"; export * from "./requests"; diff --git a/test-definitions/fern/apis/grpc-proto-exhaustive/generators.yml b/test-definitions/fern/apis/csharp-grpc-proto-exhaustive/generators.yml similarity index 100% rename from test-definitions/fern/apis/grpc-proto-exhaustive/generators.yml rename to test-definitions/fern/apis/csharp-grpc-proto-exhaustive/generators.yml diff --git a/test-definitions/fern/apis/csharp-grpc-proto-exhaustive/openapi/openapi.yml b/test-definitions/fern/apis/csharp-grpc-proto-exhaustive/openapi/openapi.yml new file mode 100644 index 00000000000..56ea165b773 --- /dev/null +++ b/test-definitions/fern/apis/csharp-grpc-proto-exhaustive/openapi/openapi.yml @@ -0,0 +1,25 @@ +openapi: 3.0.3 +info: + title: Test API + version: 1.0.0 +servers: + - url: https://localhost +tags: + - name: dataservice +paths: + /foo: + post: + tag: dataservice + x-fern-sdk-group-name: + - dataservice + x-fern-sdk-method-name: foo + operationId: foo + responses: + "200": + content: + application/json: + schema: + type: object + +components: + securitySchemes: {} diff --git a/test-definitions/fern/apis/grpc-proto-exhaustive/overrides.yml b/test-definitions/fern/apis/csharp-grpc-proto-exhaustive/overrides.yml similarity index 100% rename from test-definitions/fern/apis/grpc-proto-exhaustive/overrides.yml rename to test-definitions/fern/apis/csharp-grpc-proto-exhaustive/overrides.yml diff --git a/test-definitions/fern/apis/grpc-proto-exhaustive/proto/data/v1/data.proto b/test-definitions/fern/apis/csharp-grpc-proto-exhaustive/proto/data/v1/data.proto similarity index 100% rename from test-definitions/fern/apis/grpc-proto-exhaustive/proto/data/v1/data.proto rename to test-definitions/fern/apis/csharp-grpc-proto-exhaustive/proto/data/v1/data.proto diff --git a/test-definitions/fern/apis/grpc-proto-exhaustive/proto/google/api/annotations.proto b/test-definitions/fern/apis/csharp-grpc-proto-exhaustive/proto/google/api/annotations.proto similarity index 100% rename from test-definitions/fern/apis/grpc-proto-exhaustive/proto/google/api/annotations.proto rename to test-definitions/fern/apis/csharp-grpc-proto-exhaustive/proto/google/api/annotations.proto diff --git a/test-definitions/fern/apis/grpc-proto-exhaustive/proto/google/api/field_behavior.proto b/test-definitions/fern/apis/csharp-grpc-proto-exhaustive/proto/google/api/field_behavior.proto similarity index 100% rename from test-definitions/fern/apis/grpc-proto-exhaustive/proto/google/api/field_behavior.proto rename to test-definitions/fern/apis/csharp-grpc-proto-exhaustive/proto/google/api/field_behavior.proto diff --git a/test-definitions/fern/apis/grpc-proto-exhaustive/proto/google/api/http.proto b/test-definitions/fern/apis/csharp-grpc-proto-exhaustive/proto/google/api/http.proto similarity index 100% rename from test-definitions/fern/apis/grpc-proto-exhaustive/proto/google/api/http.proto rename to test-definitions/fern/apis/csharp-grpc-proto-exhaustive/proto/google/api/http.proto diff --git a/test-definitions/fern/apis/grpc-proto/generators.yml b/test-definitions/fern/apis/csharp-grpc-proto/generators.yml similarity index 100% rename from test-definitions/fern/apis/grpc-proto/generators.yml rename to test-definitions/fern/apis/csharp-grpc-proto/generators.yml diff --git a/test-definitions/fern/apis/grpc-proto/overrides.yml b/test-definitions/fern/apis/csharp-grpc-proto/overrides.yml similarity index 100% rename from test-definitions/fern/apis/grpc-proto/overrides.yml rename to test-definitions/fern/apis/csharp-grpc-proto/overrides.yml diff --git a/test-definitions/fern/apis/grpc-proto/proto/google/api/annotations.proto b/test-definitions/fern/apis/csharp-grpc-proto/proto/google/api/annotations.proto similarity index 100% rename from test-definitions/fern/apis/grpc-proto/proto/google/api/annotations.proto rename to test-definitions/fern/apis/csharp-grpc-proto/proto/google/api/annotations.proto diff --git a/test-definitions/fern/apis/grpc-proto/proto/google/api/http.proto b/test-definitions/fern/apis/csharp-grpc-proto/proto/google/api/http.proto similarity index 100% rename from test-definitions/fern/apis/grpc-proto/proto/google/api/http.proto rename to test-definitions/fern/apis/csharp-grpc-proto/proto/google/api/http.proto diff --git a/test-definitions/fern/apis/grpc-proto/proto/user/v1/user.proto b/test-definitions/fern/apis/csharp-grpc-proto/proto/user/v1/user.proto similarity index 100% rename from test-definitions/fern/apis/grpc-proto/proto/user/v1/user.proto rename to test-definitions/fern/apis/csharp-grpc-proto/proto/user/v1/user.proto From 6e0ef5e25fa7e2c642590cc90b128a122ee8d5d1 Mon Sep 17 00:00:00 2001 From: Catherine Deskur <46695336+chdeskur@users.noreply.github.com> Date: Mon, 4 Nov 2024 19:01:09 -0500 Subject: [PATCH 2/3] chore(docs): restore api ref docs (#5101) update naming Co-authored-by: fern-bot --- fern/docs.yml | 10 +++++++--- .../fern-docs/content/customize-api-playground.mdx | 4 ++-- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/fern/docs.yml b/fern/docs.yml index 761ce377884..af0a4dff7c0 100644 --- a/fern/docs.yml +++ b/fern/docs.yml @@ -448,6 +448,13 @@ navigation: - page: SDK Snippets icon: fa-regular fa-message-code path: ./pages/fern-docs/config/sdk-snippets.mdx + - section: API Playground + path: ./pages/fern-docs/content/api-playground.mdx + icon: fa-regular fa-square-terminal + contents: + - page: Advanced Configuration + icon: fa-regular fa-wrench + path: ./pages/fern-docs/content/customize-api-playground.mdx - page: Endpoint Errors icon: fa-regular fa-exclamation-triangle path: ./pages/fern-docs/config/endpoint-errors.mdx @@ -457,9 +464,6 @@ navigation: - page: Write Markdown in API Reference icon: fa-regular fa-pencil path: ./pages/fern-docs/content/api-ref-content.mdx - - page: Customize API Playground - icon: fa-regular fa-square-terminal - path: ./pages/fern-docs/content/customize-api-playground.mdx - section: Integrations slug: integrations diff --git a/fern/pages/fern-docs/content/customize-api-playground.mdx b/fern/pages/fern-docs/content/customize-api-playground.mdx index 866aa81f827..e16639cab90 100644 --- a/fern/pages/fern-docs/content/customize-api-playground.mdx +++ b/fern/pages/fern-docs/content/customize-api-playground.mdx @@ -1,6 +1,6 @@ --- -title: Customize your API Playground -description: Customize your API Playground Settings +title: Advanced configuration +description: Configure advanced settings like the server URLs reachable by the API playground and authentication with OAuth. --- If you subscribe to Fern's Pro or Enterprise Plans, you can customize your API Playground settings to suit your customers needs. From f7113b5cbfd8834d1729f4a7f222c410fb3ea9a1 Mon Sep 17 00:00:00 2001 From: Catherine Deskur <46695336+chdeskur@users.noreply.github.com> Date: Mon, 4 Nov 2024 19:06:58 -0500 Subject: [PATCH 3/3] chore(docs): update versioning docs (#5097) * update versioning docs * update file structure * update * update image and title * remove api versions * update path * feat(cli): Allow grpc and http endpoints in one service (#5071) feat(cli): Allow grpc and http endpoints in one service * feat(python): fastapi generator with pydantic v2 (#5087) * chore(seed): Regenerate seed (#5098) Regen seed --------- Co-authored-by: fern-bot Co-authored-by: Niels Swimberghe <3382717+Swimburger@users.noreply.github.com> Co-authored-by: Deep Singhvi --- fern/docs.yml | 3 + .../docs/building-your-docs/navigation.mdx | 57 +--------- .../docs/building-your-docs/versioning.mdx | 103 ++++++++++++++++++ .../docs/building-your-docs/versions.png | Bin 0 -> 260852 bytes 4 files changed, 108 insertions(+), 55 deletions(-) create mode 100644 fern/pages/docs/building-your-docs/versioning.mdx create mode 100644 fern/pages/docs/building-your-docs/versions.png diff --git a/fern/docs.yml b/fern/docs.yml index af0a4dff7c0..0a062576891 100644 --- a/fern/docs.yml +++ b/fern/docs.yml @@ -341,6 +341,9 @@ navigation: - page: Navigation icon: fa-regular fa-compass path: ./pages/docs/building-your-docs/navigation.mdx + - page: Versioning + icon: fa-regular fa-code-branch + path: ./pages/docs/building-your-docs/versioning.mdx - page: Announcement Banner icon: fa-regular fa-bullhorn path: ./pages/docs/building-your-docs/announcement-banner.mdx diff --git a/fern/pages/docs/building-your-docs/navigation.mdx b/fern/pages/docs/building-your-docs/navigation.mdx index 4f146f9a6b0..b2116e0ad0e 100644 --- a/fern/pages/docs/building-your-docs/navigation.mdx +++ b/fern/pages/docs/building-your-docs/navigation.mdx @@ -1,6 +1,6 @@ --- title: Configure your site navigation -description: Set up the navigation for your documentation site built with Fern Docs using the docs.yml file, including tabs, sections, pages, versions, and more. +description: Set up the navigation for your documentation site built with Fern Docs using the docs.yml file, including tabs, sections, pages, and more. --- ## Use `docs.yml` @@ -179,58 +179,5 @@ Here's an example of what the Tabs implementation looks like: ## Versions -If you have multiple versions of your documentation, you can introduce a dropdown version selector by specifying the `versions`. +If you have multiple versions of your documentation, you can introduce a dropdown version selector by specifying the `versions`. For more information, check out our [documentation on versioning](/learn/docs/building-your-docs/versioning). - -![A dropdown of the available versions](https://fern-image-hosting.s3.amazonaws.com/versions.png) - - -When adding an entry to the `versions` list, specify the version's `display-name`, which is visible to users, and `path`, which is a file that must be in a folder called `versions/`: - - -```yaml -versions: - - display-name: v1.0 - path: v1-0.yml # must be in a `versions` folder - - display-name: v1.1 - path: v1-1.yml -``` - - - -```yaml -navigation: - - section: Introduction - contents: - - page: My Page - path: my-page.mdx - - api: API Reference -``` - - - -```yaml -tabs: - api: - title: API Reference - icon: puzzle - help: - title: Help Center - icon: home - - navigation: - - tab: api - contents: - - section: Introduction - contents: - - page: My Page - path: my-page.mdx - - api: API Reference - - tab: help - contents: - - section: Help Center - contents: - - page: Contact Us - path: contact-us.mdx -``` - diff --git a/fern/pages/docs/building-your-docs/versioning.mdx b/fern/pages/docs/building-your-docs/versioning.mdx new file mode 100644 index 00000000000..630a37998ba --- /dev/null +++ b/fern/pages/docs/building-your-docs/versioning.mdx @@ -0,0 +1,103 @@ +--- +title: Versioning +subtitle: Allow users to navigate between different versions of your docs. +--- + + +![A dropdown of the available versions](versions.png) + + +Each version of your docs can contain its own distinct tabs, sections, pages, and API references. Versions can share content, as well. + +**To add versions to your docs:** + + +### Define your versions + +Create a `versions` folder inside of your `fern` folder. TO specify the contents of each version, add a `.yml` file to the `versions` folder to define the navigational structure of that version. Make sure to include the `navigation` and `tabs` properties, if applicable. + +```bash +fern/ + ├─ fern.config.json + ├─ generators.yml + ├─ docs.yml + ├─ pages/ + ├─ ... + └─ versions/ + ├─ v2-1/pages/... + ├─ v2-1.yml + ├─ v2-2/pages/... + └─ v2-2.yml +``` + + + +```yaml +navigation: + - section: Introduction + contents: + - page: My Page + path: ./v2-1/pages/my-page.mdx # relative path to the file + - page: Shared Resource + path: ../shared-pages/shared-resource.mdx + - api: API Reference +``` + + +```yaml +tabs: + api: + title: API Reference + icon: puzzle + help: + title: Help Center + icon: home + + navigation: + - tab: api + contents: + - section: Introduction + contents: + - page: My Page + path: ./v2-2/pages/my-page.mdx # relative path to the file + - page: Shared Resource + path: ../shared-pages/shared-resource.mdx + - api: API Reference + - tab: help + contents: + - section: Help Center + contents: + - page: Contact Us + path: contact-us.mdx +``` + + + +### Add your version configuration + +To define a version, in `docs.yml`, add an item to the `versions` list, specifying the `display-name` and `path`. + +```bash +fern/ + ├─ fern.config.json + ├─ generators.yml + ├─ docs.yml + └─ versions/ + ├─ ... + ├─ v2-1.yml + └─ v2-2.yml +``` + + +```yaml +versions: + - display-name: v2.2 # shown in the dropdown + path: ./versions/v2-2.yml # relative path to the version file + - display-name: v2.1 + path: ./versions/v2-1.yml +``` + + +### Remove extra `navigation` from `docs.yml` +If your `docs.yml` file includes a `navigation` field or a `tabs` field, be sure to remove. Those fields should now belong in the version-specific `.yml` files. + \ No newline at end of file diff --git a/fern/pages/docs/building-your-docs/versions.png b/fern/pages/docs/building-your-docs/versions.png new file mode 100644 index 0000000000000000000000000000000000000000..7a1eb1ca7ed149c9762a743b7f93e28ba556f484 GIT binary patch literal 260852 zcmeFZWmud|wk`|=2^I(hcTaG43m!DV-QA^ecemgkAV6?;x8NRvLvVMOhVS8>chBr^ zUuQG(=lna(MfXE>>8d4nty+uF&$8mk2)GCk5D>_pBt+yPAYN-hKtLP6h6PHt1y%1M zAP_3dgoQtU5*8-@Y;R+1W@!WgArYF81gEI5i{`Vvd=WE_MoLU^K`BAy6OXD60kf-1 zMh+jWw0I^QA@)|}B`j=y+uJESTA5^F7jO%4rhtc#~ z<`i$^NB764%ti=Mz98k0$TVctcLZ0%7$P2il31BNNT_dukkqpX0dvgOA|lwj%;rz@ zL`P7}hBk9=Ht(*Vo{CLFdgg>6$f4E^ztk}zuIDCS!5i7bKv-jKaikQ-AfHl1q}Z2y zj37d>+k1VDYfQJX z>Z!b(Xw|AZ{oshXY{^7QId~$YP*YB?eEAh^g`O$g9zaj;=>l3Gyp*P?3r4%Aubp+@4S7tc!7}pz#>RSF_{@_367v zw)0ZS&$X-KZg41bd~UohIcPsn=~5|E`YsAbb4`!EuS2^TwK*K6az%-D4;Rtf^M2h3 zLBNPk%{YKrJ00iyg~_(qhZ*XMS6p@MLbpg$FeGntk@QfZEkk^zKl|WAqrOIq@lz$q zBU3VH2)bf~|OeCgJs>c%6GVKp7RzkQl#w;JI}nD0SiM{=6>x1K)-U zL4x{bA_jux<7=~+Ku3No%r55l0s5+lc-i=M-LkWYaDNzCJK#AHu~w-UeRxh@&u1fQ z3lVwvKtg|%cuk;3%pF3aA2drG^&0L}3@V0^9PN|f*BC{Sunl6w*i8v0dB1ovo*3#4 zRC^?@a80rK7&r;I$?z7@wr`yALCjw~f8l3@*ng(S4HL^{8CL|oNe#yQRy@I6gSHg? zJJ)2Qc!!{dz%%q}9iqU`U^T+Fj`K}aFk&CYn!K(3qQ2(avUe(>#hq-c>bCW^hYczX zV=knbz9#Edr{80~EV7 zg-EjFE7CrTHwZQe?~r;BqlMDuz)VD9OG^{yqhq0}ysbyG2sH_@>XFqK2o;$mnTu(W zSS5%2^pTp}it>;ugK~-7F_u48sXxe2+@6>#mX=~WPHN!3zo4IEU}*y~jJr2t?IV0a z$oumT7Vn$i%f#=;(+@%@`I~>d%n?(VDjfP@^b2W>AnZXMM8#) zw2h>VRKmSyrMI{+{mMGR_KHMHk!nc*5p86Qy0V(Dvd~)l`=|e zOsHGOd|$&_n_jD5yJe1OQ2gmwd?Qu`GOs-{z7F&;ro9=a@ zy==GNZn18N7fyRxQ~NU<<0z9!yEeZC3Z4dijQ&`}SXXrZiT_wm(mlTLS-+w4q-GVd z4l`|N)G(=XtolCUBEm1yKEesR78e;?1G^7<8*c_zfGIoGR$5+~J()G_A_X^9mR-wK z-Rf>ULjNa|6w89)Z~d!@#V+1ak3d&{*XY1Hm=)5oocXm%ilxau`zWKlO)Hulj6Uja z^Wte_i(m7-+#^k0cTLFV>*i#YbLLa*zKoroejuUE0QWjpjWVk;t6HmIf+6~0`jxWI zqf3#g&`|Ul8OxNLrR84!DX%0j8JtWoYOqHzWpI7e?0m(O}bTj z@90AMaWkVPWpjzGnbYmo-WIiUsokL?i=&kN!kSZb_lAhAvK@UR`XYESsUgeu>0os) z`-Jo0w4k8WBxsv|Eb|j)Tu+>n%-#j_6`IT8iTSm$JC*Cx!P1ez2H8pBh3l5Z8qL|# z;lfDmTE4@zgUniEq(36Rq7$Aw8k@Mp1wG0DE z3UdaWch3Y1gjR$kquY5<+nM+L3M(8VBOt{Rs}o_$F%~@xze7F5YNfpU5@94QEA3FC zesD2cG#hRAXh&gpc#6J`)vF^jE)zq}O8FJd0Nt7DN)9o(&Q5&>l(ZW-bv#;;%w+R( zGo^`z#UwL5k6ns!UjmKf1HGBfq{_#JZ}Q_=!*a`C7pXSjIpB4|JVfzCTJ;(1LK}E` zY4XVPsHSNgJ0RRp)7$vK24XHhGb1{O8;0j;?Um(!GZp5u3cGpL zbso4@FBq~{38~%VM|0tAUknIuHdn_U;LJrLP_pA|4OI@`k`$25@YIuDPc6 z$Bj0#ued!9-Y&WNy0+7HFrd<#YMa*B&UHnJE{gJCl7+`%aWF8c$ya>0FdLt29r`iE zoCr>}$4R*bj_4s~D;-U}$0GH-n?u@hUFzZ8 zLU_IRt=ic+nBXJN9?b}ilrx(1){#dWjg!g{L%L3p)BX|tGT15_BzM2u-@0AASX6Yi zd#Irhsl2UteU#Pq^b_*wRU}&-8;`kKZ7eE4n+x39M)M!r<%YV2V< zie5^9AMVb7uOgCRh>0mO8&)`)36v@4~ZB&&JV;BkPkE!nL!Q+zq2SvC#c zJG0O#wy*#@*6&AhEZVTv%9!&wPHk_^X*|}`FK?~1xtR=R)HO3XAFrf&m4n-MyvF>8 z;cN)E`0-t8E|^yBCeSab^5iZvl^=~SHLRK~?g!pHMOlpHWb*C3b836wyT2~if*IQ# zlWIn8E_TCrm%V_!T6SSN6rGWp8}d~N^frB{+^pT)&-K20bS-6QE8mZN82PiHbPQTP zbUl7(YZS+j-#OEk+52yeegsfrKuAyT;mP2=wmn$A3y{douf&a%pp={m>c5_$ji0NMzf1f8e8AgEs5wADU{XB) zLVl7bKLL6;H&avvsme%m8`xOU>lxbU8_~O1**>>|;C0~!9<7W(dc-bPmevm3E_|ea z)!+u6pNkntiT|nsvfv|CmHA98Y-4Xk%udfp&q&ITKuk=`Yj0@GEiWSWcXQw`K2lQ< z$d;Rd!P(iF-kF8o#@>X1iHnPifsvVknVAl#LFeFV4bpR=vvwf+M<@T)kBE_jfxVe6 z$jru?__<#_eH%v*A1UecK>vLGW1b*0#(?9m$uTo$W_z`#+{<)$22%G&UkKvpA?bYsAfM^IDbK-_>!L8Kus508kS1Hp z4r6@REJ=Qu+mAN_Q6XkR!Vr+qsDl6gEjh-=L8x^%0s`tavCqGM(}hQE`Xlxq^!r?; z3Y8cX3xgZ{pL7h29YEgz_n%Bz5W<%h`n8s!?@yBdXwE(m*@#E~88rln5g~=J)V|rh z{?EuExZ~&k?`ixOx%!2C#ziqr@%{cik)QVgAT#0rBlF+;`+uLz#uYv*0<8Y!QBwa# zaCFUK78TsxMx&m$F^0xhP$xQ~Mk^+ElpQ|hy7Q4A9_|$ye4xD}!p{^+s5imF>230M zw}U+j3RIa*u&3<97;;L7tSKZ@FYc{zun(F3{6T|a85+R1$th5eb>Ymv>@|Z%GZJle z4UM(QRoKdWs(YyN&auL6CYVpz=&YVD! z(L=N;Ep+)j^ZuyFTme2?GhO>QemF92ONW@3nRIm(68#RcC&w$gVVURlP zIw$$|J2Yzm3+OQdNyikYl?r!T@^*eiu{AlK8jkEGy|fGSTI>6@9s{r&jEB%cqnYt- z{>>EQ3v@?==7p-2zZL6#WH_B03Mr7G9vpssTn{FnogpK1@K!8q7n2f_?l7wNzXsmSO1H>;h~y5M4n<>q3O{yZ;~|yUvc3MPxy@bsD)9^t|YaP zX}o=rSE?`pCCf$t_dLTuj2(d{od+wdQVP)@wqI25_4(44shXfiY~72I@C81XBz3mD z)SIsv&7aIVmNXJ{#6Y3Rr6n>R=QfJ+_BLVJEPgs+VPSa{6&gGa>v*dL>o^RW#PG50 zG!m6zBVr#xerS+dEWk@8*)+-}BYhvR9fA;cz>}@+!AP~~F<)K7RgDdUyv8&!U(l=4 zk!D4v!IoqfCMiC?pRRt97KPuXeK<=%z>J9fdA&%EEYM6wPGTsukS8~OuI0h)z z^7_JQ^HLM(FU9b`aqKW9U|wAB>KJs|XrCUBR}w}?M^Wyu1Z z><%q9&mdvy^0}oJd5yX_nGb6;VM|)@7_Zg4>roG9*K}mA0V&`mOET>AJW|suZMR(v zg~lAd^@&>MpT4i)HV@_|yhk!meL*4+zBmkw_O3MuQT1hZKXquZk_8~|AK^hx8^`1k zF9L#L=D(KF<$ScrwHnKy)kI!e`hd6r-)#p0#iB_(%hH4&&|Kser1K#uN$#&cO_Y5< zWI5yLz9;g`O<#rqjc)-7!RuqnHN;ClxetcdikL8b1y!v^OiOaU0%Ijx?#wQ1dl>hw z;yCN%WSm@l&Gw~PLO^Qxj0e)iuFr^uV{W>L1PMd<&b|LEFVBs~kY+KOD@cwuu)c#7 z`Qql#|3$wxn4$u8e0+<7k9&-$fNz&^t8+lQh{s+TKkGXw!zMe8~@LF1Y+4@J;qnB zN5~c^lr>w2#{&Yo9xXspT3U(|_~8v9FL`6>6OJsKh^ zGSnl}kptU$@gAecYTYB9;5Ikj-0~Cx8HShX4t%St4B*fH^_kL6-{P`)@^DPL`1<8} z3h^j>K$2u}2niEEzch_HG9`J4~1mmQ+(qaV5;kg8Hy$zt#iaXq!EqUZAL4qDn6# zBa%fJ5m!gHTy{UT)U@HDKtL@1rjam_rPp)CJ)tt5?XbdS4>kx9BmhT+fgahz1} z^-!Mhea|XrV9_z{yV(frX?$Y70AqLSs_tj{EPnb!ag&Ew%mWzFe9Zv|1sAg@KX4>}(xZ zqSgEpAXcH?CE0e%)H9RdR%_X zlSM`j_#;^SE=f#H#Z}l`OUpm&^-($%dWCxz_i2A;C+2d0M#{=chH`21WR(o(QtDvC zzH#GrTc?8h^TQc~w<5cxYF6AJmawqD@gkOJx$r`Ne~1!+;Z(j1v(55idOF#u`b~O@ zprMO|5SBXmqSF^4%7E1cr}hTv*Zx6*If9(nF^4)g$M##1DkWO#OF3<>fdRu;b!2dP z=NIsE_rL0U1;(lBJ?>DdiX?haq#iu6$)erRvt!@HYUW0DvK<49;l{jCPj60Y!*@7=#dR}zS7j- zBPJt!h?=Zo8VXeX-83Aj*3`-S0n49=&#s4;6D5;}!e8J<<%9blgSAux>X@B*7FOtG z3>UD@<0yhA=g3zHU>mm$PZROhEu$VD`tlKeVr}-1dFywfSr}dNq4XRQ9d{S1=!C%1 zC$6|9Ek5k7VA-g-UR10u6W;c2KPjrCw2&=~?0dUBi03$Dll*UX^&fgEh5=A*w_iu} z0gvCHsZwx->xou>J_apl7d5z>YpcdrumhU(uB1ZrKz8Y>2Ysb35o%&nhH^?$$}?ZS zkK4?`0t;Eg)WXs-K2ItsY&0@a15(_qF@EXktzF{H8tm_iK&82y;-wDd&~Q3%#P{khr#5Iz@zaP(fiX}`}HB=(&O~ z2`1;}Fb;E-7}_pNkNb<1iVZuV6mE%!w$5)iI^l?7s;Zc|ydDDLlahvHIF`tZRmunL zMczo!`~ig(H!T-A#g=5bPcSPSk`k{DS)p;(={y`C#LT8KPtK4D^JKcH znN>D~!djlA&_gdPOrIj3KF7+-00*|(q%DxpVjw$+yh5FC8mpJE?XhXqX}VP2XPYAm zFKg{Y(AvR{we6>6`s(_ls3u<-(|Vb7NID^0v2<~`(EJE$x6xLa{=l85JUiU`F>j&N zOcT6QK2S>pj#N|_G<83y`jF+a7Z?$hjsBuV?f3;?`{cW0UG-tXBsjG;j}*X&eNP|T z8c8!6O0?LN(z&zOJjrQp*6_N>eIf(&sZAa)dmO>})<~Qt`_st0cB?LHNGvGExj5fckPIy< zd0cc-`xD19I5E>~_qXqzNfRdza_uJ%osmkg!^d!?dC6joVHY zY4&Hvru2S5E!K{$Vtd*aq1-v9wLXLlZL;5s(>Tm-kDnvGc{9+_;R9IH)IprQoN3_$ zhaTB3Lb>SEd-3n>?JIXP_f5m$S2N?{RqOhF5*|c6#>A+s>u;nOv6&Ni26JXoWs-Z^ z+Ir4+O_1|jwty4zK zr@VYhNCUFl9rxNjHmxpFCFeOkO{&vKYc<-ex(L$9(Hh*tHQYSB7859Nn{vANRx9O? zBkO$R4Wq^HDh)gQP|H@PYSp^6k5X!@2SiOmym7h;JSE1Ls=(4U{4LvA15k@%w;MKl!dv)L{{)T{?9E)BvB8ZEZ zuzom$X9giz)BTXG%IQ$O`e5)T0iTWX&ef0D{lXEr{NYU}QvU z#Koed5{ph98#&oD3sjo7S>o|@FTm)46uqmgrA3i-_lxSM<=7@{FnoiHvQ_+_#<;C* z5NN0W|i-X|+&#=8MuIfIBO3P@ctRdYVfFo(-Unibx4QnrW=5uh$UZ-ug-rzFD_m&1PT| z2cYl6uXPy$-krnOk>5RQ&?MS~vE1}clu8?9ut|TpEz`1~g^c!k&nh-Ic%>B{{Ry)U z_e8hkB6+OWN%)+`HL4gUF()nhu9P@ipc6f~r`4l0-m+~1;nR2CttEohGAA6bbr|?e zz7*bZJrrFbY;_|t-6Bg=JxNU6)kgQhNkUoMC{Y?X=uVz{gQnH3svoc@NPh=_m4@E`i2oPe)YA+?`Z?-y-W6E)Ls$RInqn z^n*|r?QZ?XwJu!Hv_8nQVgZGZ8E$$Yb<=bU+yWEndeg3&KB7TY^c;(d)JVQUC1D`;Gh6N8o<{I*kl~^IKU(0Rl)jHG z+O5KyV=pDl&W5q#mNhcUGsXU1^NXtKT_`;ZGcT`YA`K3*6CiK{?GHmLBW-P_e{#Nm z7a1HHl3|NfpRgGB(NE=ye!t)uk)6pH@;KWZn0_Z*{*Om}!5M**!k4Z`LR` zGBQ$z2@eW_EfxwI1vIk;>~Q>ySkcd%JhfFpDXS z8zIBF_i%}$7fg~O~=T!AFRH34g{5Spwolo@jz=lFROb1slvX+-&9&tYZ)%e ze9N?A&>z5F<85dvNV=6;YMgjEPK_hX@Sr-ld`@ys5e*(wYN*$M^}hPPV`1r#>^|{D ziR|cBs>dvmmT3pgyq&mHDt|r*9yB`?W$Mz?zK>y-Od;N~Usibp>7M?l7ZZo8Wg&pM z44NLljrp`hlVMpYt)~#v*bEOj1X|kY&C_EBDWzsk0%lEMGq<7Pu`GbA(8WJ(4Sk>8 z&I+4>QPH9?aztjHog-$R0rX@X;JBTF5k6yXnc*4tl6IB=*xU6oc#z*;IJE6 zA9)zxn>gP)Qg!f~hk}#WklMCJaxAdg9(2#5Y`f8<1E!lh>42-oW@{D(7{oIJP{T`v z2_1oSois1;2O|sgPyXI?oEfEfm28w#xRLfKlwd@~MqMVrn9(AIJncu%v7u3~9 z!<4;Et*mMjr^b!AmCH0q9JWWTvDw%Jfmm#>#;>KE-DK=A0ung@%wiH_;?yLud2O&gap z&i$!u#iIVW^T2DPu)qr&tKr0j_t_RVg0B_~&$o)DPxNbq{9y$~)6JNMzP0GjnKpD= zuRJ}XM2y+f{L-_TqEORzS*4he#KWbXXxwSs9!@bR8`E>H*0wMgTUuw|I`t2F4GN8& z#oYU(>L#4DIa@zPi!q70Ad`M6BX2*Ayr$)ukQ^_&$gkCAV0fHH*`f%>PeLfY+(a~rwuI$TaCBA<)l%+MMW z#s_>h$6SMyw(P5Lv`}~l&cVT6=X3X-YV%w*rj0?*16JQiwCeZ}_frHMuT3=z*S9>s z-tsyOM@&#e{dBc+NG~J0Xi~Op*0_57vta*_r_&Qi5893D9G##DpscFtpQ~SqNos$9 z+5hTz(1Y4#NXy#t7Vi)Cj%i%R%8j_i5zphTlyZnM7)+Er{DBfw;%Vjdr^~Ch9=#zM zl`7+<1DbCRYKZrq+B=2J#<*XSub(jzEHtHC-kZJzxK4CFCsJ@UAs=BSen#S4HLUZmt7Hu*^J9r^_pvCq4r=mjzkC{@0WvX(p%Sq?`W_B=PL=XuG zA6abCw)+y$3k+VT<=>0&ADdR;-CH;MK+d%dNwGN`_-FH=3UmcPGS(du(efkMbR}Tq3O+sSbFr zJ=JIA+q7u0AMfqPwbAX_W)22(jpuoqT>m5ZzV!O84}c4sQ(0cpsi~}>FUiMTZf5}; zxaJa;%9kO@k=ef;nC;hehcOj?;R=!Nby6XL;EwPfHG5E|h%hIoV%W7k*0# zTGehcuQBg!77v=&5EVw&r`DexK@eNCFE13U{D?M|ogl4AdGW<<;eMD&Pa$J%@SzKw zuiiW0PswW+&K9q{5OM($D^}hSQ(3}CA6CW1YN!~qIJ7ZEJ66&V@5aqP^J6dl`nJJV zOfrldl zcf}iZE8uRssN}_?vmh?}`{Sn-W_{}Xngb85Wp=659ec7y)j{&9lsQO59$UTkz0=C$ z+O^;%j;YGs;1{7BBN#d#h*Y{bPp-n*74|3{wmq0VE!p};;`j6C4IEevnRWD|y6-B{ z(`i{^qT@`4op1PToJGuP(|%d_ zl40u%M1N`hG8$Gx$YG7!C3Ug9=s{g(rnbfI+ok-W#GUIr47P(h!vX#0!$B0h=Is5Y zQa7=>+WKlRQP>i#I>APVFAa&0KU{gsOcZWYGKY<|Hqtuf*G@QbX$gw?CB=*ot4DuI z5PG#t()~%v677-bP+tIvezb#&r?M#GbroA>8pW>_8sEg^c0BdaoWqs?8Aj4N*O_F8 zoyt!_1Wp1p$(5H;HxvTW{iL8>KM}DY@#d6Mve1v;BxViS%Ak1b z97kw2mIWTYdvU6vzlix8&Y1yD$hxSDG)9@36a}@YuV6jg{1B~F(QZs=`l{;=Z)zZQa+6|I4C)SfJ9jA=eHy< zXW{Ca;<1KKlyr7>X4uR!pYO1@zmHzp6f+B286U4Wn5`5BPGbf6<{}UBXt*~wT)_O5n|=iFcL0&bkTBG(>RrW^vaUP7nvDbuJ_9Ba) zQojpTnFTUxytf)n&AW8ROUsMgw8(6B$ii^`0V{}W-?h7){WH@m)>g2LzjZAt9zBj zTf$vV*I&?dnMwQJhxHqanHf2duu1hIsWxq%i?{pCL}MOT?W%o>V>;y5;5jV7t6`EN zjhJ%sv%h&-&qHbY15MNpSJ4(-NT%dAY4MDx0M=flRxc^LW%hP{muPkyr>wn@yByp8a7j4fQR^h#M%HcIV#8?l$4S6nJH@3%5;uU3zgnHVKYDxqt0AiBXf^i2i=B8NP#ke1Giy0RtV056RK_ z)53)R*27F6o%m#paqH~?rqTk;mekxfB8vT~b8v(Vnp*`I1dO*YqJq);{ z6OqT`%Q(6N^GkXV!q@Nl-WI)DImG3Bq<$lms*R41&wxm%fcr3&&0^zjznsSO59ze# zq?JyUVWr1`0Z{@n-fy}4#{A|e%j-yGnt`jGjXpD5GDC)f*p{Jqo5*By^wpzLrt^v- zp_XPgeZnv*b}c6Zp%FbHtk6Ew@veu~$$SiP(om^Y)00l#_%S7i3YuN9liAemp{0yMYfVDJ`&zN ztSmH3*G6#9o%|uIx`tb+O60j6$a*lbD2#I5XICG}j7X+_k9B<jA%PK{qYWTFq9i|CUJ*qkR4tnwv$lCO@cXbtKL7El$my7n+x%9L|rdVB)m4R@-@)E!Ax zM$C#-ZlrCys#n$F@jW#BOyt7o9Y}Gbn6}aQ3PxE@?}p{cNetL7x}x(A+QfU+z9bZX zz_3j3omnEMz(`m-Ceji!>9x96{TQT(&Ut#~#8vNZ0=fp=>mC=LMI5+cvlmiCp+{{X zmv)SXapc23Xe_gIHUfphti zQ0X?gt!aI{X8p*rB5Qe5d|#Eu@mJw7UZWA$&5Ye7%n3=XIIE`bpVq_JChg9CSi1c2 zxAR4Gw?sA@R%=wg;=i=o<+PKA<>ATk4d1&BHykaht=fG>lmMKFuSi;+!)aa!ABf?2 zjvC1E1bl<%toB|((+J1_o*-9@C9zSM!v8=+6W7`KasPF@>#X-$&!@Sn&G`@TBZi!Z z2hAyxZ+xf3OC?e4lnA7W`>K!j8tgKRabB0QXG>Yn(k^UZZ>1Dl3cE=egxNAZG9w`Jv}3;n!qUw+Lw>CThbw zk#o(ifO{qYC`z&s72pkSBC&=isZ@%5p`(sy2FC-nS4P?|-G9p+)aJXj z-(}v5dQ(nmQmUSxU_I4i7r0Jic;*WAb82<05`85 z&nhsu2Ww-`z%r3L8o7*rxT;SgpZ!6_l(myZvny_9=~0 znvoZmxf1T0R)eezupPOVMV+s=({It5X3>@iad+bWq!_HJvD|&*Z6fQ%(;6hxr&bY3 zgXiJg-wMg?F|o2wt_Zdmg;H=`|6C*0P_7|lwcX1%bCb5IJ;_!&&-Ac2wpL`;kW}_n zUW>B#ojZJ59(9n{sb_4gbFo`8YN+!%=4pv)7DzRC#sq&jx-jG|r-P;+U0*I(h%aN} zx@AC`SnCg|UBG0j`UDZ~OY8wKj{*r0m?F35)h-}M#&Q5c9p4lwYrVqdayf|!5F)XV zq>@dKDai6t=0A%S&nq%NK*PIgseQ`ibKj)Vxm}rDSg^3Vy7f3ajecsfTwsq(%x0XX zBZX{-9?MExJrszqC{%pAkgmkGrsZwL`uc72m_-+caH$D}Iz~6`CuaLUbaueqTLC=f zcgwAG+}|hd=VE}!o!T*Idl{v{>osf*R~IP+jGz%IBL*97WDu-r|FVQabtu1(@h}-> z(ibAIOJJ3j5H42X9R5n793DWSpNIGZL@V9P6r(bW86M2-jvua2>so{8mv6R^mn6iUY(Y0Jm4%u(?e^F}!g|f1- zeR6b6xB-(*PES*8k7jU4jip!cFDU$i=zE32`+3~xQlsex4|sR76OP?M#t%D(mmxne%x!r)_&_R-f6cze|mXe=ly6scLo z7~2sY+A^_HMLlZ2WFJupe?rRmw=K5nq)wY*&VBaNV{ccGos(@vJ;a8;D3eg6l_h;E zjCjj5lr$?tV}xYmJ*e2CYFwl@j8!?Boj}7)q1%PsSxqGZb?S>WwpUz2jemvxMlRGv zS}FX`T%2)AoSsEBEO*d~%d%pB1NqUGlJSSP)r+Bp9VFQm0dQ_I@7E)sqgu#fmkHgm zEk@NZ{exaq(|{bZC=joP?hm&}lpz3G$y60Mj+8QUa=w2$W6)utF%!utm9C^-4ij@a$@} zEOp`G>3O;;-dgj|HDMOZj#8#+_+#rXZQ5-lg!OX-nt^nl>gQ(^+uy&Wc9)K^Oq8r9 zQ<}CIVkfPR<2p^UB8mmGhx`J71HRiEusP^~eA_mK8kb^b#ab2xj1e#Bk~2C^_NBa`~Z0G z!=89H5b{5F96Aj=$4WUmI-cFE%SpJqH-E^n%?tB`rMsZ2G@H$-t5ZH|f8yVFiB=mW z^=z&R5WDkooh|N!(kX1fqQzMG&C{#4kUa5;_2jcXm>n=lq2AYT6qxki<7$uF1}cfJ zBPcB_B=MN4Qps+A{t)g9h&)c>lvL~ggX|cyj|f>x1P~GJOh0!RgmIf$BfC z8}sug*SedMvT_*xrQIfH!Eg$Tm+iNvrg=>%2Ud|UIyzL`%2jnnL$$vb#gZ_&NUf|6 zC#R;!y1R3w6n2oiJF4<)fH*UPk9xtk0_tyPlz*v_>~b%m0S z0plNDY#pU^`LP%{ag(B(y(y5Atg}R)X`#sH?jeM)&8$ttni#|!NQEV+X$tI93^_?Q z;!2-(9B7K1+p^XsGs0j)<7|+E+LjGf{?2HY!~_QUJ4W4!S=^!?r;g-EWq&t+gP#1p z{kU7%C>*#OR!)ctQFEiHBn|d#;qxxFUDa}q+%!2JdYt}HhL#mD%uJ<+4q@lk2P;xV zltyL}=d&y@pH3+v`f~a}f22=0ZD`B^k@>dqg&OZ*7IcvEQp;IludcW3K=weERKB1tpLM6 zsom4e18&wC`kuxa5vlBH>*7h8XY{*@a1;TZ)vkxOHFiS6fJb!r3~zPR3Er_*>N|jE zg}2;)9rt($yg{e7O;iB{9(k?A0#!xEpKH74iLFg}?6rVyV*DKH8Uy00r z_`Vho zSpzEVceNm`p9fRsut4ySK|VrP71RCf=X5CCn{lH3Y;Q~wKTR#i9&LMrbjVVOkC0n9 z@F^96DRDokX^GIU7%8NN$4onn)6I-)c&_l>1VzfFgel_qf^Ye2<%3hj3`mZnGKOyZ zv<+uQv5ZbG>b#$L%+`kFU+j#b$S>yLb$SWw&Mf0A0td17}CwmUCmuS@grE)*j zgG8&=X94TRqSLX!siWD(T-_rP8~}T7@(AM)$b~h2FLq2+pf=dIz{s(^&O-bW8fDY~ zl0r6i)0`VMbEfI}uPUPlfqMysOws!#`=ODuwD#M5^rDDZdqF2+pN|l{re%v%Ew21jHS;-0kh3 z&0Ca9NlAqxp`b{4dbXN6hHKcgswtPMQvmn33d{nsVGvNgB#eu0vQ19B467X>zcgEw z7I`@tq8O}khnZ&=D3+R?LxvO^e>AQ-0qH%-u+{nqFWI_|VIbL#iKR`v3<^M=zJgw`@@;%{1*(G8L7*y(njpBOfRhs5(wqgb$x3M1Gs;_ zNkCI8Tg80kIxm6S@r1j6H&BwYrHHWOnd6J7v#$9;r_zhMpsVpE`SQj20Em~ESE=SZ zsMo_HkSc0{iY3eBgbKS|D_&n-YY+F>a5>L>zYboea%+z-2QCo81{aY>C0<%K1XLo# zP`EAGa{#C)B_rtSJG|yWqM%KE?JtSmu-dhvM<)(d1WRsNm5l>hZ(AH_bJ$2peNt{+9tG^1&?0x|0>gYfoP z|4Crtgu77EJ0=Wz4;e&bs@EznrUASY1f&8oh6@H@<`@)6&;Dg^P&-m4KPA8qjtDkZ z{x18t!2X%r-3|8cUT&@bir_+q?jj>YBP5K`wTX@Z)eT9g1hdhogvv=`F(jQ~?5oKe z;(EwQzm$_@Tn9KvQ@~(*M*x8%LIcS{Mn5(ikTQ4(kadRrhPKeqq0@2e7%}8L04Q3d zLH_6DMa9z}2Xx2V$xI8Z;j^i)U{;~axKpPhpJ`l-E78GmoGl}9?B^fj3acKjn6{kw z`CmU3Hh37V6&9k)Wfa;@GOF+@)w=StbibJ7^|}WLYz~?J!}pTZ{{{E{dW*^SVd?e) zy=;pAl~ff1qF$@x#^ORNBRLQ*6rQ2tr+zbASDRsJt`Zrj(gP4`Td4qCJj z5z^`%^YCMNf;Zx)GO0K(lC)adXS|p8zN=9a$ZA@Gf~E`GzK;f%z1Dp{^Z4shbTx7xi$J<_m_xog61Bn4%zz?t5^_ z`wqA(hE~n65ndu&@+H)p^NOguv+7572!O2l)q;%JG1=K4fy@q4U8aooA7=a<$a*&( zdGhM&l-Bhosbh(|F9wD80v0`ovyI9)6auPR@mqVl94y>@u1YxuB9QG-sQFpnYU&#B z!NEsFM5v~{f^6S$FOAW!uc|@-;8l&l8K9+K&^|GF0PoYTav}k1>M!t7uHQL4eCs)_ ztgWr*vu2g?8pdzZ6{SnBjeNl9ipJms<1!Skg)Rh}Jfn?}z$NV;oK>apJn z00gyK;mGJ49*So#V(vS85;(ORzqhBZz!ezwp|E%M#ha_|&*_2lL43fFf}JomRie($ z1%R6sZnd`d5+>^vRXPEbmR3?}5f*OCkHW&-wcdl9`9{eXM4`VDSTw#rGd@5WMjYSK z(Ki;KVo#y4NUEiKPI?`fC+8?T+X&(B!CN)41L>&-CILRe=@b-eWhIz4OZcZF8t=y|#V(0y%sHNdQ~^PCm`yd7D2#lg5T1Azcjp(QU8&C0vAng{LAVpzhyLJ-6JJiR(xe1ejMsHo9Hr-#ssQYt|MIIrkXcmTfl zeLygs71DVB?p>*Uc4>aTHoz#C{8!Q0iE)$7-bu54v-kLK?g`3YM+26@Up*1*8_6s230N=L88Z>Bq5-YcpZ2ZNS1tdLfLi`Hcex2GM?_}RgcGqTN1 zjNiuh{L(D~=+Q67wE1-W@WFfiyvx2_@IA0}`eWR@yoR2?;QjzHothU!OD2Tr(Lrn@R%kchorM>x3(0TKjf=#H zLYM684CUtW`-+?#>LM)nc6l)AU>DvCEG0-x4Uk{5^SKUjJ5(h~g~8ayHHt>U>#s_U zuT%1f#FE~HqG%%NaMJL(JN3Njc84zcGa}JPF+pTComLN|f0FLE610rp4`{5sFAMOA zUiS9w2-yLv%CA*Ng@T2Tb^Nd@Nn2hFvJ_F(4rqSnk^X8Q{t{V0L=^V@t*r(UF?I!< zI=GdIk{3#!`uU--*kQ}fU|5rLufvxP^29FMBrUJNCM(gQ_m>V$_nd0pbua287A-*S zNDW?x!`{SM zyzlq>&h?%1JY3&@>+%9wYtAvpxW^dxxaUo{!+-uz71DIo%2~A^wta6jd>Id%n~^_G zNp`?|VlDwzh@||sfbX&XFPPj*x!{P`grepw*(982H(?H8@T4}**=uX)oEET7WcRI8 z-~t-};rRWL`a-B!f8NtfV@|t^`FLUasL^FO!1VTKSKYaec&G`IL&evx<30Ts;8|d? zs8{X<*L~z6*Y}=tE?^qt#goUI6NOhJx&JaU6ddM$YjB zzZbmq5S57Vna^#{su2+>tBw&8`rvnjxuE?$a3nB=rSpWA=R9q*89>^`sIcxWdzIHI zW;FuT{WLLQo#sc1BJSM%R@`EU|4usnZ>;nGd7736tjqP1F&Ps8*n%ijO5@EHtv@(C ztKr+`(VQ%7j6lf#*G;I=1b(^ndanrxJp;kw^^X&4L^wb$mXFZ5NscL*;CT(=A?J|#xvP~&feGJ2bpRpN8`+!+kgIb zO911dzbjwm3$Rh<|^kP$^`)nm1GP={_`_Le(l?6G?5uQtUq!ON z2MsT&wI7+x=|T}WRW*vaF~jUTVEuwODDiZ#-ok~wiHs@D#pThz+x36qsRXF$sf94` z?e9>VaHKzv2KnilpiwwRvt5p^#uqEk=`m5f{wN3NYdkGnFsygYzj(?P+t)(HZ4%}z z059`T_LRmUTDNY75}uwuXPqDf5*tA5pvQl=)zfw_&-u`D5{F#TAK5XO;(zt&jB-&u z8JDwD=ShVo8Nn1 z)nY*&d|In7l%YO7dkfbPR_B|g+ZQ>>n+m^35~}|YWyJ#dqWK_`7#-$K#VSF@u&X1i z&8njytpqmME0S9BacVT-KA;*P-j2?AJO2JuM6&NLvf{AC3x<4{N4`K5JRN<%^KH$nAvZ0(3Zl#JeoJ6Y zk23qolL~(#P~!xp?q%-gzQ0|@@Gg5SV5m&oSGBuoM>k3hPPCwyl8=neDu{b+zKIyX zzKY6yci7Jq?ErHKW;aq!dJe(Y-;p-(MzjD05^>0!R+V?WM(F}QfMg8i+8uYrTD2DaZo0o+qZ%ajuC54r zN6nI}!&v($o7%HnL=3r7x$je+cwvZ=2x4A=Mx_9?1u8Vp2f|!4J)OPgNl$IOS3~lA zFLg;@dugj&&1U7Le+Bd{bYRrCBa0QYjJ128>y1?l)35uIO5rg6eaUs|sL7EWl8Kj! zQA&9km)jj9KU$_YMt>MpxleVlHfdW*Rfr{-k(4l<%KSS94qOM;>RtLOd5z42Kw+#u z+#h0hwNqfj-J2@j1NxX8t`Y`9hQM_ACNR~lzC;sP9+h`my5Jm9C&DXC-^NA4jw)g> zb-tx2A04)=z0x{`_|f%M?!~hfRwk$-h(GOePR|T4Qy?>*3s*p{;CZMLlEnEa9T#v$ z|CiJFpMQIi2NZVx3;a7v2?prpa=_fXuME0Q2mu<*;lg$E=ZAEr3NPeF>s}SM`uZ5v z`VVEAc{G;T<{c&alv3^{(vbR?Tk84ZCJx1^UIos2{n-3`cI3la^RQ5-LJ2ylzuezM zW|hjtO?l5tB>zU$XiolZ^fC!x?xtY>*$Z?k*f3w@tXTlnYqg_-yh+?Qamvi!)ofbY z-1a{1*VkW|N?0$;GIN+4dPd}cD|+?uV?v^0HnO_*_Npk1O0>YgcTZWZ$@2Sau!Y(b zuhER`(k3V?AwtYoe{SrVi&B;S1d=zNL5llOi*0UH_?}?-AW#WFc;+n9V!-MybH0Povan-15cm0a zIq9BcB&)xbtIp<|1eqbN7zq=gMuIF&(GOlviyh2-s9-L84(ySE0qKq%uC>_h-1jQ`1)F( zgY>oE+p(J^Ep7p}ebK=3;i;4Jjye{j9U5i0zjiu9due}K_`~?+q^c#;Ri-h{<@TO- z-+MdD%||D^ExTJ#;omCnX;jm;jKo_V0oK~-3X+5W68p z918 z1d4iBj_)Rdx#)w*xTF!EanA3MMRLame!GC2+rNhU;A$~mw5mVxS+UjmtYyofEN^|@ z2k)9c*i;`u>cxSg*;u8J^_uD7b~`P8v@C}5!1{&JO;wxXr?%y(<15v?cm%C~KA?gM?Q{R% zP1I9O|@UkPA+c_Yw88!F28LyZ+fj9LrYPU9)=nm;7mpv-dgKLNwkm|!JlL-qwrVQ$RPM-7Gvh@}-X<+A-q(6kEItTVOE zV}`M#uCq1Tc4}R`)hudgqi!xhPHs>^Cf>GUE>cmW(dkDv(qTsBu<9|5sbR+iKskU%c=Yg3L;!>o|A zE13s;@uGuK(+=?h{IkjT4*@$fi04P>%X8xcnLQ4Q(1X}L)BdF_&vaPBcPChhSG#f= z25JfhhifrVeBHMqQxYm+o`+{%r`i*=X~m<{s5wMa(#4BbU3=X-O->xqxg%D{k+{IE z3Rq>f9Qs)f4_=@tp`2Ss!J;ACT<`seME_1LukOXhbD*tC@(dd2QhZIcENX_*RGIrk z&TW;kB~%GvImNV86;IiJf5nCXNPBT|Mg)M+7>E{VPc6>$s9P2dha+ZhMY*nRjp)zk zdmKQ3ILckom>^9Zc##njx${neSy&2dSHdVg%F$}dnS(R?J--cf;s6zyw-!pknX5-# z5S1E(HJTGNQLrvt*h|tRp$;C+nJ=BC7u7GFk~(!PN8fjT#j~~VluD14>lzxYJ`w{; zsGasiaMA=`w3dQ`!iZ`Sz!ORvr}DwNmn#uyLkE;>d$qWP zh3Uayk*zM(ERt%u$;eTlWFduGWfBsmB(${gWIWbBecpl5|Ba-vF4hiMz|fO+R*K1` zRHWbwInXxRm(7z+S1Huc&`@~)J`!l_xWBspuQG#xjP5T9Kq%b>ls-g6mM8rq%WoGU z`|MRW31!o})l@h16n(O21TRnn=L5Q>3WQcZ4#Jj}4zxtFu5X4)>Spa9tC$O(Nz-hj zYN3jKAI$plrJ!*l7~|y=$!CN03q*qzraO>x`4X_Caw7yNp!&X)fX7(2h1zgQSCJ9JDyfp?<+B%vY>*d zPxnnVv54Cqyot!Y#c2xQMctK$?iezua}kYsb2!PPYn>o zo1DV|QBpc=8BJm2<@GQD9VSRedBzau7Z;$Wdqyy@_4^}#e_n^K!HJ3MLdeVUR^ zMc0{!z`fm>WSl@9>gJuJb_xTv&%hAUuTSYjfhi0xn=mJKsYA!vn9D5-aFvdr61J2+ z`qvo_oP4<*!#4N$n1D_VtdYHm;BxHM>1l^1Elo}3V6kmLkMZrT$4~?9kD&HZ@-jBJ91Z>rO#9vUh9w$m)SB0> zzZ--_s8mJuNr`|}s1z@!A|5xU<#3R}>d|T#fW_e)!+UQGj^NQZj^pm-6!-dbB@JUp zc?lubS8Yv|Lc3hcv%5-KAC}Tpm-E5H!+E&b7t3y9Y(PhiWOH~kP1er>yXb%sQdVUj}n%%r)Kb~E&bZQV}xB{5+o6afut-`q^ z%)aeYpEKict^f0_s(w;3|DM7Fufa`}oRGjFC@5H3w|eUjJ9?;8yl205(b5L0@0xm( z8i0yQ8_M|O2Mx{}r5SBg-mv8!-VIPBn=Ku(n+7Ndi`Bf_L5tV;q(C(9IU8 z&e2Prk&%^!jOC2w>#S{3C!y_MF8&_LZ;phZ?{WtQIONw3mfx@gcM_$D|9wOHT*xhH z=LI9Xq-jmFq7+sQNV>0AaWQ#=-l8Wt8_$hxkv|98nZ4wmh=Is#Fak)ufYu2!1B0~M z+e$4KR`S9NoY}g?)lFdLJ!db@?>-AekwrD&o|e|sOe7{b^gxqhKqJ`kM$N&B!IGvn zP;I}|O7}a!ev&jR32VP?);L^VzKXK8K|{bO*J77{j_I0k*2R^#I4!xh!}xe-s2?@I zNCfn4hD66_Y`CQcTGPB zKR%9BUtfxiWNy4VU)@g=4sT&@(KocEAqZVsQ?t?fqf;%~Tr+w`k?AvXlB}JIROmHf z?2~DBbyvao&>wv+i1HnKCk<2Qjn}0XvM;(i<{o#j;I;28)I?)9PLzTWx%W0gDBlMt zflOSt0hvW8+2~rAr2c*>KutJBmpG1TytHy^wrGs5*k!fOAPal=MPcuq8N;FjB5d(Q zjrqno_M6l4A3>Wf>_P>771cR+NLXPD#H0OhDDTW{Q@vTUg$_6>{1bEuevH~mDeJeL&=rv*&DD_qsS})_uixh;QInBH6 zv#{n}?2qT$PcPyV1%LNzFCeO_7&P>ri>Ui#(d;oUl6;&yGZa8*{x@QoOYxrEO*}gT z9jn>8pFI1`Q>TvWf<{a|&&O7awLBx`yVF*l)TZPpXo8^+0!g}-U*O5ek&4QY?d|8W z_$O(A4iXv<^uq=R5*_<9==pl3%O8Xd87$@1*J`i(z~W!9wn+Dum#I0Sb0)7Riqb=D z(?r}76A0O|1z4ud|NO4fK_KTm2sKTSMg*O+-n~6 zLZ{{@#aO1`G@8M;a>M8EHMel0O)ZLc_&~IW@*tU} z+5pWZs=j{1_nw13QHKVYLpQRFl>O#%yaiwAyGTN4#_Z2AUlUCIdAtJ$R8D)sL@ZZf zl!iaJlumygUarp{99bfwZ0(94kFxwW@$+E=3 ztTPx^)&;Uin@h=#m>;o+PkWUnl_D4E)+8Q7v`IN}#BSxd88c{^Wuu&lU1J5;pM}*H zKwfBHiA4wC9#%kbe!c#C*&hd)_(u4bH%RUHPLqF@{ z%)dt4D=o#;HEpqwm&iiV>uG2V);Z^ge0{r|o>pCtmaBi_E?pA7Mt_^gTNo=Sk%J|X@HuW^Fy8Ek*i&VP%? z`g_>#56@80eo6&Ai0*cha*&Vx=3mpLR23_5sZqqt{7r%NZ!U{}!}+2GI@=88%8O7D zG77@9*<~EtftZ~?#QO;>laOX+2rqrR0@xvPCL!rk&>S|aOUk+K?5&{GpoC3K{DhQ< zb&}a;${5`%FFNB-gBUAL7up9Yo$1t>goKNVIr*ratcN#ju5oFDfavMsFD9l6I~q*_baDsB#$wackK!^{ zlxb;cDd5wjtcl-+-iJ~P1$=5(vr~*b3Z6#c7<%RuucS?RT=YZE{A^!J_tq=N%{#@|b-)$C z7Qt|iXa^yo5DX18oaWGaZkwHLmRYF=F`2cinfDAUElf$y?yUeTK?1DJ(7_;B>Pjl$Dy$R+znd(kn*&geCQA+==7o@ zu>GE|&fdVi7|UNdu3%*=7q3y9XP9S}K5%bOJX+vBSi?0sU$kAVcUT?3#xkfAD z?BX+6X+rmBfKFDS!jR0I@Hq*|<_R#7KX9@+ylAVPjv2^LIDy&m4MOyT`4?wCx#r-_ z{gis)CaNXWyyDBN6h495^tA_F375EjKkYW$dZ9T6T!guMxQOT2dOd zQhMs(3sx>o3_zI7yGWpN)rh2~qrG?v&D+|j&LZE^;Gx)6o33DjLTA_Kwd{8I@bGYc zadEM9ThlG6vys!gLf(5j42yCAXeh%v6fFz2{DEaLNrMlZ%&E-juN1G}(g2eVbuyDQ zBHm};;#E>@3!ZR26uQXb-v7P+2^|`NVa29@QI(gUKiC;~qkh@aU;&KsHYWyPyzJ3= zLn5dg0@t8S&6fyzX<8N#@q*P(I#Ot~Yd$G7`5C;;QiSFCAe$Y&c8aGj+F;MQwctb5 zsTe}FTHi?%FcUrnODc1>Na#kTf}>DzS!c8qD-U45l4W1X?S4h^mfP}2(U*)5Eenm* zQE5K^>JGd|(bcw?s;Y8$g%b@x5J4PY=Do2B5Wwu5V2(FF(lbu$VGcruSvHx++p%iOy|$=m(eCv14EuHfk|<9QvQTAfD&@;U3U)W(d=aT~(xU@o%w%D~b{ zqT>zYMz9b1A&T(5n!x_Xgaqng$J1Vkh4uc7hnD=Ci(q{4{2GBc{Fyj;coaFMyU zS9=9s)nD z6cc(wtB0I#a%t)5XVO;B|N3`( zCw1S%_>f8-=>V!bNpABmI^-4%0l!32}Tz3YUp}Ba-gq z{)(fn@BR+@4hkQ;4kBQ#Mb&-z3qri)vid6JQhhxNV7Gi?4!cLzf9F(vpmXD;qiL@O z15jk;;71~hKCjd7h;sjDjQ@XwzxAuYwM_hmrI$i0VTVQ1i!21WZ3WM&)O$f7&?~R_ zFL>k}2po;}8}DE?gJx|OmLZYiUfo?JlTtE0oh;SiE0Hz~W#8-bq-x(w?xI?%DepwA z{oiZic8GX&Fb4Pv-T_Uai6l}3WQW5^B&`CoWjbTqS5r)RAZ3@M7(q5oq z)J|c*P>_K39Xuh+Q&aa957%Og4X0eCaPK9P1J=uj@$@r>edu|(ymCXq^=sq3qid+} zuKPh)+{E18sd0d`q-5J&+K{g~Ath0P`*?pEEc<&(RViEcB%6+bql9ZfoJaGUgEoUS zB>59F*`IfRcYWnWY}048JWi)zf|=omY56-Pujxw+SEU@YdHw)Tt5OCR&$MCFsM zG?&fN8cQTz=!Eg(vhQ!m1uYbuox}6;@){8{B%?|>ZnkBZ<)-L5fbA>T+NKVUbkvlQ=+2c3z7itOJ|cSK5%N;!j3PbGDaTy}sXF3Xv|bjlg?(Jj;Y6*kMC;+ss${ zyMU<)35jN4VeU<}q#qi>cxQ|*GK0}7h1WNsr6G}9q_zFDHQxdE>5UfcQ-5oVhDvS? zYl0Ax7!!EY#scQ!{T3h(`UMApk5h>Ko8)q*ON-)4VRa1B<*=2=VgB-`;7iu>D%~ue zcVUACSViYkg=bM*EwJN{fiTrc%OeU({1k|GIXaQ=;#D68io{b>XUEA8LGA^?GUrP$B84iD zWU0ZaE^3_b4G8h}Y(V#t-56nXZmE+7aOY~Z)Go;*UzEY*QShx^> z@>&--X{P7~6x%qB6X40o$&)gt408nJkW#3A_tV`SZl4o6bBd%HTl%B}Vk170+~Y8J zOi|4NJWgKTMNmfSS@m%P!v(#}E2pYU1G4Y9$cV!O*o0>$VjRM1? zBnywQh+QWujQs5cV>Pmttt)%SGL}ZU@RBEJu#Kc^wC1Nvt;zh1Hg~?uA{QM#z2yC1 zHd|aFRVbZPTlU~_)Dk4E#!WadF3xoS)Fz)K8M2H+W!JV_BbfP!?jC>^SkAJBEc&Q5 zi#6%if+;@#hVc0wqSA4ZwL2It{)8xgM1zbe{jbA9txZtMo*5G6peYk>%lu;A3EkY6 zjaAdvWL98w2xD^YdlO`Oszl2vEG+E!^%fxG1Y)wWvC-5;(jMbCf2i1QD_>v)vdjK_ z=|Zeyt*PmjOCfWMOzTID6F9OIzi&;xtAKJ-_)tkQe)bs2D?2<71W5Q zU`uq!?BK_KWt>72uBZ2Gmw5K_-En8|#%r}c48VflbZ>(CtE#G;|HRUbl(e_6D8*L! zUF+&}_+?j;3yKfkP!Bn^$0oA^7D@=N#~NjsCQg8eTD6ZxbT5id?J`A-*P5}|L~Dk zK}5q!DifeLZY{$ZnAWIjFhzEaDeCh<*2TqV2vE1(oK_Y4*5-3swiZq{r$OsZ(A^mr zRBEIuq^MJ&9@&_5dAgbifR)sM2r3cpA)tJy%#R0tX+3v+GHk()(_GoFqo%g*XA2?x zKyNIPRX{V5gD#3ZAmX_RBU0U&nCn`*mr?f?hrpFkLAjyb)tk^KJhoxgZ@P5f{YN;4 z^Lz>iZ|8TBaFxxEYn>=AdqB2aPJ`ob21J9tDH0nIS`-H5-*Sj?d*C(=SsEkkB;hy)e4Zg(F0ZPD8aoK&~E#C=uZz& z4K!)0hYh{R^&5R&e#S8TTx?w#?Bjo!uqhElzcmIPY}G77G!G6hwS!AaQ~+53yEdm) zKT9wG8gc_E0>d$cJVB%BCSu8=dq3W-gcvNfxF5Qfy|T*pfVOMa^o4vY(L#0@Qhv9b zozSvj*5OJuql|Ju#gwfb3#Du0ZkF;Gw$C7%v`ZrR>v!wf(SiEh_qbP$$dk+O>SL}t z-@AV|>^tm9c2~sc_4t%=D507Y_#`!hmbh1B?Wag39WfYlTGrh?D&g??3a?I+bFdf9 zb_Mv|yPQ(PwkZmT{ZnSJ63)$7*`p+ok*_8W zE;*0AH6{GuS?c*uE#MM`hFaboi9!(R>%UmjZK45ZAe!8{zYA8>!&CW+^rE6&b02hT zo$j31msr#+ur+@)yB@#1v~=+J#^&bc$>^)J{PHM!Y|+4<_ExS6sid(P&**YIZeNl= z@7|R|#csn){=EogLSAqFA$!VkHKURCdUApItqLL!V07G5%OSnJd9O zyxO@8fgrNR<8l8L2584^CYw&R+!uUG#=BjuV4|g!U{pyjEm70grymzS%_}wPfRKF6 zPC?;)Egr;>>3?Ix%*PR z#t7&y!W?Tf`U^9?XS^S`a{$+e#r1RX|5T^pr|UN}u3CsxKk+;;e~1!-TD2e|Z0p_8 zA&lSb0Q5z;)L)-N#l*c~2b=Dn-{0ddfo6y`madU_%{%MP&rk7MCz6hE8I2`^_zoU{ z5D!YVDpsl;mvt}KBP^UpxXko!X|K{vF8;{uBfC`nxIT4jf2BWClxf9$7R~{uG+L0bTs2lEmI}EyN7iDLx;CDl{ zyVTIJ0J#Mm_OP4SnMfWAv$x2%zeE$+&+%--#}C=__d7%{{2E|7C<;a2qY~Ch6n{ER ze0@=ht|qJe5=u>(*WOUOgH(*5%(LY8y|S9j9UocQh{ChyRDaSIj;h-nl@eF{GJJO8-N3OZL5`jpeqT9mUdiqZ<|2&*o75N+w9Bzd3RW@n($mSWOms%kIV z&^Uk>mD3<8>XsI}k~{URN2IK+qm0E?P-o#DBR(C- z`tqfvqpVsyymO9OgtvjyudzX!^qV(@zr(`Ax!r(ThWTm;RQrvR?)F5#+w9SydFuz} z>UC9d9{onZC?*p8_$|Tvu38h)U~tCyjjgZK;d0B8YeGzn=_ejn-5(5!PxZ3$Qy?BA zueA~%mE~o-FNua2x(ny@o;+7cq)1{`^#*)?Wi5>wKY#DOYrSa zV2?}-);9-3CJVh+3V8`$tac|e?xd29nXao$r}-;5QOcy;YEQh+apz1B)Jf;T?KjX@ z@{@DJdC*I-*rUR+6Qd-$e|FRp40k?yBO4d2wLr@Dt453W+_5Hz{nvi5-C8j6nT~9> z2>L+)W}z9D#_B2;{Q79$TV=T(j!xv7<3LCEeWd%NLB)K%PPi6FU3Kw{-s2`WRWqB) zPwB;FA%94O+G7_VBJ;bvJymuWQ3)YP#%8?&`ZFpTzzgcDhw~O&cS?WGi=tq{24kig zAZ}*tpSlBRdE%OE-Wc=Mydv}(R?l&`ZaBA62t1=1H11cf=%Ce$dPN_2?qY|js3c&I zbL_Ask;Lt5`>qfdv9l)zYW<>VnjXiN&vIChA8bxIndRi*FZ?<>ka(=huTnObXtt*R z&nrP-h&rZ*`FSo`=*pV+dvJS!YSweu87**S?8~`)6w)J7PTu*S;HB&JXaUR8g<2lN zc}1TN9|H)$+c`sZ7nk1gaeOpiiJZm!bFK+VnmRY49+8_!PN4ZYbdx(BxfAh8+&Hi= zAmYz+*(Owu+IAmELg%3XK*jn^|JKgpjjsEGj-_0;pG#pLrHE+ym${t&lk*DB1ZURy zs_l`}{P89+!2{j6GJCYJS1Q098V@JNs|0GTksjaD7j+a@lE zmxPr(B|GrIYXwRH2;JIGux>1jtUl^Zzg5S$TLzFw;-i&{{Yhn)h_DpN{j8Ebmb$Lu zuwTLgb|)jGq%%A6GPDiHWnko6wxV?Z=V2%DxhFI`xkSI5pq&vw3awq#%g>-;>DR9#dfi{Qf~s&MK*zRJWPn&;4@yyFiH z!<`@%7nvj1y#C4)$Su0RE84k9d7b(B=%sFX9+TT8yLJ2Q|Hi6fNF9 z_g1V(g0YiS77&I-#P59L4I3Q*+Ab?pT~C3Uqc+POJ1nTPm@qwc zb$j9rT9(lvakKD*0_Q8iC07>A;gnky?XLJUX8rj8>p9Tq+l1Wu| zh&M*pUC8$w#fh(aUghB*HoE5sR@UBLXq3Ux^5x*NS*`pQ6mGL zqHo$8({X~nUlY(-Af*XjFt7j70ze{EgGsWr>%H1$DCU{4+Ymad8Qr7X-#wNQd$!Dm zZNCo6OJ2Mh9%?mEyVx|Xp-PCMXO@(0P8A?6)O7q&7MuHiINx?$rKkb2;o_|@6f3Lf z>RepH2~9|B6>CM_F$?|)TrbK17G3|*F}`N!8*S=u30xhH#n0*SG!u-dWSu!(px9W! z_fi`{d_eD$SvKy^06*zNrrirvgy@uw-6BhOaOU{f)Vg9tYpcdkX-HueRF{_Z&B6A4Zd zXCj`*?bv%|t$I$R>zoc&*?1A+2?cv3DCD1F$g^| z4T!;QO8jE3g+SkRayCS#sxO|)uliB*7Gs$F_+R0z`uBAn(e{YBLucdNLPwvnR;73E zxc@SB#8FLec^<%5D*Kn<$Rx!q7ym!tdHW=%CHfM_=Bd(Xp9AHv;iHe*ZN*@(>fM#4 zKb@c~o!G~jC}G~ql73z-vIO$Vzx}kb+^vwJeyV5r(lzLj2&6jf`A6=tWv6zUr7Rz9 zTO9JX!@hUN*i+ZFP`O*`8zowNjN$oy*M&HEh>uw5Kc{KpOV|XilkN})XU0$Li=R_~ zt=K}13k2pw4MXR=A~iXl?a4 z{bN#-^Ce{#_(5g0bZPu22I|2*y^4fbfA4u5H2K#Dys68kn~`Ew+%FIL`gtEp?}eJ( zF;<4^OB+6M-Iz-o)!x)!g`b$(EN{})HZ#3pzwPSwi#R59_*_?+Q z;)fY|zpVw9nihL+Ne3@Rs*PlgnRQi?Wp|hV$yNtr8g*m$%*^OIkgz-MTaNf_L0qE6upbI?z$4A;qFD3|qOw?F7%R5aawr=VyX?gN?B z9Epc4ylWDL!lWm|OG-4M;8ycPt!e~(E~Q8wvg{Q^akRW|Av zw`ZDz$$#0kK73IL%6~(xM};Wi8$nt&0(d(0#X*w*^l=tt6+nReCqJWWkbS&8 zRpv*g@;_14;C*&^IV4pfugARM!{bId6%~g0+>&0YIgRBhN;Mlu&qf%+fDRmm-v^IIIo?m zmMY(p&dunqIMTF&ownu-3bdVUY%V5B;pWll$2~~6S^H=1-zs%hSs0VVS?3x01MW}#({FekOoL!b!*!UFGnV_5>#JGL&KB})jWUVL5I-r%KkSZ+aO*d|8c27oHmC9rKe#;u zPd=h(Yj?@n|9hh<_HtkT;TO*XkN1_DuHKQEH5?z5TYmeoY3vJfunRC{F$2Bbiv#|{ zosZlnu#nPHDvKv}$~8}h)G99|oekfuR|g8lG0MPx$Zm!0)nhF2B?v?!G@8^w+?s^pdF-9+tb^t7=F%*C@nprLILG;)^`lMwGyKV#)(Tn{rp1gFy%F% ztNRU6(+^XBcNsD39ycX`bGs;1sQFfm>iRamNAnF=v+qk6zNu22+}pIARSGhdwOqhl zP88gfvm?PX{xRP)>sp~6gvMec8=3IcO!Zrj=);HaaS_QG3H0r9t zZWC+fE9bCPZ-?`nzd{f2|G8`vKzFzC5*DVVMoU0mr2ynItPi?lpCtfCC6E9Y%~OJ0FxyQ9Q}b3;x0%Mj$uDT zeDn%Qgv7u%4ILeLN*STjLAa;ZCbl|j;p^x$=dD*hpBM(lEX!2Jrq zhPy5GfwS5i;TBFyZhF--P-k|;vdSBP0ET9(7_Rh?N!_8x0{+3xP*2w$0&qaLzAP^G ziI!%Ei!=Njk|9b+W`hYloW+A_JIHT%)*94e1l3AbDX%-@3tWb*tzXBYbOefF@5UuJT$ITh{fjP~t?&)+$(-`?@hK>uBGO65-cp}&S- z5Q1ky`W?f3FQqz`n1N15dVom2oPkBK#ugN3zR`ETuWv(h;=R3PR7trCd2X-UFSj0- zd={v&amcpgoMungfs5c%|9l|OXN9a+KUR)Z`%SacWyQq)i!^Q4TCLqpJzgZi$*$B4 z`D!8HU-Tyl>i=UJf`Ynn@#Ox1s-q57{j1Qx=KB+Vi}Mux ztg-^Y8z~#i-BGXs`dCrK>zWSFO^_OB4LW;yn*pl4Z9Hn)^6Z7N`|XpIX|JCqWBAeI zJu{8kY(o~03&O@kpsj2|M%N9*6*p5WZu8Xw<$(L-zXrJ6bT^+QYd@(3tF;y%|61;& z^q+6~w~UZdF?$%pV8=m0UY@6DlC{iedKSVzhPhhhNd5i4d~BN6D0q!KY|13I20;?!a9gwXGU?>NAywGm<89CZA(Gp-|Um@pH;?(=>=vhbh{ z!O8>mIqgF;824?^tGg&Z{3?2xolx@&1=LhkeSN&Er5)+sP!-=ZhNwEKxV2JlntFX6 z>qBX<>bdHmrmjJgx_+H&?7_gNWAt<<;0!ObggE!9B_s<_Ue zhY9^e!!Es^uE=w}E|$FJor$pgF+qdQE>bWWo31`4==w`nQOLH`TqWHUwmF)`x+;9E z%8ay>G@~p54=z^xDKWb0L?e}Ap!cqITOCN@Ud~&YWFso^^9lab0nqf17HqiH?7=5g zIzC8F2Co4uI3v|Q5Wu%_Otnvu0IF^MQBln6#@o^Z0Jy=#kXy_8c*NtUqw~KFcuzwT zf09HfU+;YaYX`QfYcBZtiRh_VvR1NfTuGH#-+G9z9-XG1HVm6TB`ob0@ zF3+Y_8HN^5kEW@QZJ-rxnQ7X90q=ZNylYGY5TeE${;fa7KhHG<{srxv09*+I4mvu;6M*SH+hz1KHdpv+wec$f;Eu8A-)d5?xpPRu6;DP9w&c zAgkv>%sMsyi?R0(q`H6q$ID1aMkGo^841bCp2yyVY}q>;dnL&#BYW?a?7az*z4yvI zwm8<|@Oz%_^?u*)`*Z)k{dLO8Ij`rq#^dq0u1kdc%WlLFo@HCmL~*Iga~Y!C$!8(; z>o$`%AJdFxrElF?n)7C1d@aWIUh$vu0Z>Woa9vCTKZ7qt+%aSm2k{sT#RJkLkHOO) z8R_W-A4v0vtdSW^n4ln{P^g&F)@S34XSJcT(Jo0!;A$7^|c ze0Q$y+t&em+I_l~!h#y2+F<4s39D@OP6@%$xA;0NdtL9eIe zbft9+V3*~_isq^8?Cby@txERHsCap0rTZ-=uF-g*4lTh#3l?Q07|8bOIJ;Ln)Xb!A zA$~=x$!vURfZ)duq8~@8gEwIT#cFV4(&Iz@V{=b1LfC67%S&SO7oO6TQC3zb^XU-R z69+WaOdZ1!8@dt*w6l+%aTd1Ui%&|oKXziA77aIhD(+!JnLn@5fgF3GCYeP7OP!>K zlH>Qr4<^3Kmd&GQi=$?brJhJv30B>idjJru0&_lul(u|-YHe;&VQHz#R^)`uOQNJi za#gLmQhAniGUg4-&p>#}FLxzqcmb~t|Nk&R1am;BUpz=r`KHTjo<*TUPl|)NwMOeAO3nM^n8Kv~Pc#j;H}Z?ZvF^Jx zV~EzDEaE=%L_o*Q;a+^;{MfgXsK?&8qq$q!eV&u&%mLLJ6bKP;15)ZT@oV_^9~Lzt z;&0sL9C?vZUoQe+N;lW#a0ywemaZs9W7xoh!ljmidpH)?3v~`G{4EC{*471wv)Vg9 zkzdG|fr=#FIj#I(RYoEY3C{c7MWKtYw`hUV+f8FVba=Qf4$GL_LrJ4rFDU4yhJ!*( z!jn6Qd?-p5GQfj|c$1_qa|6^pujJ(;Tx?KEk;zeIUCG2*(G zAEl z$~0llMP68&&Lv)SmYg?`A!EB1$iD1;cDENl_*e3a19NrLapp6M_6Y7BdRiP+x zF$fd}a!q7pWcFXN=@5MWN6uXgIRPd$1F6B5g*D$y8(z=WczZXJEWD-%qpkN9zu~!) z6X;BBx>4+Gf_^f3{N863EJg#1ce}4Q$JqjD3YkrjMPN0!T8O9gW@kn1Z?~_(apm7rjmx`eME<_%Nq75Y&(k+MXdYEX1m=z202AcDOVF~58>CLPxKY9O&^-Uec>~VQqMC^ zz}pt}TYBw)*~%9qBdT%S4%zwgHZ}@13vY3?r!Uk1PiS=$?=Gk6D?>x%i-Q{Po>GvaBPL(-+4M=6jO|qEldC?KxNpF?zrL3=A7fUwf7;~wzF+F&ux~*hewfnc+_TacmMqL_|HrH2s2?Z|9wx5BdddLnaTA zYH&L$78Zs3ZmO45dcjKl!dbCnjF3_I1kdbT65OakKu*M?)pS z3i2#l8=~@mp*7;y{n`emWqXavcqS92#=(;Xajb8d#p0Io`u_d9 zjf7UCrj{1tTB1V;HqPLcPff^eTj7sID>SKC|A>bDaq>~8d>E9%IWVK%=0l4q&%Hvt zK3SHNXR1K+itBSx5lWXbXr=qQ1ydN4o$qi&W&dpca<05#Jv+e&D1Du(9%zBtt}FY% zNl8MX<**5$JEAOYT)+O$IppsjOmz@DmhWoW)MS01_;VuALY>ECMd6kMBU1frTXo1Pwy<=OF=jvg21$IFYs zESyUT{O*-}CkwtN8xg5IX}^Ok|Honr`ICSTZ=K`0hAOOp+W3IUV(LKbY6QkUmA?KV z;)*gam?@59FF%1ouf4_N-FaIyW~Z%*2c8IcxbwWHy1l(US|#?;0yq=QrYZaq?C2f9 z89r7JM3##|Aehs5hySLT10h>6K-4KtR#~CoT&J?(8kw3VG-Ee>^QZLESnW%)WL9UB z!FUYDUYJOSS6Ge*9i?3*^*lSm8(A(kJUu<#|900_^2Li$gAS@uu(|}~l#kRox zAsH4aE2}U4wOe9;mLB|5O#-YQjZm%Y=zX8Nt2P-}0b`%v1PP8k?kQ)L4Lc1ZXJ87^ zZY@)-u9})vrGve_&e=l1=Mtic-I${0;QM{uFn}J!XUo>zls^314 zEm`bZW~mqH(mrn$h>nS&L%((-3`DNC6o0Pgq)hquD3_VaCi6{xpkZW`fg&Q{aA+vc z++AQuIEK?*cJZsW&(CK~B&DSCh{#;&nTI|3sj0t?3}!VH^3IIQ`B5F6TG}2j*{*LU zUTl>9tA^4H&j&UJixl{6Bd+^310l>q8X8d?92{9^)Lou`gIloI!`5Go#tc0JD>n*h zwg*8=7Z?YRtDXcDS3MZou$xIDK+Z1)=KpAS*w(Jo-g=$J3#Jp&(Ir7YZN@f5J(7v; zthQS^r!W!x|2gj@&*5xiH{Gt@_(e3P9^k+tDdx}Sjlc0o5hot+zTgg2FeYfzvYJ8ORRa3Y*d8*ZX{I7iASa(AsR<~`P z!hGHh0)c#rjvj0DHCrlUYmmI_>%j9bzZ$j&WJ$2SsxaJNrwA-*;qBLhD&h|_{;#$+^#w`_LZZg=ujToF{3@S5W>CRs+SIB|`L7H9hkYv#LUC7L zrE~rdTkyyGehV)LCV_$yw&fhV`Oj(a-yXzAjSv`;7aHrtfBV5d|COf>e3vBT&3_$c z@P{h^_WvM|`hVNw_ozKilTP{L!>}3SHaA`Vwai}VD!_d7u`6LX<8R?FlcNAw%#ivr3|rN@knyyKV-9RK)e@4`XF%ZsmOd^Z3Lfa(D9UpN4` z_wDPxgmo}CSJ%MFp6}l)oXf;gbuji1oD&XcX|pAbmeZj8SVVy`tI?$j zhc)@Zyoc-&!u`qokGQzT>)j4F9_1w32PHy>q=+bb^$w@uCKbcqZJLlrZ?2N^d>PGG z?*`Q!%)kLdc|U#{e(&4d=y_%|SMR$2oi3#lOib-z1R?nT!GRnBAjl$tzm+-OneEL7 zgUo3SyPO*jCUGo~*Vs;jypjSpjyZ9TaHFCE^*+tSg9i&*3(Y?0`)#)rI(_j4=s}!u zppzHaz|;Fqp4G08d#w|E%O|X?ta9ZGuO*0!(QUiByD9LzhqL9Lyg)kB^K88gJUSn*=_P`}YbH1et8ig33u2FD4~)2%^ZFUAcT%+AwA^^M z6Tw(iKV*%c|F;vg&Geey*~LBd-NAnZhy#9@P=r4KbFk7U9|N=jVS=SiZy+q}!*?`c z_{@5WeNZod-t&02*K1b5M{E-~2%>&nArp+Yk+7EoO@Hz4A z1ussPZhKw>Lw&Vv8c$8gSYN$E#muz4;%4H~EPwk-;IBd*C@Z!!FIxCl0F#Q2Yu0tC zqQL(G$h7Gd1Wq$S^Rstw3;2)Cey<}oGA^4$GkvVAgX^Gh9m|omWeoqb!()HHHzum? z3qDvqBj~lz{^Hx8uU>#$HyqRm#UGT5U#5}MA^!nVuzu7m)^Gi&*Y!Ux@g9*zEi_MR zyvcf+vxp{b{(Qfi1(YC4?PpLTC3mWqZb~UA;3K8JR(BY8M}N1jnq4(}M~>kDB4^&u zn?=f6i3&L$0Utg<&-HcCZRwNLQ;UlSjH=9o7asG+m<+ibO`5Lsa?M9BFE5+4Sfs|u zdoE_0T}%BQLC2dXopk$pdAq4P?t6*_PY-18CF) z9Sc!WUq1MNs7ZVvzQBo4El4Iz)@*ifZG)N=UC+Z860M!zzuT#@C}veY*8{~2J&D}I zgN`5XaVvvTiCiJkRSm4$^b8E)00Yzksr5{@`p-cL%I`oSZ4B-fDBQaXuTd}5UWXy` zDZG#C=J9I1$uU?4Zl~z9ga+OI`}V%8x-uO6?igtR{p%-5vO>O3*r(q$PCZ-rnq+sn zzk&i8!7)?escde=7ktv-c8KFbh>eZC50ueTPq0?2)JdL7-Jrv(KYs?ug}s!^bBSb-$Q0LX0gyl&l}(-Qwc@qs#eJBM2gQx0C;)~@LRlK)=Pl2g@G}PIYSu| zp~ZLbegE>;f4-WMM(Ni+t@8b~wa&ZDH8nM#Vq@vGs%)aR zr>kUibacwjMxS7#E*mfgf@V&X>^Jaz0EF}s4q4|xtD3QwDPsmUA(R6&to1yTP7(0z zS(Db)O+J+!>?cWjCYJL6CmXbw>zcp3aIQJ%SmCuG;^mZ$5oY1d}x^q51z28KxpJZ5j^MUY46F4WM%a ze`qvY>xg1C;>@Y*(V5Fdd%f)12qiin#b{Goj(s6a`YKlC%iw;r6)t%3Gqi<04W#+y zWz9_&hefI4PXRV_D|1j4%&lKXC6l_8U;xZWWk#I&uL?XWZOjYAcoPtGG%Wpi^zdP4eo^CNP}>o|#5qR-^2%l4 z4#RHAKNkkxZOe0F&B@WRqW);ga(_7GVr1>->duIzUX6VgDl7mZ6c*>*IVMnLHv|Oh z00|6zdGkJ>1}F-co>8fp@&s1zQ%ua-)L7I?cZ|Cg))dgC`S+v<&YO~WUN0D~ua2n{ zNI9z!Jl_)?bYIJqP2%Cu=V-9$jUH0{X}mC(U0*+QvhJ>c?g~$)eEzz5#@5sJCIyeG zydV;uitanpPq>B1mP;_2EHzG-p@?Z@myr#<&)*}HGy5D+UXOUDjxVV#-?W14kRr+H z{N(4S%2uV?p%~B?>y(4g92H0>X3z&PWScN$K5$%g;`Ic-+QuG46>?;0^dfUeZ4I};e<>l<4-wY>A6hZ!R059zx zcok|^NY8nlSw}pO+VzzeH1=);MN6m8Y-XN^rd6()#&ih91MH&OI6hI71URozuWKN2~g;U(kHxFu3c)7ULp>DC+ zL0-{ZhXMocj=+0!jYeUs?UBGrEXSE^Ko5XrAFTUfZ{NP9JsT9f+jPFdvQpa3%;w2C znMy{&egfO|zN~X4u)b{Q(c=O{z?TD<5_`W$nAwH*r#NK_3z63wk>WLjamZRdBg{LOMFy1PD}tA& z3N@?omNU*$?p{u=H`@B&%iCrQ!_0(IkJk!QXn_-F1jZp-8x$I%BD^La)r%>tI=x*# zlOVT^yqwJRbZUKv-d7wBtFkpqA-tL1mlyXPFM%=rjzUUM&jWWj>S8Q{JIDTgTGcky z!kH=G_EQ4+-v9%lTuiun1tPc%_!TkugSd-~lT4`yO*sDI(VfEwAp+V%=}q?^U1^Rs z0Po*HJD&IUR=i4DX4-%AWwT$1A?RL_?#Y8EG@zHh$&#V9-@VP!cp|b>yUFa(2e=RC zn-ZIdy}i{0TTc8&6v7-V5J1jm@*$&A)k4r`8uT6JgO47E4wo8t-#%DS^reR41f!xX z>nS6CJdXja9)yfn4g?*-&ejV6K~uE%@m)6-%jd^(bDA>ovroDg2xTb+&nElD1Zm_T;})<+kSZkx$7{&^h=n8;3v9d7m<4J z(a-o-;AuV==f zChyA(zq$x`lXxT}(tWpK+~XS$5@MffIofZFj5=rwyw%Gxz%hK~(K!ZO{ZL)cv%>6+ zl0)#dDOe;Exl7tSsER=ZJ0RVK94JLLTUC1z`#_(8syrJW`cW=@rjMS%er43%B2XXe z=pf}%8$L?b1)4wTMHoQPy+vNIpLODK&FH`FyYIfm8YkfCmRox?9eRz_QeVeme$$KB zCI=m1y30F%8UoY=>VS$6AmowV0A?H|#PcEuczPnjiC(qs*CJ;H!Kt=z9CUtijg-W)g51pNZ*k@kW z_OM~sv*;z#JT*ifFP#iaQaW>SdDv(p2rfbAzufqhIcW*$@eOG(pXf{YU z(l7B-$s*u$DIk$#+R)8e7&_BbQyWY7D*p+BOS)UvQH*YNyXWB5|3+hk&Oqt+VBsCoeyx!NT4kXhdWyPUE`cV$( zrVttp__*&)mq=T0xd{|d&BvQmu0D9VVdDfKrjYxKd-~A{S>q9Up%gyYU1CDy$ zNJnmvaV-OCEe22ksnf%t2nx|~C+H2XyAguFfb4My_v#%oK9}N#>7V;tO{X7c>^dky zHo0CXp@)HZe<%#O(U^CD>7bn>H(*67kB$YcCBZWp%u{*W`-!jzblxkxKq|}|7U;km z%?OkLs*#_hz(!+EU}s8?&kqm7#<53u+4OPbM_qHA0hfAp_popM9Q4KUOhz81c<%6%;uNS@M)f~i9Ku}dxpfg*=0Lrs` z3SIW>-jgJ3GZUPoTG|mvQ#VU3EIqYOr_?C$yAcVrm6qJ>{TIb+_Uv{%9sY)fhQ|BL z-$OPn+tqblA@TyJMuS&A6lwrhWR@LZnQuAXFM&4&QV`Ehg_lZ7gO7)m{5(=`@+1m+ zH);b$Ed)K_9+a%O>u_9;MbG0Wq?xDj=7wp+g`gNcIy0OP0L|8jM!2K()_=sysGQ!c z27q-;T$#U!KOX|@`pb*6^vk`CWy%~!W}5;~F0VO0IbNW(CSCI7K=_OiU?6P%<)NSl zfcGfhk!6^lz`&quTHQX27{B5KAm`qofyf%$Wd^x`3Wgdd4aPX=3koO~8c!C3?JtqX z&UZ5Uo-2C7a^tcpttN*a$Kb5mCg-Wly{m=IOYpWrow07-3zK24 z5o7O`(;~sUGpsL+mwr9_97Mj+Af3V*ZnM+r9Xf7C$A4a^0QuX&*t>-S@9XG3peRXL zDH^yDyAaB2uvUqr@kzZ?(0Hzwh2!vqt)Gvk^*tWj3y?mTulA4Oxua+zdPgiXI-IZWl30lnazI8Kt0dT<8T~NM3i%TC(MZ{1kv;L696x z!Rr)z>?6-|3;;p55&ZHrl|9%97Z1NqZjeAGKE!;tzmT!8S_Fia>nF-^WQKQ#x(xFE z_nsd1c?tvt=&)tqk@6FiUlJz`ZGtvzj!+xqWkmEf2<(hYF)Sh^5Ooj#bRPgQw8PX~ z(^KIo#G*kpq9!ntxa#SWdYPNYa9U+OO$%7NLvHdjO36c?383lGc4UVw0&fnrKGPc1 z8?YGkE+2)@$dSmMDF}oA{g!Y*uQfU~darlkwKySb{qgh<`0-7I9gYDGS< zkdFcgOg0GUnjRK@`NFQEW%i9mZzawDK9Ofl4A;Deib+rGkH+rZT6tT-9`s6(^vwHI zE%{_-KIC4{jOb|{2&Vx(f6(BXKtQ{{r>g*ZbP9DJLnFX(%{Th zQ{as?pjT(P*9SVQh*1VuWHTXo-(Kh}gPVr$)+3k9-bPYdTH4d<;h8!=lTJp(eh|}G zZnhT~Z$|ZA9+J-4i1snwp)rb4{r;G2PVV3bZuy{#xDla%)kyt08U(i;fD$Q=jt4+* zsdyF3=onCm+2f(h{e2+S5oE;Pn1^vgiIyXrh?njliH=R>#7iEOC8~4Yz1@3lEx#Nj zHrM1Wg@T5k8FdnXAzW;c*C>ISPcTN}zH6IOO#J!^P+f8QaL92CJRz0esc;u0zn*z% z%Vs|G@WAvl$Rt;FVeDK8?u^|uG zioj26LW~x9=%(KvPCrEQ*B?v{fD)ko`>uN}SiJ_vZ}7YiCs96)U4m+&d>0|J5u&Q= zx&aQ|dxF`2$!1 z=vX)5+yuS3srZz>-*2Z4KZCV?&r``kYz@z$Oam6baT|~T&`-&uGtG1lq=`cGc*cOK zQ0e2{HJ<-MiSCwGSRR_e}m{6>K6Ae%{*-Omx zlLr*Mv_&I1yQDxHwG+(t(U+emJu+1;9$)hk0G0QD842*}t0-8<-^q6Zp@r0DhMYv| z_)qG=&Xu^H*K_e@%2AAmFcSTXKy2CY9m`rPxosJgvDcIlqTJzTl0z=enG0IKP!RNY z-0;s15_ob3po0Nbj+BnWx@IZ;Spc{}yjkVUDSbd1rVfuek`I>OBjUH2ly;W3RUjC`vR92zxpHixXw>1>lsdYXB^V zK8D@l3#JD6BPr(RpW9adxE5j1K5yrJ#u4ztx#=vasrCLDI_B=m+8P#zW2k%uvDIqO z1JU=f>+XEl+OPeW-+UwFe+vMYt+UUrp)e$<%~iRwBK+s&6EB&z7%u=QZVU)I+6j@% zv>9`hm~7s6h6M&a@*Q@^o2U+^q1KUg#=DHHKd^X z+Er7D7e|+6b(8Qp_XiKK!>**|U6&*bW2VT&Mq8v5F4^47f8`EQg}=}X*TrPOq32Lt zCva1E@D8r)95LIwbFt>Ulbldf#&+CS;O>0vzF!j;=a77m$TlAbIw&X4^Y!!Y#sXtn z1artOD&m^III8Lu#-cEy;U@NMes)(VTm#TDqZ4Jyk8?$$fpV0V@v8lUj=qj@6#N>^ zq;XjNvJ>mU;Bcs1DlE=-R$ZoE@x<*9b ziH(Y%y-q(<9wdz9$ty_rfI0U7aH0E+_>oG$8E+MYP+Cb&%%P%FZu_O!bJWb(=p0wu&%Y56Gqpth5J9l+71 z&!j5X%3K&rz7-p^z7kAIxmW(t`Jp1R1>Z|wFUTwH`YVL?BUbUW;CH1U3i^T)dGoZH zGBxzCBQ0CrVt(IFUt*y>?34O)k z$38x8x}05|8jCs6+!`h=cGKigQJS;z<5#C#k@hGRw77PNw~0X zr&eF(C8bP#Mt>ZLn?8}KN(!a-hfiik(H~+5~I!ziy4SX`Y0=4$4xHJ@r4o-KCAF&QW#Pe6kd| z~HQDl}*)6@Ztc278X_g}}EhwJK4Fmz|Le^L}>!Yt8 z13c4n`#zv8T|HR})dd7+X-#|KlEMHTymUnHycGICnG3nZa5 zvv9qqBBv`DRz0AzWemXZ_kF96vTj6baX%Rj0%DZ-j1Zo#MwCb+7Ucm}i@cHf-`^k0 zam^YH$4Z`S%CCUjl@o|Tt4X3GhwFK!wYz>EcLMfagryY_8KRr5j{)LvM~$M+21KnT z)~x@%62S8B(=>BMtT@ZX68^f^M6jQP40vHY;*up zn~0gvsTv?{*uE87s6&m5&8!MvIsf+Yt{k9twb`^#UZn*4!(A@s%5B3?ev^&O%`&gj zbBB~O?Jd?ukPCe)l{+rCX$+Pwp$+pTRQSAhr69?9utDSHOEO-(cgi7hfNonWQ@iX_ zdw4GbCc-fP(CwpU>`nW@wOoKwe?=*KTCzEL$JRu#9m)tpjpDyhqk*8AF+YGY&co@w z6LKqBD=0j7{sEwLf;^?t(~a94!)!0Bm-MmzI^(~2zxD@0ZsCis+Zlg7JMo)0Uo}(g zyBMSt;*^8whaim*2Dzgd2L;BRYFK(Of%YxElBr3;+JTx_JN&-J9m@c{+b#ATTX63s7o<`>xA`Dmpq8 z?p>6ga3!nhS9kjoxccvT!Ur)4wdu)QP;TC9KO*JMX_QdxCkmep{uus+vNhe{ql ze8oQA9A_CC2cZTj;^dV^w($fX|E!rqKf0Smw`ZfmRpKHX`mpRFX( zMVu&egM@2)>iqOzsg}7m34Qhn? zs6!uI;PdSXr8?W)%t(L!pqBooZN11J!OCw>3k$#?(1Et)cX9vrxN{go*v$J*A?UyS z^+3c4U5ZEPDTt2=Ha$%H63s>TDPK2VE!iq#b-OrSGfW_rhNeBe0J%#DKl6Kn&geH{ zq_%*e|6&8!^Z;X0lgttH6*zIN7-@`-)5{4}tODaJvFOywjEiOmA(a+>1|Wn4aeCZiOpZ}^*_ltf?x?luyT$uI zdv_C&6;BX#$NV-h%ih=kLTC=|A&DU0+J}G((>jWI6`p=wvCf0WF2xp4_QNct7K3_ z$o+}t9d4i)=!Fet^m2@A58qet;YL|vR4A%wgoe`ro@%<|zVXgX&FZG!rJL26?0e0V z$URXdy2VJt5bkf8TAhWtxy1%YOD7^wLVqI8Qv%?hC|)_I02l#P+h90-hPNahwRg<0 z+IVphpoPOw>jLzBOE)bSnZI;6#b*4dcRhG@cn`q;a>j&FCe&TuK`@pcpBqXQ*4uBb zb$K6X#kAXAmKV+y8~D}$|Dwg!maD`bU7h#oRdp-IZ{PK=2zu(xmGoe0(eYa^Py{Ke z#3+bQ`OJZZ_LWK}3!03SutF*9JA)rT@@J^Gc2^o1?(e_A$4Ly#6*&=6D{I*JoZka- zE2D>dJykHaE`R{Osyp3}X-XVaV^CQn4h(%norW5CS}K=d2PkJ#{wN^tnKFt22sQS!8I@k_wpH?r^7ZLNM(xfu#9GGVaFe^Ya zH3MR7I<*|$-FmiYosthwJveNTrt(Y>xvs#C+zCl||Kv#Q>HoNlPq)DS+AsT2yapl` zafKz=A@G!>W3F_^m4N)#EW}~Cs|Juo1JIz(#-Zo&A|}ej{B}Uz5r&05n9j+mcuixs z5zk@yRomo?R-;GF=}=6g5vmr&xZLrYW+y)^)py2VnX@n;6SRaz5zgUW&p2Rg6MzKn zL7C8-0w?+oLsE2PCFgU;ji$t|LW{&qoejV%#c3PQHd>5+{&KcFoHnww!ZvQd!3%_9 zY}Qld6Dprv76AeM!MZ4=$=2&2p=4XeIM<+WX z17cG_k3dyKodd7Y&r@{{begu20uNOtZR)mras&?ZG!!lcfm&iU*?or<$kW!?YUIrI zs$Zw^@8USZT@4f3KA zR<1qM3C;oVtI?#mC5op*#dd_7^(5iKyAMDv$z_^o_dc(%Fl1CgTqcH@gGjRhv5{YL z26SSYPIf%RXKP@r0+U^~L8;s=>TIGiXq)nuCAEpP`=b`o?DSn;=K4Jm#=>FGD7o-r zYEZlK;zd-rBI{>Ks!wtj=_q$d|9CZ))i7O~b`zx(`677tA#WM_-=hO#2vuE^X1B$L z>@~C%;VUf=S8XhltG_#2Q?#I=Fd3sKfxH!O*Z{8V0LnNgJbt2*RaXE~ZBhRK;Hn|~ z;T~|Eo(`babE1=A9=YROc3T^E&;!D#TX)lL_blFq%qVs>R6~MO+^D%j7DNO>L2RK> zh=oT^+$}FoG&Tpg!;Q7A>h6iN()s<&U4)vDMo>lYAzRrdT*LQ2G4o9YKE zZtXt>L7wv5MBLoyVP=5V#hUj;2TI3l*E=1h!#VzN{8$?Df*cGLe8Nn04)anEN~ne~ zI4+7;3?k!q5<@|+?1+y9#z5}GX)yvc#GjmMg96g%<#!&$mw#jbo8NvTGX+2iiQcCC+_P;*XE41%=><7_+O@NY_JAQ13-Y>IRXl8~fmpVeZ zfHuREs0%!RrG=$sFDfY#54~^Qq&O6FMOrGITW)O}`|TZ{(n zr>Aq$)e5!ERqVEa&beg2s`m8plY+)OHyGWNWfa14>9x%OhSb_)m6ZJ271XzHM`!|m zs>I-PYoo?sOgQ4JTzkoA#A}?>yrC*vy@NmnkFPtMP0tS^lNy_&^!%zu8w>k^Owjt; zjXSBU1E2blgd1Vfe_Xz)$T!OG!KJ!nrSv|x8#@?SBf=&vC1h!%5K}nqvgH&}=07bo zBS+MK%A<$)V$e9xI>w-QZJ;1w`=S8KiYrdXsv1eUi#$G1@Q#_aJdyvtdcLd>jzK&q zI(QRKriOOMlR3Kik^D%waww_4utd315FvI5)Z17kQdx*4>PM@;R`{EX#v#+gBSm=C zyNhe~-gRwBWnyykC*QcNriihDwMx3+RKm#w0KxPzU4w*iSu@2wErxrG(N3qLD8)Sv6rh;d2r@gjb z5o3k?TqX{3(BztW^^N0@ArF*7G{8@qFyi5}kzE2vRp4W{&}b@Jd1AaZ8kMdmNGtk= z5cj6n$RX=Pq_3B^S>b-sF~g}6IU%HK;P^VKdT|mo)aT(U|DTw{oqEB~GLty`&2hV2 znX@3fd+=s~c+KIMmURN1Te0;VDPJ$Bz$kOv$cUj!H#=$+vN&oqQ&`{SUx|3Nwl#YM zG90I%2D;|rBNU~TVA>l$y2bx9Vrw_>y0Vqy0>AJiA1LX|{CJRm>Z13W!(FeqYGbKL zqgY?~;DIH7?>Q`w`| z*JB5NEu+kqpHRhtv*_EmZ>za6g(`b1S#a~Crh1n3gxPMb=N4n#xArGuKyFp$?y5J& zSr_9~8N;IYN-qiNW_Mw&&^#Ml%QDOVxuDLu!tuC#$JV*Ya`W=#>$8>=G71Ug2jhdX z4Xf$oJ8W-+jxgY4GATLdDJ)ZN^X?mhXSaU3x#WqK3gEL82p^Q2563I;AC9c*oiCF1 z&P8YaP5I(C7AUM3vI-BtF=oS3&#fWlD2FxrAo;VD6I!cLtmWSoXM z0wqR{oAImM+zqHUba}h0NZBH-Koz!sET?_hUV6~>qJ`o1%7je*(3h0FS4k4gUdL0G zEN68BJJ{~ji2AjnrhGUV%@>b@g!!JXri=HUK!2v(C*0ToW$SfoBIB@7Rl7L9(Exj3 zpdvdKwYbK@tr4H3+~6FznFE5GFRmMPA3(xWJbBA{V)r(jzpI^8FEN5;_W}NyD<|H~ z>E%HB_y&Kz(&YS01gX8?7H_2Nnh@`=B=Jwo^y+oum@DDT^-Uh#X)d^1-)>1yz;4fx z;)@fK5(kP5-h-#r*Wg zB4mOx({g;_?^2uSso#n4YzB6L2@DhWCWGFy+RpLaWfDnr4{DU{sN+q65vB^jViMoV~`f-TmccgoPgt__d&$zbTlMC#1ym{)@lnY z_Um&PC+8^FJqEA+?jwb!2`7Noa9d^Q@=)(`)G1=`;?H|0H@iK5q7Me(OU5zu4OLN4*FQQwHQl?G;Xq+^EcwVGiz3jny=Qbj-Ko!kx zvGLAInCMMb5R*DgLb!h6d_WcbDv~+tUeL~IeqrrnGEdgNMEG%RVakPgcZCa@(p^mD zae587^QNu$*|fgna*474EXyns%vhhUaagNNxK1BV7Yz~3o2w(=;8^*#T9VZ_d$FnXsw~_ zcT;VH$gfTS6eE1hu`X2!FEE4+<`c!b_4~wgKAA?w4XPxhBTYgqz8mZk^RN(81=Q?Q|Lw3sG zs1(E*NLOwaBR9BK>k%wtOWL83*AdK?6Jp^2v|Uq8qBx#jK&n-qGG1|_8v^m3Cy}xG z)O#we%5pVYY-f`AFye%9p6JjakNAla{=>|>!@-Njm$#47RWeDmUBU^5Ys{;xv)p!- zE$(LBFb}o|aACIG3!=mbj36Q&k_=eOovebi|G1*RUJ9K(dIL+pQJC}&$4z?Ief~_h zi?pLF>$7&|4(=%c(Vy&29<2{|1o705kf$}W<73l2{BnYVyfO?<@S5cSHR**kdJ8u7x z8!i$JtYKhVJVLV$rVjtI-vuHR-l88QgR+a-{FvIG)7xzW)!?qo)AoRqCTBqkSI#PL zWeAjI-Kn?-u2eBMG@Az!cQC|zdn@v=>K(?A{0E(<9hlIEX?0%r9|qXwr#D%bzb*`T zUlU1*gh{wIkwTE#k1a&^Y{#@$?~F;H-I}GOD2d!}*eoBGXVZ<(`y|#19hb(hGCC0Q zL#&(1iL`@y4jwMdNold%Gf6>-zp{!z!;!e-?{~@5*`vMBEpO9&wqB%rHCtI-1Hud*?EjW+t8XvL^moNH(T>QXjMe(&3h6CcV#4=?(4= z<^uez2a1xeqC#& zdZy+X6}=BSGL+@9YjHTe2~uuyX6W+0zW|$W@*Z55f}Q};_%v*db~?S27S%k!GvMKL zqta0jK}O2e|Fu%K0Ko5BMyz*leu62adE>-K+B)Vg{h7t}JBpgS^l^L?O{zpbP*rDJWPv zJ!f%@_TO}Y46v|;IR zN9iS6Ve^vPp2sMsMJB7%w$H$3((@FB_w^}^Z61`iJ+qSmHiNe)#40Bj9|gdF`BHc@ib!~!3+I8X5^=K!wK9Eyk+rq; z^6B>~W$oMP^pCQJ#Ki;8a9PEyDpfNBEA+9!Oax zPS@8zfvy++eWNcBP5Q5qa7;L8%TW;6G<*2dmITt86w}m5aOPzvt>w4nB)ho$-1&=k z3YD+&9A!%h_aDq`>InuM+Bnn$Kw$|^{)BXH;?FR)?4gccP?rvJ^QSv9X@~89xCmE^dOT zY5wrq>#SKt_9mc6k0Dc8fbC`iKww0Yk4Z_caWT1au^_+~L8eN~4>=m1C-QsZ*2J?_ z+-jA11wz{icQ)iSWF+^SSfd`WwX$Ld)ut9xKO*Ht@}9Oo8c%0WBA1{p?o*UT&Sf>t zN4d$odIyw9w=qg~Cc&(%4uM!ZP!mVmmg5y8aL~iH`bmcQJA?hFcf3KJ8S`=fV@6ph z2^;Qh>1X&HQ3i&Ic|IGGjAT0e1BQZXqjlZ7^rbv+mJDDBZv)+LRyv`!>-5#_hFLyZ zl~!?h$Rc`UKV6TH@vXY<+s33GG0Zv^D1r7We5ACE+Rg1ET;e{f!)lLIc4aU*TMPmy zl*#-YQ-I`E=Xr2Kh)D1$kYIMZbt;F(9AfaAVd><93w(AYFjenbMl#KJzSoL!4V(xv zB{v9mGSHj8${@W50HE#UcV1(UJd_`{0?}d|$}n>x{L;5pl;LG*lJ8Nv{$9{e%_=jN zCgeFasXEyieOG70@th_2mK+WMXl-|!S7yHzh+bZuoF~ctfY~kd#pi(M5U;3ou|bdW zfx?uPK2_AVj0h0X)B|rHeGG7TYfv>E#bJ*f268xi#`;>I-@r}&DvF;^&lEy!{kT9W zdshgG_Ud$Y*J~U{=ow_C2k~zGFZAg-{(HIL3U7TT-Fsw;q%G9$el_GB$$ z+10lDdd-tCokbGvmnF0N!|JWp#R=PyNP9n>ubd2b{%~t zpbWaCQ5A}u_ya!}V8x~ zN9L;qUvsM*m1-l40IGPz0W>X)HX7w-;Yg3{0$m;~Y`eoD)8~HH>XPpKKN6Wmv>xx{plG(Nd72KQ@0m@;Ld?hxsJZE0% z$C02Sv95UA>wd*73R(j_e{6=$A~)6slM0n(Q5d8N(7zUVF@xSH*2E0WNNrT{`b(Cs zx?>IG2bqbiWBRIs{Ct_llns7I;QT&*D9vDx@~cge`FXH*vRcXncUMp3reFM^OVrr_ z?Ag)r`^)3bAQHw8ZDKo(qx|{v5B@*GzB(@IZF^f06h!GzQMwTjDQOf2kq~JG0SW0L zq+1X~K)So6yBh@Q?ixZs=^+GWfFa&Jo_p@^9PfFLe=#3mzOnb(E1&hOI(TLL(EJ3b zdpACOT!4DC)= zrm7h%2I&z6mo?nl?6ia$*5ej&ot?V0ETMg@cV-R;%>_x!a!4O9RGN~FA8Qeyr85o} zQ}S&Tjz_m@XmPRK>5;q5bH!*W*@0{2z2$#%Cgc~{ZP)BNX?)9z{7{B$C0^R!U+y2- z%v4(=RQ;Wzoa>bmlpj+r0d!%YoAVNG#APPLTdwO2t6{}YiV#Zl&SBY)iu6dTs0*cU zMmS`J<}pqRSO|vIyL^a-3JLV9t{BCW8je#vS^WAAzw+SfNM2T0S~sY}l8hN_%#uf5Wx1sqVJVO=eVFN=E02YWVmZD~wyL6q!QV~yGk45Ie-4sU1>B?m z(Sm>AbowRGIGv_(jtt+Ybcy0L{U)rR_RxuD`A7xf?s?$180~?E35`0Cq-#J_bzgTPINV)`&#|1(yNwmAUFR>rB1D((?NB z4B|b7#Xa(uR-S$26l5F|87zK_Ur)TD3@KIuS_(pNp7fI;T?mZOV%ljX2h5SF2^WT!Pao`?_c>(g#fTw5{lan^%qr< zZHVo~4osH)1UrCUXp?vs4W~vM7GSm$V*wtA6eq!|1!oyBQOeYsn3~@Af3^#^^ni^& zDYgQg@=UObGSDy(4@%JE<6Y5j;#tqD{g1^!AS5-!#j|Z&(~bss#@9;f#IeqAf!+km zktk-?R%9bm#0GexFxTvH>rRhusx8TDAW!}2v_T=JuOBxFTEQ1@SfDzHkAV@?9TJ*XHG9yY_CJ)5LApjv2cNErc+-izB{n zrlRccUd4UlYS4SvdyeurA8_5WNiJhycHUpr9igWLzS{E1-T*%uN8AfgoVxqSW&rTI zFLdoWGs7Y%N04U+ib~oN_Pr{VOKVWy@tJrLRWgA{BDGswBFuFsd)dbFQH`*n`sC1K*yo`E|)=Wjt@;? z3fzR$_h>e@q4|46Vn)jQv08fT)onO~OVj%Qg9`ZRB@CW{WivjX7`zQ|Da!yeUy6a@ zAb5sNTF9|w54ZxCOFAgahUn>+pM&xhx+c^MT7L7b9))rMb#2eKkG&@VsseieCKL-m z8ylGbMn3)xVDl<&ji!#Hh4|m+_ zY*B&(;Ep@Lp&yz&1c3 zqWVSi*`Ke7*`t~Z7}w6jbWjx)eoP#`cz1@@Z)d+1XTiyTUNVX|QD&4Jfn+*&Q3W$5 zD~875c`Z$r*Gsbl*0)b2pXUBUUZ9^2I@ahl4y#=jSTdJe}T_G@c%K9 zr_NdSsu?4Gcn8qT@qxOJB;Qs(Tvc5w^5b~4osryl@5}?c1eHX9XCg>>qI1A|cHwsCpv(YMp$CA9{#wpEe-pC**3|?r zdve@a;(36Jz7sq~+{Q-lhXpK1!6&E624m(O`~>5^8~RU)@t=XJG-?l~vP5I2mXzvA z!_nkvy#SkK4B#S4y}CQs|9jQH-s{;i<_BBFW%3Vef99+HbW_C*F-S>C`T9E1rkqhO zCZt9phzyhjxB;*d6&z_^-D^U;OiJfWce_3XvO4 zYOQ!2{3sG6?_-PH;AV!P)qEM=`f~ir+BKBoDGdAVg^WP^wXy75e^y^phLtNfYezAY(hLh zKgu87jSBkUJ^=LEm)p*(smtgLEWnUgt$|cWEyw?qTmG{qkI-wf09lEk8GM2Lpjl#O zPu_@XoGgEjs_yiwn$1I7LZtsIbyM(PGV%$#Ki@lL6cb&!1KC}D&{V1qxIr!XEM|=P z%qL&v=H~VS*gxD1bZ^@W*>67Qw)*;6Ng?!)Fa8G~^5=G5z?{B$QIZ_K>BXgmElw?Z zk;(A`jP5Th)`v9&nPKzN$^mMenb*1<4Z-}sFaP>6rGa>oOsKvg8E5ZTLH|cN`{POs z^n)4R`dlP`Tsh?v=6Io&87Pkn?DdunOcpPow#th7I_9zzlEeDnHUE0g|9K;zYb43< z?A5+e`>A<&J=@!*Z03$uVnLO5sG5Wm@57r)9WZn+zK64EMz!Sc{=+|AUHmCHyx+V7 zpZ-)5&k8XC5m_%wR+1^2UqGl0oP>$Z+8&O~!p8pkotA)QP^;i+I)YpF)gEm0>J**i z<>b?ksMTo8E@S=6Dxfdkoru;~O^_{-Lb^I@6ZXA?EhLJ4OK5kzkJq7Tc{h0VxlCsbDVUtfv)~Xe#KO zf`STE2PMi$pEicleo}WC)TG9Q&kl(V&Ay;Po=te{<=EOLoS1?Ctgiq2+Z1BrSCKiy zI<8NDLZ)j757!3VEzr*I-kO5Pv@mc8B%f{Yj!$)+qIzHDayyWFE?P+Slk(BYv}fZ7E+DI@bWpL?J@EdUK`b_JfW z;pSvX>JsP|g;zGB2P5ot+zu~CQ*sL|?T>_aC<<}b?|4C#ygwFd)k(!F{+R&$%bxx6 z(X$+rb)<3_`=>}T(5KAcC8F#WaXRABB`*@XD$vy$Dog}zPjGC(NpeF<*WF73U=MDO zhILjKEn=_0{yyQz(6$zj|1R499Hjrq5EnT5A8@X6qfJU1-B+^H0RBfVyPLr;tx@yD zLwCJwJa*fndjU2IT0yICpxNj=1Th4NCPUz|EZ5B+*;mdARf{0?t~7m4p!_%GaRCF1 z5fm6ci(8{zNopeui-x*z%fyhyiV1CgG%C-O`f_j|w2G}P3n~P*OAg{=zZ7UU0y@QIJ&w6y$j9fW5;ij> z$-%SyTQ}fy{i)>pJr#>Rg!jh|GCWgNef?DEKt*U7T9uJ`!)YBr z9RO)qwu( zDlHxDwVxU={sP;quD61~kpTcIL&@$QP6~s_xjlnSU^zQoZoZL7K{6WjfNM6l0o-I? z3;=S{0WcYuluk738AXOsu-)eG?@xc{+`TmH&Of=8f3d`ae(3nLl{{G)Sl;fBZ#B0K z&ECmfyD8jy8&M+xhtwX&ne~YPrws|k{K)gsly5ACE?Bg^{=E5$A@CHEzAirG1_9aA zo7FAk59sHPqNjo}M}F;J`PF=Vf0~ju#r9qF$@0%5OO7$s*pTrTFMQ9~)Kn%Z2w^r} zR08}hJcaSHaO#}_fPCvnwtYj?@qzG5UkAu<0-q(!?kw^B`^z@_fV#q$D%K>gsP34R zTYp09l(7KuIOz6wKkmy_x!WH}+0^cqWzFWziz~l~9emAN>l0wLPAhL95}i#y z0YI5W-6;b6>{v-~Xyh~L`QCIKd9=*W@x*Mz=@v1PR_}ekO`Cx7zi-kHI)IZuIUJ%u zn~Mc(<{g3}lFM3od3`KQi7^JQ<7-Br%C9)F3_}oDTTgSr9My9u8Pg`I6b+>W*a=MQ4+rEKeJg=`{FwhO|Y?*a2 zlkuhbG_!}bjiXq-6q&p_3eyLC@=9SOs9aX%p^EsN)wwS!`|J9wCWW*RGs0m^td-zv^b19(F-?<)@tll^o`;c3Qyt4MV)N^DQ`m6`)>_hwu*o&adwJV? zXcW*|=b1AGN9|i!l>6n6*q)f4_O|%WO=Smlbv@oJnQ1Qg9Mu2*d<4eCK(vH6Wmvqv zrpa%Kfq8nElAjA~>eyAN2h}jAVIr$IoclucJ*{`9{ckM&SseL`KK;wb!7d!z<9%AN zIiX6Q!p{k;j{kU1cO2%i5AM;*zrN8g!X&OqusRyb5ux_UWb8-f*ZvrA_=V`6E%a46 zKD>}%R0TD%im|vtJ1DyS@RXxyQ|to|-JR8^-&FqfvTz?TJ3x!4K+0-J+d^d-#}n~1 zr9~OaQ_yIlTO`;KS3Ikc>7>^pJ0jqBH@9uK!QjW=9P@}U@vK1Gp>ka< z76EQDuyLN!7=3~A?T&<;psPuKqHrwKo<}?-26KIbBHzVDjLas5_IP~TKI7*9U{HP$ zOHU=j)$&k|I5WN|f379;d6kw;DeWTGn!HU1e^4bc&HbswjbQL}!kh@HZ_mvUolSmX zF|bvu`_E~QKlfbx3{$XZRj+6HWNqOhT327hR^eq*qUGTkCH+jnK^;PI(c!!X#l_DF zh2_Q0!=Wx0Z=eH>U!Ly&^yeTBj;;0(L?j?SamO9R`5{r_nj!`B^-cka(X!hi_F+7a zQlv3wPSq8w;K=lIqn4hx%7_eb<<}m8G5;#+De0iacIYWH;)sVa>25GI80`*v(h_D* zDw(k!BS6OXK->O`(nk^;Zi^9uY)j)}qz>e@k4a$x7hGJ2(4FtZ0)OQZ`@f$i2;HCw zofb(Ta}YZDQBJV)7-vT!2b;r$pEs7n&d->fw<7)|b5kOP9@Es6Z`wMyL7I^C;(|gR zs)C+dkKi|YYETror^ZwhelNf=ghz-+?6f2XnHA+f`M?gy5U;i1KK6yOU^5p;zaw9J zl%c2m$aP_>Cwq4fihtbqjnjC5>)#)qfSDYqg6{7!_wYg9MwxJj^S)VAP2-%(1QcK8M2ze0Yq-#C3 zcA2>)UDNqmRg4Yn1q93&F3uW(E$~D2*PS!}%k}<{yeY!futb6Jpa1tv4nvh z68zC2NFViHuuR7A)FUYN3Me?pOskn%Z8YO(r#}3(t>piN?vHEUNdV|d!9%R&eIOSI zNJ>p(v+XV|o-s{*vnIhri(>=1-&+jNM}*G=LrL?ZrckoT*e(892i7&(io=dzv*_Ut zkI$mNS>aV`U?6QnaJx*v5rj%mN4FXEmA9Z){Pz}ygLx*PTw_U-k8-5w>z`M-Uth$% z5&+f4q_57-DJT)O^;i=fIn7+$YJwuuw}zp}9NtB--w4bFPZHqqJZWyeh?eyq)Pv8} zjpEer@@gGl=h1XQNc(f<)~UpUkRfh;-NHT%I9NUUExl=**rWXPY3kq*#~vR$Z&S+L zHcQho<&S4n=p9*QVP|E#zrmSEO}9y(C{34N5Mu}Bwcr}Sng91)D;ER8H9gO(-wxD- z9EL^&6fw*MKqj&0El#qDs*^8OC#o$fa&qCO=+hWDOW$a0{6bhkl1=)cg%C3hXVpD7 z7iJ#EZ+=fciCUuLpX-%>*;CIGa9BEnb)GhCnDNE(+RSmsPvqY}m|Ij=MQ&xfoO>D$ ze!C+V?D@{-$5d3}cyBz^@O)fa0n%=*|+itryM`wASIQtNuOG*g~md_wB(bW=6W%`o~pz~>+t>bMAT_L%X z)XGkAi3$p4n?Vq?$h_^s;3-TadO&AI>Sk^M)s z$(w?skr06~ApycV9k9i$eX#wT^k$?)k`M|n#YQcL%eqzo|qaxa@t;Hz$Uc7n{ zK!tDD>q>3y=DbNXZFh1z+1E$h;&sA})O|f!=n|9DkzjyzNf$o)nz7ihA7$8o=^QMY zOJv6CBi!zXG?L3@G8NJ*5&+??muXEjV&_CnDKdwIh)(**j80ezT9CY zhJO^_L?Itj{!Z}s>5)MAF&6ZHNGARw41au_1f&yfd}NSWSh;JC(?(QYUzD90{6VBv zZH%_W`&bJ%RD5mVhDdXZOj$)?KeK6Te$&ag+ihMB#sr_o9LO6>}8{_Ulu87*ad+i#t~lEQsClzWBa9 z^^;yaZg@ml-&=SkCnDr9_=$MH^i%qU?X&~CwL2&9Ewi2S$|uJ+xpnD`7#l9jH)wRSx-1@o~oR7 zcJOD{eq2#w&(!`bJ}-Rxo4c$Se^MS2rrC7zN6_~#=bPXOfC z=I2bKZ&qzTRNH(uo9FN*B(uH1u&ZYvJ~+v-v-51s?97-PaYcTP%S5>|u|PZ9sV}Rf zk){Ba`QF*A$}WH(`Qg56ySCxZ=vrp3CciS_k5PNcs?yvfxA{9b%{~rpj8skuOJPIevg1qS~_~nJAM$y^GS_XBo(Y@ar73; z1hX#F{8`xT9-W(|+s75R*jg(^RBQJ9xmRo}O>t8yIPBa`+K!AH#@Gk-V2j4_@-6SC ziIl5>`ApXL6ZPZi{;pXqHG6_i0_|V3-4{V~g z$^+*7Ex6zjoN*78?M+{6y%=lzc=oL^^Zd{c$MZdt|FcnVJwFZ&dFlaw4iV>XYpL*B z*>9yMed=(`O4R0p;ixvMJn3VVw1D}_toc=6Bmn4KV`>D62 z&Q4%=A)p7-Hu_aOOt;+5>+H?Uwz+iZ>i$L6{!nR8fHetY_Ag7frO6X@>=2}CI;TnX z!aeV7@D1is7W43TLLn&R0;Ag>onCpGu*v^qO5OXT9hIALWxf`4!{z!N3uk<)*SWR! z@+Bh=N5(IknIShe%bsA4c-x+Ihp zHC78W>E=tQ8+AkHG1i`ZIyrm##GoWA=@ifCcua-1U|2!CS;O%{=0N9AW~ppN-2JF& zRkps&jDY$Gs(86=UAp>4eRJ>YcGoD_(j^AOP1I%{?F^dKWy0^<9v2$6X%@vXa_V`< zREJ&XoOrAmn721oZ&;CoY^Bn2M({K|{#d!PT(!47QTTF8E7~s8Y+H1$g3=_Oujs|= z@m{BS9`i!3C4|tV)LKZ4D#d>L0& z5VcW?!XoMS_2|~MQ`PRsH1rsNiVz`SK}(xC!E8`Btr_8A=qaertyu0QrZoxH6m8sG z=6{-a%oxBQ(iBXgZimp3^(iYkV23`TVi)RXe4f1az(Q<3pS$MMzeWgP`^(wD=KH(W zs5!E*sDRRuW&4)RtNfw&o7H7&0tVSRS~V?qUAMZVhuRjSlX&;2JUV$CF)%$s9rfzo z1@ojMW`t@!7b1@3Df%e*wb%H0+2-758&#$pMxU3Vu%ags$gSEj^A}Z&CV4f7DEH;Z z(Xrj@-o^T}zBave4zqet{KF~IF41YH?PL#bU?}g02Mab|o6@ay+5;w~onfw}sc8Sk zgU+k+!;rv`&c#!YlfL|<)1;y-2WM@;a5%o$_{ZZ`Q5OBc>5UN<`!&3ifcHe)`!{ZI zNQU4;=%w(v>XUzscJ!C$emy@Ro~p^4l!2LM%gB62C+i zTrcysTdC9O`*T^{T$J3)@m|zteS1xrb9|$@WMRs(fs2O2sgIe0XP;IgBR5tm6;JIv zQakxJ(Yqd* zwIJE#bE%plDF!%i?^b2O9BdGS8G*WjdHUz%3Bd>OyoiP- zg-Q1oDI}!lbb%Opm~L2Y-`CNUY~g;!hxl0={w4hXOHe3ogzljDpx#)M)0OYMEidHd zO+u=wx+}Fu)*))WiyWEea65o-qjVfzP_Ty_AZSHx57Ow(cQCIL>1NAg_#`Tb@vmid z6F<2&V@1w-BHo4JbRS2 zoNLvZ^X{4F)o{56axBRS!=*)^WxL?6tra)+`?q|yiX678hpuwix;f+BTGtwp#3UBj znyYGRnCsJ4393lCCk5Heb3v4%bn|U$it@{%&X+}Pi(VXVhIg^zm^$N88m2p$KR+pP zI+zxVBjiTNR91D|Vb{u%A#WLYBo^)7EK#kxp;7e}etdjd?dBng%eH9zLOOaU^)+j}Zv<%H?5+0b|o`-bi>wY=Nodp}^G zwtOd#F^MWGz6(B(ozUqGLun^}bI0xdT5?=h`?XO7FDOsu@6f|PwD{lDyf`y3bg9p; zD!*tlc^55{J}zjZ=ljS}dnIEz#%(@vJTi^+<9Tm$5_8()mWryB+OJ~4arjg&gZYTz zxVtW=uen_(M4*~>MRSJH+)d_4o#T-rs7wgWh+&MM@9o&t4U~uPQsb-O<(YH*vQ?j~ z2A{puu13+a$-2FUqt1?`q~f$Jh36$d68XU?pEDl;BL{aV%WQg1PJ-t5(s-qP5Ae63w`jBogZuwyFX zhV^j|BZW3a^j)4kP1>jX6hd=yqQ{>iY-#&kKO*k z8PE2u?V)bNx6x5jMFpCC@mU_bmtc*v4}F<@_?z)+=G6NK;smxCu*felZNI8KpW$Me zaGu&I>qQ}FEXag;N9)9kSyD4K zh7=5YW{W5i2|X1KWi8opy}~xyr5+peIDm~U-wHJZQz{EcdSarXbQ2O>1CJ}O3^iuR z!2EcsZ!9)=HwRK$H$M(3+nIpCdpw)itrKj`9K7J5GL5=>`qzTiz&*(u`iQfScPv1RA?N4* z?1R9!b^U1;qpZ6vJp&<$_FU~61ivwJ0~ZHe!7g`eXk_z8 zThZh`yS%of@5>%~1?qc_>pUOy_0i@Z_!_i zb^W%RS(0jX_e+09!TNo6sX8YCq4TsF&3g{ehnja#u<~TbDXOEWQ^`d0$TzK1hvc)W z>T8f3Yp8u*HgDX=ZPnB>_VaH8ItEcWpALgZXu`kTH%BJxXRZm9KNRYj)Xpn5`&wwd zQ2=JTP8=X67!btKqhqjwLX(~Y>0TCVuBtJJ&PyXYvERqXP=H)234}Bwl_bd< zr51tYfv;o@T!4QPmS^OzU1GOqsJxajImto)$j9cs`?*A4+DcMsWksG^jHvc;Xyx5Y zOi%sf!f8t0DJd~uf3Fm4yDfH4VC=hPgDDdA@itV-&9up&!6U0QH{fR7famhNs8y=7 z%4$@kR<6j!*67|J{D!f?$?h}e8jYjOi{8r_>Z%ik=(t>@q}9`@Y?I5XIM!-V*CcD) zY}E>;U1yqMlAp(|I!hEPa*|lnzCdVr|;<>_a%w#wrJfR1Zi!VB$hLLUvk?Y}^tDpdJ3X z3%D+!R_plAG|HM9apvEyt4CXGEVELa6RaIaXvPbzm@hLZLZ*opRq{{jN5zbnrxQIK z?rJiXKG~N&_zs*hAx&r*%R{QE{kA_F>;5MW{ZIPyC&bI&k%3K^>n+z5pd+b_(2(0_@iM1AQ{^%}r@2R-#ayL18v+K# zpPZ0qm%^ZS8xvU{IQU#oLZKT%hA;DcIt`dCjRqqU>(7Z<)K3nkw(w!E@zW=yI9po% z9p-psVoOY>h&VN*8(!=pHW0k#(X)M{`U+e`E+n<9qB$>0dha^#u6;7|b8z%)b)XS-h1t>C_8mbw>vWKwkS5b|}dc`?fcg$F3nG`-G)RAQKy;6^2j2B z*`vTHsgd#COJ{wJ-+33HsBoydWPdp&W&}Q-WjWkH)?ar3W8{$LGpJE+vTlHvoGl$K z`^=x-g>C~+-`oY>{oMpEGjxM2r#Vnl@x^z0WpeEXpPAYy67~iXIGsG-DP?J@d|ecViFg1Kmqb0@XJk2qoHPR$;`U-stJOCB8V?(lq?i za>OU&od)36NAgSoscI@`fK|2ikIl z{Ugffio0fFxCO5X#mfdwX@x-7Py)RNLSnd6LNIT!**Y8-qv#!YP$hIW24;%k!Y+1Y zYX+mB1dq1~q20=&>{p7jam#R{NOo3XhQh+N!iQ_@!I`@Ze|X^`bYv=rokDYkEn2jY z^C!F7->mdsyfpCfXT^_Xm(}*bkHg#_-;z))f77+ysmtg2MB~mBQ*XWR`D@mCtdj0^ zQ+4RNnc3!<8s~R!ZEKm+Oz%V5AgI99 zOh{fEs@jRW?z=B2cJ*2FUb3w z#3WlaxAHZvFCo{Ex-eJTsFVVVnfb?d&0O!`g~=5M_*<5*sQ#_g0X!hv`{+Q%u{qCW zpT~djS($52bnfEy_)1#S>aUCA(?>Q1CRL56`8zEK8`In+uS5*868r3vMOsv|X6@I; zMW8M6gT&sG^oZLcm#=dXt*>fNRvYL(fsh}~sgJQEU&G@fIc~qB(&|2oI#?@u z?QhNWU~t+lCgdTA2&5MtFU)bCq+M3ef+{O355GLCNZ9hl>P z)t*d9420DR)aV0v^N*_NJ@?6@Pw|#sZi2Y_^ximZ%_SOCS%@E1s5atUEQ5SYKl+Wd6{exkQD#>dacad2) ztSM)`s`kRm9oUw%bv(o}K3Y}cQ2E6Qrb=4jJv_H~Ne=mP2UXRTnyBodALque7V#u% zD{bbR%630XR)6Eu*nY)KcU|wIJW{Qr;DQ26J&Or3sqV&=srim6l-n`<^uR*L?f%pQ z&8og}?bA1FOYQo&|36dopLB7zkN6>7<@ft_c=v)A>b7)Q>ukB?=hDuuAWuY!32wQ2 zQHkwUTL)~>*`p-=hf=!yY{}xIIJpieMzXF?)iT)R1}=v%O(|cty<)8vod~^H_0A#2 zqM^WXgSYJU>9q8KOh=g6(P~%h^1;TLxsH6G=18q#ceouDLt2Oma*G&B(Jbo~C(n)% z1|pWLq%S+yYRQJ=_b=2`NNR1nZs(m5S1LS}_KL_JF0L8RKl_@Pyr7vB1)>*nNV`yTaBgZ-^lJWP z5N}bX^Y{BY9?A5+(i(F$0!i!>+!-D>JX{hhwfN5u_P3dec!eHqEN3 z_fh9zCUk1-!3;Nck?gIFN|wfWeSv|?vqF}92fXnbHCiV>$_(3JmgTv@np{@HBxbo0 zG_pnw1XJ>%m&k+vIAeF7S+3cKscZV`FNE zbXR!UqJ58nO;Y+4a7N6iF;CTh;;<@`)sA((d&ny}f1Vm{W)!K5JFIJ`o0WlOS#=1X zK6R_u);2|QhGb3FKs=Hgn%v?otE!+BhFNOo)v$bJWEk$b#YvRUiAr9Obp*U7bBTOx zxv4QIu1wxS^Ld_@-Pt0ZDrYl9#TuC~KW9m?zhODzuHv$8?$z){Ea(=eL-79Zs(CfU z*~fnBZ?@;$UHHC-2GPRG)CB#n2Z$ktIr2fSJq`JTzkZ)c+uM(ovp~{^94mc1zUN1k zHZPS3@5o)JHGz%BZcXN7YlKgx8Fkzv$m>XSnPg>&v?06*b_9h)v^_+94(ld`b@i+iu?o`4MR z6Bg)JN=acq$Zb7w$?l|_Md4e?XUZZeD~tNoP1w{NS1O(QWR$CP8(xU4Xq9~qP)g-` z|1?>5yiPCJ41k6@Wo4gR-77AnQ1nYJG-tf=TPm6VUWaPq-ohnvo>yI1>w{2 zH7b)R$23wLgYmv(v$lt`sO!c09~OLrMPHGLqCTy0S%o+#m{%gtC*AOSc}~5`$<0Ff zCLrIxx}J3S`D_~x^s8xBZBthWBK#;58p=%E5**_P4-5NXvRie6=W0vG!DUlbZkm{v zbTQt)$yK)XH}CJ8s_i7&dSD*^;lZL&@+7_#?Ji12+j9QEZla~)2t=+t_#P$sZmI>- z?+`bG5-pQu)gxyvcS!TKPIiq}nXY!;(7yLOte+1}$a8Dfx1=6{EBMKrN^-euwhJ6XhKHR2rA5v@;`(`QReaW{32P5m=4=`=pgg94=@30_0_ zv!-qQ^Ny=nN*@Dk2Rn$LfdW=^Z+w-uejAzID(9t!RVw9Rfhl1mO!joF1esTB#|Mb#~ts1OyTK3MF3GJQ@&7JGTz}-1>5n^L+6Wg zRgjaNd%r<=7Xn`=<@53*BdHQP#OB@(^|&&-;wsz{aHG_D>&je1ReMs_ZTSZ~&$!Rt zLTO`Nx7iMo-;ClIBAT}D^Rh)bDQa1iBmK7|a12#0n^!g5EP-h+&(;wk6AJF`o!g3# ze5a2Olcj3%C@?|!%B?6slk7_Cg5u*`JLXzk%Zjw#KlH$%x@Du;&8%yZ=WVY7BbH#arj!KB%lQcnrje^(6_BRKN^bY2iN!w z>*YDqj9CSlW}}JLug%*jlr23matzgqf^{lb_j`=be6SaY$HF!D+3G?N~F5 z9%(=+RyzCOa8^3WZ3@7~5B#dI2IQv~kFQjj2vv-lF%jD;DX^Dj4xFk%>v>S!R)sJtkVC#Uj7*FOdmwuSsIXeX4e- zDhk!VrNYMDzQBsg*D%X(u+w}YQ@EGfwgO7Anhzgxge%#;7qr}MY?fU}vBi@SO2s;; z&ghZ_b~~VUutGs6zMn2Pc{!hiMOCZr#gIgVR{W?-)vmJGX%MNboWL?Y_nTma@50wl zrAJ-l+CHV)hp+M4darF|w04#clHb0E$62DDOOP?YDq`;KKxHmlK(w!(t?y^HZpO#3 z70xjhYOx0vms!y}z!c<=Z?L94){K5Rzjgm0z?t|uqQ~~Gs5=F6YZH_BtTF|9SYoOy z%SPqNe4}5`cx8Q-Pr0tFr`&EOrmK*B`jWGELMFkA8(p`QBJ&ADFUNz9l)&=`uXVUM zlxC}(gZE%&l+8=of|^C=!x8s%OnSrRt&dd|WJ$vr{(+71m$mg52Ow6++glwONHr$T{p53F_`Pk*Dq-i_LqqeKfOJ8e@6Wn;SB4qnL7-Cyw-s`=i})WYH5A%`MU zNPoYUrN{g|6m?ySeBRRA4_~&MB2djvk#Ee~e}|OtVSM(&*!S?AI1LV{qVZbJyEizk z1xLqT#})IpJzYpg!uT>uR=MBEeY$f!F!AW#0@PtfaerWnkz|mJq*DI`nzyBrS8bmD>qIae`-z zk?Z|N5vpCsOBuVLWu(Lv3z~4gQ)W|8W0~IGGfOA(yR60;Na%%%NeBZ{LiwQ*=SUM! z@+i{Yd(6E&awWzyJTpdHn-wo(Ir~N9=v~)koHF~fmqGzU$n|OwFf zY&)zwq*v&2*^`|hNBa{U2UH{)52$oc-|68@U52wZWJ{hA?NjX&Zc+&&P4jt!ED{VD(|d4&`f>w z412+daG8xcBBWu{tFjm*YMuk1+)k_r>?ZV#8|F{R;1k@NIcsJrq1 zAG-KQMZ*W(nKLN4t4@LucwlFEL{Sv;x~R#V&n1)-9QfGvBoSz9z?{V6n1wnxP_1bp z+c8gVNG}_#M+fiF_Bs@EWG7=2OO$UBi{_;y)(tmvy=;I<9oWFFD|PpRMvB;>!+!LO z{cPb@)N%wg^SY;tqgX4qm&I0@925Eu$JNd=Sai=uVwmDf*L+uL{Q`f}3?U;9a2q(( z+>#48%y4N4wYU4i<7WNG3?X?|)XGg(P7=1ZfhkR2OAfDWc%^-~cTu8PAtpIna4ZkA z8~n>nbDJ@%{Isqn>oq!rZ5}|0J?tKKF__eHfz+lZ) zoR;JFV^|8Jy;8WV?leGs6EHUJ45&A%oY)E4ALv5;>`$8t4m;-5V9o>ERd!~!@>cFc zQ9fo}c7@hP1SBHf2eSOW#g&7#x3S1|8%tyL8Ji(7Mb&oJD`XQ?_J3WAe-OHq5Oj1I z#@GmeeNPp{0|s=5IMO~FKb+#ck4>4U<@Zb^R%-Sx0QRge3nZo4r5w-I+ zQvLGv8`(PpG=nM#U+Y%Vv+z#aLS4A7-H)|a{+zSZ$2k)d72Zbynk%lwziatSj0C{4 ze&_E3fJlX!2}9#!5E0!2U&WSy?8fHfuO%n%C)$X$C6V~SuA##C$zIeW0!-~zBAS-C z44uaCnsQ!IdV%Zt8!j_9ONbHU5kGATBV?%jc@T*^dh%gG-q%Rj;3@_zM* zi$;8vVV_Ky7z3w)f5gR)>$1KxXJ*}7F7_E6o!A$)sB#w<2N!t5O^+l81-3vbF%yOY zL!RUA1nc&jhJb0MKSUY7fv_8;9E=dsP{e4;vEB+H#_cv7T@f^i#RZ6 za}qGYX93FT-IKcQMs75pC1Ai$I06f*HUCA}EF)6wzFB_BdoWv0HtX}lt2uDVkn9uI zy>NOwFipufHE@^z%QbF#$cPmrMVV#?P|(BynvwAx_x#%R+{E0?K9xzp02YUy+vqo1 z=U`dZN+in@?#LQIJ2;FT5tmmbvrwMgsir*g0!vdMX{XE@>iJx(@u-wV?lcpNUKN0{ zAt_|oDzJmsPm)J#7&ET>7+t@V{%KCw!gXQk<|607NYayp!HQv98tnoCwH(EVIkqMP zZN-d13Z2yqtxRS&P9&@u=A9jDq2ZC^_phtn428ss6$d{uoJ*Q!R0{-`~pGC zCeFnBul?6RyYf;EAbgMYI9Z}n-76x0N3QMIeC@_PYGr#sU&(V0XhMzf0A<}5H%cDI zomVzs_^yx|nogiIT}2c_XtVeodN9w+7BHS=?p1GCr0LLQK%8y?W?W#tyNG?6=KC<< zAHVjUAk7@z5_&RfmPj}W`my@}!$f};t5V$H8!@XMv;=jag_=t-UliiX*} zKp>g~KoegdV2h=4o>^!qPyD8wabJw3Ezn5>iu>iOs@jVT6& z`_au7kES`5h^~mmMUHD)#qEf85HGvj7}ni1;N!%k>t+1~aC1;bM$Jy52~+lk2I4i! zJwseKsgqwv=`>yeL+dE~Gj-YDe+DE%ruV*n4fbJYfTX-26mLES{Ga3IC2eGWm&rSW ztUrTc37Zk6RkQY*khbQ4;O(ij$o3X6+eO$p>v7;MRmGzvza3W}ngu`$_rk!+vm|Kb z3?28Q*F5}nU>bx5WHYYI&y#3A>5DIZ(F@A%>H~t+a#5A6c&NQTqwA0}Zzd5NhQD|Z z^;;#uE*Ms~u?Kk>2`dTZRXTU(mn7TPMdXcXqTh}%v>(yb(2M!eO?;~UQ9qN%`MAa; zp2fZ9J2UBgQIn%ULoS;$$>PncY%(M$MT?W?KXN^y;+rU7dHt$4nK8y_ihDTfstPG;wi1VSd<2Z|nj(hf&rj{hteeiyT*}7OG;eZo7&P__siT=|UO2C1 z^wsb6Zv@pj0&;`if~vXoj~tBhao^e@LD+y&U!N#&Is6`aQq*;+C$~9E0pAc4#H`lJ ze#DRbwy?VO=3`zSKuJ_KZJHO09%EVJNfq-Z0{e08J*FeT_;szre9+hG8@B!|njGhI zak_F|Ww>EJc~EcNT4wyTpH#eFe-CP4i0{TL-AM`5h?A*Mb=-aGZTB1&+?+=&7+`xt z-d=bQzt0~JX7%*~hU_?kG8;_pac+*{B*0?DWE=Fzj764q&?Jzfws&aO)>ZQ$?4XE{ z#Peyug#gX5Th~;2=vdsCg-N8oGx#dxO;_*w$m+W>h|?_LB84;C6u$VKj4-o9HEPuy z)p9pYUU$avaq8n5Jn1f*vFczeuo4rKU5uwOX;ZubizM-sqWe6x@nofFkBiZJIC>VE z==c2XQ#S5^e&5?~KA^{!%+vs${JNrtej3+HY!1-lW_a%kx@idXzvl~3`Z}hr!+Q>R zOB05kO%!VNv}6%Nsh@~PK*v~j!W_-2fh03yJi$g2Cxtd+owE8{T;p;}D|!it?fcLq zV`vIj8$e-9@sU>=Ha>0$=mt5(oV#4=QLnrwr*I^$a#c@)kuiyispowyG3^3~uYJ}= zqZe)X$ws&9wnfW;VzoEMu1Nf*-oV|*qr9Gg1Oscr_iQ~=+Z4o34e$h4smtJ%uvNLiq1!&-wrb(k1yj5uA89dZwPHRg{--b`Xk zHCD`xX@k)oZ3_M#I36`*V)Ewq|dyR7oh&=O+cNgmUSt5fkP*$Y8FiIR_sUK4iX|!ml!eoc-zU95r zF}WFj?XIi)#X7%LYmKv1qttu4QO9z$ybFG<&g&FB?5E!}}l@0+x8iqzdLYkqwJ3Ncu_w8$+z0cX# z{tIS?HLUfnXFcx|_jBK;M_Q`9x_9UlF>bszR-Zeh0P2lap?5gp-CS1t53^c(z0jk(3}e&g;x28y*G_m+{7R2EJO zKCKV1Md5KUOWgBeTdPS&KoBjR=AD}r>H&t>aiP|G#_}65jYBiApSl6W^*8LXyo%p^ zIs3HklDBJWYa7m4Uh1Xx{PI|=lY%zhON7jip=L^)ztA+rMp6s+_4YeU?9A=~jBPok zzqG4~8n-kB@3rgK020KHiuAv_54D$D;`LznTw1lR)9(Sw(%Hs{h`)9*gv|RuM7OZ3 zy-u$e1Q3!#h5C7_>$C8ADx|+|8}xkwf|s=W_$Hy&pw6KzTI_L1bA>+M&+>YN4`4!u zQum}@)ooZb$v~9ZG6%8QB2*A)Ja%4JWsqq}S`!9C_!NcBpr`kYoL9KfLLP$t4;7;aF^-dn>g*|Io zjuxlQ(wI3~pxIm=gH3*d0xT-abI#~JPTf>C$pB41^kw=6)vm?Q(+Qy-MLI!;8^8}m zXD0nPbOw)4wtmy1J+c!5l#zaLliVf~9n(!$Xe3@C>J4q(d$5;Qm9DTUKOZo7wE}!@ zTUWPiiMq^86MSv=de&)_rWHNcZOOfj-HlP_aV4F^9HSwx)&O?&UnjdWlXQ>b&xY{+ zsvt{UW^gS4GLJdydH6creLOdI&jdCg*q;o<8uL`&L!mj}BHO(GzR&}ROne%}h%I=h zMkWP}EpwW>TX+Cz@AXy;!YB8vQx?c{k@u4A&YtJ9t}*t=*e=9T8Xb&bz+ju8EgiAM=6suV2v7ni5xD3hIIFmbU@Y!OD>k^ zauuD=O`;msiyrjLI_*7s9l24g>X5yH?QqI@4If#vsUIrA^H@LsIOv5vhIfv@&B0J$#)W zX&>ef7XIG3yYHZf=ZPLlmIKluSnz7F;qvCH`;FHs4hACBJM*3bQAla&Cm_9dYoz6r zcUx&n&Ovb;rn-QT2X_1#Zkk*DP>rwrSm|!lwmHb5Uvd?z8S-M!r2=w=)xc_^)OKm_ zzlTYMdyf@Wm|jl;+)TX9iiAxx20s=gZw`1Qu35hCVzbi1jSlDe5IXP6uqB{i< zZu0H_*oNrnlX3T$JbuI=IeYpuKgY0u{|J69ntv)hjv{j0PWVn`>+VgZL4S?V&hmyf z6z!vW1lEWLs9@!zku=K4<5%huZ**CWmy~_lJfI)9e!CsE`nko7itp+|*63^IfNZUZ zju2fm&fmiPo&^#si&S^8KA|=vyToF4zBzAHi>Qi-@^#^QEn!HRs|Wr6SNOXoJl zl-aZ);`%VMBO9RqY&TkMfn|)Wb-BiLGDRNxH$P;f@1u!4;vWbd13ZyMvSao;wLI

xkd$3P@sq44wzuj)lT;jF0%MB1!2(E{05B^hF$P zU~^@NFO?Fq`~jHI8@)5#N%E?mpuA)b2hZPZ%njJTlfk+oJi^Em&9OxKMhm`HJ#_p? z@H?gDUfgq6cg+1gka-Oq@C@=-rk=gLP7uSy@;3*KsU>G&Tm+-)UxhY&{~HC$TK;V> zY4Tn?bP|{5^}To;=1=YstYjO0$}pNOA!L}3#i;isY3^Tj!RgPUhxSeTwn3-Ku`G(z z-TYY>4vF8Ni-M{g;-14xHdils(`=+PV=DO`%{-UtcSxLit89<(nZ%@cIyNY1A63t7 za34OpJ?wk47u@&Cp8kMvHI@t_nCNY+|Aml`;Gyha)~ruP1<-NBZMJVKr0r1^PpZau zBYErDV@);oTu0e7r>pay93DVno$$n~LC}zHSw7AO_J_JPrkV%^eYf7K1GYYW3by-V zR0p;pb!9(h9^S&DKb;-eU!Jooy7BJzTG3{>=&=7drTn4Uxe`gG^iLqYlEa zI!Vir1RLtjlB}YO=Pt6~{l1q1Fn!_-=yW{ajC0V1%01O1Q?Ttdsr3@X2k$5awCY{> z5uX4gamfH7UEAFHEg&-V*}Yj(ip&$7+_h*9?9d;?2leC=GT>lzSd0dmNUAQaiE|fu zUKjrsKHsC7M*`+%m9a*~fOP!Z-1-_5xAq7iKOpebl@8$8r|bI&yLyh{99%;Or3`Ju z#E(DG3GBU=HR<+$EgVRa;2kby!W6&ZWx7c%)C_v8TyJf)*Zl@@hq>p+XAo^8=GZsHpB(UvIzq>&iPa2 zzKj*AGf;LzDuFO&j*7hAx7BASxJa#Yk@@#`FeMh7Ua|2qQzmsQt$B!hgS<&cavMXp zG5poM=<6}-mANjkTIjiSd&8(mg6ht%;AVi!_N|Cd0~B@m=XTH|$lQPc!hdJ!z^=lI zI&fH~3qOa-1LDtVVUA9I>p1h=u#usq070clg=Nnz0f!}G9QekJZNvc8CO*GxCkyt& zW{?rTiBcLe>;^`S0?}P)4mT}$`$U@q+?U|;L-my}>j@3{CwWXIt#RHY0fOBa(-N-g z1mqhbn=x&V0w7m!H!boBPKsnF4PB#V*^LEeeHSA}Oh|GJDFX1j$<`hU{o^q$G0c7een*%zDP&l2zE z4L5yhC<_+lNyN$AfWn4IGNI;Q+l3dBEn4UB6O8ep3{gRxb_3Zj%l`a@C~@?5{+!a% z!MT1Pcogq}g&bONrn!@!4B0{kh)k#s>6;?PlDT`tzIJKu)OM3~mjQ1$@rYy#>=m&A z|FxSISpdj+LZ9V0jP~qv6iCV)ZVP7(SJNqp6_ZwE4;TJD`{^^{cx;5W=8Q7B%0voraw?wyWRqSR{6r>GTDOgvqn9AG>?ib`F3*c<7E5-6^X?U zq7cHHskIx65FcAxmC1qx)*O=f_Flf-6pu{y*F(c9y;_J2y2d$>F1C=$D?OOJ3~!@(kGO3edvbLsZzGkaL$y-qD7_@&0U=41sJsNDI`vX&>WL?K zj9ph_neSV>K$r+J1P2%E=DD{(_`$N$EVN8-Mw%WT1PkRL*}@MJ#bY94XnF;HstZD7 zbo0DmAf4GHLFx7LlR@q|NA2Ummarn*_!>G(#oj@WHX(#R>?;oEoh~D>6+ON}e$LCb z5SP(1jeKbkSB1T}d{2ig+bv#TZtSyy7IT@jyKrv&3ow^}U@<}iRS};g6-gDy&lBr} zkmFo^;qo6`0M6#_rCZ9o9o);o}Tu)b2>Wgaua;e6M@kGhf zgNd!2>8;$G-urR(*%1(_a!M!}lplVkGm!;Xr-s@2$qB!IK5s-o8??dAn*MEnTm^;r zA!v*z5MzGMd+RCO=`S*$#fZ?}@y;Lq%mRZsc1{HdJR~${YVXk^bMly;tEH6+Mvr6} zUF;GEmZ*pK7-#8CjB~_cz+KomJy2BsnNAC6m1y=zoA}p3dUOUF0k;;3Kd?Muc z`J2H+kf$tGg(g?4(V_wkl~m~_+tMTOE0VZf_1PlW$Ap2i=>!WIDRs!Uh=M7=A2f@{ zjH!~6b&e(Zvpz3xUNkSlL-l`}d_{`mI>4jKz3EJU2l%IdvZPm92qYGKFTeJ9ASEtR zO1YyBBiuIhlFSu!<*>#K^EMyq^$dPGq-i&`*JcPT@bzM> zcw#FRM~#7?evghKz@gpt_->Yfk9u6=-oxkAi?aFubR#C2sj;+=>xuEkQpMQ1Ly zPhwX`^qxuwm@a0vfGLk~r5l zP5sFiJie7^edeIf+`mA@dvkC5Fsq!gtA{B}x7ex(E8>XfK$U@cGXI0}5>H=6eGhsq z5t3ukI@TzND1vZjNG6s;To+eSGjtR|H$#Lcqp4EwoAuX15hI)|^s3z{5Yz5YWyB6R zTC*ZsL-sOM&0v1+A|xZNGC%}zl2M!glJ}e^HXN$He%)joNP#EUWKSH79?(S>+GS4x_bkT= zwBYfh#HSe1BQrmo;n4fQ7TF9m&24YIu`C!V!ZrgKDcG%?M=@`1820mFW7&>5yi3Z8 zp=U#7PbswYLam$&GdsHqSIU{4l`U(CCxpR9!ENs}6m_`n_g+45XB-&YC$xWnx|AL%_ zCbEQo@$+4{XpPXcFRfgVIVdkdH0NFX(=Z@(%0if+{KF!J0kKl&dEb>3L#ia*`jCzD z@}FnZZtwB;nZPVF)6*(@(pdKh*J6dFAz;asWtH(=C_9q{6FAAeVx?gUprdVW?#k=Fte{QO75~*>% z^2!1t5NG*t@akco3Ag{9m1<}uZ$ zHG#XfM$JwbCt239;JQ3+56BOjy=k>`26I{PHW#!VeC49KAy{r^sLX7loc_Hd?O8`_ z=tb^3e~zllk1;Y>a0}_3^Yh5-0k#7OCL27??$rAW{XXl(s&I3=YN#WAWbZ-63aL2i z@HfZ4`$h(yeR|YwfMu!u(dpuacMOpbfrR?Wg5_&bNOskZ65?Va$2lX^9WJ!%K9D6a^ z6M2eU+~%w#DPAW^5@qH{Y8{!=`yS%Tr`9-bei~Rmw!_wvEE^c)2eqNSh7ytti4Uf~ zRkuIE6(B56P*hElY4?dFFRiDK*GTVNw3|FRx=9>t%qpIoO2To7hic?SWO1AS&}&TD zyyp3$81+QCppSC>Xd)c)lj(}*1k1mRm%J2dSQYuz862dSJowSU>^4l!vq`e?I z(=1NEtlpL~iuJJn2+GO3M5XZZU5sth@^IC6MUEs1tU_*ERr z8rQ}-C}>gi@Nn3{j)^P}wJFoSvW1LT9^P~8!_G-JqjV#wBx1vxXJsqQ@7fODd6HCN zSHAOtEU7K$DYKbpJ_ptLYc4sl_t~RRl>!SU`5qJ2ME)`!-70V=I@?FRA}-{JE7b;>+ogo9p`EMUXXFUY3~(N zrRa8Tp6!3cA69Ij$yKQl!JJFoo>2|5>AF0C;OEpwaZj%3=}XDc_8kK{C=D4%kQ*EE zbGfQ`v6q}GpSsb>CYW+#R^FoJ5b=@Cfm8pi4*2_!R5ogZI~AuX;JFnCl#y(7I%I9> zMw!n~=?V2Vg87S8q~qie?0y@ML&U(P~gO1w63~?T8?p^`$~9TJz68~N+mwv z1Cc8_MN0fu!uoxaHA0nvM9Z?m_i-DGEmS5Y#6J#BVod1SC;0faki$}(5kalSsGnI} zI>=sdUK;c$up8IJjjXDf8nb9p0`SX#04XLNX2sgYZ;gZ&ZB{1&Ed^2mNAyuQoA;ip3GyCco zTfpUL*-4#-Bt`QDGAcq`wgpk}Ui(-LuMpUZ+he$cvugr~%nm}6NJH;J;RWiTD03p* zLnF2YNpIQ)8y(NlSy_~2gLNCVr0uP=u`7pwE-FJs>tK1)4^AzAxon|mY=NKIa)5<< zSekqyd6XVSV6HT@-xS&`dvzeHe)Xi8v{M{seinsLyk2WGc&cH#n7p#ox6j}u7ghh_ zrVQyRS?;#jKip)}Z6js4Cr14O{A8`KTHnavqeP)0^sCW7HNkyvW>ueb+GmLu&Wh46lA}J6d7t^yS!92;8Lp{?iE+1`FIHSqze=H^hsR%TS&w+|1v#ca`gHS zFZDktXi)HWmbz}p=`~RjQMz9iD7pFM`JTIPCaNTzis5(c>rVFYurI4+&JD}%45_iW z`G!zMJ$a3<#$iHaJvT-z4TPaH6zq@l_P+m5<%_Hd)5B_VoH%9P^ zRjols^POO3X9C(m`&baTL>Aw2bw%eT4VWX#1%<+u#R*axy=+OSucK^+8+*Yu!`T{a z3w@;Z=$JQYbR&-wu5#*OFNw}855Fs$v<>luy1zznK^PAhAa~0VgMM!tu$1-8!b6gu z$l`J%iz`TvfrgBFgz=GH={1!Jnp;fKY3$CY#P!^R)3NJw9!OEFPqXXn;)~IdtR4p+ z+z69fcU}nTbD4YLX4Q5F1B#I`oUV|QS2-|m@nR$l9Q^LoVLt~TO{i^Wig~)+p8|k+ zu6A0x&^pc?f|#)^p3TF%UEKmutL*YkQlkt9#{Fft8iwr}8@)HY^NvTfgp@?#qLxa` zZVDki4A^!84u^Zavd_fLlEnjhfo&y+CEbVawya(pu3Q4yh>HQUuBn*s61JZ-BGMhoeSS=9;5q#C-GCCyS^&(eFFtuc zpK3ae64-afAMJAq>Kv{1L)Br8tNy7?oLhzO5Pl8{b+5! zpH*2a;*%7RdI|nM^)5lMI2~vM{t|tdOk_T87%u-NgM!ppgQTTocnnrg;C-ilp{%Rb zd<5-3U1zoooBo38tQ^w1(6UvL;D~wQT!j-Kt3#o!XSpS)LpWA|ys>*1i>VPcmP7nm z;j%`yuaYuH0l$e|8mz5J6i89wHGiilrh@LnG#-<*O26t!fhmFileU9tPcI&ZG}7nj z>Zdlgb5^*>=bXM(*t!65O?8CKJuRq6GLq^f}dU0&u9SDnK8+ zu}gN|gW@;8Y5QBe)tVirm&52&x3H%bO)3B=^pw=+&n& zmU1dN=uN!G7EECwFKT2KFr*FHEtB|L)B<&G`iKc@c!$0|j;*=;6cv(-z;^8p;W=LT zJPQvQ#|zP~O=;?j(Tb$2xf%I>@Y;_VtKi8z)kVhzsrx!CF|RC>4Gsu`II7gH$`HZq7{@NYjOi0VSf+w(K5|fR*^Q3 zml+mTrQ$s{O*FzUmmduugMex#w4Amy_LL53kA|$UWJ5TE9*sEWl38S;xQPq0PA+qt zngD=6h9Yh>S{S#E*J=fri8=bM~hFt zAmPcQ1(b{Btx>;s_G|;`g3;&cL;46Y$bIQkJomZKS3H)m(abMuMPynAg zRNwhJO9VTu4y@lozc!Q$mkF*bbVDaC`gmOvPamdS2X4u%S;9U0*XGopeA?lzgV>Rq zL_tVCTVcPS%zR(C?H`ex#jgG&h|?scz3$b^rR)93+fj9;g0}l7qz~snlUC>RYyC_Y zn3;C0HO!Bo;G!4XEA@s1+uQaK23aYJ*yEbG;3yo<0V97%wqeP!#22qO3BBN;5qtzF2Fb(%nPZ{z^-Ks0= zrwIbZJ<0fa4w!}3kB$`eS`m5NKvRWdEKf1U4OP`>fY{#=$Bk9DS+PNP=cl*#AH7E-BoPmsmBnpxb*%qb`A7S1n*qhQM5yk)>gr?~i z68tDpA%WIxpVnK^?kup+#UT0-AgZ+&twscYDB|t9LgJ&x`J|8mP}1C+^)P&%2Wu~m zm2&F*hA-%}V=yY~1v~{UP2O3_+SaJB5z>9fje39Rw6gHBN$O3l_j4nc-zHz^HcqHO zFS5b3!gdI8i1eDRo|SxCXc2kzgn8yVjZrIu96_kjx-I=&X#BY-)^Pqm#!kQc2wtsG zy3kusFdkX%Y&^dBdJjsJF6t1Rr}8zY>BEQ;o~EEq$Z zY0`dy7Q$UB`8PJRV(o4#pQ`Zw_u(S#^V81S*lmIF-*WQ{RYyasgrUcJoeUrG>mNQCL3lp6ZNxNZ9yCQ^OGs#eHF_QSII zbi|sfy9dSTkE~ZWlXyR5QDzZ2K6(WleTMV8I-AX*V8(Tj!oLnp3`1Az7j{J&y24ZO z3=Pi@ukBdRR!zASBR&Va8r@bK#b0EzJ_EE~SsbyI5B0x1a>^9L&*S;v{Ir%w$w{67 zzxZavZ5Ysvt9zUJdhJtCwZYzIQI^}OuOcyl0;3_c8Y5B4P_#P!3XoE>*E9-p`-NZ; z@d^MLg{s<)+PvYiIee-a4YhUF6vefYXq=AG;nj|FFD*}x9UOvFtf4x~>_ z#z7XHaE{wG542Tgq*!3{BUlm$V`@BR$td)u%JRJsPbP=v&uhyTx=OjyiRY2ZtI;8o zG$F9N!7~~{P?Px1>pMULbshR7=V4yCO*&~GjR=&ach6wR8R_vr+(n>uvFZICOoTt1 zM!;PDSN|Jcz}ohYXQ~#7e_S2joaEGx2fh)ydlT=duTMbR=^DmBX!WqZBCYN>v2uQ1 zc`Mq}6~A!0-h(!B$zcI&Rc5G~(+liiD1bw&m${2&(Q|`wtj5~F=J$0ns}efCCGO|< z#3C=anvUwVpAnW64#kSccr%tajD7u9wiTIla3t5VM`Ltw%SiTV;cFYyT`A<_NbzMo z?H9Jymp`tK!Ujl0hR>oX8Lq^|ROF+7S$dK<%D`|taf(L}HsWtT=%sT0jrO(w$B-`f z&Ga*@F0sBLr;^w$grKkTBCLxs6J!8n)iWM+aJ(#jL=L)5R2mz-bD+xVK5{ViIm)Ub z_`*hcQV;doUwz^U92x(tw@(MfVRVd&?=`63%8hGeng&k@PSTkyt#Vw@6jh2mkTMFmEZqhiydqj zxP<-Piju>1PF)iaHx)B}m?z%!U?l5m<@{rMQIxDWVf$2o)YVQ1{imMOrGd$fF($W- zBS>B(A!m)9u*0PngBLTTR8>>rdPoJ?qGeTlBBl~%x84+)1Dhb(e*w#G#h3&Xi1(to zO?7_IDunoHaLO))j$m3~bXS>^F{_yJ=Q}!JZ7JPqmCh@FDS~$EEF~bv_i1c93Ys|h z&pWfl2)`CG^my!bUO)A`aFUY>6%mOZSezq`!HZl1wRZO+%cm<9=2_Nc0hJ_STjVXH z;{5Sp$<56^X3I?v!sgog82jcRTh1$D1k+Wp8(#eTPz9nzcX#Yu{GIN%%xq$BJF-@9 z(n7^A<-G1)=~bA1j8}n^-HEI4kGCHly}i5Nhdduskx7oLx8+&+02$3GaZ-mqESJxr~>!Xwh0A7OHgB3=L10+=Bq-2-RG z=(u!DSIrLvMWaP#~R|R!Q5Xn%#R0p+b&VMH>Gm!TA%orOwmH8_cVkCNX;E zuz$8tbIUf5Zt+lVpQeqAveNh!gcJWP0L`COZ<<)K`k?7Zn-48@>MDM)&kZUw`@F$j z`cR~=t*pcDYLJMciQC+_?HE9kAgO*cA%V@>CR*wac8|3Vj{8y3bib9J?9#lekTIV> zlD<--vS4kRm~`oG(eKxKq*ONO7%N>hdro~X&u}4FAFnEIIk;da;@FsuoE~-XfLM9bhpJ~dX4oDa5VMN z1G08FS5W_Ig0Odki^@&O&GIR#h;R|VIQ1ih(nsXQ2S$qKr8qPJ`l#^GGm$8>o5 z^&U$Z(wb^tMup3^{!a11r&q5YdhTR-o&8B&dxPsru_I=OCOgszKTE&NI13@kQh14@ zP6_kgAP7VuSe_l=J;({QpfqUcylj^R1Y?6|zc*Ha=oYNzAX+MD;(yQP+)aeuO;vy= zfM9}R&Xr|1UO~^z_l=4wPi3GP_Txa83IucL%_!M&LSJm+<1W%p^KAgQoJlb*(a|6F zIX_`x(5;}fqL^?=fq8Jz|GbudYHZ;!S~}e%)6%K!xTd*MJxel{3DiiUx*PcufIhxj zR!ZYo_!Jq!^Q;fz66xJ(8g-*eydMkeW!$4Mc&EvwytaPY%~WkFrU*UxB{z32u^yo+~NAWSd&d}`Df9@>#q#OU9-4^45$&jVL@|G89jJWSHEo24m_GS zstkWE8CAe(taiB@Q|&2rK*#ht;*7T&0{Xz8w4y|Dc-Kpt(4a4*k-3{q)i=f?cwwQM z=v=M065Y?_D(F*29<%)SZ2f(lcIISbR*%IF>7TUAug@t54aI?(h-{oEw0_Wpfz=~s z?};ZQBKDrXr(-={wZ8aSL$E=bMwbiRdA%_N4MTH&Z^Y3`Leh&qMdA$}oW(nRx5;Yp z7KALB$i5=2bD*p39T4HVQ6$@G4Xq{`Km;{J0lc8<52v314mv%_Kh5DsZ;xJ@F!7E} zA#F;V13)9PTPGqk3_TuJALVP@sfvhbMUh8@m#XoESK%PbMghFl`IoLkN?v)}*i^=| zUs8#3ZmHe5^;tYh>M4S3Cp|$D0A6zqKq5a)mrI|}9$lHUEy|$f+afl$?HrntIG-Kc z{n6F+Q=LcK0f1pbHg3-sL^v{Gxqs{DZmDe2iQ!gn&npJdd~#k-yMzXTo8iG6L~duS z#CSTd({>>x;!*E`1Vrhb8i>-azfBU6F=&b-IOk znQ5OQB8n*7=Z{f}wsl{q4xPZ~wq*8*B)=z_ch%1q7uU1gvQ9J9mYIg1PQPVoh>HFZ zhEC$3(YcuN(3~LYlC&i@s*>arDvaZwk$}DUyN*_TmSR=DpT9i;6tKcb@yz{TP1*hn zp~bvCK=)WXX@bEOXlj_5{wX(+N)l=OexFO^3U>OKR&ct$Xc>+|emirgUpA=~{LS_A zB;$mN79&xw-^B@vmcRi1$>ZE(^MK zU@I~pZF5%Kk#13T&alr}&E@)EzcYZbkuGa$<~^OBAQrCZZ~px0FOH&<)~5tv2a7oR zYcB*d75wHO(K{WqCvY6n^AD@DG?TVsqpsT+&ilV4mF&{UfyC$|?g(RK1+|sE3VIF7 zZQ$Pnnyk*Y!Mh&Z`<};(IuWO!w!BQ;i{r2NHK84jE#b4(5emCOxhRNTRK<}F5Y;Ct zGOA-bvo$HbQhOF=qDK9NRjSm7Z}?PS0$sA~&Z{AvTbbLItM}XN6XnBL8D${)qYgpa z!?2R^Gja%_b4ykhER+^-0sutMC^x`(8r@uPLRtZI_8ur3R75YD$s&KR73gsXz#-=v zWKM?_2)l+^2z0*5=1w6NY;~l{hFN%D3Q1X{xA$WQ3jh;M-YE3^bZj0gDj+PJwQjyr zfez^*r&!c@eqDi(S;uJ~VDr+OA+fJXMlu6YN9Gkw#;O`vMZ8TY;efoycPB+s4J@jG zMTUU-FEwu}JrFFe0ck~|qJj?e+sYqn05F~q+Ok6wjow6KSR5d60t|Yj0(kB@kE?#( zd8(;Xb}xq2(}c2?&UcyOZm!{GIN^`oq=RrUG1v7c1Eyqz0sMMn2|vVK1|okiln!vT zP}2c&%Y^_~Kw&B44=}?p1D`TGKg*U0NIy?`qH`GqBGk+rEtdw9!s-M%l>`$}Jq!pT zbLn=0M<*}g-#Y+hSb8Cb&R_fCMN$E~gQxVIa&z*28uQibc&t=_fFWAp+-pG$k^Ja*1 z<@r(&gM34%i)s^heW%#pB;-Yi(#iS2&kMQBDFRlc;Nm!kEv;43({2*wTe~LOoy@u?}Z{Kq1&0w#OCRF<;kMX=Hh42j#jY_p5B43*^9(x|< zgKT74y4}$OQK|dbS#~4MDN?=3ozTmY>LC}svWj-RShE~HIhK8(p$1Pf%L$?obXj5e z7|Qg4TXTL}Kv1Wvm~;CuWE_>SUiU8ZR^Hfx;eEL9qsXZ0PetD-#%9N6!cyY?8FC1h z#(KD;D8p1PC7#0j`pAadB1q+LNq>`U>D`X`2bsTxW*Xd)O9r-cI-?V;FOA>ROWrrf z6iqMN3>nRO*2Fz=Rhz?yf&B++sOElMqkxok}cX^~N5JdSHGF&n>6H zbl8}8Dk#?f%~y&Nnq_eGn_x_M0$z>yJ~J>S#@AJD$W!8R3HGs29heYhSKyvfXaQ#$S>koixb*YpiMrXCE$vhfL#B+XFdK`FD;huGO<;a%gILQu zmtgz5d8#CQGx8^S;D&tHwwL)4K0SBi5Us_mJYvxZrs%x}f_(~!{>DeGvs_w6-r6az z5ISN~+Q#rzd3s>r3I3XXd+WPtR6HJwVlED~-pj1A$~&aHPN zeu|R&E4^Uq9zgT2Vze%iL?_9sF#VhwWy5XEs znDC#AHLQpb()={<^R1pcE`Z@oH{9RoBod_;(-RQdPfLXR=M-U@9R~ zvn=QPCR)+6n9t*h|F*>rB)i?neeO*K{%+YjZCs-Yl~pigA66hgr^KN8*D8t?PdjY? zDB`&0xec*30uJ=QxpducF+FzV+PKj0+|CW!sIBF1O2ntD7Vvw8wy*8xW}jc`troI6 zy4QvefivIy`tIRO#=Qavvv+J5wVw1r-<87ugY8dT3k|Zl|AQ; zxgtE+vJP*3qd|f_$7w`?vcXLu!^rD&{ISng^qu0?uRVk#2kC>~@jWjMr#%;%z3>6V zq*)sTU2*fvt8Tg_N;`v7TEg3Q4UQh(szG4VWAA6JxHtY^U@Q**H?b%Lg_68m|W z{Rf}$(?sg+qjq3_V+k_&FrvUhP!g-sMqjB}fhBTOU$PAhCK_fhki4LhD`_t>jT*p< zd~;SD)DBGj8vZsRndEAjbN>JqvacaO45*8woVb==Iz%$?>GH8*uIa@U8O=g;F@1=+ zn;UnA4#1B;s*9CA&@=<|+Jo+KyOOUgi(2aF1;Sw~0uBjw9F{#GHml0{R70bKJD~~w zVBG?}CqDU6Ge%1aE`2dIK!2}ioVrCGUbVLP%6OT@sC`ZbiC%CQj4l`nqBI5_lHaYo39p(+kt#%P_YViaeOHEciHZR9@ezz; zIXTdKUAWmA{+G?CF{%$yyWnW zpBQ76fFr7pVK;~5Xq{ysBV}EP;-FdR@4C3JFm^M3ehaHqGmR`l=lTpDLn8v=DncY( z@hRx7i^2!jV>x2n7AKVxPm=+F|H6{RqhwO1rE9qg3p(FZf@adqy8eO^FZJqDq>`B4 zF)`1@W3%XC4+Zh_FSDP(wS`Il@>=v3S;F&C{FpO5u4D|`*7Zng?fY#OKov4#pu@Sc zme^EwRmu{$7TAnqC)JczW2-MUzDCB2>6j% zykn{8c#5B+u<2#W+#_0G%s@f&*a3q-N#Tb+mC@%A$0tNzX>cw41k0pZytLc-Whv5v zihLACu7D0a|MWYkyqmja+uj}@CuJW|qqsX`|GKU$rJ_jY1XV@cLIB_9)$Mlc2c0n|2F8ZX-?o|{Z7bLQcrMjm?w2-#-c z)#{WR4=tKZYma)qJbKxvJwv!6>>l2~F>DWRJPjv{iMtSwsl;3Zom=cISunIHwnfM! z1&+~kh3 z4Ho7dJMkACey*gdGYL4g(Mlyf%W9{nTa@rb=ybd(u}?@}X^7Ty%9X5tnQ^TJ16IF3 z%cRP5!f*AwvQJH+rDAOVb@%%?t=u-DbzJ)y88PW{!fJd`dG|tc9B0VA+&4+{-Bt2n`>(m-z z=;=rYO01|iuxCkOOls+A5ai3y?IVq*ruG{adM5!Rh@K;DtbyIOFk5xnw#)Gs8_%KS zZaRnq@3JMiuQgy$PwLkSGrxXe8T#-&m=kOA1Q@mC>+9pX9stJjZKk~?)p9n>cCaCl zVp1%C1#4oP$bqhr=*5vce|Vel6QrdxL7;F2zgtl*&CFYj32tc$?Ly7vrN`nsraOBM7VaL@-(YxseY&QU z^Z>UT^|yd9E`oPtj|)0)Ps@GYm(?9sFSV)U<7)K*<4_OE(dukMh@?y?gpmlfz=aQ)4M&2B$I`OtSVv_og@ z&fu?eW`j^5w;B}e=h@pJkIs&_NcGf%?H3F6_049}Baj#O1Op1W`Yc5o%_AbTEl$7y zX1zBTB;xd9Ihs2c(#K>EGB26@3ReD-_c%B7QN8Uy*e}cZWqafC7cDkF@u}=1-vc}g zd(7WYNC*CwxIA;d;a2&)q*!|^UAm^WUDoI@($tvVphItg|I7IW63CL5qsts@>SOyDZBqT!H}{@Bdjw}??xS{p`Sb}B)E>Y)tJ^$|@cFRfr%((1_L6~5ZvF;! zb6N+)uCHT!PaQ0F)C4VJCH84>AS% z&RMN)g&u#_)HUD}5Y|g(b)3f7XWC`7JRyqXqqmNUby87Su_hkbGcOHInj3isNLcE) z9W4&%5D?4awbc{cIg;h4|9L4D&=x+|t4qm(wbf5Qv%C_`cX55>>=+a6EO-RblHA@} zND$7Kjw*V8wlI-UX8b%UQLt5{<)_*1G$C&3UP+DM zvi;q2_-l{<<36v&gKj}EwMLDIKXsU#K71Dck0f&r*Pq1%XZj z2@-e?Nq_(wY2aP~1np+~_ zTy%f=i7Mx9W{FU#yK3F4BJu zF;rzP+l!6&UfBP<1g)_|+Mn3gdLp@Yv2O&0XJ$ELDua#$CMy(Weq0Jz&|&$&hd!2K z`)#CQSm-WPWI3Z-*ldRl3|5w&7Xe+kYA*}j7-IHLYn-(Rz(Q&Rp#63~1!=Z_4p3Db zXC&Kr^t~E-VhmW$!S1^lBA4#CW*HUzJ2>>;BaNw*`}brne}t8VfAr+N;U)yU;RXWd zcRQGgFcW?Nev@WUe*4=%32#e*DkM-RzaQ+rFPAqEN$X`= zX;NDGOKi{aPW{RAd`79HuMd1(Pb6A*7)+rGsVt^0okIHERDK(8jtaxs3j52)nK}Og zjoABk4HdDH(2uw5@JRzliS-=3yoJMMqcrG17X}f#%YV-b&{cwKE z<`4|qUE;;qUFOSdug4<2^o>uw6BXfsio8}y(0XmT_9ANfoSN}Ia?}^I|2)t8)6JlH zV7R&b9*d9N)^eELEmJ?V!$Iv|8;C5<4ba4KNP-OW%WiCZ07^U51dwbdx!?~cD7(vl zjbF$v0t^c-Sd{4V zx!~#`N3?3~O^`{gr|jlZY5sp%zigb9uvP#AZFcs@hGCuB<5#xKUityi-+NLUfac>d zRt$(}orn7$vIinrw7LzDv9y6hgB4gsHDoD{A?XBhSk(^^x(E7k4+Fp1f1h)kNra@~ zmEZpxX^MxUg}!1-7=%z$fT3tB&h(x0Mox&ea+&kLt_k07vp>A_{zlyM8B8>wF=i`(o%zQzP(BTrpwZry{=OM?xCqjdWmW1>F-y>{J_j^_I(i}Z{btkKPwT_>N+g3?hOHY za@JvNi3dRTeSN*(vhc2|m%Y$_vJ4A@0LN+>AQ(v7OfG!I}Z%_!ti;t32G4IznI>MLQ z=)>%f@i<^nqyvbGi_Bytj=xe2X~zkFDJiwo)lk>lPSMetd;2dkkN;{$|KC?p($Y~7 zYQGBnA9V@r{C9=l*K`FGi04;ng#Kbh{5De%v|{ zg}}E(0XyV#qNt&k$_@AES(^6;zcy~f6?yGB|NSidFJG9QLJXj&t;^^VUf!=3y`Qy! z=UWOf{bt#;Y_vi1jbA)2Ph=8`asI!T_5Zy2D~vd~nKa2LqU@iiwn(N`=kvD*&+Xqd znz#=#!-e{O^Gp@f{y&HP+Xw&GAAm>JP^ZlJ)?8Zy9PkV6p?+IW4!Pw!>2YD!eru7p zZ{04bwQN(r{D%ksuSfs)S0D5r{@%zP)BZ_e2wdk@l(ZuMyA2$xV)vh_-gIrcIV=d7 zExG^Z5&q}%T=4@;WW_J{=$~7}$bxQH^O+bNHSrn;(B6FYCIs(aF5!PYwU>ddCofqe z!gK#wt`J3O#H5|)$kMkTa%39Q_95WNf1Jesatr@qaPgyN%zjQOj3$iV4-_X-?)k+A zo*IaZwfyzvQQo3h2RxBT-gAlVBLlZT-qz7#YsCihr$abh=WI!a?~J`p$pKESfI)rx z(pQeeUxyr5dH~^8_XS&RT{DI1?J|$ogX&bju^(t!e>+t0I+!r*larpdfq!}O{eQj0 ze=lMNp&ulpyeEq9kkZ7{0aCwc=(<_pBLbAMzh44O2{e2Nj<(-l7DWGi-d~PEdZ<5} z-<@%6vC8zmQWkPXJ-nw7`)>Ha=W3I~wVzicRXLtL6=?3adIE3o>I4r#`1{_!adJP? z{smo~Jez`k%!&KIclZBp4gdL>wEg|MJt{5&dNi{=duR8w6hNsf^J^LzF!7rqwvl~1 z2)xv;gVLmoa2BO6_IYfViePtbjDM@!{Nrj?bVC2+ZIo&HbF9R#14tpEH>nnU3}WRUKXx?EX?Ox`>3 z8-Q_cEsTR+2xwQD8L?jOHSP}}IA0C?{y&txby$^Ax9)9$q)14IG)R|#q;v>KcL|7q zfOIZUy1P3?q`N^{y1P3TU5n<-^~QepxvuZp-#&jUvRuzI=NRK2_xO!`WoVRsHb-Vk z3=Ckmkb*==h~4&(Hvx2t9l)X7Smi07R*X-9zixtvv6xA}VNK;&lvLx~^s>EBjmf`v zfe=Z`%>vy_Rp$S?hX04FC<){7xxM1nI~VX=vM66WE;wMs-|!taF06zf|KjL3F`WuQ z#M{8hn%H2;D@>&>b|#ImFr}}FtGGatN>=g?o;51s{m*~(zp}9ZkLM)ZEh#LZJ6;#o z*(ZLuXbA_=yscUCD7XSfmz0`dfHGoJO#+WOK*z~9PcIIkwr7kAf;Cn+05 z>>mmH-hy{$*rz~{PYT4QO(GR=t)&zIB$xXOOwSjIoMuq~e+5HNql?qA1vROuG-F-3JiFQf`SYv9fG;p&%;=aULxmMS7Zkye4G3C5NtoTnP)1QjXDeoI%>6Hi8yC zPX<)6w{%zjWF7{C{HL6-y>aD-&zort{tYc>qb)=sG(I02W%=8fYYlu70q}9dX5<_o zVb}q^!b8!O0vL`dJ`V}N-r|!{jrbtzCjqpeEr;V?FikPBo>iU4XMlv^AYThs*CQ~M z2&w%`l4!G;xRnUp7k#VtvLj`5233o$MED`901mk+<Q`zki{`7-k~<)NY^33lg@ z7t|YL@$jS@zk`-_?sM{fKTY!2&F7M^7?<&1rf_1-r(elD7L)-bR%gduV(JlI_IF zZKs3nk7UYJ)pZAA6+&1(erh@C?c-wLSfpUJeL3_Jz?}+i=c@JjVKR8bXFeoxve9uba)Jg0+UaUA3y*j3jA{A;8h)u42kZ81 zRRKo_&-FHCYF^-L@ARkX;0m@|aCoSeAm`A0`s4BEo!odf=K|r@+dofXi3P>=<#bnQ z9R2vQav^N2h!N#VVYb^qMTaxcgue39^0vnS!bw}~Q}4LLmWRb2KSdM?E}MGTVnb?c z5WbH6pn%AzJ#QCpkEW(oM<6w0-T!v!wvWEKl>3D^4+!mm(jl9{iP8za5VPwnmReP zWC)~r8NK6q>zyshO7{x^ouItL$Zdd2J@Mv{%nVn<;Qgt;5E?_`1OU-|zCI^1aGbML z;OHi{6FVmJxO{KAcLZMkByf#S?lr+YMmVhCZQsOT7QrR@>#ZaUtBQwvQ8{hxbSd)N z$LcyZ`2g0pmWnBYiG8yMe)uhzluYjYnQTQ$;O`Eufz2pcW?M-=P@rJL z=Xiq89eN^_dma1PB7v=Zda+=&p_T@e*m?4)|f@>ViS z%WYc<lA$!b{^%o~6$ z;~a+5+R#bvf7^4mQ}M<4+k2f5LBPp->BNYHh))L<^=ZQwMZ~#k=6-Scf}lJde$nc% zhfto-pveFviH@nTh$frQOK;Q@k+h=fS+IS683q7Af2gyp7Qjj=wsPL(@7_UZ%mE!` zZ?wOb#Ri9uh%yCa3)9G_Y==;-BI2$4XQFf`3$rwWwXVc2;SCsf{{GRBiz_+sQHc5D zzP8-S4`%o+fnunc>1FXa&$EuFB5@XLIpZk^KN!z*5b?a?^!|6*K2VDJ;kSC;JLk>B zyp$8t+&dYDBBdAx$EYX;3%n?$A>tj7`lHK z2XYG8NPkozvM|EPw}Dd;R9bceRo;tIz~%n1p<50BN1XI^el?GtjOX4~eXk{v5Nk~- z_*WGh9ra>SgtbX$0XE_!uDK$Hw2Qg3CFT+O=uD&?-5?|<^5|sAV4P*r+f^+MkH+^|D5& z`8FJt4CW%r7y0$L!JYS`m7#mRCz{ebz}z`6cS8g73pj;bb^}~aS}K&J+yR_sqa7Kh zVU@1S37Fe}QD>`u2e04%_s1XS$KZERm5pb{K@MM0O6cHlioDEzT&y5?oaI=hLMKn$?kwS!zx>`JCC`_VrIkN?7G{x3c<5(RkY-fNto;!vWj zT;9RP`1$@G4!@!dl?i3;aHj02(KB4AcL**ge7pAzT9xf~#<%}dv(YUeL@5khwn|>T z^?*Jsb(;R5vp;I^q5NVNn$(F4wEzj^dw7U>w?@RDG2XkKrCnpzMd6H@sk_WY6$ld9 zv28^z2^vi7|JP5Pf&Gu#vUnYUwr4&hu*#XW+#I;QB3XMmbPcjTP9Ug+UTtS%41h;& zHxAV8Bm^%4gJV4Q~-#LtzG z1wh1No&l+d;S0gbkKRtfJSJ>yfq6aG+PjZgh@6SRE9Qb7ZM%o;V<=HU&_ab$gz^9I zV!%Vk7uF}bgeji>L-(M5vNKr^@UNQG>OR|Va9&-yhFX95oM?iJw!Ohx`7FAY{3i&ahl8k79@jTRYZvZ<%;Z=KXD7p6J(C1Utw0xz_%qMz*HQqt~hL^3&; zx&CkC<)`bUB7L%|n4zIOOxQI^6v=tmEmOw+Yd5}aMmC3Aiw|<)Kw?EBA6B(1v&)~B;bkNU{QU5&*b$LN zxBi1$E~{e#&`5Q)X5RF2?{_wGm`YZYr4y?N_$Vnx5@3E1J@O z(7QioUw{8(GbYFFfMO9dNtNCz6%Rm3EJrv!f_1il5Rh)pq_RY9b7+*49$9}}cFPpFVdbeQQNc~NZ z{wQP9S@{8O_LHz1VC~E5Q%K9xHBB%?Y$$avO$31&y}JV}G@zH)8^u9EfXCQmpkjBp z-yU;z{;7u+>vzbP!oi_vX;e8(AMe4VYX@9LX}Ao)B!m4x&i|$e&L`=1Az8u44iR+^ zCy99+{$@)5fh?Zsq@=7%%Leld-t7FBc(U&ENbS0r-8)r;QO`le6%-2tK;=2Omk1@C zPz;_q*|-M4!)#ZuXP^M9&-;fnfbM2(foSe*U&0+E%!>rydl2a_Il3Z1Ew4Fe!k>Dt z1{Cmmy@?Ygt*TSEz)dc5JSHd(64T1(?}Xz)5MqLc1BZ*;A;KKbC{TBP}YP?EbYg{ z_#zP=f4*;I+gn;f<}s5C9qRt5s| ztLlbn@sz3>!5631h5e)Y^{8MHYgWOtVM_K5(I#-q-{YoNq}cRDO5XP@zkd>rTf5>z z2UXLyw20I9=%h#^#yh<|%}zD!2WMmBNcUT-Z(;d{kvHbEo$5I&NmEwknBf~mONfom z0NMSw0Nxd!wSEwDzLaz)0ms`IT)RC5>k-7jlwSxCSqAzvt^bqazqWpMe;n?KQ`Yh5 zsb~l&o*L;Ivu~ZDMKyc3hv~&UpoQaz+Cq~1l_Z~-t}-X>WA#3G^#VH^;Dqj7tcLH@PlY*&7YBZ0y{XMgyf05oXgIlpT~s}Y(^9k8#n zxvdg*x`Vc2mdy@Gm#U$76%%x{CfX=J81EeDNv|94k%&Q4X%nPNq3l4o*+5Hs18!v# zr&J2WG^A6F_rbHBS z{8duA!~N?O)zuRuoMy>kk)}CCXMful^yU5-KYV(xRbn4BH`mkOBM=jfs4=`$j^;#$ z7dY8L39Ku!rzd@D#7@V0k<<)0$3Uq_0?(o$#mNWU)LroSsyGUojAL-^X)}z^Dm3OE zUv4?mATQM;)j7tW_4`Bmy?suqnEpRU8f`}1XR;cG-MTFNOTA=qvh!l|^YWhwDmoa01gRv6Lx?W%eZwj9kN7}P?{;fidyC`l zE_r^3SA{yftZJF<{&f07X{g%bJ#iyttb#&ecm#sCEN>5kb+sRv^5XiLy6v%b^mC4V z@Q8ARxs2mU=AaQdCe$5wL5nc|+7&MZv?5tr>{m^3fzIxDUIh~_=7JLKqk@{c*L~?Mj z6B;#G&h*^_)#u|#X;{$rFwf9@%@9l8C$iF*UsU12TY}3!%dI1T;mvCET38GFt#1Iv zCw{u4?$tZ+4OsxuP;xyt%X+DEfI2=$A#A4ZJ6;eNte7K-Z#^b(o_d*NH+Vqp^0LP1 zusZ5^SxysZ+N~tHKaw@j(Baa37C*Ih-KSqsof-)32=}AEB*R@&GLaXldBS{8t`PBP z(=@K#srkc>{MiOTyLl50hn0}N3iVkDzUO5-Yo3bBVUttp3Np6J?uTEq*Rv2<(;gs{ zwJ|&Eg1oipasS77A;~27yYs0*OS&#H;_N6f%{h_DYnfh2_}Jz@n=xTwe;lTC@mvzF z*T^2W9ltGt$Ts-Wo0lZ**FXF1|96$}>)GSCf%_l?D2{qQ+$?>{}l>`6<>lr9&T}uS@3Br%dnjoV(+Ev z%S9d@E$vh z`gh(HT9itpAHsa}&hNcni?EiPS^35hFiLAF=-12`?JSo02u2n1eULI5D`m<44qRX#fCq=$q_mP;Fw%wOlRW&w{QHJqh6V>#E3tS|? z7x3(lcv>V_7_S?kfx$@A?SqsKJFe_rl{?+-#Z9aoYM zOA!4$FQu%v8EJDpRbs(G7<W{K|b4m&_lG2R5jBD8Zr@%|(r$-LM3p{4U1nNvB~`jT~?a9Qjo zX)`AHW%zYohKwwei4J(nvy9xn-~mCfptXw6Brlx7UxdFkGIan>s=3?L>2JbjC@d9e za0;om0g}B2OFWs_27D(4M?<9K=h3mBb=`OThZy`aP2S{n1lS*uMoo{IM;-q-R85q- zwe=TZm@qa2|EjKlCm1q2->CrTzvCI7y*%N;I zT*!&lh+6AQ6ZXSrMhd(tJGYrB{N}H?hg_p!+>81`M}MALG3KK6Te?_}26!a8yfQLQ zQRmmqH6m~rJboV0Zk9MO~*kx*XgF_cBDr1F?cH6j&iQpS6dK z8uP+Ub#koNAltyj;Z~CHbUcZ<<<^#4Epo`JVP9=@S!CVtz9;3W_2;v0(8kcD$qsH@ ztdfChug6=s_kV6Q73^Q42xg=hdDA>9@kQ3)*$VlyJrR{1C!EHp#k!Az(l)$51BC({ zG0Fmm)3^Fyp>7GsLM_(F5YzyE4^Q0!mmndq7sv4H>P?U}?lsXSU4Khr%Z7Ap_1s4x zU#C4#&UOuKb%m2zznwOC%AF1jfS*V@K)q;H+B|o4bprjSr~Xs(&cC0?55#u;E@!& zYDB!IFnKsy=<=m80!aq$+|A}70n7=TeTx6FSG<_|5r(U|1+o1FFL!weC*(!6t z$5)fynK#3_?hRk2nVY%Zd>i`P&Wu>?rYHaX?j<99J5gl+(b>b^s=`W)vb?nMPPbfr zP4KArjz2mP?uMaI0;*$KgF)=BV!}}O8%IqBx@M!u9V=>^RnUeJ;n1%XynN*-mJvr2FRFJ`94tElD z*3LD}(oy@N;taY>I!ny8CL|m_EjoAQKOiZqkSJAS@l(7W?P5n$_g2EdPEF%$%g{3~ zhu4jDy$$OeG1b&|lx~b7t)%%c*FirJ`l^t9UV*f+#PR;6F(FcnOW0r1fGGS*P?brV zRQA?59-kD}@N`8bs*;MaYltEu%QtGRmD1gV6G9N8zOS(v{(N2tECt)2Ww=vFDXv`& z>R=1K@M)aX8)Ev?`UVCp$0YDbjkfR)Oe@(o&pb5GmE%pkrc&o z%I@(~WI-C=^z*E^`fs7^y+i5tj6QQDZTq-OR|zj7A6mbL``Gx=MF|CIL+kz!JnSlAPhap5(Lq5p5p$by*rIx z@raVL*6{Mv(3E8!F)z?os9hQudU42T*F~=oH^;MMmRynPw53-}{n(<8R#DREgbTUD zo^*+vgxG4Zpm~gLFLo!q!)DCaHqO;slfXN66c&uh)o<}YSTyXx)AJz1G12Nmmw8@_ zoum=ZjT?eQ(xn=ZiZL)ErD7cdm|JJ!`HuKrFVYp zAc$o+FA(#|3jT>-7pL>zT1xl7@odAcBSEaI1p91egXunYR9^#$(AIO7C=MHY;8y}u z_;nmRsqJ5KaR(`(KRS{3?dcCQB(1){(;^xruHKT4I$#a-JU6jjZnMF}ZYLa(D-B5z znt7^DlQc?5-dS*eFjWW?)aH?YxOi)E)F?2fw1$*#k5TI`^`hUcE|_?f0lWYn!75w0 ztm|{xSag+>FEt)Q4xnO`=sNxTfe#AAQI!{)4)}$d7?gu_=}sy42u3#0PNpEqx+^`I ztj0|`k2|$@=>?UR*LG&T45tx=OPZq>cP^+JGCWh4x5B;2Z{^{G;Ns_hctq#2TUJt| z-}cP=g(8y&)ohrzKtx@9+D;-CtcNta79xm`S<_AFvx8;k4EcwK4`pV5>&N#O5U_lC z>MlA$c090G5_lBCt4nwVi9UJ*Yv2rR5$q#_o0G|uH-7zF_WD<~B8FtZ`llNcmGa(; z6GgS{O0-oeXjJf87LpLRI$(!OAf{#vCwI@%X8`NLeHIV!M!8d1xDkt}0AoHc8!5&u zhIC8<G%+!V|@I>}h)%Wzo=q{CJN7#~bUijDxc|d#;{}DJtE!`sGTMFm9CQcOo!>6PXpf z@F6eNQLFONP`3c7+G+ci%;QtbRopN#9hbgQ`3~dvXfi6iAu*n!^qEjNE0j^pL z>7Bh9tPOjO=rXEi>A(yF-zM<3y!6Ava*gCsXX*P@O}w4fubl?o&UCNW7M1?A)h~u$ z!YAwA3)<8vB6Yper!&13|2te8X-XF4k3la4@p0(W=aewwd3{KE7}`P22)`$qxgV{6 zdOVlTx2!9E&A24R{_lGtj=g^QPQ>sPS^ORwi};#aep$zmkbU@Z>@pLnw#YG3bakh5 zKsm8Ejvuxl+u)_2H7J`ZA9(7AEbd>jG1@4zWCxo=rykjXb)x6~Y zxFk0f(J@r7e)Vz^vIK#N?@tNLCSkGEFBS%#QDkO11g-}MdQ40mZx!HomS8NnwU?Nj z?|negOo=|}UKJY+6! zM+Ni_pMClX<-w84Z^689F*adu#Bip`yik5)kK>&Mc)y!lYIm07|Kt(mvu z;*Z11*(LdSH+z{7-i2~o`+X2Sw1V2VaZxt9m!{Ye?4=$LW1<#)^yJ?wtZxUAzYKS` z1XvinLrZc#)%TO#`}oGV=`7xrjY+k7RMf8UI!eHdRp!c=eN>?k%5C{AFY0mVw+Pv% z3dfHXCJHhF$Bqgtkl9vSud~Av$XvHGkJrEGKK-^R;Kj&x8Tc`s+}&`JO@*ic{rb&J zgMd`>x(Z2B!ui$!*y@*}QPiAv=EAughug-&v+PhM?_nE~or&eSI;D(hpg|m3Bgwo;WN8B=_^eCzSDS-S_w3~6_1N}t#$&dJ*d~vP53T+`KXKXMVR(?K zrZ?+^EE%m{^=V@Cje~K!vh|wy?XIP4)fy*@jj_8DM6afaCz=w0&jWdl(IqCG&Z_jH zq@?DgQkKQPnhlkgE@1g~l(^{Egarx-@*UJ>hlhEb*87{Y)1>%J3D7hB^=Y(@_J~eH zaM2~Ihi#{ALuD%vbE^GdQI(Fl`^xxai`KG%%%jDov3bqkg$}7ae$k9e+LI&JA6`lq zINxEZn=fl$+3!V*=-v6}lt-^NB9U9N)0z>HsR!l;n};X2ctp?UBMW;r@4BSm`oXJ2 zSuE3ybH-pHjMXQL&Nmkz6ZoZTHl!WMea=4&VdXq8DYs`CsSw7_x(?RPLV=D6%vGRt z+6pS*nx@l2VL&Sj>%}{4^tRR~ozl|l){c(9e>b|Wo#aNjfJepiac)9CsHMRNQc~(! z0DG~dW|{n%M4|BCr|r^)iPpL<+V{9TdU8zTsS0FN3+nhCthC<3iQ?*AEhX&JRQnMwE*L1&G_?surw%q6X1h`LK zhm@LPLliIX`b%AIRME^_e%4d*`7CkYoi%(jav|^c zh*)jc|NhdI)^E@U&KJdNU=v&Cmc5-2PDtO26c2Ddx}kfq5+8W%9$V;d@)LcupmBIs ze6*r_ir((ZJRR|FtXT6(NWm_1wJ(z1BQ{%lKj+43+6w(X4?$OSk;I3FXH29D_Azni zVk^&wNArEO1L0TLl|yKksNR$WT`l%lVTNgx=VHF4^nUN`VxBK-PAMyxkuA0Nlz2QX zhlLlCn(F~&s1E?^aL@lTh0W5CE9#^~nm&;0SC!fVK!!P0?u2OQ)SK{2nZTOl8gA=GEJ;V00(lzE^wWOzy*|Vv<@R z9oN=YKH(p5sGd-~an$Efw-w;8l(KfU1~p7~1Z=9~_1{yF8+){Zy2+Eh1|N~=96{CE zF<0E*EQKw#NW6`D?hk6+D*6gHr*HFz0OI^cptnN4Vbi_o`kx2Ju+FScy08s?VATF~ zV1RMOWIEK{_+c^A$VxoasPmtsUgQ4GAcsnAzT0Awt{!)zQK8GB)wpL zzJE8+D#3oQnH1f3Ye2{n4}6 zkN)eV*wPr#iiL2=9?Ded7ZX}k*UF<$>Wbr-K7W+8;ip&nvnDiE%wa<7G`s5sqw(9; z7mWB8k!>4g&6XUeYDr&c_c*xAeyV2MTNF`fO?p)^e%iy6XC9Q#A>ezg5ksn9rmrNa z=*Y^X6~;1+{K2S&HAr&G4PZIchZu+CwZwKN8EsQtMK(R}Pt&0}{+Ji2#74Tp_22RWisic~kKj#mv zI*FKhar`r1h<4MP1y_NbI z;(gMn^(`7O32A9&<{^vrq};IGp5MxeXCKPrT(WM_%Z4jVhx*O!b=;-u$!;pO?&93; zpzf(a9#iBnpYWvnZTzBW{JK`NPuFVb>}y%^>F!=`YU5kSli^NibFQEb{w+k^#znBN z{2;Q~V@a|Un`{$6U(QDyJRs>c@@>|b^+Vk-hP0_A+E@C!S7b}oDGtXl@`9!HQFI=JA%QTO31X(f{*w6I+T0v+3AM@E@`rjI6}@r)LIz%D(PSz!nk zMEaG~+E$UwSb-va{u&0W}VpN_$)KGXbC;z;K zFjhMlVc&n&e1WwV**ulcW0jpa2j-xS$Ko+E&GId4gSYPE4zF=b2p1t;*%E%jx4BEf z?d!iN@BET(Cw**g-G?17`aX}PIolxic*h=$JX~vNhy{-XZl&an~J#*3iD$-@DGRNxE+mr>0E*pf<;0QZvt3 zxAzw^gk-MJf+4@yd{t&asF0eBc68*K_UP4WqPZ=N;J4IqW=|n3x7Zy7VM9F&`tE5K zX#20<@zh?!HY~Kp$U!28NyVMEUWi9vc?ra+Wwb(eN|k3M$w3dAGP$mycJzTuF}aJg z8IlY8m^vgFbK2k68@*M9smA~|vH!IGw0j5&=+q>&U>_xzk>{R@)9ATs@Y^f)zB-!n z*{u>tY~HU-ytXWkg7^u`Fp`V& zg^N(1jDY9_B64Vv8#!fbLRE+fz%0EoVrs5!7Nxf_ti?DsiOmD#2&y9&K)MSO9BG(s&XlcO|L1m@9o2a|H zz+E=1VO%t;H)zK_8S`6>sLvasDUwkq{7ndUtC4nhlV{K{&qbe6|rcvmMmoc}E^ zLgIOnxq$**BtK{PBzJ!gn#JFqpre0?KRy4j7|>p_*q6Aic-Koi;_HRTucl>2U8A$# zk|W(`+lK}djbna;yke|QJvTvHqWAlJ!>if6`hYIvd|y|Q%|j?2c$w!B6B*2fMLsXl zpgUJvOfi#7+QcBvIShUgX|vW&F}l#=+VYl(7&ZU}{pTrNC$1!)QY+;7sfcTe(WFi8 z$qm055W_>cHqwKarEjvY3#CnrAitV+m}A~kGiVr3W+ndK&~>p7i*bWwR19yn20k19g?%Ea z^ey3^l0zRuu5Q}-CG*2f*U$7)rMWl4`4J8ZeW$ZWlM?nzZ?+P(4r*g;)27*o{K!>9UjIO9{pQ~l@!BILO( z@#9(d=0kanVKr$pdh=ET&0Ez4Sm>JSY>F=AQ*`Xr%P{E?yK8|rla;*Hvk`YV`#Cl9 zs^{#~o|YW>b?YxhKY+5Bcj!FcZJ- z&hD!vt%@R(xjRA5aqA*Y)dsSO$`bmfc(uNKUaRo!EM8L83*>(%)JVbxVOS9}%SV0s z)?Upj*;L~R*jd3JHT4Id#avMK<5}sOlUXF*gXQ594bF#pxr+!fbt@!J^DF&?7Jn#7 zsWgW1s_v;x7k{r}D789`(TVvra3B7b0&s-vN&iWc?kK81)FsR%EOf8>1ysaV$R)$qPJ`cV@%wm3P<;eMDGEBbtsUz zks%V!-sF;nsVoF{R3@e(Yen@d^qdwPjv4EU{O@cR8n!xa#CZ9lr;cBw&$wLpQ`bhQ zKGuzQRr{O!3C!nFIDL}7!LO#~eimog`WJS}OdR{hIw-Kr(5~%}n{-bO3YG z=tx%4e+z|jUf-K{qczWDyqjs_3@AAbq3^iAniYDC%?_SF~bh<3N z0-w@z;6#y;0d=vn4X^$<%p{K$w`;T`Vsxw9d^|x%*OT zXO+WHQz{*?^*_Ak4?~~u{MaHo6_40uV$!Ow(8(mL7v0B5Mws=m3YEEub$BG_YR)b> zm5--84_vOr3K{!RI>B^{=`i$TMrDZf`#aY2h4WVphh$P>$H2Z)?-9qSzP*^|uyOwW zj)Y}TB_-|LRw1j=*7T>xFDI98z%??ZVoz>Cj1?eF_xb?td4q8D-IIVW>pF_Wq^vpS z$-Bk!i_P>IP1v>!?ER;=nqMQKfq-x^teadOM*%L+c>iA4R+9rEaj3HDL3IA>(G^rF&FgbnCboVJyX2s*kN8R$EjOvOre z4ciy%Q2b4?&Cft)K#;@odHOE5y1>M>mMn>9;=7X(il`r2;4{2;gJ#V-6Pt{ucOF7q z(=1?=*!vH9-C?twc?}|GgX4aZW>d%WbkF;`zO|Zx`PX@3y3t8!Bk5jZxL8Ji;~Nl* z!5oi0Z8K7f4}!dN)mJvr zOc2ghsV?22)SSZDQWTf4GyF!17n>(Ui{iJ*} ziUVy)un)s^@A{6QGrSIsR4-@2$Y@CM2^iRd9S zkH^PLz3yT6w|2W#-^yS--MLjKI{+(fgH3x(1WMM5?o%}SbjQJ1WV-B}N`TnVYK9QW z5?I5`hiZnEEC`f7(AH{Em=z3%(OI*}!~8(WufY?U99vVD7kk4$etg_2WOwH}St8UG zx*`}mG3cCRU9*~O{s570GVRp#gRb0lhX?xXNcR~wAJtNA6q)EKTe&gSaaNbRuvmVT z%qhR<*VS~i{cnmXNYpi-aSHQ&?#GW8U-gC0BM<|hK%ytSD?t&DrdJxND!FJzNO$r6 zX-KXY%_^L&5-+DedDYsgG&k`M0t^Hpzay;oyKs!J#8wFr(7jBNnT;LZWB&kpr|NZt z31<72qDzw0q_AO;Nbc50=QQ8B$=?vO4H;JZLEbH%KE&SalD_URlH@o6HodJRZb@bs zm6;c+Wy+QdLE7PcTJ-cEVhVL&O#VVaKLq)kX;z23l4#zht%O>pYJ^(PVyn()hL!|HJ->k6C_3Ng49h%cH4g8H<2Z&2yi&VgP{= zRy6SirmlCkebku}Mmyd;odI4ne>sm?P)Qe2#`N6wW6gUgjrF0XnwsCeKiD$Z0)H6+ z#O8MfbX4fD>fkV1OK>MAI%_LuaxIg5kiq6+1;g`F^yl}ftl@>cmN_JRsbL4tqCf%~q)M}j^Q$oJ#ekWJ9kKUSBHokJm*BJjcj#9~k@1<_c zP*BQ$i&ih`q=mgJ1iu($q-2zktecCxe_D@a#c8YoEx7}gsK@isKmezlCUH%Wc@%#PCw`S}&;hwifF)5BO#0hrm zG9Ek1-EK2LAgM{OZkMA^jM2MjV=+k!l)5iKOp$++rDyZ$fOgI}vt2*h%(thg2e7?2 zo5#neB4eMC%)xh6SW=v>wfmv>&Ff?_A_s$k5Jc>x)}eVisk5!9EW+LU%=)w3YA+h} za|b)M2xQpP7d(G7zteHeM61dh$(?Rh`AB=TvE>)NYrdB~%sFdZb$3(I%ZC<@3)sWK z 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%0D>J=6*exJ4gtB-yI>IS^khv>g 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