diff --git a/generators/csharp/base/src/proto/CsharpProtobufTypeMapper.ts b/generators/csharp/base/src/proto/CsharpProtobufTypeMapper.ts
index 4902d298dfd5..12b78122b098 100644
--- a/generators/csharp/base/src/proto/CsharpProtobufTypeMapper.ts
+++ b/generators/csharp/base/src/proto/CsharpProtobufTypeMapper.ts
@@ -983,6 +983,9 @@ function getValueForLiteral({ literal }: { literal: Literal }, csharp: CSharp):
/*
* Protobuf enums remove the stutter in their generated enum value names.
* For example, the enum value `Status.StatusActive` becomes `Status.Active`.
+ *
+ * If the resulting name starts with a digit, protobuf's C# codegen prepends
+ * an underscore (e.g., `VIDEO_ASPECT_RATIO_1_1` becomes `_11`).
*/
function getProtobufEnumValueName({
generation,
@@ -994,5 +997,9 @@ function getProtobufEnumValueName({
enumValue: EnumValue;
}): string {
const enumValueName = enumValue.name.name.pascalCase.safeName;
- return enumValueName.replace(classReference.name, "");
+ const stripped = enumValueName.replace(classReference.name, "");
+ if (/^\d/.test(stripped)) {
+ return `_${stripped}`;
+ }
+ return stripped;
}
diff --git a/generators/csharp/sdk/versions.yml b/generators/csharp/sdk/versions.yml
index 1c1661ef5efa..b8e5e2a03a1c 100644
--- a/generators/csharp/sdk/versions.yml
+++ b/generators/csharp/sdk/versions.yml
@@ -1,4 +1,12 @@
# yaml-language-server: $schema=../../../fern-versions-yml.schema.json
+- version: 2.30.1
+ changelogEntry:
+ - summary: |
+ Fix gRPC code generation to support enums with numeric identifiers.
+ type: fix
+ createdAt: "2026-03-13"
+ irVersion: 65
+
- version: 2.30.0
changelogEntry:
- summary: |
diff --git a/packages/cli/fern-definition/ir-to-jsonschema/src/__test__/__snapshots__/csharp-grpc-proto-exhaustive/type__AspectRatio.json b/packages/cli/fern-definition/ir-to-jsonschema/src/__test__/__snapshots__/csharp-grpc-proto-exhaustive/type__AspectRatio.json
new file mode 100644
index 000000000000..5e11f206bbd6
--- /dev/null
+++ b/packages/cli/fern-definition/ir-to-jsonschema/src/__test__/__snapshots__/csharp-grpc-proto-exhaustive/type__AspectRatio.json
@@ -0,0 +1,11 @@
+{
+ "type": "string",
+ "enum": [
+ "ASPECT_RATIO_UNSPECIFIED",
+ "ASPECT_RATIO_1_1",
+ "ASPECT_RATIO_16_9",
+ "ASPECT_RATIO_9_16",
+ "ASPECT_RATIO_4_3"
+ ],
+ "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__IndexType.json b/packages/cli/fern-definition/ir-to-jsonschema/src/__test__/__snapshots__/csharp-grpc-proto-exhaustive/type__IndexType.json
new file mode 100644
index 000000000000..718e043f17ba
--- /dev/null
+++ b/packages/cli/fern-definition/ir-to-jsonschema/src/__test__/__snapshots__/csharp-grpc-proto-exhaustive/type__IndexType.json
@@ -0,0 +1,9 @@
+{
+ "type": "string",
+ "enum": [
+ "INDEX_TYPE_INVALID",
+ "INDEX_TYPE_DEFAULT",
+ "INDEX_TYPE_STRICT"
+ ],
+ "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__UpdateResponse.json b/packages/cli/fern-definition/ir-to-jsonschema/src/__test__/__snapshots__/csharp-grpc-proto-exhaustive/type__UpdateResponse.json
index 3f2a7e4585aa..33c7c44c8abb 100644
--- 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
@@ -15,7 +15,7 @@
"index_type": {
"oneOf": [
{
- "$ref": "#/definitions/dataservice.IndexType"
+ "$ref": "#/definitions/IndexType"
},
{
"type": "null"
@@ -37,7 +37,7 @@
{
"type": "array",
"items": {
- "$ref": "#/definitions/dataservice.IndexType"
+ "$ref": "#/definitions/IndexType"
}
},
{
@@ -48,7 +48,7 @@
},
"additionalProperties": false,
"definitions": {
- "dataservice.IndexType": {
+ "IndexType": {
"type": "string",
"enum": [
"INDEX_TYPE_INVALID",
diff --git a/packages/cli/generation/ir-generator-tests/src/dynamic-snippets/__test__/test-definitions/csharp-grpc-proto-exhaustive.json b/packages/cli/generation/ir-generator-tests/src/dynamic-snippets/__test__/test-definitions/csharp-grpc-proto-exhaustive.json
index d5686c7e47bc..4b5b24fa1905 100644
--- a/packages/cli/generation/ir-generator-tests/src/dynamic-snippets/__test__/test-definitions/csharp-grpc-proto-exhaustive.json
+++ b/packages/cli/generation/ir-generator-tests/src/dynamic-snippets/__test__/test-definitions/csharp-grpc-proto-exhaustive.json
@@ -1,138 +1,144 @@
{
"version": "1.0.0",
"types": {
- "type_dataservice:IndexType": {
+ "type_:AspectRatio": {
"type": "enum",
"declaration": {
"name": {
- "originalName": "IndexType",
+ "originalName": "AspectRatio",
"camelCase": {
- "unsafeName": "indexType",
- "safeName": "indexType"
+ "unsafeName": "aspectRatio",
+ "safeName": "aspectRatio"
},
"snakeCase": {
- "unsafeName": "index_type",
- "safeName": "index_type"
+ "unsafeName": "aspect_ratio",
+ "safeName": "aspect_ratio"
},
"screamingSnakeCase": {
- "unsafeName": "INDEX_TYPE",
- "safeName": "INDEX_TYPE"
+ "unsafeName": "ASPECT_RATIO",
+ "safeName": "ASPECT_RATIO"
},
"pascalCase": {
- "unsafeName": "IndexType",
- "safeName": "IndexType"
+ "unsafeName": "AspectRatio",
+ "safeName": "AspectRatio"
}
},
"fernFilepath": {
- "allParts": [
- {
- "originalName": "dataservice",
- "camelCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
- },
- "snakeCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
- },
- "screamingSnakeCase": {
- "unsafeName": "DATASERVICE",
- "safeName": "DATASERVICE"
- },
- "pascalCase": {
- "unsafeName": "Dataservice",
- "safeName": "Dataservice"
- }
- }
- ],
+ "allParts": [],
"packagePath": [],
- "file": {
- "originalName": "dataservice",
+ "file": null
+ }
+ },
+ "values": [
+ {
+ "name": {
+ "originalName": "ASPECT_RATIO_UNSPECIFIED",
"camelCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "aspectRatioUnspecified",
+ "safeName": "aspectRatioUnspecified"
},
"snakeCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "aspect_ratio_unspecified",
+ "safeName": "aspect_ratio_unspecified"
},
"screamingSnakeCase": {
- "unsafeName": "DATASERVICE",
- "safeName": "DATASERVICE"
+ "unsafeName": "ASPECT_RATIO_UNSPECIFIED",
+ "safeName": "ASPECT_RATIO_UNSPECIFIED"
},
"pascalCase": {
- "unsafeName": "Dataservice",
- "safeName": "Dataservice"
+ "unsafeName": "AspectRatioUnspecified",
+ "safeName": "AspectRatioUnspecified"
}
- }
- }
- },
- "values": [
+ },
+ "wireValue": "ASPECT_RATIO_UNSPECIFIED"
+ },
{
"name": {
- "originalName": "INDEX_TYPE_INVALID",
+ "originalName": "ASPECT_RATIO_1_1",
"camelCase": {
- "unsafeName": "indexTypeInvalid",
- "safeName": "indexTypeInvalid"
+ "unsafeName": "aspectRatio11",
+ "safeName": "aspectRatio11"
},
"snakeCase": {
- "unsafeName": "index_type_invalid",
- "safeName": "index_type_invalid"
+ "unsafeName": "aspect_ratio11",
+ "safeName": "aspect_ratio11"
},
"screamingSnakeCase": {
- "unsafeName": "INDEX_TYPE_INVALID",
- "safeName": "INDEX_TYPE_INVALID"
+ "unsafeName": "ASPECT_RATIO11",
+ "safeName": "ASPECT_RATIO11"
},
"pascalCase": {
- "unsafeName": "IndexTypeInvalid",
- "safeName": "IndexTypeInvalid"
+ "unsafeName": "AspectRatio11",
+ "safeName": "AspectRatio11"
}
},
- "wireValue": "INDEX_TYPE_INVALID"
+ "wireValue": "ASPECT_RATIO_1_1"
},
{
"name": {
- "originalName": "INDEX_TYPE_DEFAULT",
+ "originalName": "ASPECT_RATIO_16_9",
"camelCase": {
- "unsafeName": "indexTypeDefault",
- "safeName": "indexTypeDefault"
+ "unsafeName": "aspectRatio169",
+ "safeName": "aspectRatio169"
},
"snakeCase": {
- "unsafeName": "index_type_default",
- "safeName": "index_type_default"
+ "unsafeName": "aspect_ratio169",
+ "safeName": "aspect_ratio169"
},
"screamingSnakeCase": {
- "unsafeName": "INDEX_TYPE_DEFAULT",
- "safeName": "INDEX_TYPE_DEFAULT"
+ "unsafeName": "ASPECT_RATIO169",
+ "safeName": "ASPECT_RATIO169"
},
"pascalCase": {
- "unsafeName": "IndexTypeDefault",
- "safeName": "IndexTypeDefault"
+ "unsafeName": "AspectRatio169",
+ "safeName": "AspectRatio169"
}
},
- "wireValue": "INDEX_TYPE_DEFAULT"
+ "wireValue": "ASPECT_RATIO_16_9"
},
{
"name": {
- "originalName": "INDEX_TYPE_STRICT",
+ "originalName": "ASPECT_RATIO_9_16",
"camelCase": {
- "unsafeName": "indexTypeStrict",
- "safeName": "indexTypeStrict"
+ "unsafeName": "aspectRatio916",
+ "safeName": "aspectRatio916"
},
"snakeCase": {
- "unsafeName": "index_type_strict",
- "safeName": "index_type_strict"
+ "unsafeName": "aspect_ratio916",
+ "safeName": "aspect_ratio916"
},
"screamingSnakeCase": {
- "unsafeName": "INDEX_TYPE_STRICT",
- "safeName": "INDEX_TYPE_STRICT"
+ "unsafeName": "ASPECT_RATIO916",
+ "safeName": "ASPECT_RATIO916"
},
"pascalCase": {
- "unsafeName": "IndexTypeStrict",
- "safeName": "IndexTypeStrict"
+ "unsafeName": "AspectRatio916",
+ "safeName": "AspectRatio916"
}
},
- "wireValue": "INDEX_TYPE_STRICT"
+ "wireValue": "ASPECT_RATIO_9_16"
+ },
+ {
+ "name": {
+ "originalName": "ASPECT_RATIO_4_3",
+ "camelCase": {
+ "unsafeName": "aspectRatio43",
+ "safeName": "aspectRatio43"
+ },
+ "snakeCase": {
+ "unsafeName": "aspect_ratio43",
+ "safeName": "aspect_ratio43"
+ },
+ "screamingSnakeCase": {
+ "unsafeName": "ASPECT_RATIO43",
+ "safeName": "ASPECT_RATIO43"
+ },
+ "pascalCase": {
+ "unsafeName": "AspectRatio43",
+ "safeName": "AspectRatio43"
+ }
+ },
+ "wireValue": "ASPECT_RATIO_4_3"
}
]
},
@@ -870,6 +876,103 @@
}
]
},
+ "type_:IndexType": {
+ "type": "enum",
+ "declaration": {
+ "name": {
+ "originalName": "IndexType",
+ "camelCase": {
+ "unsafeName": "indexType",
+ "safeName": "indexType"
+ },
+ "snakeCase": {
+ "unsafeName": "index_type",
+ "safeName": "index_type"
+ },
+ "screamingSnakeCase": {
+ "unsafeName": "INDEX_TYPE",
+ "safeName": "INDEX_TYPE"
+ },
+ "pascalCase": {
+ "unsafeName": "IndexType",
+ "safeName": "IndexType"
+ }
+ },
+ "fernFilepath": {
+ "allParts": [],
+ "packagePath": [],
+ "file": null
+ }
+ },
+ "values": [
+ {
+ "name": {
+ "originalName": "INDEX_TYPE_INVALID",
+ "camelCase": {
+ "unsafeName": "indexTypeInvalid",
+ "safeName": "indexTypeInvalid"
+ },
+ "snakeCase": {
+ "unsafeName": "index_type_invalid",
+ "safeName": "index_type_invalid"
+ },
+ "screamingSnakeCase": {
+ "unsafeName": "INDEX_TYPE_INVALID",
+ "safeName": "INDEX_TYPE_INVALID"
+ },
+ "pascalCase": {
+ "unsafeName": "IndexTypeInvalid",
+ "safeName": "IndexTypeInvalid"
+ }
+ },
+ "wireValue": "INDEX_TYPE_INVALID"
+ },
+ {
+ "name": {
+ "originalName": "INDEX_TYPE_DEFAULT",
+ "camelCase": {
+ "unsafeName": "indexTypeDefault",
+ "safeName": "indexTypeDefault"
+ },
+ "snakeCase": {
+ "unsafeName": "index_type_default",
+ "safeName": "index_type_default"
+ },
+ "screamingSnakeCase": {
+ "unsafeName": "INDEX_TYPE_DEFAULT",
+ "safeName": "INDEX_TYPE_DEFAULT"
+ },
+ "pascalCase": {
+ "unsafeName": "IndexTypeDefault",
+ "safeName": "IndexTypeDefault"
+ }
+ },
+ "wireValue": "INDEX_TYPE_DEFAULT"
+ },
+ {
+ "name": {
+ "originalName": "INDEX_TYPE_STRICT",
+ "camelCase": {
+ "unsafeName": "indexTypeStrict",
+ "safeName": "indexTypeStrict"
+ },
+ "snakeCase": {
+ "unsafeName": "index_type_strict",
+ "safeName": "index_type_strict"
+ },
+ "screamingSnakeCase": {
+ "unsafeName": "INDEX_TYPE_STRICT",
+ "safeName": "INDEX_TYPE_STRICT"
+ },
+ "pascalCase": {
+ "unsafeName": "IndexTypeStrict",
+ "safeName": "IndexTypeStrict"
+ }
+ },
+ "wireValue": "INDEX_TYPE_STRICT"
+ }
+ ]
+ },
"type_:IndexedData": {
"type": "object",
"declaration": {
@@ -2093,7 +2196,7 @@
"type": "optional",
"value": {
"type": "named",
- "value": "type_dataservice:IndexType"
+ "value": "type_:IndexType"
}
},
"propertyAccess": null,
@@ -2161,7 +2264,7 @@
"type": "list",
"value": {
"type": "named",
- "value": "type_dataservice:IndexType"
+ "value": "type_:IndexType"
}
}
},
@@ -2441,91 +2544,11 @@
},
"headers": [],
"endpoints": {
- "endpoint_dataservice.foo": {
+ "endpoint_dataService.Upload": {
"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"
- },
- "examples": null
- },
- "endpoint_dataservice.upload": {
- "auth": null,
- "declaration": {
- "name": {
- "originalName": "upload",
+ "originalName": "Upload",
"camelCase": {
"unsafeName": "upload",
"safeName": "upload"
@@ -2546,43 +2569,43 @@
"fernFilepath": {
"allParts": [
{
- "originalName": "dataservice",
+ "originalName": "dataService",
"camelCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "dataService",
+ "safeName": "dataService"
},
"snakeCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "data_service",
+ "safeName": "data_service"
},
"screamingSnakeCase": {
- "unsafeName": "DATASERVICE",
- "safeName": "DATASERVICE"
+ "unsafeName": "DATA_SERVICE",
+ "safeName": "DATA_SERVICE"
},
"pascalCase": {
- "unsafeName": "Dataservice",
- "safeName": "Dataservice"
+ "unsafeName": "DataService",
+ "safeName": "DataService"
}
}
],
"packagePath": [],
"file": {
- "originalName": "dataservice",
+ "originalName": "dataService",
"camelCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "dataService",
+ "safeName": "dataService"
},
"snakeCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "data_service",
+ "safeName": "data_service"
},
"screamingSnakeCase": {
- "unsafeName": "DATASERVICE",
- "safeName": "DATASERVICE"
+ "unsafeName": "DATA_SERVICE",
+ "safeName": "DATA_SERVICE"
},
"pascalCase": {
- "unsafeName": "Dataservice",
- "safeName": "Dataservice"
+ "unsafeName": "DataService",
+ "safeName": "DataService"
}
}
}
@@ -2616,43 +2639,43 @@
"fernFilepath": {
"allParts": [
{
- "originalName": "dataservice",
+ "originalName": "dataService",
"camelCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "dataService",
+ "safeName": "dataService"
},
"snakeCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "data_service",
+ "safeName": "data_service"
},
"screamingSnakeCase": {
- "unsafeName": "DATASERVICE",
- "safeName": "DATASERVICE"
+ "unsafeName": "DATA_SERVICE",
+ "safeName": "DATA_SERVICE"
},
"pascalCase": {
- "unsafeName": "Dataservice",
- "safeName": "Dataservice"
+ "unsafeName": "DataService",
+ "safeName": "DataService"
}
}
],
"packagePath": [],
"file": {
- "originalName": "dataservice",
+ "originalName": "dataService",
"camelCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "dataService",
+ "safeName": "dataService"
},
"snakeCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "data_service",
+ "safeName": "data_service"
},
"screamingSnakeCase": {
- "unsafeName": "DATASERVICE",
- "safeName": "DATASERVICE"
+ "unsafeName": "DATA_SERVICE",
+ "safeName": "DATA_SERVICE"
},
"pascalCase": {
- "unsafeName": "Dataservice",
- "safeName": "Dataservice"
+ "unsafeName": "DataService",
+ "safeName": "DataService"
}
}
}
@@ -2741,11 +2764,11 @@
},
"examples": null
},
- "endpoint_dataservice.delete": {
+ "endpoint_dataService.Delete": {
"auth": null,
"declaration": {
"name": {
- "originalName": "delete",
+ "originalName": "Delete",
"camelCase": {
"unsafeName": "delete",
"safeName": "delete"
@@ -2766,43 +2789,43 @@
"fernFilepath": {
"allParts": [
{
- "originalName": "dataservice",
+ "originalName": "dataService",
"camelCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "dataService",
+ "safeName": "dataService"
},
"snakeCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "data_service",
+ "safeName": "data_service"
},
"screamingSnakeCase": {
- "unsafeName": "DATASERVICE",
- "safeName": "DATASERVICE"
+ "unsafeName": "DATA_SERVICE",
+ "safeName": "DATA_SERVICE"
},
"pascalCase": {
- "unsafeName": "Dataservice",
- "safeName": "Dataservice"
+ "unsafeName": "DataService",
+ "safeName": "DataService"
}
}
],
"packagePath": [],
"file": {
- "originalName": "dataservice",
+ "originalName": "dataService",
"camelCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "dataService",
+ "safeName": "dataService"
},
"snakeCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "data_service",
+ "safeName": "data_service"
},
"screamingSnakeCase": {
- "unsafeName": "DATASERVICE",
- "safeName": "DATASERVICE"
+ "unsafeName": "DATA_SERVICE",
+ "safeName": "DATA_SERVICE"
},
"pascalCase": {
- "unsafeName": "Dataservice",
- "safeName": "Dataservice"
+ "unsafeName": "DataService",
+ "safeName": "DataService"
}
}
}
@@ -2836,43 +2859,43 @@
"fernFilepath": {
"allParts": [
{
- "originalName": "dataservice",
+ "originalName": "dataService",
"camelCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "dataService",
+ "safeName": "dataService"
},
"snakeCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "data_service",
+ "safeName": "data_service"
},
"screamingSnakeCase": {
- "unsafeName": "DATASERVICE",
- "safeName": "DATASERVICE"
+ "unsafeName": "DATA_SERVICE",
+ "safeName": "DATA_SERVICE"
},
"pascalCase": {
- "unsafeName": "Dataservice",
- "safeName": "Dataservice"
+ "unsafeName": "DataService",
+ "safeName": "DataService"
}
}
],
"packagePath": [],
"file": {
- "originalName": "dataservice",
+ "originalName": "dataService",
"camelCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "dataService",
+ "safeName": "dataService"
},
"snakeCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "data_service",
+ "safeName": "data_service"
},
"screamingSnakeCase": {
- "unsafeName": "DATASERVICE",
- "safeName": "DATASERVICE"
+ "unsafeName": "DATA_SERVICE",
+ "safeName": "DATA_SERVICE"
},
"pascalCase": {
- "unsafeName": "Dataservice",
- "safeName": "Dataservice"
+ "unsafeName": "DataService",
+ "safeName": "DataService"
}
}
}
@@ -3030,11 +3053,11 @@
},
"examples": null
},
- "endpoint_dataservice.describe": {
+ "endpoint_dataService.Describe": {
"auth": null,
"declaration": {
"name": {
- "originalName": "describe",
+ "originalName": "Describe",
"camelCase": {
"unsafeName": "describe",
"safeName": "describe"
@@ -3055,43 +3078,43 @@
"fernFilepath": {
"allParts": [
{
- "originalName": "dataservice",
+ "originalName": "dataService",
"camelCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "dataService",
+ "safeName": "dataService"
},
"snakeCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "data_service",
+ "safeName": "data_service"
},
"screamingSnakeCase": {
- "unsafeName": "DATASERVICE",
- "safeName": "DATASERVICE"
+ "unsafeName": "DATA_SERVICE",
+ "safeName": "DATA_SERVICE"
},
"pascalCase": {
- "unsafeName": "Dataservice",
- "safeName": "Dataservice"
+ "unsafeName": "DataService",
+ "safeName": "DataService"
}
}
],
"packagePath": [],
"file": {
- "originalName": "dataservice",
+ "originalName": "dataService",
"camelCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "dataService",
+ "safeName": "dataService"
},
"snakeCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "data_service",
+ "safeName": "data_service"
},
"screamingSnakeCase": {
- "unsafeName": "DATASERVICE",
- "safeName": "DATASERVICE"
+ "unsafeName": "DATA_SERVICE",
+ "safeName": "DATA_SERVICE"
},
"pascalCase": {
- "unsafeName": "Dataservice",
- "safeName": "Dataservice"
+ "unsafeName": "DataService",
+ "safeName": "DataService"
}
}
}
@@ -3125,43 +3148,43 @@
"fernFilepath": {
"allParts": [
{
- "originalName": "dataservice",
+ "originalName": "dataService",
"camelCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "dataService",
+ "safeName": "dataService"
},
"snakeCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "data_service",
+ "safeName": "data_service"
},
"screamingSnakeCase": {
- "unsafeName": "DATASERVICE",
- "safeName": "DATASERVICE"
+ "unsafeName": "DATA_SERVICE",
+ "safeName": "DATA_SERVICE"
},
"pascalCase": {
- "unsafeName": "Dataservice",
- "safeName": "Dataservice"
+ "unsafeName": "DataService",
+ "safeName": "DataService"
}
}
],
"packagePath": [],
"file": {
- "originalName": "dataservice",
+ "originalName": "dataService",
"camelCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "dataService",
+ "safeName": "dataService"
},
"snakeCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "data_service",
+ "safeName": "data_service"
},
"screamingSnakeCase": {
- "unsafeName": "DATASERVICE",
- "safeName": "DATASERVICE"
+ "unsafeName": "DATA_SERVICE",
+ "safeName": "DATA_SERVICE"
},
"pascalCase": {
- "unsafeName": "Dataservice",
- "safeName": "Dataservice"
+ "unsafeName": "DataService",
+ "safeName": "DataService"
}
}
}
@@ -3250,11 +3273,11 @@
},
"examples": null
},
- "endpoint_dataservice.fetch": {
+ "endpoint_dataService.Fetch": {
"auth": null,
"declaration": {
"name": {
- "originalName": "fetch",
+ "originalName": "Fetch",
"camelCase": {
"unsafeName": "fetch",
"safeName": "fetch"
@@ -3275,43 +3298,43 @@
"fernFilepath": {
"allParts": [
{
- "originalName": "dataservice",
+ "originalName": "dataService",
"camelCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "dataService",
+ "safeName": "dataService"
},
"snakeCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "data_service",
+ "safeName": "data_service"
},
"screamingSnakeCase": {
- "unsafeName": "DATASERVICE",
- "safeName": "DATASERVICE"
+ "unsafeName": "DATA_SERVICE",
+ "safeName": "DATA_SERVICE"
},
"pascalCase": {
- "unsafeName": "Dataservice",
- "safeName": "Dataservice"
+ "unsafeName": "DataService",
+ "safeName": "DataService"
}
}
],
"packagePath": [],
"file": {
- "originalName": "dataservice",
+ "originalName": "dataService",
"camelCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "dataService",
+ "safeName": "dataService"
},
"snakeCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "data_service",
+ "safeName": "data_service"
},
"screamingSnakeCase": {
- "unsafeName": "DATASERVICE",
- "safeName": "DATASERVICE"
+ "unsafeName": "DATA_SERVICE",
+ "safeName": "DATA_SERVICE"
},
"pascalCase": {
- "unsafeName": "Dataservice",
- "safeName": "Dataservice"
+ "unsafeName": "DataService",
+ "safeName": "DataService"
}
}
}
@@ -3345,43 +3368,43 @@
"fernFilepath": {
"allParts": [
{
- "originalName": "dataservice",
+ "originalName": "dataService",
"camelCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "dataService",
+ "safeName": "dataService"
},
"snakeCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "data_service",
+ "safeName": "data_service"
},
"screamingSnakeCase": {
- "unsafeName": "DATASERVICE",
- "safeName": "DATASERVICE"
+ "unsafeName": "DATA_SERVICE",
+ "safeName": "DATA_SERVICE"
},
"pascalCase": {
- "unsafeName": "Dataservice",
- "safeName": "Dataservice"
+ "unsafeName": "DataService",
+ "safeName": "DataService"
}
}
],
"packagePath": [],
"file": {
- "originalName": "dataservice",
+ "originalName": "dataService",
"camelCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "dataService",
+ "safeName": "dataService"
},
"snakeCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "data_service",
+ "safeName": "data_service"
},
"screamingSnakeCase": {
- "unsafeName": "DATASERVICE",
- "safeName": "DATASERVICE"
+ "unsafeName": "DATA_SERVICE",
+ "safeName": "DATA_SERVICE"
},
"pascalCase": {
- "unsafeName": "Dataservice",
- "safeName": "Dataservice"
+ "unsafeName": "DataService",
+ "safeName": "DataService"
}
}
}
@@ -3470,11 +3493,11 @@
},
"examples": null
},
- "endpoint_dataservice.list": {
+ "endpoint_dataService.List": {
"auth": null,
"declaration": {
"name": {
- "originalName": "list",
+ "originalName": "List",
"camelCase": {
"unsafeName": "list",
"safeName": "list"
@@ -3495,43 +3518,43 @@
"fernFilepath": {
"allParts": [
{
- "originalName": "dataservice",
+ "originalName": "dataService",
"camelCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "dataService",
+ "safeName": "dataService"
},
"snakeCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "data_service",
+ "safeName": "data_service"
},
"screamingSnakeCase": {
- "unsafeName": "DATASERVICE",
- "safeName": "DATASERVICE"
+ "unsafeName": "DATA_SERVICE",
+ "safeName": "DATA_SERVICE"
},
"pascalCase": {
- "unsafeName": "Dataservice",
- "safeName": "Dataservice"
+ "unsafeName": "DataService",
+ "safeName": "DataService"
}
}
],
"packagePath": [],
"file": {
- "originalName": "dataservice",
+ "originalName": "dataService",
"camelCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "dataService",
+ "safeName": "dataService"
},
"snakeCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "data_service",
+ "safeName": "data_service"
},
"screamingSnakeCase": {
- "unsafeName": "DATASERVICE",
- "safeName": "DATASERVICE"
+ "unsafeName": "DATA_SERVICE",
+ "safeName": "DATA_SERVICE"
},
"pascalCase": {
- "unsafeName": "Dataservice",
- "safeName": "Dataservice"
+ "unsafeName": "DataService",
+ "safeName": "DataService"
}
}
}
@@ -3565,43 +3588,43 @@
"fernFilepath": {
"allParts": [
{
- "originalName": "dataservice",
+ "originalName": "dataService",
"camelCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "dataService",
+ "safeName": "dataService"
},
"snakeCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "data_service",
+ "safeName": "data_service"
},
"screamingSnakeCase": {
- "unsafeName": "DATASERVICE",
- "safeName": "DATASERVICE"
+ "unsafeName": "DATA_SERVICE",
+ "safeName": "DATA_SERVICE"
},
"pascalCase": {
- "unsafeName": "Dataservice",
- "safeName": "Dataservice"
+ "unsafeName": "DataService",
+ "safeName": "DataService"
}
}
],
"packagePath": [],
"file": {
- "originalName": "dataservice",
+ "originalName": "dataService",
"camelCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "dataService",
+ "safeName": "dataService"
},
"snakeCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "data_service",
+ "safeName": "data_service"
},
"screamingSnakeCase": {
- "unsafeName": "DATASERVICE",
- "safeName": "DATASERVICE"
+ "unsafeName": "DATA_SERVICE",
+ "safeName": "DATA_SERVICE"
},
"pascalCase": {
- "unsafeName": "Dataservice",
- "safeName": "Dataservice"
+ "unsafeName": "DataService",
+ "safeName": "DataService"
}
}
}
@@ -3753,11 +3776,11 @@
},
"examples": null
},
- "endpoint_dataservice.query": {
+ "endpoint_dataService.Query": {
"auth": null,
"declaration": {
"name": {
- "originalName": "query",
+ "originalName": "Query",
"camelCase": {
"unsafeName": "query",
"safeName": "query"
@@ -3778,43 +3801,43 @@
"fernFilepath": {
"allParts": [
{
- "originalName": "dataservice",
+ "originalName": "dataService",
"camelCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "dataService",
+ "safeName": "dataService"
},
"snakeCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "data_service",
+ "safeName": "data_service"
},
"screamingSnakeCase": {
- "unsafeName": "DATASERVICE",
- "safeName": "DATASERVICE"
+ "unsafeName": "DATA_SERVICE",
+ "safeName": "DATA_SERVICE"
},
"pascalCase": {
- "unsafeName": "Dataservice",
- "safeName": "Dataservice"
+ "unsafeName": "DataService",
+ "safeName": "DataService"
}
}
],
"packagePath": [],
"file": {
- "originalName": "dataservice",
+ "originalName": "dataService",
"camelCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "dataService",
+ "safeName": "dataService"
},
"snakeCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "data_service",
+ "safeName": "data_service"
},
"screamingSnakeCase": {
- "unsafeName": "DATASERVICE",
- "safeName": "DATASERVICE"
+ "unsafeName": "DATA_SERVICE",
+ "safeName": "DATA_SERVICE"
},
"pascalCase": {
- "unsafeName": "Dataservice",
- "safeName": "Dataservice"
+ "unsafeName": "DataService",
+ "safeName": "DataService"
}
}
}
@@ -3848,43 +3871,43 @@
"fernFilepath": {
"allParts": [
{
- "originalName": "dataservice",
+ "originalName": "dataService",
"camelCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "dataService",
+ "safeName": "dataService"
},
"snakeCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "data_service",
+ "safeName": "data_service"
},
"screamingSnakeCase": {
- "unsafeName": "DATASERVICE",
- "safeName": "DATASERVICE"
+ "unsafeName": "DATA_SERVICE",
+ "safeName": "DATA_SERVICE"
},
"pascalCase": {
- "unsafeName": "Dataservice",
- "safeName": "Dataservice"
+ "unsafeName": "DataService",
+ "safeName": "DataService"
}
}
],
"packagePath": [],
"file": {
- "originalName": "dataservice",
+ "originalName": "dataService",
"camelCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "dataService",
+ "safeName": "dataService"
},
"snakeCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "data_service",
+ "safeName": "data_service"
},
"screamingSnakeCase": {
- "unsafeName": "DATASERVICE",
- "safeName": "DATASERVICE"
+ "unsafeName": "DATA_SERVICE",
+ "safeName": "DATA_SERVICE"
},
"pascalCase": {
- "unsafeName": "Dataservice",
- "safeName": "Dataservice"
+ "unsafeName": "DataService",
+ "safeName": "DataService"
}
}
}
@@ -4207,11 +4230,11 @@
},
"examples": null
},
- "endpoint_dataservice.update": {
+ "endpoint_dataService.Update": {
"auth": null,
"declaration": {
"name": {
- "originalName": "update",
+ "originalName": "Update",
"camelCase": {
"unsafeName": "update",
"safeName": "update"
@@ -4232,43 +4255,43 @@
"fernFilepath": {
"allParts": [
{
- "originalName": "dataservice",
+ "originalName": "dataService",
"camelCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "dataService",
+ "safeName": "dataService"
},
"snakeCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "data_service",
+ "safeName": "data_service"
},
"screamingSnakeCase": {
- "unsafeName": "DATASERVICE",
- "safeName": "DATASERVICE"
+ "unsafeName": "DATA_SERVICE",
+ "safeName": "DATA_SERVICE"
},
"pascalCase": {
- "unsafeName": "Dataservice",
- "safeName": "Dataservice"
+ "unsafeName": "DataService",
+ "safeName": "DataService"
}
}
],
"packagePath": [],
"file": {
- "originalName": "dataservice",
+ "originalName": "dataService",
"camelCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "dataService",
+ "safeName": "dataService"
},
"snakeCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "data_service",
+ "safeName": "data_service"
},
"screamingSnakeCase": {
- "unsafeName": "DATASERVICE",
- "safeName": "DATASERVICE"
+ "unsafeName": "DATA_SERVICE",
+ "safeName": "DATA_SERVICE"
},
"pascalCase": {
- "unsafeName": "Dataservice",
- "safeName": "Dataservice"
+ "unsafeName": "DataService",
+ "safeName": "DataService"
}
}
}
@@ -4302,43 +4325,43 @@
"fernFilepath": {
"allParts": [
{
- "originalName": "dataservice",
+ "originalName": "dataService",
"camelCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "dataService",
+ "safeName": "dataService"
},
"snakeCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "data_service",
+ "safeName": "data_service"
},
"screamingSnakeCase": {
- "unsafeName": "DATASERVICE",
- "safeName": "DATASERVICE"
+ "unsafeName": "DATA_SERVICE",
+ "safeName": "DATA_SERVICE"
},
"pascalCase": {
- "unsafeName": "Dataservice",
- "safeName": "Dataservice"
+ "unsafeName": "DataService",
+ "safeName": "DataService"
}
}
],
"packagePath": [],
"file": {
- "originalName": "dataservice",
+ "originalName": "dataService",
"camelCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "dataService",
+ "safeName": "dataService"
},
"snakeCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "data_service",
+ "safeName": "data_service"
},
"screamingSnakeCase": {
- "unsafeName": "DATASERVICE",
- "safeName": "DATASERVICE"
+ "unsafeName": "DATA_SERVICE",
+ "safeName": "DATA_SERVICE"
},
"pascalCase": {
- "unsafeName": "Dataservice",
- "safeName": "Dataservice"
+ "unsafeName": "DataService",
+ "safeName": "DataService"
}
}
}
@@ -4541,7 +4564,7 @@
"type": "optional",
"value": {
"type": "named",
- "value": "type_dataservice:IndexType"
+ "value": "type_:IndexType"
}
},
"propertyAccess": null,
@@ -4609,12 +4632,45 @@
"type": "list",
"value": {
"type": "named",
- "value": "type_dataservice:IndexType"
+ "value": "type_:IndexType"
}
}
},
"propertyAccess": null,
"variable": null
+ },
+ {
+ "name": {
+ "name": {
+ "originalName": "aspect_ratio",
+ "camelCase": {
+ "unsafeName": "aspectRatio",
+ "safeName": "aspectRatio"
+ },
+ "snakeCase": {
+ "unsafeName": "aspect_ratio",
+ "safeName": "aspect_ratio"
+ },
+ "screamingSnakeCase": {
+ "unsafeName": "ASPECT_RATIO",
+ "safeName": "ASPECT_RATIO"
+ },
+ "pascalCase": {
+ "unsafeName": "AspectRatio",
+ "safeName": "AspectRatio"
+ }
+ },
+ "wireValue": "aspect_ratio"
+ },
+ "typeReference": {
+ "type": "optional",
+ "value": {
+ "type": "named",
+ "value": "type_:AspectRatio"
+ }
+ },
+ "propertyAccess": null,
+ "variable": null
}
]
},
@@ -4627,6 +4683,48 @@
"type": "json"
},
"examples": null
+ },
+ "endpoint_.postFoo": {
+ "auth": null,
+ "declaration": {
+ "name": {
+ "originalName": "postFoo",
+ "camelCase": {
+ "unsafeName": "postFoo",
+ "safeName": "postFoo"
+ },
+ "snakeCase": {
+ "unsafeName": "post_foo",
+ "safeName": "post_foo"
+ },
+ "screamingSnakeCase": {
+ "unsafeName": "POST_FOO",
+ "safeName": "POST_FOO"
+ },
+ "pascalCase": {
+ "unsafeName": "PostFoo",
+ "safeName": "PostFoo"
+ }
+ },
+ "fernFilepath": {
+ "allParts": [],
+ "packagePath": [],
+ "file": null
+ }
+ },
+ "location": {
+ "method": "POST",
+ "path": "/foo"
+ },
+ "request": {
+ "type": "body",
+ "pathParameters": [],
+ "body": null
+ },
+ "response": {
+ "type": "json"
+ },
+ "examples": null
}
},
"pathParameters": [],
diff --git a/packages/cli/generation/ir-generator-tests/src/dynamic-snippets/__test__/test-definitions/csharp-grpc-proto.json b/packages/cli/generation/ir-generator-tests/src/dynamic-snippets/__test__/test-definitions/csharp-grpc-proto.json
index 92a0f9d26f16..d3558e997818 100644
--- a/packages/cli/generation/ir-generator-tests/src/dynamic-snippets/__test__/test-definitions/csharp-grpc-proto.json
+++ b/packages/cli/generation/ir-generator-tests/src/dynamic-snippets/__test__/test-definitions/csharp-grpc-proto.json
@@ -363,11 +363,11 @@
},
"headers": [],
"endpoints": {
- "endpoint_userservice.create": {
+ "endpoint_userService.Create": {
"auth": null,
"declaration": {
"name": {
- "originalName": "create",
+ "originalName": "Create",
"camelCase": {
"unsafeName": "create",
"safeName": "create"
@@ -388,43 +388,43 @@
"fernFilepath": {
"allParts": [
{
- "originalName": "userservice",
+ "originalName": "userService",
"camelCase": {
- "unsafeName": "userservice",
- "safeName": "userservice"
+ "unsafeName": "userService",
+ "safeName": "userService"
},
"snakeCase": {
- "unsafeName": "userservice",
- "safeName": "userservice"
+ "unsafeName": "user_service",
+ "safeName": "user_service"
},
"screamingSnakeCase": {
- "unsafeName": "USERSERVICE",
- "safeName": "USERSERVICE"
+ "unsafeName": "USER_SERVICE",
+ "safeName": "USER_SERVICE"
},
"pascalCase": {
- "unsafeName": "Userservice",
- "safeName": "Userservice"
+ "unsafeName": "UserService",
+ "safeName": "UserService"
}
}
],
"packagePath": [],
"file": {
- "originalName": "userservice",
+ "originalName": "userService",
"camelCase": {
- "unsafeName": "userservice",
- "safeName": "userservice"
+ "unsafeName": "userService",
+ "safeName": "userService"
},
"snakeCase": {
- "unsafeName": "userservice",
- "safeName": "userservice"
+ "unsafeName": "user_service",
+ "safeName": "user_service"
},
"screamingSnakeCase": {
- "unsafeName": "USERSERVICE",
- "safeName": "USERSERVICE"
+ "unsafeName": "USER_SERVICE",
+ "safeName": "USER_SERVICE"
},
"pascalCase": {
- "unsafeName": "Userservice",
- "safeName": "Userservice"
+ "unsafeName": "UserService",
+ "safeName": "UserService"
}
}
}
@@ -458,43 +458,43 @@
"fernFilepath": {
"allParts": [
{
- "originalName": "userservice",
+ "originalName": "userService",
"camelCase": {
- "unsafeName": "userservice",
- "safeName": "userservice"
+ "unsafeName": "userService",
+ "safeName": "userService"
},
"snakeCase": {
- "unsafeName": "userservice",
- "safeName": "userservice"
+ "unsafeName": "user_service",
+ "safeName": "user_service"
},
"screamingSnakeCase": {
- "unsafeName": "USERSERVICE",
- "safeName": "USERSERVICE"
+ "unsafeName": "USER_SERVICE",
+ "safeName": "USER_SERVICE"
},
"pascalCase": {
- "unsafeName": "Userservice",
- "safeName": "Userservice"
+ "unsafeName": "UserService",
+ "safeName": "UserService"
}
}
],
"packagePath": [],
"file": {
- "originalName": "userservice",
+ "originalName": "userService",
"camelCase": {
- "unsafeName": "userservice",
- "safeName": "userservice"
+ "unsafeName": "userService",
+ "safeName": "userService"
},
"snakeCase": {
- "unsafeName": "userservice",
- "safeName": "userservice"
+ "unsafeName": "user_service",
+ "safeName": "user_service"
},
"screamingSnakeCase": {
- "unsafeName": "USERSERVICE",
- "safeName": "USERSERVICE"
+ "unsafeName": "USER_SERVICE",
+ "safeName": "USER_SERVICE"
},
"pascalCase": {
- "unsafeName": "Userservice",
- "safeName": "Userservice"
+ "unsafeName": "UserService",
+ "safeName": "UserService"
}
}
}
diff --git a/packages/cli/generation/ir-generator-tests/src/ir/__test__/test-definitions/csharp-grpc-proto-exhaustive.json b/packages/cli/generation/ir-generator-tests/src/ir/__test__/test-definitions/csharp-grpc-proto-exhaustive.json
index 9a302eeee5cd..6281fc62b896 100644
--- a/packages/cli/generation/ir-generator-tests/src/ir/__test__/test-definitions/csharp-grpc-proto-exhaustive.json
+++ b/packages/cli/generation/ir-generator-tests/src/ir/__test__/test-definitions/csharp-grpc-proto-exhaustive.json
@@ -31,73 +31,35 @@
"headers": [],
"idempotencyHeaders": [],
"types": {
- "type_dataservice:IndexType": {
+ "type_:AspectRatio": {
"inline": null,
"name": {
"name": {
- "originalName": "IndexType",
+ "originalName": "AspectRatio",
"camelCase": {
- "unsafeName": "indexType",
- "safeName": "indexType"
+ "unsafeName": "aspectRatio",
+ "safeName": "aspectRatio"
},
"snakeCase": {
- "unsafeName": "index_type",
- "safeName": "index_type"
+ "unsafeName": "aspect_ratio",
+ "safeName": "aspect_ratio"
},
"screamingSnakeCase": {
- "unsafeName": "INDEX_TYPE",
- "safeName": "INDEX_TYPE"
+ "unsafeName": "ASPECT_RATIO",
+ "safeName": "ASPECT_RATIO"
},
"pascalCase": {
- "unsafeName": "IndexType",
- "safeName": "IndexType"
+ "unsafeName": "AspectRatio",
+ "safeName": "AspectRatio"
}
},
"fernFilepath": {
- "allParts": [
- {
- "originalName": "dataservice",
- "camelCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
- },
- "snakeCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
- },
- "screamingSnakeCase": {
- "unsafeName": "DATASERVICE",
- "safeName": "DATASERVICE"
- },
- "pascalCase": {
- "unsafeName": "Dataservice",
- "safeName": "Dataservice"
- }
- }
- ],
+ "allParts": [],
"packagePath": [],
- "file": {
- "originalName": "dataservice",
- "camelCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
- },
- "snakeCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
- },
- "screamingSnakeCase": {
- "unsafeName": "DATASERVICE",
- "safeName": "DATASERVICE"
- },
- "pascalCase": {
- "unsafeName": "Dataservice",
- "safeName": "Dataservice"
- }
- }
+ "file": null
},
"displayName": null,
- "typeId": "type_dataservice:IndexType"
+ "typeId": "type_:AspectRatio"
},
"shape": {
"_type": "enum",
@@ -106,25 +68,25 @@
{
"name": {
"name": {
- "originalName": "INDEX_TYPE_INVALID",
+ "originalName": "ASPECT_RATIO_UNSPECIFIED",
"camelCase": {
- "unsafeName": "indexTypeInvalid",
- "safeName": "indexTypeInvalid"
+ "unsafeName": "aspectRatioUnspecified",
+ "safeName": "aspectRatioUnspecified"
},
"snakeCase": {
- "unsafeName": "index_type_invalid",
- "safeName": "index_type_invalid"
+ "unsafeName": "aspect_ratio_unspecified",
+ "safeName": "aspect_ratio_unspecified"
},
"screamingSnakeCase": {
- "unsafeName": "INDEX_TYPE_INVALID",
- "safeName": "INDEX_TYPE_INVALID"
+ "unsafeName": "ASPECT_RATIO_UNSPECIFIED",
+ "safeName": "ASPECT_RATIO_UNSPECIFIED"
},
"pascalCase": {
- "unsafeName": "IndexTypeInvalid",
- "safeName": "IndexTypeInvalid"
+ "unsafeName": "AspectRatioUnspecified",
+ "safeName": "AspectRatioUnspecified"
}
},
- "wireValue": "INDEX_TYPE_INVALID"
+ "wireValue": "ASPECT_RATIO_UNSPECIFIED"
},
"availability": null,
"docs": null
@@ -132,25 +94,25 @@
{
"name": {
"name": {
- "originalName": "INDEX_TYPE_DEFAULT",
+ "originalName": "ASPECT_RATIO_1_1",
"camelCase": {
- "unsafeName": "indexTypeDefault",
- "safeName": "indexTypeDefault"
+ "unsafeName": "aspectRatio11",
+ "safeName": "aspectRatio11"
},
"snakeCase": {
- "unsafeName": "index_type_default",
- "safeName": "index_type_default"
+ "unsafeName": "aspect_ratio11",
+ "safeName": "aspect_ratio11"
},
"screamingSnakeCase": {
- "unsafeName": "INDEX_TYPE_DEFAULT",
- "safeName": "INDEX_TYPE_DEFAULT"
+ "unsafeName": "ASPECT_RATIO11",
+ "safeName": "ASPECT_RATIO11"
},
"pascalCase": {
- "unsafeName": "IndexTypeDefault",
- "safeName": "IndexTypeDefault"
+ "unsafeName": "AspectRatio11",
+ "safeName": "AspectRatio11"
}
},
- "wireValue": "INDEX_TYPE_DEFAULT"
+ "wireValue": "ASPECT_RATIO_1_1"
},
"availability": null,
"docs": null
@@ -158,25 +120,77 @@
{
"name": {
"name": {
- "originalName": "INDEX_TYPE_STRICT",
+ "originalName": "ASPECT_RATIO_16_9",
"camelCase": {
- "unsafeName": "indexTypeStrict",
- "safeName": "indexTypeStrict"
+ "unsafeName": "aspectRatio169",
+ "safeName": "aspectRatio169"
},
"snakeCase": {
- "unsafeName": "index_type_strict",
- "safeName": "index_type_strict"
+ "unsafeName": "aspect_ratio169",
+ "safeName": "aspect_ratio169"
},
"screamingSnakeCase": {
- "unsafeName": "INDEX_TYPE_STRICT",
- "safeName": "INDEX_TYPE_STRICT"
+ "unsafeName": "ASPECT_RATIO169",
+ "safeName": "ASPECT_RATIO169"
},
"pascalCase": {
- "unsafeName": "IndexTypeStrict",
- "safeName": "IndexTypeStrict"
+ "unsafeName": "AspectRatio169",
+ "safeName": "AspectRatio169"
}
},
- "wireValue": "INDEX_TYPE_STRICT"
+ "wireValue": "ASPECT_RATIO_16_9"
+ },
+ "availability": null,
+ "docs": null
+ },
+ {
+ "name": {
+ "name": {
+ "originalName": "ASPECT_RATIO_9_16",
+ "camelCase": {
+ "unsafeName": "aspectRatio916",
+ "safeName": "aspectRatio916"
+ },
+ "snakeCase": {
+ "unsafeName": "aspect_ratio916",
+ "safeName": "aspect_ratio916"
+ },
+ "screamingSnakeCase": {
+ "unsafeName": "ASPECT_RATIO916",
+ "safeName": "ASPECT_RATIO916"
+ },
+ "pascalCase": {
+ "unsafeName": "AspectRatio916",
+ "safeName": "AspectRatio916"
+ }
+ },
+ "wireValue": "ASPECT_RATIO_9_16"
+ },
+ "availability": null,
+ "docs": null
+ },
+ {
+ "name": {
+ "name": {
+ "originalName": "ASPECT_RATIO_4_3",
+ "camelCase": {
+ "unsafeName": "aspectRatio43",
+ "safeName": "aspectRatio43"
+ },
+ "snakeCase": {
+ "unsafeName": "aspect_ratio43",
+ "safeName": "aspect_ratio43"
+ },
+ "screamingSnakeCase": {
+ "unsafeName": "ASPECT_RATIO43",
+ "safeName": "ASPECT_RATIO43"
+ },
+ "pascalCase": {
+ "unsafeName": "AspectRatio43",
+ "safeName": "AspectRatio43"
+ }
+ },
+ "wireValue": "ASPECT_RATIO_4_3"
},
"availability": null,
"docs": null
@@ -203,22 +217,22 @@
}
},
"name": {
- "originalName": "IndexType",
+ "originalName": "AspectRatio",
"camelCase": {
- "unsafeName": "indexType",
- "safeName": "indexType"
+ "unsafeName": "aspectRatio",
+ "safeName": "aspectRatio"
},
"snakeCase": {
- "unsafeName": "index_type",
- "safeName": "index_type"
+ "unsafeName": "aspect_ratio",
+ "safeName": "aspect_ratio"
},
"screamingSnakeCase": {
- "unsafeName": "INDEX_TYPE",
- "safeName": "INDEX_TYPE"
+ "unsafeName": "ASPECT_RATIO",
+ "safeName": "ASPECT_RATIO"
},
"pascalCase": {
- "unsafeName": "IndexType",
- "safeName": "IndexType"
+ "unsafeName": "AspectRatio",
+ "safeName": "AspectRatio"
}
}
}
@@ -1524,26 +1538,26 @@
"availability": null,
"docs": null
},
- "type_:IndexedData": {
+ "type_:IndexType": {
"inline": null,
"name": {
"name": {
- "originalName": "IndexedData",
+ "originalName": "IndexType",
"camelCase": {
- "unsafeName": "indexedData",
- "safeName": "indexedData"
+ "unsafeName": "indexType",
+ "safeName": "indexType"
},
"snakeCase": {
- "unsafeName": "indexed_data",
- "safeName": "indexed_data"
+ "unsafeName": "index_type",
+ "safeName": "index_type"
},
"screamingSnakeCase": {
- "unsafeName": "INDEXED_DATA",
- "safeName": "INDEXED_DATA"
+ "unsafeName": "INDEX_TYPE",
+ "safeName": "INDEX_TYPE"
},
"pascalCase": {
- "unsafeName": "IndexedData",
- "safeName": "IndexedData"
+ "unsafeName": "IndexType",
+ "safeName": "IndexType"
}
},
"fernFilepath": {
@@ -1552,52 +1566,34 @@
"file": null
},
"displayName": null,
- "typeId": "type_:IndexedData"
+ "typeId": "type_:IndexType"
},
"shape": {
- "_type": "object",
- "extends": [],
- "properties": [
+ "_type": "enum",
+ "default": null,
+ "values": [
{
"name": {
"name": {
- "originalName": "indices",
+ "originalName": "INDEX_TYPE_INVALID",
"camelCase": {
- "unsafeName": "indices",
- "safeName": "indices"
+ "unsafeName": "indexTypeInvalid",
+ "safeName": "indexTypeInvalid"
},
"snakeCase": {
- "unsafeName": "indices",
- "safeName": "indices"
+ "unsafeName": "index_type_invalid",
+ "safeName": "index_type_invalid"
},
"screamingSnakeCase": {
- "unsafeName": "INDICES",
- "safeName": "INDICES"
+ "unsafeName": "INDEX_TYPE_INVALID",
+ "safeName": "INDEX_TYPE_INVALID"
},
"pascalCase": {
- "unsafeName": "Indices",
- "safeName": "Indices"
+ "unsafeName": "IndexTypeInvalid",
+ "safeName": "IndexTypeInvalid"
}
},
- "wireValue": "indices"
- },
- "valueType": {
- "_type": "container",
- "container": {
- "_type": "list",
- "list": {
- "_type": "primitive",
- "primitive": {
- "v1": "UINT",
- "v2": null
- }
- }
- }
- },
- "propertyAccess": null,
- "v2Examples": {
- "userSpecifiedExamples": {},
- "autogeneratedExamples": {}
+ "wireValue": "INDEX_TYPE_INVALID"
},
"availability": null,
"docs": null
@@ -1605,50 +1601,57 @@
{
"name": {
"name": {
- "originalName": "values",
+ "originalName": "INDEX_TYPE_DEFAULT",
"camelCase": {
- "unsafeName": "values",
- "safeName": "values"
+ "unsafeName": "indexTypeDefault",
+ "safeName": "indexTypeDefault"
},
"snakeCase": {
- "unsafeName": "values",
- "safeName": "values"
+ "unsafeName": "index_type_default",
+ "safeName": "index_type_default"
},
"screamingSnakeCase": {
- "unsafeName": "VALUES",
- "safeName": "VALUES"
+ "unsafeName": "INDEX_TYPE_DEFAULT",
+ "safeName": "INDEX_TYPE_DEFAULT"
},
"pascalCase": {
- "unsafeName": "Values",
- "safeName": "Values"
+ "unsafeName": "IndexTypeDefault",
+ "safeName": "IndexTypeDefault"
}
},
- "wireValue": "values"
+ "wireValue": "INDEX_TYPE_DEFAULT"
},
- "valueType": {
- "_type": "container",
- "container": {
- "_type": "list",
- "list": {
- "_type": "primitive",
- "primitive": {
- "v1": "FLOAT",
- "v2": null
- }
+ "availability": null,
+ "docs": null
+ },
+ {
+ "name": {
+ "name": {
+ "originalName": "INDEX_TYPE_STRICT",
+ "camelCase": {
+ "unsafeName": "indexTypeStrict",
+ "safeName": "indexTypeStrict"
+ },
+ "snakeCase": {
+ "unsafeName": "index_type_strict",
+ "safeName": "index_type_strict"
+ },
+ "screamingSnakeCase": {
+ "unsafeName": "INDEX_TYPE_STRICT",
+ "safeName": "INDEX_TYPE_STRICT"
+ },
+ "pascalCase": {
+ "unsafeName": "IndexTypeStrict",
+ "safeName": "IndexTypeStrict"
}
- }
- },
- "propertyAccess": null,
- "v2Examples": {
- "userSpecifiedExamples": {},
- "autogeneratedExamples": {}
+ },
+ "wireValue": "INDEX_TYPE_STRICT"
},
"availability": null,
"docs": null
}
],
- "extra-properties": false,
- "extendedProperties": []
+ "forwardCompatible": null
},
"referencedTypes": [],
"encoding": {
@@ -1669,22 +1672,22 @@
}
},
"name": {
- "originalName": "IndexedData",
+ "originalName": "IndexType",
"camelCase": {
- "unsafeName": "indexedData",
- "safeName": "indexedData"
+ "unsafeName": "indexType",
+ "safeName": "indexType"
},
"snakeCase": {
- "unsafeName": "indexed_data",
- "safeName": "indexed_data"
+ "unsafeName": "index_type",
+ "safeName": "index_type"
},
"screamingSnakeCase": {
- "unsafeName": "INDEXED_DATA",
- "safeName": "INDEXED_DATA"
+ "unsafeName": "INDEX_TYPE",
+ "safeName": "INDEX_TYPE"
},
"pascalCase": {
- "unsafeName": "IndexedData",
- "safeName": "IndexedData"
+ "unsafeName": "IndexType",
+ "safeName": "IndexType"
}
}
}
@@ -1695,15 +1698,186 @@
"availability": null,
"docs": null
},
- "type_:ListElement": {
+ "type_:IndexedData": {
"inline": null,
"name": {
"name": {
- "originalName": "ListElement",
+ "originalName": "IndexedData",
"camelCase": {
- "unsafeName": "listElement",
- "safeName": "listElement"
- },
+ "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
+ },
+ "displayName": 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
+ }
+ }
+ }
+ },
+ "propertyAccess": null,
+ "v2Examples": {
+ "userSpecifiedExamples": {},
+ "autogeneratedExamples": {}
+ },
+ "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
+ }
+ }
+ }
+ },
+ "propertyAccess": null,
+ "v2Examples": {
+ "userSpecifiedExamples": {},
+ "autogeneratedExamples": {}
+ },
+ "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": [],
+ "v2Examples": null,
+ "availability": null,
+ "docs": null
+ },
+ "type_:ListElement": {
+ "inline": null,
+ "name": {
+ "name": {
+ "originalName": "ListElement",
+ "camelCase": {
+ "unsafeName": "listElement",
+ "safeName": "listElement"
+ },
"snakeCase": {
"unsafeName": "list_element",
"safeName": "list_element"
@@ -3838,50 +4012,12 @@
}
},
"fernFilepath": {
- "allParts": [
- {
- "originalName": "dataservice",
- "camelCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
- },
- "snakeCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
- },
- "screamingSnakeCase": {
- "unsafeName": "DATASERVICE",
- "safeName": "DATASERVICE"
- },
- "pascalCase": {
- "unsafeName": "Dataservice",
- "safeName": "Dataservice"
- }
- }
- ],
+ "allParts": [],
"packagePath": [],
- "file": {
- "originalName": "dataservice",
- "camelCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
- },
- "snakeCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
- },
- "screamingSnakeCase": {
- "unsafeName": "DATASERVICE",
- "safeName": "DATASERVICE"
- },
- "pascalCase": {
- "unsafeName": "Dataservice",
- "safeName": "Dataservice"
- }
- }
+ "file": null
},
"displayName": null,
- "typeId": "type_dataservice:IndexType",
+ "typeId": "type_:IndexType",
"default": null,
"inline": null
}
@@ -4016,50 +4152,12 @@
}
},
"fernFilepath": {
- "allParts": [
- {
- "originalName": "dataservice",
- "camelCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
- },
- "snakeCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
- },
- "screamingSnakeCase": {
- "unsafeName": "DATASERVICE",
- "safeName": "DATASERVICE"
- },
- "pascalCase": {
- "unsafeName": "Dataservice",
- "safeName": "Dataservice"
- }
- }
- ],
+ "allParts": [],
"packagePath": [],
- "file": {
- "originalName": "dataservice",
- "camelCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
- },
- "snakeCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
- },
- "screamingSnakeCase": {
- "unsafeName": "DATASERVICE",
- "safeName": "DATASERVICE"
- },
- "pascalCase": {
- "unsafeName": "Dataservice",
- "safeName": "Dataservice"
- }
- }
+ "file": null
},
"displayName": null,
- "typeId": "type_dataservice:IndexType",
+ "typeId": "type_:IndexType",
"default": null,
"inline": null
}
@@ -4080,7 +4178,7 @@
"extendedProperties": []
},
"referencedTypes": [
- "type_dataservice:IndexType",
+ "type_:IndexType",
"type_:Any"
],
"encoding": {
@@ -4704,49 +4802,49 @@
},
"errors": {},
"services": {
- "service_dataservice": {
+ "service_dataService": {
"availability": null,
"name": {
"fernFilepath": {
"allParts": [
{
- "originalName": "dataservice",
+ "originalName": "dataService",
"camelCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "dataService",
+ "safeName": "dataService"
},
"snakeCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "data_service",
+ "safeName": "data_service"
},
"screamingSnakeCase": {
- "unsafeName": "DATASERVICE",
- "safeName": "DATASERVICE"
+ "unsafeName": "DATA_SERVICE",
+ "safeName": "DATA_SERVICE"
},
"pascalCase": {
- "unsafeName": "Dataservice",
- "safeName": "Dataservice"
+ "unsafeName": "DataService",
+ "safeName": "DataService"
}
}
],
"packagePath": [],
"file": {
- "originalName": "dataservice",
+ "originalName": "dataService",
"camelCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "dataService",
+ "safeName": "dataService"
},
"snakeCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "data_service",
+ "safeName": "data_service"
},
"screamingSnakeCase": {
- "unsafeName": "DATASERVICE",
- "safeName": "DATASERVICE"
+ "unsafeName": "DATA_SERVICE",
+ "safeName": "DATA_SERVICE"
},
"pascalCase": {
- "unsafeName": "Dataservice",
- "safeName": "Dataservice"
+ "unsafeName": "DataService",
+ "safeName": "DataService"
}
}
}
@@ -4797,24 +4895,24 @@
},
"endpoints": [
{
- "id": "endpoint_dataservice.foo",
+ "id": "endpoint_dataService.Upload",
"name": {
- "originalName": "foo",
+ "originalName": "Upload",
"camelCase": {
- "unsafeName": "foo",
- "safeName": "foo"
+ "unsafeName": "upload",
+ "safeName": "upload"
},
"snakeCase": {
- "unsafeName": "foo",
- "safeName": "foo"
+ "unsafeName": "upload",
+ "safeName": "upload"
},
"screamingSnakeCase": {
- "unsafeName": "FOO",
- "safeName": "FOO"
+ "unsafeName": "UPLOAD",
+ "safeName": "UPLOAD"
},
"pascalCase": {
- "unsafeName": "Foo",
- "safeName": "Foo"
+ "unsafeName": "Upload",
+ "safeName": "Upload"
}
},
"displayName": null,
@@ -4826,252 +4924,11 @@
"method": "POST",
"basePath": null,
"path": {
- "head": "/foo",
+ "head": "/data",
"parts": []
},
"fullPath": {
- "head": "foo",
- "parts": []
- },
- "pathParameters": [],
- "allPathParameters": [],
- "queryParameters": [],
- "headers": [],
- "requestBody": null,
- "v2RequestBodies": 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,
- "v2Examples": null
- }
- },
- "status-code": 200,
- "isWildcardStatusCode": null,
- "docs": null
- },
- "v2Responses": null,
- "errors": [],
- "userSpecifiedExamples": [
- {
- "example": {
- "id": "82a32050",
- "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": "ae765f47",
- "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"
- },
- "v2Examples": null,
- "source": null,
- "audiences": null,
- "retries": null,
- "apiPlayground": null,
- "responseHeaders": [],
- "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,
- "security": null,
- "idempotent": false,
- "baseUrl": null,
- "v2BaseUrls": null,
- "method": "POST",
- "basePath": null,
- "path": {
- "head": "/data",
- "parts": []
- },
- "fullPath": {
- "head": "data",
+ "head": "data",
"parts": []
},
"pathParameters": [],
@@ -6851,9 +6708,9 @@
"docs": null
},
{
- "id": "endpoint_dataservice.delete",
+ "id": "endpoint_dataService.Delete",
"name": {
- "originalName": "delete",
+ "originalName": "Delete",
"camelCase": {
"unsafeName": "delete",
"safeName": "delete"
@@ -7603,9 +7460,9 @@
"docs": null
},
{
- "id": "endpoint_dataservice.describe",
+ "id": "endpoint_dataService.Describe",
"name": {
- "originalName": "describe",
+ "originalName": "Describe",
"camelCase": {
"unsafeName": "describe",
"safeName": "describe"
@@ -9257,9 +9114,9 @@
"docs": null
},
{
- "id": "endpoint_dataservice.fetch",
+ "id": "endpoint_dataService.Fetch",
"name": {
- "originalName": "fetch",
+ "originalName": "Fetch",
"camelCase": {
"unsafeName": "fetch",
"safeName": "fetch"
@@ -12311,9 +12168,9 @@
"docs": null
},
{
- "id": "endpoint_dataservice.list",
+ "id": "endpoint_dataService.List",
"name": {
- "originalName": "list",
+ "originalName": "List",
"camelCase": {
"unsafeName": "list",
"safeName": "list"
@@ -14556,9 +14413,9 @@
"docs": null
},
{
- "id": "endpoint_dataservice.query",
+ "id": "endpoint_dataService.Query",
"name": {
- "originalName": "query",
+ "originalName": "Query",
"camelCase": {
"unsafeName": "query",
"safeName": "query"
@@ -24764,9 +24621,9 @@
"docs": null
},
{
- "id": "endpoint_dataservice.update",
+ "id": "endpoint_dataService.Update",
"name": {
- "originalName": "update",
+ "originalName": "Update",
"camelCase": {
"unsafeName": "update",
"safeName": "update"
@@ -25152,50 +25009,12 @@
}
},
"fernFilepath": {
- "allParts": [
- {
- "originalName": "dataservice",
- "camelCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
- },
- "snakeCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
- },
- "screamingSnakeCase": {
- "unsafeName": "DATASERVICE",
- "safeName": "DATASERVICE"
- },
- "pascalCase": {
- "unsafeName": "Dataservice",
- "safeName": "Dataservice"
- }
- }
- ],
+ "allParts": [],
"packagePath": [],
- "file": {
- "originalName": "dataservice",
- "camelCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
- },
- "snakeCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
- },
- "screamingSnakeCase": {
- "unsafeName": "DATASERVICE",
- "safeName": "DATASERVICE"
- },
- "pascalCase": {
- "unsafeName": "Dataservice",
- "safeName": "Dataservice"
- }
- }
+ "file": null
},
"displayName": null,
- "typeId": "type_dataservice:IndexType",
+ "typeId": "type_:IndexType",
"default": null,
"inline": null
}
@@ -25330,50 +25149,12 @@
}
},
"fernFilepath": {
- "allParts": [
- {
- "originalName": "dataservice",
- "camelCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
- },
- "snakeCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
- },
- "screamingSnakeCase": {
- "unsafeName": "DATASERVICE",
- "safeName": "DATASERVICE"
- },
- "pascalCase": {
- "unsafeName": "Dataservice",
- "safeName": "Dataservice"
- }
- }
- ],
+ "allParts": [],
"packagePath": [],
- "file": {
- "originalName": "dataservice",
- "camelCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
- },
- "snakeCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
- },
- "screamingSnakeCase": {
- "unsafeName": "DATASERVICE",
- "safeName": "DATASERVICE"
- },
- "pascalCase": {
- "unsafeName": "Dataservice",
- "safeName": "Dataservice"
- }
- }
+ "file": null
},
"displayName": null,
- "typeId": "type_dataservice:IndexType",
+ "typeId": "type_:IndexType",
"default": null,
"inline": null
}
@@ -25388,8 +25169,76 @@
"propertyAccess": null,
"availability": null,
"docs": null
- }
- ],
+ },
+ {
+ "name": {
+ "name": {
+ "originalName": "aspect_ratio",
+ "camelCase": {
+ "unsafeName": "aspectRatio",
+ "safeName": "aspectRatio"
+ },
+ "snakeCase": {
+ "unsafeName": "aspect_ratio",
+ "safeName": "aspect_ratio"
+ },
+ "screamingSnakeCase": {
+ "unsafeName": "ASPECT_RATIO",
+ "safeName": "ASPECT_RATIO"
+ },
+ "pascalCase": {
+ "unsafeName": "AspectRatio",
+ "safeName": "AspectRatio"
+ }
+ },
+ "wireValue": "aspect_ratio"
+ },
+ "valueType": {
+ "_type": "container",
+ "container": {
+ "_type": "optional",
+ "optional": {
+ "_type": "named",
+ "name": {
+ "originalName": "AspectRatio",
+ "camelCase": {
+ "unsafeName": "aspectRatio",
+ "safeName": "aspectRatio"
+ },
+ "snakeCase": {
+ "unsafeName": "aspect_ratio",
+ "safeName": "aspect_ratio"
+ },
+ "screamingSnakeCase": {
+ "unsafeName": "ASPECT_RATIO",
+ "safeName": "ASPECT_RATIO"
+ },
+ "pascalCase": {
+ "unsafeName": "AspectRatio",
+ "safeName": "AspectRatio"
+ }
+ },
+ "fernFilepath": {
+ "allParts": [],
+ "packagePath": [],
+ "file": null
+ },
+ "displayName": null,
+ "typeId": "type_:AspectRatio",
+ "default": null,
+ "inline": null
+ }
+ }
+ },
+ "v2Examples": {
+ "userSpecifiedExamples": {},
+ "autogeneratedExamples": {}
+ },
+ "propertyAccess": null,
+ "availability": null,
+ "docs": null
+ }
+ ],
"extra-properties": false,
"extendedProperties": [],
"docs": null,
@@ -25716,49 +25565,11 @@
"shape": {
"type": "named",
"typeName": {
- "typeId": "type_dataservice:IndexType",
+ "typeId": "type_:IndexType",
"fernFilepath": {
- "allParts": [
- {
- "originalName": "dataservice",
- "camelCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
- },
- "snakeCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
- },
- "screamingSnakeCase": {
- "unsafeName": "DATASERVICE",
- "safeName": "DATASERVICE"
- },
- "pascalCase": {
- "unsafeName": "Dataservice",
- "safeName": "Dataservice"
- }
- }
- ],
+ "allParts": [],
"packagePath": [],
- "file": {
- "originalName": "dataservice",
- "camelCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
- },
- "snakeCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
- },
- "screamingSnakeCase": {
- "unsafeName": "DATASERVICE",
- "safeName": "DATASERVICE"
- },
- "pascalCase": {
- "unsafeName": "Dataservice",
- "safeName": "Dataservice"
- }
- }
+ "file": null
},
"name": {
"originalName": "IndexType",
@@ -25831,50 +25642,12 @@
}
},
"fernFilepath": {
- "allParts": [
- {
- "originalName": "dataservice",
- "camelCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
- },
- "snakeCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
- },
- "screamingSnakeCase": {
- "unsafeName": "DATASERVICE",
- "safeName": "DATASERVICE"
- },
- "pascalCase": {
- "unsafeName": "Dataservice",
- "safeName": "Dataservice"
- }
- }
- ],
+ "allParts": [],
"packagePath": [],
- "file": {
- "originalName": "dataservice",
- "camelCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
- },
- "snakeCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
- },
- "screamingSnakeCase": {
- "unsafeName": "DATASERVICE",
- "safeName": "DATASERVICE"
- },
- "pascalCase": {
- "unsafeName": "Dataservice",
- "safeName": "Dataservice"
- }
- }
+ "file": null
},
"displayName": null,
- "typeId": "type_dataservice:IndexType",
+ "typeId": "type_:IndexType",
"default": null,
"inline": null
}
@@ -26132,49 +25905,11 @@
"shape": {
"type": "named",
"typeName": {
- "typeId": "type_dataservice:IndexType",
+ "typeId": "type_:IndexType",
"fernFilepath": {
- "allParts": [
- {
- "originalName": "dataservice",
- "camelCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
- },
- "snakeCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
- },
- "screamingSnakeCase": {
- "unsafeName": "DATASERVICE",
- "safeName": "DATASERVICE"
- },
- "pascalCase": {
- "unsafeName": "Dataservice",
- "safeName": "Dataservice"
- }
- }
- ],
+ "allParts": [],
"packagePath": [],
- "file": {
- "originalName": "dataservice",
- "camelCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
- },
- "snakeCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
- },
- "screamingSnakeCase": {
- "unsafeName": "DATASERVICE",
- "safeName": "DATASERVICE"
- },
- "pascalCase": {
- "unsafeName": "Dataservice",
- "safeName": "Dataservice"
- }
- }
+ "file": null
},
"name": {
"originalName": "IndexType",
@@ -26248,50 +25983,12 @@
}
},
"fernFilepath": {
- "allParts": [
- {
- "originalName": "dataservice",
- "camelCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
- },
- "snakeCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
- },
- "screamingSnakeCase": {
- "unsafeName": "DATASERVICE",
- "safeName": "DATASERVICE"
- },
- "pascalCase": {
- "unsafeName": "Dataservice",
- "safeName": "Dataservice"
- }
- }
- ],
+ "allParts": [],
"packagePath": [],
- "file": {
- "originalName": "dataservice",
- "camelCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
- },
- "snakeCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
- },
- "screamingSnakeCase": {
- "unsafeName": "DATASERVICE",
- "safeName": "DATASERVICE"
- },
- "pascalCase": {
- "unsafeName": "Dataservice",
- "safeName": "Dataservice"
- }
- }
+ "file": null
},
"displayName": null,
- "typeId": "type_dataservice:IndexType",
+ "typeId": "type_:IndexType",
"default": null,
"inline": null
}
@@ -26327,50 +26024,12 @@
}
},
"fernFilepath": {
- "allParts": [
- {
- "originalName": "dataservice",
- "camelCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
- },
- "snakeCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
- },
- "screamingSnakeCase": {
- "unsafeName": "DATASERVICE",
- "safeName": "DATASERVICE"
- },
- "pascalCase": {
- "unsafeName": "Dataservice",
- "safeName": "Dataservice"
- }
- }
- ],
+ "allParts": [],
"packagePath": [],
- "file": {
- "originalName": "dataservice",
- "camelCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
- },
- "snakeCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
- },
- "screamingSnakeCase": {
- "unsafeName": "DATASERVICE",
- "safeName": "DATASERVICE"
- },
- "pascalCase": {
- "unsafeName": "Dataservice",
- "safeName": "Dataservice"
- }
- }
+ "file": null
},
"displayName": null,
- "typeId": "type_dataservice:IndexType",
+ "typeId": "type_:IndexType",
"default": null,
"inline": null
}
@@ -26437,7 +26096,7 @@
"autogeneratedExamples": [
{
"example": {
- "id": "2c3bbd31",
+ "id": "7d56ae3b",
"url": "/data/update",
"name": null,
"endpointHeaders": [],
@@ -26760,50 +26419,12 @@
}
},
"fernFilepath": {
- "allParts": [
- {
- "originalName": "dataservice",
- "camelCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
- },
- "snakeCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
- },
- "screamingSnakeCase": {
- "unsafeName": "DATASERVICE",
- "safeName": "DATASERVICE"
- },
- "pascalCase": {
- "unsafeName": "Dataservice",
- "safeName": "Dataservice"
- }
- }
- ],
+ "allParts": [],
"packagePath": [],
- "file": {
- "originalName": "dataservice",
- "camelCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
- },
- "snakeCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
- },
- "screamingSnakeCase": {
- "unsafeName": "DATASERVICE",
- "safeName": "DATASERVICE"
- },
- "pascalCase": {
- "unsafeName": "Dataservice",
- "safeName": "Dataservice"
- }
- }
+ "file": null
},
"displayName": null,
- "typeId": "type_dataservice:IndexType",
+ "typeId": "type_:IndexType",
"default": null,
"inline": null
}
@@ -26932,50 +26553,12 @@
}
},
"fernFilepath": {
- "allParts": [
- {
- "originalName": "dataservice",
- "camelCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
- },
- "snakeCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
- },
- "screamingSnakeCase": {
- "unsafeName": "DATASERVICE",
- "safeName": "DATASERVICE"
- },
- "pascalCase": {
- "unsafeName": "Dataservice",
- "safeName": "Dataservice"
- }
- }
- ],
+ "allParts": [],
"packagePath": [],
- "file": {
- "originalName": "dataservice",
- "camelCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
- },
- "snakeCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
- },
- "screamingSnakeCase": {
- "unsafeName": "DATASERVICE",
- "safeName": "DATASERVICE"
- },
- "pascalCase": {
- "unsafeName": "Dataservice",
- "safeName": "Dataservice"
- }
- }
+ "file": null
},
"displayName": null,
- "typeId": "type_dataservice:IndexType",
+ "typeId": "type_:IndexType",
"default": null,
"inline": null
}
@@ -26984,6 +26567,71 @@
}
}
}
+ },
+ {
+ "name": {
+ "name": {
+ "originalName": "aspect_ratio",
+ "camelCase": {
+ "unsafeName": "aspectRatio",
+ "safeName": "aspectRatio"
+ },
+ "snakeCase": {
+ "unsafeName": "aspect_ratio",
+ "safeName": "aspect_ratio"
+ },
+ "screamingSnakeCase": {
+ "unsafeName": "ASPECT_RATIO",
+ "safeName": "ASPECT_RATIO"
+ },
+ "pascalCase": {
+ "unsafeName": "AspectRatio",
+ "safeName": "AspectRatio"
+ }
+ },
+ "wireValue": "aspect_ratio"
+ },
+ "originalTypeDeclaration": null,
+ "value": {
+ "shape": {
+ "type": "container",
+ "container": {
+ "type": "optional",
+ "optional": null,
+ "valueType": {
+ "_type": "named",
+ "name": {
+ "originalName": "AspectRatio",
+ "camelCase": {
+ "unsafeName": "aspectRatio",
+ "safeName": "aspectRatio"
+ },
+ "snakeCase": {
+ "unsafeName": "aspect_ratio",
+ "safeName": "aspect_ratio"
+ },
+ "screamingSnakeCase": {
+ "unsafeName": "ASPECT_RATIO",
+ "safeName": "ASPECT_RATIO"
+ },
+ "pascalCase": {
+ "unsafeName": "AspectRatio",
+ "safeName": "AspectRatio"
+ }
+ },
+ "fernFilepath": {
+ "allParts": [],
+ "packagePath": [],
+ "file": null
+ },
+ "displayName": null,
+ "typeId": "type_:AspectRatio",
+ "default": null,
+ "inline": null
+ }
+ }
+ }
+ }
}
],
"extraProperties": null,
@@ -27186,50 +26834,12 @@
}
},
"fernFilepath": {
- "allParts": [
- {
- "originalName": "dataservice",
- "camelCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
- },
- "snakeCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
- },
- "screamingSnakeCase": {
- "unsafeName": "DATASERVICE",
- "safeName": "DATASERVICE"
- },
- "pascalCase": {
- "unsafeName": "Dataservice",
- "safeName": "Dataservice"
- }
- }
- ],
+ "allParts": [],
"packagePath": [],
- "file": {
- "originalName": "dataservice",
- "camelCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
- },
- "snakeCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
- },
- "screamingSnakeCase": {
- "unsafeName": "DATASERVICE",
- "safeName": "DATASERVICE"
- },
- "pascalCase": {
- "unsafeName": "Dataservice",
- "safeName": "Dataservice"
- }
- }
+ "file": null
},
"displayName": null,
- "typeId": "type_dataservice:IndexType"
+ "typeId": "type_:IndexType"
}
},
"jsonExample": "INDEX_TYPE_INVALID"
@@ -27256,50 +26866,12 @@
}
},
"fernFilepath": {
- "allParts": [
- {
- "originalName": "dataservice",
- "camelCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
- },
- "snakeCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
- },
- "screamingSnakeCase": {
- "unsafeName": "DATASERVICE",
- "safeName": "DATASERVICE"
- },
- "pascalCase": {
- "unsafeName": "Dataservice",
- "safeName": "Dataservice"
- }
- }
- ],
+ "allParts": [],
"packagePath": [],
- "file": {
- "originalName": "dataservice",
- "camelCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
- },
- "snakeCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
- },
- "screamingSnakeCase": {
- "unsafeName": "DATASERVICE",
- "safeName": "DATASERVICE"
- },
- "pascalCase": {
- "unsafeName": "Dataservice",
- "safeName": "Dataservice"
- }
- }
+ "file": null
},
"displayName": null,
- "typeId": "type_dataservice:IndexType",
+ "typeId": "type_:IndexType",
"default": null,
"inline": null
}
@@ -27612,50 +27184,12 @@
}
},
"fernFilepath": {
- "allParts": [
- {
- "originalName": "dataservice",
- "camelCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
- },
- "snakeCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
- },
- "screamingSnakeCase": {
- "unsafeName": "DATASERVICE",
- "safeName": "DATASERVICE"
- },
- "pascalCase": {
- "unsafeName": "Dataservice",
- "safeName": "Dataservice"
- }
- }
- ],
+ "allParts": [],
"packagePath": [],
- "file": {
- "originalName": "dataservice",
- "camelCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
- },
- "snakeCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
- },
- "screamingSnakeCase": {
- "unsafeName": "DATASERVICE",
- "safeName": "DATASERVICE"
- },
- "pascalCase": {
- "unsafeName": "Dataservice",
- "safeName": "Dataservice"
- }
- }
+ "file": null
},
"displayName": null,
- "typeId": "type_dataservice:IndexType"
+ "typeId": "type_:IndexType"
}
},
"jsonExample": "INDEX_TYPE_INVALID"
@@ -27709,50 +27243,12 @@
}
},
"fernFilepath": {
- "allParts": [
- {
- "originalName": "dataservice",
- "camelCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
- },
- "snakeCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
- },
- "screamingSnakeCase": {
- "unsafeName": "DATASERVICE",
- "safeName": "DATASERVICE"
- },
- "pascalCase": {
- "unsafeName": "Dataservice",
- "safeName": "Dataservice"
- }
- }
- ],
+ "allParts": [],
"packagePath": [],
- "file": {
- "originalName": "dataservice",
- "camelCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
- },
- "snakeCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
- },
- "screamingSnakeCase": {
- "unsafeName": "DATASERVICE",
- "safeName": "DATASERVICE"
- },
- "pascalCase": {
- "unsafeName": "Dataservice",
- "safeName": "Dataservice"
- }
- }
+ "file": null
},
"displayName": null,
- "typeId": "type_dataservice:IndexType"
+ "typeId": "type_:IndexType"
}
},
"jsonExample": "INDEX_TYPE_INVALID"
@@ -27780,50 +27276,12 @@
}
},
"fernFilepath": {
- "allParts": [
- {
- "originalName": "dataservice",
- "camelCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
- },
- "snakeCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
- },
- "screamingSnakeCase": {
- "unsafeName": "DATASERVICE",
- "safeName": "DATASERVICE"
- },
- "pascalCase": {
- "unsafeName": "Dataservice",
- "safeName": "Dataservice"
- }
- }
- ],
+ "allParts": [],
"packagePath": [],
- "file": {
- "originalName": "dataservice",
- "camelCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
- },
- "snakeCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
- },
- "screamingSnakeCase": {
- "unsafeName": "DATASERVICE",
- "safeName": "DATASERVICE"
- },
- "pascalCase": {
- "unsafeName": "Dataservice",
- "safeName": "Dataservice"
- }
- }
+ "file": null
},
"displayName": null,
- "typeId": "type_dataservice:IndexType",
+ "typeId": "type_:IndexType",
"default": null,
"inline": null
}
@@ -27860,50 +27318,12 @@
}
},
"fernFilepath": {
- "allParts": [
- {
- "originalName": "dataservice",
- "camelCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
- },
- "snakeCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
- },
- "screamingSnakeCase": {
- "unsafeName": "DATASERVICE",
- "safeName": "DATASERVICE"
- },
- "pascalCase": {
- "unsafeName": "Dataservice",
- "safeName": "Dataservice"
- }
- }
- ],
+ "allParts": [],
"packagePath": [],
- "file": {
- "originalName": "dataservice",
- "camelCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
- },
- "snakeCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
- },
- "screamingSnakeCase": {
- "unsafeName": "DATASERVICE",
- "safeName": "DATASERVICE"
- },
- "pascalCase": {
- "unsafeName": "Dataservice",
- "safeName": "Dataservice"
- }
- }
+ "file": null
},
"displayName": null,
- "typeId": "type_dataservice:IndexType",
+ "typeId": "type_:IndexType",
"default": null,
"inline": null
}
@@ -27983,6 +27403,272 @@
}
],
"audiences": null
+ },
+ "service_": {
+ "availability": null,
+ "name": {
+ "fernFilepath": {
+ "allParts": [],
+ "packagePath": [],
+ "file": null
+ }
+ },
+ "displayName": null,
+ "basePath": {
+ "head": "",
+ "parts": []
+ },
+ "headers": [],
+ "pathParameters": [],
+ "encoding": {
+ "json": {},
+ "proto": null
+ },
+ "transport": {
+ "type": "http"
+ },
+ "endpoints": [
+ {
+ "id": "endpoint_.postFoo",
+ "name": {
+ "originalName": "postFoo",
+ "camelCase": {
+ "unsafeName": "postFoo",
+ "safeName": "postFoo"
+ },
+ "snakeCase": {
+ "unsafeName": "post_foo",
+ "safeName": "post_foo"
+ },
+ "screamingSnakeCase": {
+ "unsafeName": "POST_FOO",
+ "safeName": "POST_FOO"
+ },
+ "pascalCase": {
+ "unsafeName": "PostFoo",
+ "safeName": "PostFoo"
+ }
+ },
+ "displayName": null,
+ "auth": false,
+ "security": null,
+ "idempotent": false,
+ "baseUrl": null,
+ "v2BaseUrls": null,
+ "method": "POST",
+ "basePath": null,
+ "path": {
+ "head": "/foo",
+ "parts": []
+ },
+ "fullPath": {
+ "head": "foo",
+ "parts": []
+ },
+ "pathParameters": [],
+ "allPathParameters": [],
+ "queryParameters": [],
+ "headers": [],
+ "requestBody": null,
+ "v2RequestBodies": 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,
+ "v2Examples": null
+ }
+ },
+ "status-code": 200,
+ "isWildcardStatusCode": null,
+ "docs": null
+ },
+ "v2Responses": null,
+ "errors": [],
+ "userSpecifiedExamples": [
+ {
+ "example": {
+ "id": "82a32050",
+ "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": "ae765f47",
+ "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": null,
+ "v2Examples": null,
+ "source": null,
+ "audiences": null,
+ "retries": null,
+ "apiPlayground": null,
+ "responseHeaders": [],
+ "availability": null,
+ "docs": null
+ }
+ ],
+ "audiences": null
}
},
"constants": {
@@ -28053,12 +27739,13 @@
"variables": [],
"serviceTypeReferenceInfo": {
"typesReferencedOnlyByService": {
- "service_dataservice": [
- "type_dataservice:IndexType",
+ "service_dataService": [
+ "type_:AspectRatio",
"type_:Column",
"type_:DeleteResponse",
"type_:DescribeResponse",
"type_:FetchResponse",
+ "type_:IndexType",
"type_:IndexedData",
"type_:ListElement",
"type_:ListResponse",
@@ -28088,138 +27775,144 @@
"dynamic": {
"version": "1.0.0",
"types": {
- "type_dataservice:IndexType": {
+ "type_:AspectRatio": {
"type": "enum",
"declaration": {
"name": {
- "originalName": "IndexType",
+ "originalName": "AspectRatio",
"camelCase": {
- "unsafeName": "indexType",
- "safeName": "indexType"
+ "unsafeName": "aspectRatio",
+ "safeName": "aspectRatio"
},
"snakeCase": {
- "unsafeName": "index_type",
- "safeName": "index_type"
+ "unsafeName": "aspect_ratio",
+ "safeName": "aspect_ratio"
},
"screamingSnakeCase": {
- "unsafeName": "INDEX_TYPE",
- "safeName": "INDEX_TYPE"
+ "unsafeName": "ASPECT_RATIO",
+ "safeName": "ASPECT_RATIO"
},
"pascalCase": {
- "unsafeName": "IndexType",
- "safeName": "IndexType"
+ "unsafeName": "AspectRatio",
+ "safeName": "AspectRatio"
}
},
"fernFilepath": {
- "allParts": [
- {
- "originalName": "dataservice",
- "camelCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
- },
- "snakeCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
- },
- "screamingSnakeCase": {
- "unsafeName": "DATASERVICE",
- "safeName": "DATASERVICE"
- },
- "pascalCase": {
- "unsafeName": "Dataservice",
- "safeName": "Dataservice"
- }
+ "allParts": [],
+ "packagePath": [],
+ "file": null
+ }
+ },
+ "values": [
+ {
+ "name": {
+ "originalName": "ASPECT_RATIO_UNSPECIFIED",
+ "camelCase": {
+ "unsafeName": "aspectRatioUnspecified",
+ "safeName": "aspectRatioUnspecified"
+ },
+ "snakeCase": {
+ "unsafeName": "aspect_ratio_unspecified",
+ "safeName": "aspect_ratio_unspecified"
+ },
+ "screamingSnakeCase": {
+ "unsafeName": "ASPECT_RATIO_UNSPECIFIED",
+ "safeName": "ASPECT_RATIO_UNSPECIFIED"
+ },
+ "pascalCase": {
+ "unsafeName": "AspectRatioUnspecified",
+ "safeName": "AspectRatioUnspecified"
}
- ],
- "packagePath": [],
- "file": {
- "originalName": "dataservice",
+ },
+ "wireValue": "ASPECT_RATIO_UNSPECIFIED"
+ },
+ {
+ "name": {
+ "originalName": "ASPECT_RATIO_1_1",
"camelCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "aspectRatio11",
+ "safeName": "aspectRatio11"
},
"snakeCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "aspect_ratio11",
+ "safeName": "aspect_ratio11"
},
"screamingSnakeCase": {
- "unsafeName": "DATASERVICE",
- "safeName": "DATASERVICE"
+ "unsafeName": "ASPECT_RATIO11",
+ "safeName": "ASPECT_RATIO11"
},
"pascalCase": {
- "unsafeName": "Dataservice",
- "safeName": "Dataservice"
+ "unsafeName": "AspectRatio11",
+ "safeName": "AspectRatio11"
}
- }
- }
- },
- "values": [
+ },
+ "wireValue": "ASPECT_RATIO_1_1"
+ },
{
"name": {
- "originalName": "INDEX_TYPE_INVALID",
+ "originalName": "ASPECT_RATIO_16_9",
"camelCase": {
- "unsafeName": "indexTypeInvalid",
- "safeName": "indexTypeInvalid"
+ "unsafeName": "aspectRatio169",
+ "safeName": "aspectRatio169"
},
"snakeCase": {
- "unsafeName": "index_type_invalid",
- "safeName": "index_type_invalid"
+ "unsafeName": "aspect_ratio169",
+ "safeName": "aspect_ratio169"
},
"screamingSnakeCase": {
- "unsafeName": "INDEX_TYPE_INVALID",
- "safeName": "INDEX_TYPE_INVALID"
+ "unsafeName": "ASPECT_RATIO169",
+ "safeName": "ASPECT_RATIO169"
},
"pascalCase": {
- "unsafeName": "IndexTypeInvalid",
- "safeName": "IndexTypeInvalid"
+ "unsafeName": "AspectRatio169",
+ "safeName": "AspectRatio169"
}
},
- "wireValue": "INDEX_TYPE_INVALID"
+ "wireValue": "ASPECT_RATIO_16_9"
},
{
"name": {
- "originalName": "INDEX_TYPE_DEFAULT",
+ "originalName": "ASPECT_RATIO_9_16",
"camelCase": {
- "unsafeName": "indexTypeDefault",
- "safeName": "indexTypeDefault"
+ "unsafeName": "aspectRatio916",
+ "safeName": "aspectRatio916"
},
"snakeCase": {
- "unsafeName": "index_type_default",
- "safeName": "index_type_default"
+ "unsafeName": "aspect_ratio916",
+ "safeName": "aspect_ratio916"
},
"screamingSnakeCase": {
- "unsafeName": "INDEX_TYPE_DEFAULT",
- "safeName": "INDEX_TYPE_DEFAULT"
+ "unsafeName": "ASPECT_RATIO916",
+ "safeName": "ASPECT_RATIO916"
},
"pascalCase": {
- "unsafeName": "IndexTypeDefault",
- "safeName": "IndexTypeDefault"
+ "unsafeName": "AspectRatio916",
+ "safeName": "AspectRatio916"
}
},
- "wireValue": "INDEX_TYPE_DEFAULT"
+ "wireValue": "ASPECT_RATIO_9_16"
},
{
"name": {
- "originalName": "INDEX_TYPE_STRICT",
+ "originalName": "ASPECT_RATIO_4_3",
"camelCase": {
- "unsafeName": "indexTypeStrict",
- "safeName": "indexTypeStrict"
+ "unsafeName": "aspectRatio43",
+ "safeName": "aspectRatio43"
},
"snakeCase": {
- "unsafeName": "index_type_strict",
- "safeName": "index_type_strict"
+ "unsafeName": "aspect_ratio43",
+ "safeName": "aspect_ratio43"
},
"screamingSnakeCase": {
- "unsafeName": "INDEX_TYPE_STRICT",
- "safeName": "INDEX_TYPE_STRICT"
+ "unsafeName": "ASPECT_RATIO43",
+ "safeName": "ASPECT_RATIO43"
},
"pascalCase": {
- "unsafeName": "IndexTypeStrict",
- "safeName": "IndexTypeStrict"
+ "unsafeName": "AspectRatio43",
+ "safeName": "AspectRatio43"
}
},
- "wireValue": "INDEX_TYPE_STRICT"
+ "wireValue": "ASPECT_RATIO_4_3"
}
]
},
@@ -28957,6 +28650,103 @@
}
]
},
+ "type_:IndexType": {
+ "type": "enum",
+ "declaration": {
+ "name": {
+ "originalName": "IndexType",
+ "camelCase": {
+ "unsafeName": "indexType",
+ "safeName": "indexType"
+ },
+ "snakeCase": {
+ "unsafeName": "index_type",
+ "safeName": "index_type"
+ },
+ "screamingSnakeCase": {
+ "unsafeName": "INDEX_TYPE",
+ "safeName": "INDEX_TYPE"
+ },
+ "pascalCase": {
+ "unsafeName": "IndexType",
+ "safeName": "IndexType"
+ }
+ },
+ "fernFilepath": {
+ "allParts": [],
+ "packagePath": [],
+ "file": null
+ }
+ },
+ "values": [
+ {
+ "name": {
+ "originalName": "INDEX_TYPE_INVALID",
+ "camelCase": {
+ "unsafeName": "indexTypeInvalid",
+ "safeName": "indexTypeInvalid"
+ },
+ "snakeCase": {
+ "unsafeName": "index_type_invalid",
+ "safeName": "index_type_invalid"
+ },
+ "screamingSnakeCase": {
+ "unsafeName": "INDEX_TYPE_INVALID",
+ "safeName": "INDEX_TYPE_INVALID"
+ },
+ "pascalCase": {
+ "unsafeName": "IndexTypeInvalid",
+ "safeName": "IndexTypeInvalid"
+ }
+ },
+ "wireValue": "INDEX_TYPE_INVALID"
+ },
+ {
+ "name": {
+ "originalName": "INDEX_TYPE_DEFAULT",
+ "camelCase": {
+ "unsafeName": "indexTypeDefault",
+ "safeName": "indexTypeDefault"
+ },
+ "snakeCase": {
+ "unsafeName": "index_type_default",
+ "safeName": "index_type_default"
+ },
+ "screamingSnakeCase": {
+ "unsafeName": "INDEX_TYPE_DEFAULT",
+ "safeName": "INDEX_TYPE_DEFAULT"
+ },
+ "pascalCase": {
+ "unsafeName": "IndexTypeDefault",
+ "safeName": "IndexTypeDefault"
+ }
+ },
+ "wireValue": "INDEX_TYPE_DEFAULT"
+ },
+ {
+ "name": {
+ "originalName": "INDEX_TYPE_STRICT",
+ "camelCase": {
+ "unsafeName": "indexTypeStrict",
+ "safeName": "indexTypeStrict"
+ },
+ "snakeCase": {
+ "unsafeName": "index_type_strict",
+ "safeName": "index_type_strict"
+ },
+ "screamingSnakeCase": {
+ "unsafeName": "INDEX_TYPE_STRICT",
+ "safeName": "INDEX_TYPE_STRICT"
+ },
+ "pascalCase": {
+ "unsafeName": "IndexTypeStrict",
+ "safeName": "IndexTypeStrict"
+ }
+ },
+ "wireValue": "INDEX_TYPE_STRICT"
+ }
+ ]
+ },
"type_:IndexedData": {
"type": "object",
"declaration": {
@@ -30180,7 +29970,7 @@
"type": "optional",
"value": {
"type": "named",
- "value": "type_dataservice:IndexType"
+ "value": "type_:IndexType"
}
},
"propertyAccess": null,
@@ -30248,7 +30038,7 @@
"type": "list",
"value": {
"type": "named",
- "value": "type_dataservice:IndexType"
+ "value": "type_:IndexType"
}
}
},
@@ -30528,91 +30318,11 @@
},
"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"
- },
- "examples": null
- },
- "endpoint_dataservice.upload": {
+ "endpoint_dataService.Upload": {
"auth": null,
"declaration": {
"name": {
- "originalName": "upload",
+ "originalName": "Upload",
"camelCase": {
"unsafeName": "upload",
"safeName": "upload"
@@ -30633,43 +30343,43 @@
"fernFilepath": {
"allParts": [
{
- "originalName": "dataservice",
+ "originalName": "dataService",
"camelCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "dataService",
+ "safeName": "dataService"
},
"snakeCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "data_service",
+ "safeName": "data_service"
},
"screamingSnakeCase": {
- "unsafeName": "DATASERVICE",
- "safeName": "DATASERVICE"
+ "unsafeName": "DATA_SERVICE",
+ "safeName": "DATA_SERVICE"
},
"pascalCase": {
- "unsafeName": "Dataservice",
- "safeName": "Dataservice"
+ "unsafeName": "DataService",
+ "safeName": "DataService"
}
}
],
"packagePath": [],
"file": {
- "originalName": "dataservice",
+ "originalName": "dataService",
"camelCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "dataService",
+ "safeName": "dataService"
},
"snakeCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "data_service",
+ "safeName": "data_service"
},
"screamingSnakeCase": {
- "unsafeName": "DATASERVICE",
- "safeName": "DATASERVICE"
+ "unsafeName": "DATA_SERVICE",
+ "safeName": "DATA_SERVICE"
},
"pascalCase": {
- "unsafeName": "Dataservice",
- "safeName": "Dataservice"
+ "unsafeName": "DataService",
+ "safeName": "DataService"
}
}
}
@@ -30703,43 +30413,43 @@
"fernFilepath": {
"allParts": [
{
- "originalName": "dataservice",
+ "originalName": "dataService",
"camelCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "dataService",
+ "safeName": "dataService"
},
"snakeCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "data_service",
+ "safeName": "data_service"
},
"screamingSnakeCase": {
- "unsafeName": "DATASERVICE",
- "safeName": "DATASERVICE"
+ "unsafeName": "DATA_SERVICE",
+ "safeName": "DATA_SERVICE"
},
"pascalCase": {
- "unsafeName": "Dataservice",
- "safeName": "Dataservice"
+ "unsafeName": "DataService",
+ "safeName": "DataService"
}
}
],
"packagePath": [],
"file": {
- "originalName": "dataservice",
+ "originalName": "dataService",
"camelCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "dataService",
+ "safeName": "dataService"
},
"snakeCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "data_service",
+ "safeName": "data_service"
},
"screamingSnakeCase": {
- "unsafeName": "DATASERVICE",
- "safeName": "DATASERVICE"
+ "unsafeName": "DATA_SERVICE",
+ "safeName": "DATA_SERVICE"
},
"pascalCase": {
- "unsafeName": "Dataservice",
- "safeName": "Dataservice"
+ "unsafeName": "DataService",
+ "safeName": "DataService"
}
}
}
@@ -30828,11 +30538,11 @@
},
"examples": null
},
- "endpoint_dataservice.delete": {
+ "endpoint_dataService.Delete": {
"auth": null,
"declaration": {
"name": {
- "originalName": "delete",
+ "originalName": "Delete",
"camelCase": {
"unsafeName": "delete",
"safeName": "delete"
@@ -30853,43 +30563,43 @@
"fernFilepath": {
"allParts": [
{
- "originalName": "dataservice",
+ "originalName": "dataService",
"camelCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "dataService",
+ "safeName": "dataService"
},
"snakeCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "data_service",
+ "safeName": "data_service"
},
"screamingSnakeCase": {
- "unsafeName": "DATASERVICE",
- "safeName": "DATASERVICE"
+ "unsafeName": "DATA_SERVICE",
+ "safeName": "DATA_SERVICE"
},
"pascalCase": {
- "unsafeName": "Dataservice",
- "safeName": "Dataservice"
+ "unsafeName": "DataService",
+ "safeName": "DataService"
}
}
],
"packagePath": [],
"file": {
- "originalName": "dataservice",
+ "originalName": "dataService",
"camelCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "dataService",
+ "safeName": "dataService"
},
"snakeCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "data_service",
+ "safeName": "data_service"
},
"screamingSnakeCase": {
- "unsafeName": "DATASERVICE",
- "safeName": "DATASERVICE"
+ "unsafeName": "DATA_SERVICE",
+ "safeName": "DATA_SERVICE"
},
"pascalCase": {
- "unsafeName": "Dataservice",
- "safeName": "Dataservice"
+ "unsafeName": "DataService",
+ "safeName": "DataService"
}
}
}
@@ -30923,43 +30633,43 @@
"fernFilepath": {
"allParts": [
{
- "originalName": "dataservice",
+ "originalName": "dataService",
"camelCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "dataService",
+ "safeName": "dataService"
},
"snakeCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "data_service",
+ "safeName": "data_service"
},
"screamingSnakeCase": {
- "unsafeName": "DATASERVICE",
- "safeName": "DATASERVICE"
+ "unsafeName": "DATA_SERVICE",
+ "safeName": "DATA_SERVICE"
},
"pascalCase": {
- "unsafeName": "Dataservice",
- "safeName": "Dataservice"
+ "unsafeName": "DataService",
+ "safeName": "DataService"
}
}
],
"packagePath": [],
"file": {
- "originalName": "dataservice",
+ "originalName": "dataService",
"camelCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "dataService",
+ "safeName": "dataService"
},
"snakeCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "data_service",
+ "safeName": "data_service"
},
"screamingSnakeCase": {
- "unsafeName": "DATASERVICE",
- "safeName": "DATASERVICE"
+ "unsafeName": "DATA_SERVICE",
+ "safeName": "DATA_SERVICE"
},
"pascalCase": {
- "unsafeName": "Dataservice",
- "safeName": "Dataservice"
+ "unsafeName": "DataService",
+ "safeName": "DataService"
}
}
}
@@ -31117,11 +30827,11 @@
},
"examples": null
},
- "endpoint_dataservice.describe": {
+ "endpoint_dataService.Describe": {
"auth": null,
"declaration": {
"name": {
- "originalName": "describe",
+ "originalName": "Describe",
"camelCase": {
"unsafeName": "describe",
"safeName": "describe"
@@ -31142,43 +30852,43 @@
"fernFilepath": {
"allParts": [
{
- "originalName": "dataservice",
+ "originalName": "dataService",
"camelCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "dataService",
+ "safeName": "dataService"
},
"snakeCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "data_service",
+ "safeName": "data_service"
},
"screamingSnakeCase": {
- "unsafeName": "DATASERVICE",
- "safeName": "DATASERVICE"
+ "unsafeName": "DATA_SERVICE",
+ "safeName": "DATA_SERVICE"
},
"pascalCase": {
- "unsafeName": "Dataservice",
- "safeName": "Dataservice"
+ "unsafeName": "DataService",
+ "safeName": "DataService"
}
}
],
"packagePath": [],
"file": {
- "originalName": "dataservice",
+ "originalName": "dataService",
"camelCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "dataService",
+ "safeName": "dataService"
},
"snakeCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "data_service",
+ "safeName": "data_service"
},
"screamingSnakeCase": {
- "unsafeName": "DATASERVICE",
- "safeName": "DATASERVICE"
+ "unsafeName": "DATA_SERVICE",
+ "safeName": "DATA_SERVICE"
},
"pascalCase": {
- "unsafeName": "Dataservice",
- "safeName": "Dataservice"
+ "unsafeName": "DataService",
+ "safeName": "DataService"
}
}
}
@@ -31212,43 +30922,43 @@
"fernFilepath": {
"allParts": [
{
- "originalName": "dataservice",
+ "originalName": "dataService",
"camelCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "dataService",
+ "safeName": "dataService"
},
"snakeCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "data_service",
+ "safeName": "data_service"
},
"screamingSnakeCase": {
- "unsafeName": "DATASERVICE",
- "safeName": "DATASERVICE"
+ "unsafeName": "DATA_SERVICE",
+ "safeName": "DATA_SERVICE"
},
"pascalCase": {
- "unsafeName": "Dataservice",
- "safeName": "Dataservice"
+ "unsafeName": "DataService",
+ "safeName": "DataService"
}
}
],
"packagePath": [],
"file": {
- "originalName": "dataservice",
+ "originalName": "dataService",
"camelCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "dataService",
+ "safeName": "dataService"
},
"snakeCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "data_service",
+ "safeName": "data_service"
},
"screamingSnakeCase": {
- "unsafeName": "DATASERVICE",
- "safeName": "DATASERVICE"
+ "unsafeName": "DATA_SERVICE",
+ "safeName": "DATA_SERVICE"
},
"pascalCase": {
- "unsafeName": "Dataservice",
- "safeName": "Dataservice"
+ "unsafeName": "DataService",
+ "safeName": "DataService"
}
}
}
@@ -31337,11 +31047,11 @@
},
"examples": null
},
- "endpoint_dataservice.fetch": {
+ "endpoint_dataService.Fetch": {
"auth": null,
"declaration": {
"name": {
- "originalName": "fetch",
+ "originalName": "Fetch",
"camelCase": {
"unsafeName": "fetch",
"safeName": "fetch"
@@ -31362,43 +31072,43 @@
"fernFilepath": {
"allParts": [
{
- "originalName": "dataservice",
+ "originalName": "dataService",
"camelCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "dataService",
+ "safeName": "dataService"
},
"snakeCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "data_service",
+ "safeName": "data_service"
},
"screamingSnakeCase": {
- "unsafeName": "DATASERVICE",
- "safeName": "DATASERVICE"
+ "unsafeName": "DATA_SERVICE",
+ "safeName": "DATA_SERVICE"
},
"pascalCase": {
- "unsafeName": "Dataservice",
- "safeName": "Dataservice"
+ "unsafeName": "DataService",
+ "safeName": "DataService"
}
}
],
"packagePath": [],
"file": {
- "originalName": "dataservice",
+ "originalName": "dataService",
"camelCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "dataService",
+ "safeName": "dataService"
},
"snakeCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "data_service",
+ "safeName": "data_service"
},
"screamingSnakeCase": {
- "unsafeName": "DATASERVICE",
- "safeName": "DATASERVICE"
+ "unsafeName": "DATA_SERVICE",
+ "safeName": "DATA_SERVICE"
},
"pascalCase": {
- "unsafeName": "Dataservice",
- "safeName": "Dataservice"
+ "unsafeName": "DataService",
+ "safeName": "DataService"
}
}
}
@@ -31432,43 +31142,43 @@
"fernFilepath": {
"allParts": [
{
- "originalName": "dataservice",
+ "originalName": "dataService",
"camelCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "dataService",
+ "safeName": "dataService"
},
"snakeCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "data_service",
+ "safeName": "data_service"
},
"screamingSnakeCase": {
- "unsafeName": "DATASERVICE",
- "safeName": "DATASERVICE"
+ "unsafeName": "DATA_SERVICE",
+ "safeName": "DATA_SERVICE"
},
"pascalCase": {
- "unsafeName": "Dataservice",
- "safeName": "Dataservice"
+ "unsafeName": "DataService",
+ "safeName": "DataService"
}
}
],
"packagePath": [],
"file": {
- "originalName": "dataservice",
+ "originalName": "dataService",
"camelCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "dataService",
+ "safeName": "dataService"
},
"snakeCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "data_service",
+ "safeName": "data_service"
},
"screamingSnakeCase": {
- "unsafeName": "DATASERVICE",
- "safeName": "DATASERVICE"
+ "unsafeName": "DATA_SERVICE",
+ "safeName": "DATA_SERVICE"
},
"pascalCase": {
- "unsafeName": "Dataservice",
- "safeName": "Dataservice"
+ "unsafeName": "DataService",
+ "safeName": "DataService"
}
}
}
@@ -31557,11 +31267,11 @@
},
"examples": null
},
- "endpoint_dataservice.list": {
+ "endpoint_dataService.List": {
"auth": null,
"declaration": {
"name": {
- "originalName": "list",
+ "originalName": "List",
"camelCase": {
"unsafeName": "list",
"safeName": "list"
@@ -31582,43 +31292,43 @@
"fernFilepath": {
"allParts": [
{
- "originalName": "dataservice",
+ "originalName": "dataService",
"camelCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "dataService",
+ "safeName": "dataService"
},
"snakeCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "data_service",
+ "safeName": "data_service"
},
"screamingSnakeCase": {
- "unsafeName": "DATASERVICE",
- "safeName": "DATASERVICE"
+ "unsafeName": "DATA_SERVICE",
+ "safeName": "DATA_SERVICE"
},
"pascalCase": {
- "unsafeName": "Dataservice",
- "safeName": "Dataservice"
+ "unsafeName": "DataService",
+ "safeName": "DataService"
}
}
],
"packagePath": [],
"file": {
- "originalName": "dataservice",
+ "originalName": "dataService",
"camelCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "dataService",
+ "safeName": "dataService"
},
"snakeCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "data_service",
+ "safeName": "data_service"
},
"screamingSnakeCase": {
- "unsafeName": "DATASERVICE",
- "safeName": "DATASERVICE"
+ "unsafeName": "DATA_SERVICE",
+ "safeName": "DATA_SERVICE"
},
"pascalCase": {
- "unsafeName": "Dataservice",
- "safeName": "Dataservice"
+ "unsafeName": "DataService",
+ "safeName": "DataService"
}
}
}
@@ -31652,43 +31362,43 @@
"fernFilepath": {
"allParts": [
{
- "originalName": "dataservice",
+ "originalName": "dataService",
"camelCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "dataService",
+ "safeName": "dataService"
},
"snakeCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "data_service",
+ "safeName": "data_service"
},
"screamingSnakeCase": {
- "unsafeName": "DATASERVICE",
- "safeName": "DATASERVICE"
+ "unsafeName": "DATA_SERVICE",
+ "safeName": "DATA_SERVICE"
},
"pascalCase": {
- "unsafeName": "Dataservice",
- "safeName": "Dataservice"
+ "unsafeName": "DataService",
+ "safeName": "DataService"
}
}
],
"packagePath": [],
"file": {
- "originalName": "dataservice",
+ "originalName": "dataService",
"camelCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "dataService",
+ "safeName": "dataService"
},
"snakeCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "data_service",
+ "safeName": "data_service"
},
"screamingSnakeCase": {
- "unsafeName": "DATASERVICE",
- "safeName": "DATASERVICE"
+ "unsafeName": "DATA_SERVICE",
+ "safeName": "DATA_SERVICE"
},
"pascalCase": {
- "unsafeName": "Dataservice",
- "safeName": "Dataservice"
+ "unsafeName": "DataService",
+ "safeName": "DataService"
}
}
}
@@ -31840,11 +31550,11 @@
},
"examples": null
},
- "endpoint_dataservice.query": {
+ "endpoint_dataService.Query": {
"auth": null,
"declaration": {
"name": {
- "originalName": "query",
+ "originalName": "Query",
"camelCase": {
"unsafeName": "query",
"safeName": "query"
@@ -31865,43 +31575,43 @@
"fernFilepath": {
"allParts": [
{
- "originalName": "dataservice",
+ "originalName": "dataService",
"camelCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "dataService",
+ "safeName": "dataService"
},
"snakeCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "data_service",
+ "safeName": "data_service"
},
"screamingSnakeCase": {
- "unsafeName": "DATASERVICE",
- "safeName": "DATASERVICE"
+ "unsafeName": "DATA_SERVICE",
+ "safeName": "DATA_SERVICE"
},
"pascalCase": {
- "unsafeName": "Dataservice",
- "safeName": "Dataservice"
+ "unsafeName": "DataService",
+ "safeName": "DataService"
}
}
],
"packagePath": [],
"file": {
- "originalName": "dataservice",
+ "originalName": "dataService",
"camelCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "dataService",
+ "safeName": "dataService"
},
"snakeCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "data_service",
+ "safeName": "data_service"
},
"screamingSnakeCase": {
- "unsafeName": "DATASERVICE",
- "safeName": "DATASERVICE"
+ "unsafeName": "DATA_SERVICE",
+ "safeName": "DATA_SERVICE"
},
"pascalCase": {
- "unsafeName": "Dataservice",
- "safeName": "Dataservice"
+ "unsafeName": "DataService",
+ "safeName": "DataService"
}
}
}
@@ -31935,43 +31645,43 @@
"fernFilepath": {
"allParts": [
{
- "originalName": "dataservice",
+ "originalName": "dataService",
"camelCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "dataService",
+ "safeName": "dataService"
},
"snakeCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "data_service",
+ "safeName": "data_service"
},
"screamingSnakeCase": {
- "unsafeName": "DATASERVICE",
- "safeName": "DATASERVICE"
+ "unsafeName": "DATA_SERVICE",
+ "safeName": "DATA_SERVICE"
},
"pascalCase": {
- "unsafeName": "Dataservice",
- "safeName": "Dataservice"
+ "unsafeName": "DataService",
+ "safeName": "DataService"
}
}
],
"packagePath": [],
"file": {
- "originalName": "dataservice",
+ "originalName": "dataService",
"camelCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "dataService",
+ "safeName": "dataService"
},
"snakeCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "data_service",
+ "safeName": "data_service"
},
"screamingSnakeCase": {
- "unsafeName": "DATASERVICE",
- "safeName": "DATASERVICE"
+ "unsafeName": "DATA_SERVICE",
+ "safeName": "DATA_SERVICE"
},
"pascalCase": {
- "unsafeName": "Dataservice",
- "safeName": "Dataservice"
+ "unsafeName": "DataService",
+ "safeName": "DataService"
}
}
}
@@ -32294,11 +32004,11 @@
},
"examples": null
},
- "endpoint_dataservice.update": {
+ "endpoint_dataService.Update": {
"auth": null,
"declaration": {
"name": {
- "originalName": "update",
+ "originalName": "Update",
"camelCase": {
"unsafeName": "update",
"safeName": "update"
@@ -32319,43 +32029,43 @@
"fernFilepath": {
"allParts": [
{
- "originalName": "dataservice",
+ "originalName": "dataService",
"camelCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "dataService",
+ "safeName": "dataService"
},
"snakeCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "data_service",
+ "safeName": "data_service"
},
"screamingSnakeCase": {
- "unsafeName": "DATASERVICE",
- "safeName": "DATASERVICE"
+ "unsafeName": "DATA_SERVICE",
+ "safeName": "DATA_SERVICE"
},
"pascalCase": {
- "unsafeName": "Dataservice",
- "safeName": "Dataservice"
+ "unsafeName": "DataService",
+ "safeName": "DataService"
}
}
],
"packagePath": [],
"file": {
- "originalName": "dataservice",
+ "originalName": "dataService",
"camelCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "dataService",
+ "safeName": "dataService"
},
"snakeCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "data_service",
+ "safeName": "data_service"
},
"screamingSnakeCase": {
- "unsafeName": "DATASERVICE",
- "safeName": "DATASERVICE"
+ "unsafeName": "DATA_SERVICE",
+ "safeName": "DATA_SERVICE"
},
"pascalCase": {
- "unsafeName": "Dataservice",
- "safeName": "Dataservice"
+ "unsafeName": "DataService",
+ "safeName": "DataService"
}
}
}
@@ -32389,43 +32099,43 @@
"fernFilepath": {
"allParts": [
{
- "originalName": "dataservice",
+ "originalName": "dataService",
"camelCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "dataService",
+ "safeName": "dataService"
},
"snakeCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "data_service",
+ "safeName": "data_service"
},
"screamingSnakeCase": {
- "unsafeName": "DATASERVICE",
- "safeName": "DATASERVICE"
+ "unsafeName": "DATA_SERVICE",
+ "safeName": "DATA_SERVICE"
},
"pascalCase": {
- "unsafeName": "Dataservice",
- "safeName": "Dataservice"
+ "unsafeName": "DataService",
+ "safeName": "DataService"
}
}
],
"packagePath": [],
"file": {
- "originalName": "dataservice",
+ "originalName": "dataService",
"camelCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "dataService",
+ "safeName": "dataService"
},
"snakeCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "data_service",
+ "safeName": "data_service"
},
"screamingSnakeCase": {
- "unsafeName": "DATASERVICE",
- "safeName": "DATASERVICE"
+ "unsafeName": "DATA_SERVICE",
+ "safeName": "DATA_SERVICE"
},
"pascalCase": {
- "unsafeName": "Dataservice",
- "safeName": "Dataservice"
+ "unsafeName": "DataService",
+ "safeName": "DataService"
}
}
}
@@ -32628,7 +32338,7 @@
"type": "optional",
"value": {
"type": "named",
- "value": "type_dataservice:IndexType"
+ "value": "type_:IndexType"
}
},
"propertyAccess": null,
@@ -32696,8 +32406,41 @@
"type": "list",
"value": {
"type": "named",
- "value": "type_dataservice:IndexType"
+ "value": "type_:IndexType"
+ }
+ }
+ },
+ "propertyAccess": null,
+ "variable": null
+ },
+ {
+ "name": {
+ "name": {
+ "originalName": "aspect_ratio",
+ "camelCase": {
+ "unsafeName": "aspectRatio",
+ "safeName": "aspectRatio"
+ },
+ "snakeCase": {
+ "unsafeName": "aspect_ratio",
+ "safeName": "aspect_ratio"
+ },
+ "screamingSnakeCase": {
+ "unsafeName": "ASPECT_RATIO",
+ "safeName": "ASPECT_RATIO"
+ },
+ "pascalCase": {
+ "unsafeName": "AspectRatio",
+ "safeName": "AspectRatio"
}
+ },
+ "wireValue": "aspect_ratio"
+ },
+ "typeReference": {
+ "type": "optional",
+ "value": {
+ "type": "named",
+ "value": "type_:AspectRatio"
}
},
"propertyAccess": null,
@@ -32714,6 +32457,48 @@
"type": "json"
},
"examples": null
+ },
+ "endpoint_.postFoo": {
+ "auth": null,
+ "declaration": {
+ "name": {
+ "originalName": "postFoo",
+ "camelCase": {
+ "unsafeName": "postFoo",
+ "safeName": "postFoo"
+ },
+ "snakeCase": {
+ "unsafeName": "post_foo",
+ "safeName": "post_foo"
+ },
+ "screamingSnakeCase": {
+ "unsafeName": "POST_FOO",
+ "safeName": "POST_FOO"
+ },
+ "pascalCase": {
+ "unsafeName": "PostFoo",
+ "safeName": "PostFoo"
+ }
+ },
+ "fernFilepath": {
+ "allParts": [],
+ "packagePath": [],
+ "file": null
+ }
+ },
+ "location": {
+ "method": "POST",
+ "path": "/foo"
+ },
+ "request": {
+ "type": "body",
+ "pathParameters": [],
+ "body": null
+ },
+ "response": {
+ "type": "json"
+ },
+ "examples": null
}
},
"pathParameters": [],
@@ -32756,74 +32541,72 @@
"generationMetadata": null,
"apiPlayground": true,
"subpackages": {
- "subpackage_dataservice": {
+ "subpackage_dataService": {
"name": {
- "originalName": "dataservice",
+ "originalName": "dataService",
"camelCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "dataService",
+ "safeName": "dataService"
},
"snakeCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "data_service",
+ "safeName": "data_service"
},
"screamingSnakeCase": {
- "unsafeName": "DATASERVICE",
- "safeName": "DATASERVICE"
+ "unsafeName": "DATA_SERVICE",
+ "safeName": "DATA_SERVICE"
},
"pascalCase": {
- "unsafeName": "Dataservice",
- "safeName": "Dataservice"
+ "unsafeName": "DataService",
+ "safeName": "DataService"
}
},
"displayName": null,
"fernFilepath": {
"allParts": [
{
- "originalName": "dataservice",
+ "originalName": "dataService",
"camelCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "dataService",
+ "safeName": "dataService"
},
"snakeCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "data_service",
+ "safeName": "data_service"
},
"screamingSnakeCase": {
- "unsafeName": "DATASERVICE",
- "safeName": "DATASERVICE"
+ "unsafeName": "DATA_SERVICE",
+ "safeName": "DATA_SERVICE"
},
"pascalCase": {
- "unsafeName": "Dataservice",
- "safeName": "Dataservice"
+ "unsafeName": "DataService",
+ "safeName": "DataService"
}
}
],
"packagePath": [],
"file": {
- "originalName": "dataservice",
+ "originalName": "dataService",
"camelCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "dataService",
+ "safeName": "dataService"
},
"snakeCase": {
- "unsafeName": "dataservice",
- "safeName": "dataservice"
+ "unsafeName": "data_service",
+ "safeName": "data_service"
},
"screamingSnakeCase": {
- "unsafeName": "DATASERVICE",
- "safeName": "DATASERVICE"
+ "unsafeName": "DATA_SERVICE",
+ "safeName": "DATA_SERVICE"
},
"pascalCase": {
- "unsafeName": "Dataservice",
- "safeName": "Dataservice"
+ "unsafeName": "DataService",
+ "safeName": "DataService"
}
}
},
- "service": "service_dataservice",
- "types": [
- "type_dataservice:IndexType"
- ],
+ "service": "service_dataService",
+ "types": [],
"errors": [],
"subpackages": [],
"navigationConfig": null,
@@ -32840,13 +32623,15 @@
"file": null
},
"websocket": null,
- "service": null,
+ "service": "service_",
"types": [
+ "type_:AspectRatio",
"type_:Column",
"type_:DeleteResponse",
"type_:DescribeResponse",
"type_:FetchResponse",
"type_:FieldBehavior",
+ "type_:IndexType",
"type_:IndexedData",
"type_:ListElement",
"type_:ListResponse",
@@ -32865,7 +32650,7 @@
],
"errors": [],
"subpackages": [
- "subpackage_dataservice"
+ "subpackage_dataService"
],
"webhooks": null,
"navigationConfig": null,
diff --git a/packages/cli/generation/ir-generator-tests/src/ir/__test__/test-definitions/csharp-grpc-proto.json b/packages/cli/generation/ir-generator-tests/src/ir/__test__/test-definitions/csharp-grpc-proto.json
index c1f421b5d434..fec720247f8e 100644
--- a/packages/cli/generation/ir-generator-tests/src/ir/__test__/test-definitions/csharp-grpc-proto.json
+++ b/packages/cli/generation/ir-generator-tests/src/ir/__test__/test-definitions/csharp-grpc-proto.json
@@ -754,49 +754,49 @@
},
"errors": {},
"services": {
- "service_userservice": {
+ "service_userService": {
"availability": null,
"name": {
"fernFilepath": {
"allParts": [
{
- "originalName": "userservice",
+ "originalName": "userService",
"camelCase": {
- "unsafeName": "userservice",
- "safeName": "userservice"
+ "unsafeName": "userService",
+ "safeName": "userService"
},
"snakeCase": {
- "unsafeName": "userservice",
- "safeName": "userservice"
+ "unsafeName": "user_service",
+ "safeName": "user_service"
},
"screamingSnakeCase": {
- "unsafeName": "USERSERVICE",
- "safeName": "USERSERVICE"
+ "unsafeName": "USER_SERVICE",
+ "safeName": "USER_SERVICE"
},
"pascalCase": {
- "unsafeName": "Userservice",
- "safeName": "Userservice"
+ "unsafeName": "UserService",
+ "safeName": "UserService"
}
}
],
"packagePath": [],
"file": {
- "originalName": "userservice",
+ "originalName": "userService",
"camelCase": {
- "unsafeName": "userservice",
- "safeName": "userservice"
+ "unsafeName": "userService",
+ "safeName": "userService"
},
"snakeCase": {
- "unsafeName": "userservice",
- "safeName": "userservice"
+ "unsafeName": "user_service",
+ "safeName": "user_service"
},
"screamingSnakeCase": {
- "unsafeName": "USERSERVICE",
- "safeName": "USERSERVICE"
+ "unsafeName": "USER_SERVICE",
+ "safeName": "USER_SERVICE"
},
"pascalCase": {
- "unsafeName": "Userservice",
- "safeName": "Userservice"
+ "unsafeName": "UserService",
+ "safeName": "UserService"
}
}
}
@@ -847,9 +847,9 @@
},
"endpoints": [
{
- "id": "endpoint_userservice.create",
+ "id": "endpoint_userService.Create",
"name": {
- "originalName": "create",
+ "originalName": "Create",
"camelCase": {
"unsafeName": "create",
"safeName": "create"
@@ -3182,7 +3182,7 @@
"variables": [],
"serviceTypeReferenceInfo": {
"typesReferencedOnlyByService": {
- "service_userservice": [
+ "service_userService": [
"type_:CreateResponse",
"type_:UserModel",
"type_:Metadata",
@@ -3561,11 +3561,11 @@
},
"headers": [],
"endpoints": {
- "endpoint_userservice.create": {
+ "endpoint_userService.Create": {
"auth": null,
"declaration": {
"name": {
- "originalName": "create",
+ "originalName": "Create",
"camelCase": {
"unsafeName": "create",
"safeName": "create"
@@ -3586,43 +3586,43 @@
"fernFilepath": {
"allParts": [
{
- "originalName": "userservice",
+ "originalName": "userService",
"camelCase": {
- "unsafeName": "userservice",
- "safeName": "userservice"
+ "unsafeName": "userService",
+ "safeName": "userService"
},
"snakeCase": {
- "unsafeName": "userservice",
- "safeName": "userservice"
+ "unsafeName": "user_service",
+ "safeName": "user_service"
},
"screamingSnakeCase": {
- "unsafeName": "USERSERVICE",
- "safeName": "USERSERVICE"
+ "unsafeName": "USER_SERVICE",
+ "safeName": "USER_SERVICE"
},
"pascalCase": {
- "unsafeName": "Userservice",
- "safeName": "Userservice"
+ "unsafeName": "UserService",
+ "safeName": "UserService"
}
}
],
"packagePath": [],
"file": {
- "originalName": "userservice",
+ "originalName": "userService",
"camelCase": {
- "unsafeName": "userservice",
- "safeName": "userservice"
+ "unsafeName": "userService",
+ "safeName": "userService"
},
"snakeCase": {
- "unsafeName": "userservice",
- "safeName": "userservice"
+ "unsafeName": "user_service",
+ "safeName": "user_service"
},
"screamingSnakeCase": {
- "unsafeName": "USERSERVICE",
- "safeName": "USERSERVICE"
+ "unsafeName": "USER_SERVICE",
+ "safeName": "USER_SERVICE"
},
"pascalCase": {
- "unsafeName": "Userservice",
- "safeName": "Userservice"
+ "unsafeName": "UserService",
+ "safeName": "UserService"
}
}
}
@@ -3656,43 +3656,43 @@
"fernFilepath": {
"allParts": [
{
- "originalName": "userservice",
+ "originalName": "userService",
"camelCase": {
- "unsafeName": "userservice",
- "safeName": "userservice"
+ "unsafeName": "userService",
+ "safeName": "userService"
},
"snakeCase": {
- "unsafeName": "userservice",
- "safeName": "userservice"
+ "unsafeName": "user_service",
+ "safeName": "user_service"
},
"screamingSnakeCase": {
- "unsafeName": "USERSERVICE",
- "safeName": "USERSERVICE"
+ "unsafeName": "USER_SERVICE",
+ "safeName": "USER_SERVICE"
},
"pascalCase": {
- "unsafeName": "Userservice",
- "safeName": "Userservice"
+ "unsafeName": "UserService",
+ "safeName": "UserService"
}
}
],
"packagePath": [],
"file": {
- "originalName": "userservice",
+ "originalName": "userService",
"camelCase": {
- "unsafeName": "userservice",
- "safeName": "userservice"
+ "unsafeName": "userService",
+ "safeName": "userService"
},
"snakeCase": {
- "unsafeName": "userservice",
- "safeName": "userservice"
+ "unsafeName": "user_service",
+ "safeName": "user_service"
},
"screamingSnakeCase": {
- "unsafeName": "USERSERVICE",
- "safeName": "USERSERVICE"
+ "unsafeName": "USER_SERVICE",
+ "safeName": "USER_SERVICE"
},
"pascalCase": {
- "unsafeName": "Userservice",
- "safeName": "Userservice"
+ "unsafeName": "UserService",
+ "safeName": "UserService"
}
}
}
@@ -3890,71 +3890,71 @@
"generationMetadata": null,
"apiPlayground": true,
"subpackages": {
- "subpackage_userservice": {
+ "subpackage_userService": {
"name": {
- "originalName": "userservice",
+ "originalName": "userService",
"camelCase": {
- "unsafeName": "userservice",
- "safeName": "userservice"
+ "unsafeName": "userService",
+ "safeName": "userService"
},
"snakeCase": {
- "unsafeName": "userservice",
- "safeName": "userservice"
+ "unsafeName": "user_service",
+ "safeName": "user_service"
},
"screamingSnakeCase": {
- "unsafeName": "USERSERVICE",
- "safeName": "USERSERVICE"
+ "unsafeName": "USER_SERVICE",
+ "safeName": "USER_SERVICE"
},
"pascalCase": {
- "unsafeName": "Userservice",
- "safeName": "Userservice"
+ "unsafeName": "UserService",
+ "safeName": "UserService"
}
},
"displayName": null,
"fernFilepath": {
"allParts": [
{
- "originalName": "userservice",
+ "originalName": "userService",
"camelCase": {
- "unsafeName": "userservice",
- "safeName": "userservice"
+ "unsafeName": "userService",
+ "safeName": "userService"
},
"snakeCase": {
- "unsafeName": "userservice",
- "safeName": "userservice"
+ "unsafeName": "user_service",
+ "safeName": "user_service"
},
"screamingSnakeCase": {
- "unsafeName": "USERSERVICE",
- "safeName": "USERSERVICE"
+ "unsafeName": "USER_SERVICE",
+ "safeName": "USER_SERVICE"
},
"pascalCase": {
- "unsafeName": "Userservice",
- "safeName": "Userservice"
+ "unsafeName": "UserService",
+ "safeName": "UserService"
}
}
],
"packagePath": [],
"file": {
- "originalName": "userservice",
+ "originalName": "userService",
"camelCase": {
- "unsafeName": "userservice",
- "safeName": "userservice"
+ "unsafeName": "userService",
+ "safeName": "userService"
},
"snakeCase": {
- "unsafeName": "userservice",
- "safeName": "userservice"
+ "unsafeName": "user_service",
+ "safeName": "user_service"
},
"screamingSnakeCase": {
- "unsafeName": "USERSERVICE",
- "safeName": "USERSERVICE"
+ "unsafeName": "USER_SERVICE",
+ "safeName": "USER_SERVICE"
},
"pascalCase": {
- "unsafeName": "Userservice",
- "safeName": "Userservice"
+ "unsafeName": "UserService",
+ "safeName": "UserService"
}
}
},
- "service": "service_userservice",
+ "service": "service_userService",
"types": [],
"errors": [],
"subpackages": [],
@@ -3981,7 +3981,7 @@
],
"errors": [],
"subpackages": [
- "subpackage_userservice"
+ "subpackage_userService"
],
"webhooks": null,
"navigationConfig": null,
diff --git a/packages/cli/generation/ir-generator-tests/src/ir/__test__/test-definitions/go-deterministic-ordering.json b/packages/cli/generation/ir-generator-tests/src/ir/__test__/test-definitions/go-deterministic-ordering.json
index 452e7c137a57..86e1c2987d0f 100644
--- a/packages/cli/generation/ir-generator-tests/src/ir/__test__/test-definitions/go-deterministic-ordering.json
+++ b/packages/cli/generation/ir-generator-tests/src/ir/__test__/test-definitions/go-deterministic-ordering.json
@@ -1072,7 +1072,8 @@
"availability": null,
"docs": null
}
- ]
+ ],
+ "forwardCompatible": null
},
"referencedTypes": [],
"encoding": {
@@ -1483,7 +1484,8 @@
"availability": null,
"docs": null
}
- ]
+ ],
+ "forwardCompatible": null
},
"referencedTypes": [],
"encoding": {
@@ -2293,7 +2295,8 @@
"availability": null,
"docs": null
}
- ]
+ ],
+ "forwardCompatible": null
},
"referencedTypes": [],
"encoding": {
diff --git a/packages/cli/register/src/ir-to-fdr-converter/__test__/__snapshots__/grpc-comments-fdr.snap b/packages/cli/register/src/ir-to-fdr-converter/__test__/__snapshots__/grpc-comments-fdr.snap
index 819d9c5e37c2..f2fb2fadb949 100644
--- a/packages/cli/register/src/ir-to-fdr-converter/__test__/__snapshots__/grpc-comments-fdr.snap
+++ b/packages/cli/register/src/ir-to-fdr-converter/__test__/__snapshots__/grpc-comments-fdr.snap
@@ -102,7 +102,7 @@
},
],
"headers": [],
- "id": "createcomment",
+ "id": "CreateComment",
"includeInApiExplorer": undefined,
"method": "POST",
"multiAuth": [
@@ -113,7 +113,7 @@
},
],
"name": "Add a Comment",
- "originalEndpointId": "endpoint_commentsService.createcomment",
+ "originalEndpointId": "endpoint_commentsService.CreateComment",
"path": {
"parts": [
{
diff --git a/packages/cli/register/src/ir-to-fdr-converter/__test__/__snapshots__/grpc-comments-ir.snap b/packages/cli/register/src/ir-to-fdr-converter/__test__/__snapshots__/grpc-comments-ir.snap
index 5c513dded46f..470f36d0adaa 100644
--- a/packages/cli/register/src/ir-to-fdr-converter/__test__/__snapshots__/grpc-comments-ir.snap
+++ b/packages/cli/register/src/ir-to-fdr-converter/__test__/__snapshots__/grpc-comments-ir.snap
@@ -198,26 +198,26 @@
"parts": [],
},
"headers": [],
- "id": "endpoint_commentsService.createcomment",
+ "id": "endpoint_commentsService.CreateComment",
"idempotent": false,
"method": "POST",
"name": {
"camelCase": {
- "safeName": "createcomment",
- "unsafeName": "createcomment",
+ "safeName": "createComment",
+ "unsafeName": "createComment",
},
- "originalName": "createcomment",
+ "originalName": "CreateComment",
"pascalCase": {
- "safeName": "Createcomment",
- "unsafeName": "Createcomment",
+ "safeName": "CreateComment",
+ "unsafeName": "CreateComment",
},
"screamingSnakeCase": {
- "safeName": "CREATECOMMENT",
- "unsafeName": "CREATECOMMENT",
+ "safeName": "CREATE_COMMENT",
+ "unsafeName": "CREATE_COMMENT",
},
"snakeCase": {
- "safeName": "createcomment",
- "unsafeName": "createcomment",
+ "safeName": "create_comment",
+ "unsafeName": "create_comment",
},
},
"pagination": undefined,
@@ -266,7 +266,7 @@
"type": "reference",
"v2Examples": {
"autogeneratedExamples": {
- "commentsServiceCreatecommentExample": {},
+ "commentsServiceCreateCommentExample": {},
},
"userSpecifiedExamples": {},
},
@@ -313,7 +313,7 @@
"type": "response",
"v2Examples": {
"autogeneratedExamples": {
- "commentsServiceCreatecommentExample": {
+ "commentsServiceCreateCommentExample": {
"comment": {
"author": "string",
"created_at": 1,
@@ -348,9 +348,9 @@
"v2BaseUrls": undefined,
"v2Examples": {
"autogeneratedExamples": {
- "commentsServiceCreatecommentExample_200": {
+ "commentsServiceCreateCommentExample_200": {
"codeSamples": undefined,
- "displayName": "commentsServiceCreatecommentExample",
+ "displayName": "commentsServiceCreateCommentExample",
"request": {
"auth": undefined,
"baseUrl": undefined,
@@ -427,7 +427,7 @@
"type": "reference",
"v2Examples": {
"autogeneratedExamples": {
- "commentsServiceCreatecommentExample": {},
+ "commentsServiceCreateCommentExample": {},
},
"userSpecifiedExamples": {},
},
@@ -478,7 +478,7 @@
"type": "response",
"v2Examples": {
"autogeneratedExamples": {
- "commentsServiceCreatecommentExample": {
+ "commentsServiceCreateCommentExample": {
"comment": {
"author": "string",
"created_at": 1,
diff --git a/seed/csharp-model/csharp-grpc-proto-exhaustive/proto/data/v1/data.proto b/seed/csharp-model/csharp-grpc-proto-exhaustive/proto/data/v1/data.proto
index b8244b95516d..46947f1d26ee 100644
--- a/seed/csharp-model/csharp-grpc-proto-exhaustive/proto/data/v1/data.proto
+++ b/seed/csharp-model/csharp-grpc-proto-exhaustive/proto/data/v1/data.proto
@@ -17,6 +17,14 @@ enum IndexType {
INDEX_TYPE_STRICT = 2;
}
+enum AspectRatio {
+ ASPECT_RATIO_UNSPECIFIED = 0;
+ ASPECT_RATIO_1_1 = 1;
+ ASPECT_RATIO_16_9 = 2;
+ ASPECT_RATIO_9_16 = 3;
+ ASPECT_RATIO_4_3 = 4;
+}
+
message IndexedData {
repeated uint32 indices = 1 [
(google.api.field_behavior) = REQUIRED
@@ -155,6 +163,7 @@ message UpdateRequest {
IndexType index_type = 6;
google.protobuf.Any details = 7;
repeated IndexType index_types = 8;
+ optional AspectRatio aspect_ratio = 9;
}
message UpdateResponse {
diff --git a/seed/csharp-model/csharp-grpc-proto-exhaustive/src/SeedApi/AspectRatio.cs b/seed/csharp-model/csharp-grpc-proto-exhaustive/src/SeedApi/AspectRatio.cs
new file mode 100644
index 000000000000..d86b98014dcf
--- /dev/null
+++ b/seed/csharp-model/csharp-grpc-proto-exhaustive/src/SeedApi/AspectRatio.cs
@@ -0,0 +1,104 @@
+using System.Text.Json;
+using System.Text.Json.Serialization;
+using SeedApi.Core;
+
+namespace SeedApi;
+
+[JsonConverter(typeof(AspectRatio.AspectRatioSerializer))]
+[Serializable]
+public readonly record struct AspectRatio : IStringEnum
+{
+ public static readonly AspectRatio AspectRatioUnspecified = new(Values.AspectRatioUnspecified);
+
+ public static readonly AspectRatio AspectRatio11 = new(Values.AspectRatio11);
+
+ public static readonly AspectRatio AspectRatio169 = new(Values.AspectRatio169);
+
+ public static readonly AspectRatio AspectRatio916 = new(Values.AspectRatio916);
+
+ public static readonly AspectRatio AspectRatio43 = new(Values.AspectRatio43);
+
+ public AspectRatio(string value)
+ {
+ Value = value;
+ }
+
+ ///
+ /// The string value of the enum.
+ ///
+ public string Value { get; }
+
+ ///
+ /// Create a string enum with the given value.
+ ///
+ public static AspectRatio FromCustom(string value)
+ {
+ return new AspectRatio(value);
+ }
+
+ public bool Equals(string? other)
+ {
+ return Value.Equals(other);
+ }
+
+ ///
+ /// Returns the string value of the enum.
+ ///
+ public override string ToString()
+ {
+ return Value;
+ }
+
+ public static bool operator ==(AspectRatio value1, string value2) =>
+ value1.Value.Equals(value2);
+
+ public static bool operator !=(AspectRatio value1, string value2) =>
+ !value1.Value.Equals(value2);
+
+ public static explicit operator string(AspectRatio value) => value.Value;
+
+ public static explicit operator AspectRatio(string value) => new(value);
+
+ internal class AspectRatioSerializer : JsonConverter
+ {
+ public override AspectRatio Read(
+ ref Utf8JsonReader reader,
+ Type typeToConvert,
+ JsonSerializerOptions options
+ )
+ {
+ var stringValue =
+ reader.GetString()
+ ?? throw new global::System.Exception(
+ "The JSON value could not be read as a string."
+ );
+ return new AspectRatio(stringValue);
+ }
+
+ public override void Write(
+ Utf8JsonWriter writer,
+ AspectRatio value,
+ JsonSerializerOptions options
+ )
+ {
+ writer.WriteStringValue(value.Value);
+ }
+ }
+
+ ///
+ /// Constant strings for enum values
+ ///
+ [Serializable]
+ public static class Values
+ {
+ public const string AspectRatioUnspecified = "ASPECT_RATIO_UNSPECIFIED";
+
+ public const string AspectRatio11 = "ASPECT_RATIO_1_1";
+
+ public const string AspectRatio169 = "ASPECT_RATIO_16_9";
+
+ public const string AspectRatio916 = "ASPECT_RATIO_9_16";
+
+ public const string AspectRatio43 = "ASPECT_RATIO_4_3";
+ }
+}
diff --git a/seed/csharp-model/csharp-grpc-proto-exhaustive/src/SeedApi/Dataservice/IndexType.cs b/seed/csharp-model/csharp-grpc-proto-exhaustive/src/SeedApi/IndexType.cs
similarity index 100%
rename from seed/csharp-model/csharp-grpc-proto-exhaustive/src/SeedApi/Dataservice/IndexType.cs
rename to seed/csharp-model/csharp-grpc-proto-exhaustive/src/SeedApi/IndexType.cs
diff --git a/seed/csharp-sdk/csharp-grpc-proto-exhaustive/include-exception-handler/README.md b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/include-exception-handler/README.md
index 7cc184191f18..6639e7180e70 100644
--- a/seed/csharp-sdk/csharp-grpc-proto-exhaustive/include-exception-handler/README.md
+++ b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/include-exception-handler/README.md
@@ -41,7 +41,19 @@ Instantiate and use the client with the following:
using SeedApi;
var client = new SeedApiClient();
-await client.Dataservice.FooAsync();
+await client.DataService.UploadAsync(
+ new UploadRequest
+ {
+ Columns = new List()
+ {
+ new SeedApi.Column
+ {
+ Id = "id",
+ Values = new List() { 1.1f },
+ },
+ },
+ }
+);
```
## Exception Handling
@@ -53,7 +65,7 @@ will be thrown.
using SeedApi;
try {
- var response = await client.Dataservice.FooAsync(...);
+ var response = await client.DataService.UploadAsync(...);
} catch (SeedApiApiException e) {
System.Console.WriteLine(e.Body);
System.Console.WriteLine(e.StatusCode);
@@ -77,7 +89,7 @@ A request is deemed retryable 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.FooAsync(
+var response = await client.DataService.UploadAsync(
...,
new RequestOptions {
MaxRetries: 0 // Override MaxRetries at the request level
@@ -90,7 +102,7 @@ var response = await client.Dataservice.FooAsync(
The SDK defaults to a 30 second timeout. Use the `Timeout` option to configure this behavior.
```csharp
-var response = await client.Dataservice.FooAsync(
+var response = await client.DataService.UploadAsync(
...,
new RequestOptions {
Timeout: TimeSpan.FromSeconds(3) // Override timeout to 3s
@@ -103,7 +115,7 @@ var response = await client.Dataservice.FooAsync(
If you would like to send additional headers as part of the request, use the `AdditionalHeaders` request option.
```csharp
-var response = await client.Dataservice.FooAsync(
+var response = await client.DataService.UploadAsync(
...,
new RequestOptions {
AdditionalHeaders = new Dictionary
@@ -122,25 +134,25 @@ This SDK uses forward-compatible enums that can handle unknown values gracefully
using SeedApi;
// Using a built-in value
-var indexType = IndexType.IndexTypeInvalid;
+var aspectRatio = AspectRatio.AspectRatioUnspecified;
// Using a custom value
-var customIndexType = IndexType.FromCustom("custom-value");
+var customAspectRatio = AspectRatio.FromCustom("custom-value");
// Using in a switch statement
-switch (indexType.Value)
+switch (aspectRatio.Value)
{
- case IndexType.Values.IndexTypeInvalid:
- Console.WriteLine("IndexTypeInvalid");
+ case AspectRatio.Values.AspectRatioUnspecified:
+ Console.WriteLine("AspectRatioUnspecified");
break;
default:
- Console.WriteLine($"Unknown value: {indexType.Value}");
+ Console.WriteLine($"Unknown value: {aspectRatio.Value}");
break;
}
// Explicit casting
-string indexTypeString = (string)IndexType.IndexTypeInvalid;
-IndexType indexTypeFromString = (IndexType)"INDEX_TYPE_INVALID";
+string aspectRatioString = (string)AspectRatio.AspectRatioUnspecified;
+AspectRatio aspectRatioFromString = (AspectRatio)"ASPECT_RATIO_UNSPECIFIED";
```
## Contributing
diff --git a/seed/csharp-sdk/csharp-grpc-proto-exhaustive/include-exception-handler/proto/data/v1/data.proto b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/include-exception-handler/proto/data/v1/data.proto
index b8244b95516d..46947f1d26ee 100644
--- a/seed/csharp-sdk/csharp-grpc-proto-exhaustive/include-exception-handler/proto/data/v1/data.proto
+++ b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/include-exception-handler/proto/data/v1/data.proto
@@ -17,6 +17,14 @@ enum IndexType {
INDEX_TYPE_STRICT = 2;
}
+enum AspectRatio {
+ ASPECT_RATIO_UNSPECIFIED = 0;
+ ASPECT_RATIO_1_1 = 1;
+ ASPECT_RATIO_16_9 = 2;
+ ASPECT_RATIO_9_16 = 3;
+ ASPECT_RATIO_4_3 = 4;
+}
+
message IndexedData {
repeated uint32 indices = 1 [
(google.api.field_behavior) = REQUIRED
@@ -155,6 +163,7 @@ message UpdateRequest {
IndexType index_type = 6;
google.protobuf.Any details = 7;
repeated IndexType index_types = 8;
+ optional AspectRatio aspect_ratio = 9;
}
message UpdateResponse {
diff --git a/seed/csharp-sdk/csharp-grpc-proto-exhaustive/include-exception-handler/reference.md b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/include-exception-handler/reference.md
index b5f9228a5c91..bc7264303b43 100644
--- a/seed/csharp-sdk/csharp-grpc-proto-exhaustive/include-exception-handler/reference.md
+++ b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/include-exception-handler/reference.md
@@ -1,6 +1,5 @@
# Reference
-## DataService
-client.Dataservice.FooAsync() -> WithRawResponseTask<Dictionary<string, object?>>
+client.PostFooAsync() -> WithRawResponseTask<Dictionary<string, object?>>
-
@@ -13,7 +12,7 @@
-
```csharp
-await client.Dataservice.FooAsync();
+await client.PostFooAsync();
```
@@ -25,7 +24,8 @@ await client.Dataservice.FooAsync();
-client.Dataservice.UploadAsync(UploadRequest { ... }) -> WithRawResponseTask<UploadResponse>
+## DataService
+client.DataService.UploadAsync(UploadRequest { ... }) -> WithRawResponseTask<UploadResponse>
-
@@ -38,7 +38,7 @@ await client.Dataservice.FooAsync();
-
```csharp
-await client.Dataservice.UploadAsync(
+await client.DataService.UploadAsync(
new UploadRequest
{
Columns = new List()
@@ -77,7 +77,7 @@ await client.Dataservice.UploadAsync(
-client.Dataservice.DeleteAsync(DeleteRequest { ... }) -> WithRawResponseTask<DeleteResponse>
+client.DataService.DeleteAsync(DeleteRequest { ... }) -> WithRawResponseTask<DeleteResponse>
-
@@ -90,7 +90,7 @@ await client.Dataservice.UploadAsync(
-
```csharp
-await client.Dataservice.DeleteAsync(new DeleteRequest());
+await client.DataService.DeleteAsync(new DeleteRequest());
```
@@ -117,7 +117,7 @@ await client.Dataservice.DeleteAsync(new DeleteRequest());
-client.Dataservice.DescribeAsync(DescribeRequest { ... }) -> WithRawResponseTask<DescribeResponse>
+client.DataService.DescribeAsync(DescribeRequest { ... }) -> WithRawResponseTask<DescribeResponse>
-
@@ -130,7 +130,7 @@ await client.Dataservice.DeleteAsync(new DeleteRequest());
-
```csharp
-await client.Dataservice.DescribeAsync(new DescribeRequest());
+await client.DataService.DescribeAsync(new DescribeRequest());
```
@@ -157,7 +157,7 @@ await client.Dataservice.DescribeAsync(new DescribeRequest());
-client.Dataservice.FetchAsync(FetchRequest { ... }) -> WithRawResponseTask<FetchResponse>
+client.DataService.FetchAsync(FetchRequest { ... }) -> WithRawResponseTask<FetchResponse>
-
@@ -170,7 +170,7 @@ await client.Dataservice.DescribeAsync(new DescribeRequest());
-
```csharp
-await client.Dataservice.FetchAsync(new FetchRequest());
+await client.DataService.FetchAsync(new FetchRequest());
```
@@ -197,7 +197,7 @@ await client.Dataservice.FetchAsync(new FetchRequest());
-client.Dataservice.ListAsync(ListRequest { ... }) -> WithRawResponseTask<ListResponse>
+client.DataService.ListAsync(ListRequest { ... }) -> WithRawResponseTask<ListResponse>
-
@@ -210,7 +210,7 @@ await client.Dataservice.FetchAsync(new FetchRequest());
-
```csharp
-await client.Dataservice.ListAsync(new ListRequest());
+await client.DataService.ListAsync(new ListRequest());
```
@@ -237,7 +237,7 @@ await client.Dataservice.ListAsync(new ListRequest());
-client.Dataservice.QueryAsync(QueryRequest { ... }) -> WithRawResponseTask<QueryResponse>
+client.DataService.QueryAsync(QueryRequest { ... }) -> WithRawResponseTask<QueryResponse>
-
@@ -250,7 +250,7 @@ await client.Dataservice.ListAsync(new ListRequest());
-
```csharp
-await client.Dataservice.QueryAsync(new QueryRequest { TopK = 1 });
+await client.DataService.QueryAsync(new QueryRequest { TopK = 1 });
```
@@ -277,7 +277,7 @@ await client.Dataservice.QueryAsync(new QueryRequest { TopK = 1 });
-client.Dataservice.UpdateAsync(UpdateRequest { ... }) -> WithRawResponseTask<UpdateResponse>
+client.DataService.UpdateAsync(UpdateRequest { ... }) -> WithRawResponseTask<UpdateResponse>
-
@@ -290,7 +290,7 @@ await client.Dataservice.QueryAsync(new QueryRequest { TopK = 1 });
-
```csharp
-await client.Dataservice.UpdateAsync(new UpdateRequest { Id = "id" });
+await client.DataService.UpdateAsync(new UpdateRequest { Id = "id" });
```
diff --git a/seed/csharp-sdk/csharp-grpc-proto-exhaustive/include-exception-handler/snippet.json b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/include-exception-handler/snippet.json
index 10d4d0868455..c435d6f7c198 100644
--- a/seed/csharp-sdk/csharp-grpc-proto-exhaustive/include-exception-handler/snippet.json
+++ b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/include-exception-handler/snippet.json
@@ -1,28 +1,16 @@
{
"types": {},
"endpoints": [
- {
- "example_identifier": null,
- "id": {
- "path": "/foo",
- "method": "POST",
- "identifier_override": "endpoint_dataservice.foo"
- },
- "snippet": {
- "type": "csharp",
- "client": "using SeedApi;\n\nvar client = new SeedApiClient();\nawait client.Dataservice.FooAsync();\n"
- }
- },
{
"example_identifier": null,
"id": {
"path": "/data",
"method": "POST",
- "identifier_override": "endpoint_dataservice.upload"
+ "identifier_override": "endpoint_dataService.Upload"
},
"snippet": {
"type": "csharp",
- "client": "using SeedApi;\n\nvar client = new SeedApiClient();\nawait client.Dataservice.UploadAsync(\n new UploadRequest\n {\n Columns = new List()\n {\n new SeedApi.Column\n {\n Id = \"id\",\n Values = new List() { 1.1f },\n },\n },\n }\n);\n"
+ "client": "using SeedApi;\n\nvar client = new SeedApiClient();\nawait client.DataService.UploadAsync(\n new UploadRequest\n {\n Columns = new List()\n {\n new SeedApi.Column\n {\n Id = \"id\",\n Values = new List() { 1.1f },\n },\n },\n }\n);\n"
}
},
{
@@ -30,11 +18,11 @@
"id": {
"path": "/data/delete",
"method": "POST",
- "identifier_override": "endpoint_dataservice.delete"
+ "identifier_override": "endpoint_dataService.Delete"
},
"snippet": {
"type": "csharp",
- "client": "using SeedApi;\n\nvar client = new SeedApiClient();\nawait client.Dataservice.DeleteAsync(new DeleteRequest());\n"
+ "client": "using SeedApi;\n\nvar client = new SeedApiClient();\nawait client.DataService.DeleteAsync(new DeleteRequest());\n"
}
},
{
@@ -42,11 +30,11 @@
"id": {
"path": "/data/describe",
"method": "POST",
- "identifier_override": "endpoint_dataservice.describe"
+ "identifier_override": "endpoint_dataService.Describe"
},
"snippet": {
"type": "csharp",
- "client": "using SeedApi;\n\nvar client = new SeedApiClient();\nawait client.Dataservice.DescribeAsync(new DescribeRequest());\n"
+ "client": "using SeedApi;\n\nvar client = new SeedApiClient();\nawait client.DataService.DescribeAsync(new DescribeRequest());\n"
}
},
{
@@ -54,11 +42,11 @@
"id": {
"path": "/data/fetch",
"method": "GET",
- "identifier_override": "endpoint_dataservice.fetch"
+ "identifier_override": "endpoint_dataService.Fetch"
},
"snippet": {
"type": "csharp",
- "client": "using SeedApi;\n\nvar client = new SeedApiClient();\nawait client.Dataservice.FetchAsync(new FetchRequest());\n"
+ "client": "using SeedApi;\n\nvar client = new SeedApiClient();\nawait client.DataService.FetchAsync(new FetchRequest());\n"
}
},
{
@@ -66,11 +54,11 @@
"id": {
"path": "/data/list",
"method": "GET",
- "identifier_override": "endpoint_dataservice.list"
+ "identifier_override": "endpoint_dataService.List"
},
"snippet": {
"type": "csharp",
- "client": "using SeedApi;\n\nvar client = new SeedApiClient();\nawait client.Dataservice.ListAsync(new ListRequest());\n"
+ "client": "using SeedApi;\n\nvar client = new SeedApiClient();\nawait client.DataService.ListAsync(new ListRequest());\n"
}
},
{
@@ -78,11 +66,11 @@
"id": {
"path": "/data/query",
"method": "POST",
- "identifier_override": "endpoint_dataservice.query"
+ "identifier_override": "endpoint_dataService.Query"
},
"snippet": {
"type": "csharp",
- "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();\nawait client.DataService.QueryAsync(new QueryRequest { TopK = 1 });\n"
}
},
{
@@ -90,11 +78,23 @@
"id": {
"path": "/data/update",
"method": "POST",
- "identifier_override": "endpoint_dataservice.update"
+ "identifier_override": "endpoint_dataService.Update"
+ },
+ "snippet": {
+ "type": "csharp",
+ "client": "using SeedApi;\n\nvar client = new SeedApiClient();\nawait client.DataService.UpdateAsync(new UpdateRequest { Id = \"id\" });\n"
+ }
+ },
+ {
+ "example_identifier": null,
+ "id": {
+ "path": "/foo",
+ "method": "POST",
+ "identifier_override": "endpoint_.postFoo"
},
"snippet": {
"type": "csharp",
- "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();\nawait client.PostFooAsync();\n"
}
}
]
diff --git a/seed/csharp-sdk/csharp-grpc-proto-exhaustive/include-exception-handler/src/SeedApi.Test/Unit/MockServer/BaseMockServerTest.cs b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/include-exception-handler/src/SeedApi.Test/Unit/MockServer/BaseMockServerTest.cs
new file mode 100644
index 000000000000..3f4ed8503ec1
--- /dev/null
+++ b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/include-exception-handler/src/SeedApi.Test/Unit/MockServer/BaseMockServerTest.cs
@@ -0,0 +1,37 @@
+using NUnit.Framework;
+using SeedApi;
+using WireMock.Logging;
+using WireMock.Server;
+using WireMock.Settings;
+
+namespace SeedApi.Test.Unit.MockServer;
+
+public class BaseMockServerTest
+{
+ protected WireMockServer Server { get; set; } = null!;
+
+ protected SeedApiClient Client { get; set; } = null!;
+
+ protected RequestOptions RequestOptions { get; set; } = new();
+
+ [OneTimeSetUp]
+ public void GlobalSetup()
+ {
+ // Start the WireMock server
+ Server = WireMockServer.Start(
+ new WireMockServerSettings { Logger = new WireMockConsoleLogger() }
+ );
+
+ // Initialize the Client
+ Client = new SeedApiClient(
+ clientOptions: new ClientOptions { BaseUrl = Server.Urls[0], MaxRetries = 0 }
+ );
+ }
+
+ [OneTimeTearDown]
+ public void GlobalTeardown()
+ {
+ Server.Stop();
+ Server.Dispose();
+ }
+}
diff --git a/seed/csharp-sdk/csharp-grpc-proto-exhaustive/include-exception-handler/src/SeedApi.Test/Unit/MockServer/PostFooTest.cs b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/include-exception-handler/src/SeedApi.Test/Unit/MockServer/PostFooTest.cs
new file mode 100644
index 000000000000..53a6e783292a
--- /dev/null
+++ b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/include-exception-handler/src/SeedApi.Test/Unit/MockServer/PostFooTest.cs
@@ -0,0 +1,55 @@
+using NUnit.Framework;
+using SeedApi.Test.Utils;
+
+namespace SeedApi.Test.Unit.MockServer;
+
+[TestFixture]
+[Parallelizable(ParallelScope.Self)]
+public class PostFooTest : BaseMockServerTest
+{
+ [NUnit.Framework.Test]
+ public async Task MockServerTest_1()
+ {
+ const string mockResponse = """
+ {
+ "string": {
+ "key": "value"
+ }
+ }
+ """;
+
+ Server
+ .Given(WireMock.RequestBuilders.Request.Create().WithPath("/foo").UsingPost())
+ .RespondWith(
+ WireMock
+ .ResponseBuilders.Response.Create()
+ .WithStatusCode(200)
+ .WithBody(mockResponse)
+ );
+
+ var response = await Client.PostFooAsync();
+ JsonAssert.AreEqual(response, mockResponse);
+ }
+
+ [NUnit.Framework.Test]
+ public async Task MockServerTest_2()
+ {
+ const string mockResponse = """
+ {
+ "key": "value"
+ }
+ """;
+
+ Server
+ .Given(WireMock.RequestBuilders.Request.Create().WithPath("/foo").UsingPost())
+ .RespondWith(
+ WireMock
+ .ResponseBuilders.Response.Create()
+ .WithStatusCode(200)
+ .WithBody(mockResponse)
+ );
+
+ var response = await Client.PostFooAsync();
+ JsonAssert.AreEqual(response, mockResponse);
+ }
+}
diff --git a/seed/csharp-sdk/csharp-grpc-proto-exhaustive/include-exception-handler/src/SeedApi/Dataservice/DataserviceClient.cs b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/include-exception-handler/src/SeedApi/DataService/DataServiceClient.cs
similarity index 81%
rename from seed/csharp-sdk/csharp-grpc-proto-exhaustive/include-exception-handler/src/SeedApi/Dataservice/DataserviceClient.cs
rename to seed/csharp-sdk/csharp-grpc-proto-exhaustive/include-exception-handler/src/SeedApi/DataService/DataServiceClient.cs
index 0e7a5b1834a6..2732b8386e7f 100644
--- a/seed/csharp-sdk/csharp-grpc-proto-exhaustive/include-exception-handler/src/SeedApi/Dataservice/DataserviceClient.cs
+++ b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/include-exception-handler/src/SeedApi/DataService/DataServiceClient.cs
@@ -1,11 +1,10 @@
-using System.Text.Json;
using Data.V1.Grpc;
using Grpc.Core;
using SeedApi.Core;
namespace SeedApi;
-public partial class DataserviceClient : IDataserviceClient
+public partial class DataServiceClient : IDataServiceClient
{
private readonly RawClient _client;
@@ -13,7 +12,7 @@ public partial class DataserviceClient : IDataserviceClient
private DataService.DataServiceClient _dataService;
- internal DataserviceClient(RawClient client)
+ internal DataServiceClient(RawClient client)
{
try
{
@@ -28,94 +27,8 @@ internal DataserviceClient(RawClient client)
}
}
- private async Task>> FooAsyncCore(
- RequestOptions? options = null,
- CancellationToken cancellationToken = default
- )
- {
- return await _client
- .Options.ExceptionHandler.TryCatchAsync(async () =>
- {
- var _headers = await new SeedApi.Core.HeadersBuilder.Builder()
- .Add(_client.Options.Headers)
- .Add(_client.Options.AdditionalHeaders)
- .Add(options?.AdditionalHeaders)
- .BuildAsync()
- .ConfigureAwait(false);
- var response = await _client
- .SendRequestAsync(
- new JsonRequest
- {
- Method = HttpMethod.Post,
- Path = "foo",
- Headers = _headers,
- Options = options,
- },
- cancellationToken
- )
- .ConfigureAwait(false);
- if (response.StatusCode is >= 200 and < 400)
- {
- var responseBody = await response
- .Raw.Content.ReadAsStringAsync(cancellationToken)
- .ConfigureAwait(false);
- try
- {
- var responseData = JsonUtils.Deserialize>(
- responseBody
- )!;
- return new WithRawResponse>()
- {
- Data = responseData,
- RawResponse = new RawResponse()
- {
- StatusCode = response.Raw.StatusCode,
- Url =
- response.Raw.RequestMessage?.RequestUri
- ?? new Uri("about:blank"),
- Headers = ResponseHeaders.FromHttpResponseMessage(response.Raw),
- },
- };
- }
- catch (JsonException e)
- {
- throw new SeedApiApiException(
- "Failed to deserialize response",
- response.StatusCode,
- responseBody,
- e
- );
- }
- }
- {
- var responseBody = await response
- .Raw.Content.ReadAsStringAsync(cancellationToken)
- .ConfigureAwait(false);
- throw new SeedApiApiException(
- $"Error with status code {response.StatusCode}",
- response.StatusCode,
- responseBody
- );
- }
- })
- .ConfigureAwait(false);
- }
-
- ///
- /// await client.Dataservice.FooAsync();
- ///
- public WithRawResponseTask> FooAsync(
- RequestOptions? options = null,
- CancellationToken cancellationToken = default
- )
- {
- return new WithRawResponseTask>(
- FooAsyncCore(options, cancellationToken)
- );
- }
-
///
- /// await client.Dataservice.UploadAsync(
+ /// await client.DataService.UploadAsync(
/// new UploadRequest
/// {
/// Columns = new List<SeedApi.Column>()
@@ -190,7 +103,7 @@ public async Task UploadAsync(
}
///
- /// await client.Dataservice.DeleteAsync(new DeleteRequest());
+ /// await client.DataService.DeleteAsync(new DeleteRequest());
///
public async Task DeleteAsync(
DeleteRequest request,
@@ -253,7 +166,7 @@ public async Task DeleteAsync(
}
///
- /// await client.Dataservice.DescribeAsync(new DescribeRequest());
+ /// await client.DataService.DescribeAsync(new DescribeRequest());
///
public async Task DescribeAsync(
DescribeRequest request,
@@ -316,7 +229,7 @@ public async Task DescribeAsync(
}
///
- /// await client.Dataservice.FetchAsync(new FetchRequest());
+ /// await client.DataService.FetchAsync(new FetchRequest());
///
public async Task FetchAsync(
FetchRequest request,
@@ -379,7 +292,7 @@ public async Task FetchAsync(
}
///
- /// await client.Dataservice.ListAsync(new ListRequest());
+ /// await client.DataService.ListAsync(new ListRequest());
///
public async Task ListAsync(
ListRequest request,
@@ -442,7 +355,7 @@ public async Task ListAsync(
}
///
- /// await client.Dataservice.QueryAsync(new QueryRequest { TopK = 1 });
+ /// await client.DataService.QueryAsync(new QueryRequest { TopK = 1 });
///
public async Task QueryAsync(
QueryRequest request,
@@ -505,7 +418,7 @@ public async Task QueryAsync(
}
///
- /// await client.Dataservice.UpdateAsync(new UpdateRequest { Id = "id" });
+ /// await client.DataService.UpdateAsync(new UpdateRequest { Id = "id" });
///
public async Task UpdateAsync(
UpdateRequest request,
diff --git a/seed/csharp-sdk/csharp-grpc-proto-exhaustive/no-custom-config/src/SeedApi/Dataservice/IDataserviceClient.cs b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/include-exception-handler/src/SeedApi/DataService/IDataServiceClient.cs
similarity index 85%
rename from seed/csharp-sdk/csharp-grpc-proto-exhaustive/no-custom-config/src/SeedApi/Dataservice/IDataserviceClient.cs
rename to seed/csharp-sdk/csharp-grpc-proto-exhaustive/include-exception-handler/src/SeedApi/DataService/IDataServiceClient.cs
index 4a7de66ccb27..52d48a495b2b 100644
--- a/seed/csharp-sdk/csharp-grpc-proto-exhaustive/no-custom-config/src/SeedApi/Dataservice/IDataserviceClient.cs
+++ b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/include-exception-handler/src/SeedApi/DataService/IDataServiceClient.cs
@@ -1,12 +1,7 @@
namespace SeedApi;
-public partial interface IDataserviceClient
+public partial interface IDataServiceClient
{
- WithRawResponseTask> FooAsync(
- RequestOptions? options = null,
- CancellationToken cancellationToken = default
- );
-
Task UploadAsync(
UploadRequest request,
GrpcRequestOptions? options = null,
diff --git a/seed/csharp-sdk/csharp-grpc-proto-exhaustive/include-exception-handler/src/SeedApi/Dataservice/Requests/DeleteRequest.cs b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/include-exception-handler/src/SeedApi/DataService/Requests/DeleteRequest.cs
similarity index 100%
rename from seed/csharp-sdk/csharp-grpc-proto-exhaustive/include-exception-handler/src/SeedApi/Dataservice/Requests/DeleteRequest.cs
rename to seed/csharp-sdk/csharp-grpc-proto-exhaustive/include-exception-handler/src/SeedApi/DataService/Requests/DeleteRequest.cs
diff --git a/seed/csharp-sdk/csharp-grpc-proto-exhaustive/include-exception-handler/src/SeedApi/Dataservice/Requests/DescribeRequest.cs b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/include-exception-handler/src/SeedApi/DataService/Requests/DescribeRequest.cs
similarity index 100%
rename from seed/csharp-sdk/csharp-grpc-proto-exhaustive/include-exception-handler/src/SeedApi/Dataservice/Requests/DescribeRequest.cs
rename to seed/csharp-sdk/csharp-grpc-proto-exhaustive/include-exception-handler/src/SeedApi/DataService/Requests/DescribeRequest.cs
diff --git a/seed/csharp-sdk/csharp-grpc-proto-exhaustive/include-exception-handler/src/SeedApi/Dataservice/Requests/FetchRequest.cs b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/include-exception-handler/src/SeedApi/DataService/Requests/FetchRequest.cs
similarity index 100%
rename from seed/csharp-sdk/csharp-grpc-proto-exhaustive/include-exception-handler/src/SeedApi/Dataservice/Requests/FetchRequest.cs
rename to seed/csharp-sdk/csharp-grpc-proto-exhaustive/include-exception-handler/src/SeedApi/DataService/Requests/FetchRequest.cs
diff --git a/seed/csharp-sdk/csharp-grpc-proto-exhaustive/include-exception-handler/src/SeedApi/Dataservice/Requests/ListRequest.cs b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/include-exception-handler/src/SeedApi/DataService/Requests/ListRequest.cs
similarity index 100%
rename from seed/csharp-sdk/csharp-grpc-proto-exhaustive/include-exception-handler/src/SeedApi/Dataservice/Requests/ListRequest.cs
rename to seed/csharp-sdk/csharp-grpc-proto-exhaustive/include-exception-handler/src/SeedApi/DataService/Requests/ListRequest.cs
diff --git a/seed/csharp-sdk/csharp-grpc-proto-exhaustive/include-exception-handler/src/SeedApi/Dataservice/Requests/QueryRequest.cs b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/include-exception-handler/src/SeedApi/DataService/Requests/QueryRequest.cs
similarity index 100%
rename from seed/csharp-sdk/csharp-grpc-proto-exhaustive/include-exception-handler/src/SeedApi/Dataservice/Requests/QueryRequest.cs
rename to seed/csharp-sdk/csharp-grpc-proto-exhaustive/include-exception-handler/src/SeedApi/DataService/Requests/QueryRequest.cs
diff --git a/seed/csharp-sdk/csharp-grpc-proto-exhaustive/no-custom-config/src/SeedApi/Dataservice/Requests/UpdateRequest.cs b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/include-exception-handler/src/SeedApi/DataService/Requests/UpdateRequest.cs
similarity index 78%
rename from seed/csharp-sdk/csharp-grpc-proto-exhaustive/no-custom-config/src/SeedApi/Dataservice/Requests/UpdateRequest.cs
rename to seed/csharp-sdk/csharp-grpc-proto-exhaustive/include-exception-handler/src/SeedApi/DataService/Requests/UpdateRequest.cs
index 40238253ea5e..5301c75e711f 100644
--- a/seed/csharp-sdk/csharp-grpc-proto-exhaustive/no-custom-config/src/SeedApi/Dataservice/Requests/UpdateRequest.cs
+++ b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/include-exception-handler/src/SeedApi/DataService/Requests/UpdateRequest.cs
@@ -32,6 +32,9 @@ public record UpdateRequest
[JsonPropertyName("index_types")]
public IEnumerable? IndexTypes { get; set; }
+ [JsonPropertyName("aspect_ratio")]
+ public AspectRatio? AspectRatio { get; set; }
+
///
/// Maps the UpdateRequest type into its Protobuf-equivalent representation.
///
@@ -89,6 +92,20 @@ internal Proto.UpdateRequest ToProto()
)
);
}
+ if (AspectRatio != null)
+ {
+ result.AspectRatio = AspectRatio.Value.Value switch
+ {
+ SeedApi.AspectRatio.Values.AspectRatioUnspecified => ProtoDataV1Grpc
+ .AspectRatio
+ .Unspecified,
+ SeedApi.AspectRatio.Values.AspectRatio11 => ProtoDataV1Grpc.AspectRatio._11,
+ SeedApi.AspectRatio.Values.AspectRatio169 => ProtoDataV1Grpc.AspectRatio._169,
+ SeedApi.AspectRatio.Values.AspectRatio916 => ProtoDataV1Grpc.AspectRatio._916,
+ SeedApi.AspectRatio.Values.AspectRatio43 => ProtoDataV1Grpc.AspectRatio._43,
+ _ => throw new ArgumentException($"Unknown enum value: {AspectRatio.Value.Value}"),
+ };
+ }
return result;
}
diff --git a/seed/csharp-sdk/csharp-grpc-proto-exhaustive/include-exception-handler/src/SeedApi/Dataservice/Requests/UploadRequest.cs b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/include-exception-handler/src/SeedApi/DataService/Requests/UploadRequest.cs
similarity index 100%
rename from seed/csharp-sdk/csharp-grpc-proto-exhaustive/include-exception-handler/src/SeedApi/Dataservice/Requests/UploadRequest.cs
rename to seed/csharp-sdk/csharp-grpc-proto-exhaustive/include-exception-handler/src/SeedApi/DataService/Requests/UploadRequest.cs
diff --git a/seed/csharp-sdk/csharp-grpc-proto-exhaustive/include-exception-handler/src/SeedApi/ISeedApiClient.cs b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/include-exception-handler/src/SeedApi/ISeedApiClient.cs
index 975e85422400..71a1b5857551 100644
--- a/seed/csharp-sdk/csharp-grpc-proto-exhaustive/include-exception-handler/src/SeedApi/ISeedApiClient.cs
+++ b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/include-exception-handler/src/SeedApi/ISeedApiClient.cs
@@ -2,5 +2,9 @@ namespace SeedApi;
public partial interface ISeedApiClient
{
- public IDataserviceClient Dataservice { get; }
+ public IDataServiceClient DataService { get; }
+ WithRawResponseTask> PostFooAsync(
+ RequestOptions? options = null,
+ CancellationToken cancellationToken = default
+ );
}
diff --git a/seed/csharp-sdk/csharp-grpc-proto-exhaustive/include-exception-handler/src/SeedApi/SeedApiClient.cs b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/include-exception-handler/src/SeedApi/SeedApiClient.cs
index d16d82ae7269..d00e7f72915c 100644
--- a/seed/csharp-sdk/csharp-grpc-proto-exhaustive/include-exception-handler/src/SeedApi/SeedApiClient.cs
+++ b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/include-exception-handler/src/SeedApi/SeedApiClient.cs
@@ -1,3 +1,4 @@
+using System.Text.Json;
using SeedApi.Core;
namespace SeedApi;
@@ -31,7 +32,7 @@ public SeedApiClient(ClientOptions? clientOptions = null)
}
}
_client = new RawClient(clientOptions);
- Dataservice = new DataserviceClient(_client);
+ DataService = new DataServiceClient(_client);
}
catch (Exception ex)
{
@@ -41,5 +42,91 @@ public SeedApiClient(ClientOptions? clientOptions = null)
}
}
- public IDataserviceClient Dataservice { get; }
+ public IDataServiceClient DataService { get; }
+
+ private async Task>> PostFooAsyncCore(
+ RequestOptions? options = null,
+ CancellationToken cancellationToken = default
+ )
+ {
+ return await _client
+ .Options.ExceptionHandler.TryCatchAsync(async () =>
+ {
+ var _headers = await new SeedApi.Core.HeadersBuilder.Builder()
+ .Add(_client.Options.Headers)
+ .Add(_client.Options.AdditionalHeaders)
+ .Add(options?.AdditionalHeaders)
+ .BuildAsync()
+ .ConfigureAwait(false);
+ var response = await _client
+ .SendRequestAsync(
+ new JsonRequest
+ {
+ Method = HttpMethod.Post,
+ Path = "foo",
+ Headers = _headers,
+ Options = options,
+ },
+ cancellationToken
+ )
+ .ConfigureAwait(false);
+ if (response.StatusCode is >= 200 and < 400)
+ {
+ var responseBody = await response
+ .Raw.Content.ReadAsStringAsync(cancellationToken)
+ .ConfigureAwait(false);
+ try
+ {
+ var responseData = JsonUtils.Deserialize>(
+ responseBody
+ )!;
+ return new WithRawResponse>()
+ {
+ Data = responseData,
+ RawResponse = new RawResponse()
+ {
+ StatusCode = response.Raw.StatusCode,
+ Url =
+ response.Raw.RequestMessage?.RequestUri
+ ?? new Uri("about:blank"),
+ Headers = ResponseHeaders.FromHttpResponseMessage(response.Raw),
+ },
+ };
+ }
+ catch (JsonException e)
+ {
+ throw new SeedApiApiException(
+ "Failed to deserialize response",
+ response.StatusCode,
+ responseBody,
+ e
+ );
+ }
+ }
+ {
+ var responseBody = await response
+ .Raw.Content.ReadAsStringAsync(cancellationToken)
+ .ConfigureAwait(false);
+ throw new SeedApiApiException(
+ $"Error with status code {response.StatusCode}",
+ response.StatusCode,
+ responseBody
+ );
+ }
+ })
+ .ConfigureAwait(false);
+ }
+
+ ///
+ /// await client.PostFooAsync();
+ ///
+ public WithRawResponseTask> PostFooAsync(
+ RequestOptions? options = null,
+ CancellationToken cancellationToken = default
+ )
+ {
+ return new WithRawResponseTask>(
+ PostFooAsyncCore(options, cancellationToken)
+ );
+ }
}
diff --git a/seed/csharp-sdk/csharp-grpc-proto-exhaustive/include-exception-handler/src/SeedApi/Types/AspectRatio.cs b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/include-exception-handler/src/SeedApi/Types/AspectRatio.cs
new file mode 100644
index 000000000000..d86b98014dcf
--- /dev/null
+++ b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/include-exception-handler/src/SeedApi/Types/AspectRatio.cs
@@ -0,0 +1,104 @@
+using System.Text.Json;
+using System.Text.Json.Serialization;
+using SeedApi.Core;
+
+namespace SeedApi;
+
+[JsonConverter(typeof(AspectRatio.AspectRatioSerializer))]
+[Serializable]
+public readonly record struct AspectRatio : IStringEnum
+{
+ public static readonly AspectRatio AspectRatioUnspecified = new(Values.AspectRatioUnspecified);
+
+ public static readonly AspectRatio AspectRatio11 = new(Values.AspectRatio11);
+
+ public static readonly AspectRatio AspectRatio169 = new(Values.AspectRatio169);
+
+ public static readonly AspectRatio AspectRatio916 = new(Values.AspectRatio916);
+
+ public static readonly AspectRatio AspectRatio43 = new(Values.AspectRatio43);
+
+ public AspectRatio(string value)
+ {
+ Value = value;
+ }
+
+ ///
+ /// The string value of the enum.
+ ///
+ public string Value { get; }
+
+ ///
+ /// Create a string enum with the given value.
+ ///
+ public static AspectRatio FromCustom(string value)
+ {
+ return new AspectRatio(value);
+ }
+
+ public bool Equals(string? other)
+ {
+ return Value.Equals(other);
+ }
+
+ ///
+ /// Returns the string value of the enum.
+ ///
+ public override string ToString()
+ {
+ return Value;
+ }
+
+ public static bool operator ==(AspectRatio value1, string value2) =>
+ value1.Value.Equals(value2);
+
+ public static bool operator !=(AspectRatio value1, string value2) =>
+ !value1.Value.Equals(value2);
+
+ public static explicit operator string(AspectRatio value) => value.Value;
+
+ public static explicit operator AspectRatio(string value) => new(value);
+
+ internal class AspectRatioSerializer : JsonConverter
+ {
+ public override AspectRatio Read(
+ ref Utf8JsonReader reader,
+ Type typeToConvert,
+ JsonSerializerOptions options
+ )
+ {
+ var stringValue =
+ reader.GetString()
+ ?? throw new global::System.Exception(
+ "The JSON value could not be read as a string."
+ );
+ return new AspectRatio(stringValue);
+ }
+
+ public override void Write(
+ Utf8JsonWriter writer,
+ AspectRatio value,
+ JsonSerializerOptions options
+ )
+ {
+ writer.WriteStringValue(value.Value);
+ }
+ }
+
+ ///
+ /// Constant strings for enum values
+ ///
+ [Serializable]
+ public static class Values
+ {
+ public const string AspectRatioUnspecified = "ASPECT_RATIO_UNSPECIFIED";
+
+ public const string AspectRatio11 = "ASPECT_RATIO_1_1";
+
+ public const string AspectRatio169 = "ASPECT_RATIO_16_9";
+
+ public const string AspectRatio916 = "ASPECT_RATIO_9_16";
+
+ public const string AspectRatio43 = "ASPECT_RATIO_4_3";
+ }
+}
diff --git a/seed/csharp-sdk/csharp-grpc-proto-exhaustive/include-exception-handler/src/SeedApi/Dataservice/Types/IndexType.cs b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/include-exception-handler/src/SeedApi/Types/IndexType.cs
similarity index 100%
rename from seed/csharp-sdk/csharp-grpc-proto-exhaustive/include-exception-handler/src/SeedApi/Dataservice/Types/IndexType.cs
rename to seed/csharp-sdk/csharp-grpc-proto-exhaustive/include-exception-handler/src/SeedApi/Types/IndexType.cs
diff --git a/seed/csharp-sdk/csharp-grpc-proto-exhaustive/no-custom-config/README.md b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/no-custom-config/README.md
index 7cc184191f18..6639e7180e70 100644
--- a/seed/csharp-sdk/csharp-grpc-proto-exhaustive/no-custom-config/README.md
+++ b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/no-custom-config/README.md
@@ -41,7 +41,19 @@ Instantiate and use the client with the following:
using SeedApi;
var client = new SeedApiClient();
-await client.Dataservice.FooAsync();
+await client.DataService.UploadAsync(
+ new UploadRequest
+ {
+ Columns = new List()
+ {
+ new SeedApi.Column
+ {
+ Id = "id",
+ Values = new List() { 1.1f },
+ },
+ },
+ }
+);
```
## Exception Handling
@@ -53,7 +65,7 @@ will be thrown.
using SeedApi;
try {
- var response = await client.Dataservice.FooAsync(...);
+ var response = await client.DataService.UploadAsync(...);
} catch (SeedApiApiException e) {
System.Console.WriteLine(e.Body);
System.Console.WriteLine(e.StatusCode);
@@ -77,7 +89,7 @@ A request is deemed retryable 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.FooAsync(
+var response = await client.DataService.UploadAsync(
...,
new RequestOptions {
MaxRetries: 0 // Override MaxRetries at the request level
@@ -90,7 +102,7 @@ var response = await client.Dataservice.FooAsync(
The SDK defaults to a 30 second timeout. Use the `Timeout` option to configure this behavior.
```csharp
-var response = await client.Dataservice.FooAsync(
+var response = await client.DataService.UploadAsync(
...,
new RequestOptions {
Timeout: TimeSpan.FromSeconds(3) // Override timeout to 3s
@@ -103,7 +115,7 @@ var response = await client.Dataservice.FooAsync(
If you would like to send additional headers as part of the request, use the `AdditionalHeaders` request option.
```csharp
-var response = await client.Dataservice.FooAsync(
+var response = await client.DataService.UploadAsync(
...,
new RequestOptions {
AdditionalHeaders = new Dictionary
@@ -122,25 +134,25 @@ This SDK uses forward-compatible enums that can handle unknown values gracefully
using SeedApi;
// Using a built-in value
-var indexType = IndexType.IndexTypeInvalid;
+var aspectRatio = AspectRatio.AspectRatioUnspecified;
// Using a custom value
-var customIndexType = IndexType.FromCustom("custom-value");
+var customAspectRatio = AspectRatio.FromCustom("custom-value");
// Using in a switch statement
-switch (indexType.Value)
+switch (aspectRatio.Value)
{
- case IndexType.Values.IndexTypeInvalid:
- Console.WriteLine("IndexTypeInvalid");
+ case AspectRatio.Values.AspectRatioUnspecified:
+ Console.WriteLine("AspectRatioUnspecified");
break;
default:
- Console.WriteLine($"Unknown value: {indexType.Value}");
+ Console.WriteLine($"Unknown value: {aspectRatio.Value}");
break;
}
// Explicit casting
-string indexTypeString = (string)IndexType.IndexTypeInvalid;
-IndexType indexTypeFromString = (IndexType)"INDEX_TYPE_INVALID";
+string aspectRatioString = (string)AspectRatio.AspectRatioUnspecified;
+AspectRatio aspectRatioFromString = (AspectRatio)"ASPECT_RATIO_UNSPECIFIED";
```
## Contributing
diff --git a/seed/csharp-sdk/csharp-grpc-proto-exhaustive/no-custom-config/proto/data/v1/data.proto b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/no-custom-config/proto/data/v1/data.proto
index b8244b95516d..46947f1d26ee 100644
--- a/seed/csharp-sdk/csharp-grpc-proto-exhaustive/no-custom-config/proto/data/v1/data.proto
+++ b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/no-custom-config/proto/data/v1/data.proto
@@ -17,6 +17,14 @@ enum IndexType {
INDEX_TYPE_STRICT = 2;
}
+enum AspectRatio {
+ ASPECT_RATIO_UNSPECIFIED = 0;
+ ASPECT_RATIO_1_1 = 1;
+ ASPECT_RATIO_16_9 = 2;
+ ASPECT_RATIO_9_16 = 3;
+ ASPECT_RATIO_4_3 = 4;
+}
+
message IndexedData {
repeated uint32 indices = 1 [
(google.api.field_behavior) = REQUIRED
@@ -155,6 +163,7 @@ message UpdateRequest {
IndexType index_type = 6;
google.protobuf.Any details = 7;
repeated IndexType index_types = 8;
+ optional AspectRatio aspect_ratio = 9;
}
message UpdateResponse {
diff --git a/seed/csharp-sdk/csharp-grpc-proto-exhaustive/no-custom-config/reference.md b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/no-custom-config/reference.md
index b5f9228a5c91..bc7264303b43 100644
--- a/seed/csharp-sdk/csharp-grpc-proto-exhaustive/no-custom-config/reference.md
+++ b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/no-custom-config/reference.md
@@ -1,6 +1,5 @@
# Reference
-## DataService
-client.Dataservice.FooAsync() -> WithRawResponseTask<Dictionary<string, object?>>
+client.PostFooAsync() -> WithRawResponseTask<Dictionary<string, object?>>
-
@@ -13,7 +12,7 @@
-
```csharp
-await client.Dataservice.FooAsync();
+await client.PostFooAsync();
```
@@ -25,7 +24,8 @@ await client.Dataservice.FooAsync();
-client.Dataservice.UploadAsync(UploadRequest { ... }) -> WithRawResponseTask<UploadResponse>
+## DataService
+client.DataService.UploadAsync(UploadRequest { ... }) -> WithRawResponseTask<UploadResponse>
-
@@ -38,7 +38,7 @@ await client.Dataservice.FooAsync();
-
```csharp
-await client.Dataservice.UploadAsync(
+await client.DataService.UploadAsync(
new UploadRequest
{
Columns = new List()
@@ -77,7 +77,7 @@ await client.Dataservice.UploadAsync(
-client.Dataservice.DeleteAsync(DeleteRequest { ... }) -> WithRawResponseTask<DeleteResponse>
+client.DataService.DeleteAsync(DeleteRequest { ... }) -> WithRawResponseTask<DeleteResponse>
-
@@ -90,7 +90,7 @@ await client.Dataservice.UploadAsync(
-
```csharp
-await client.Dataservice.DeleteAsync(new DeleteRequest());
+await client.DataService.DeleteAsync(new DeleteRequest());
```
@@ -117,7 +117,7 @@ await client.Dataservice.DeleteAsync(new DeleteRequest());
-client.Dataservice.DescribeAsync(DescribeRequest { ... }) -> WithRawResponseTask<DescribeResponse>
+client.DataService.DescribeAsync(DescribeRequest { ... }) -> WithRawResponseTask<DescribeResponse>
-
@@ -130,7 +130,7 @@ await client.Dataservice.DeleteAsync(new DeleteRequest());
-
```csharp
-await client.Dataservice.DescribeAsync(new DescribeRequest());
+await client.DataService.DescribeAsync(new DescribeRequest());
```
@@ -157,7 +157,7 @@ await client.Dataservice.DescribeAsync(new DescribeRequest());
-client.Dataservice.FetchAsync(FetchRequest { ... }) -> WithRawResponseTask<FetchResponse>
+client.DataService.FetchAsync(FetchRequest { ... }) -> WithRawResponseTask<FetchResponse>
-
@@ -170,7 +170,7 @@ await client.Dataservice.DescribeAsync(new DescribeRequest());
-
```csharp
-await client.Dataservice.FetchAsync(new FetchRequest());
+await client.DataService.FetchAsync(new FetchRequest());
```
@@ -197,7 +197,7 @@ await client.Dataservice.FetchAsync(new FetchRequest());
-client.Dataservice.ListAsync(ListRequest { ... }) -> WithRawResponseTask<ListResponse>
+client.DataService.ListAsync(ListRequest { ... }) -> WithRawResponseTask<ListResponse>
-
@@ -210,7 +210,7 @@ await client.Dataservice.FetchAsync(new FetchRequest());
-
```csharp
-await client.Dataservice.ListAsync(new ListRequest());
+await client.DataService.ListAsync(new ListRequest());
```
@@ -237,7 +237,7 @@ await client.Dataservice.ListAsync(new ListRequest());
-client.Dataservice.QueryAsync(QueryRequest { ... }) -> WithRawResponseTask<QueryResponse>
+client.DataService.QueryAsync(QueryRequest { ... }) -> WithRawResponseTask<QueryResponse>
-
@@ -250,7 +250,7 @@ await client.Dataservice.ListAsync(new ListRequest());
-
```csharp
-await client.Dataservice.QueryAsync(new QueryRequest { TopK = 1 });
+await client.DataService.QueryAsync(new QueryRequest { TopK = 1 });
```
@@ -277,7 +277,7 @@ await client.Dataservice.QueryAsync(new QueryRequest { TopK = 1 });
-client.Dataservice.UpdateAsync(UpdateRequest { ... }) -> WithRawResponseTask<UpdateResponse>
+client.DataService.UpdateAsync(UpdateRequest { ... }) -> WithRawResponseTask<UpdateResponse>
-
@@ -290,7 +290,7 @@ await client.Dataservice.QueryAsync(new QueryRequest { TopK = 1 });
-
```csharp
-await client.Dataservice.UpdateAsync(new UpdateRequest { Id = "id" });
+await client.DataService.UpdateAsync(new UpdateRequest { Id = "id" });
```
diff --git a/seed/csharp-sdk/csharp-grpc-proto-exhaustive/no-custom-config/snippet.json b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/no-custom-config/snippet.json
index 10d4d0868455..c435d6f7c198 100644
--- a/seed/csharp-sdk/csharp-grpc-proto-exhaustive/no-custom-config/snippet.json
+++ b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/no-custom-config/snippet.json
@@ -1,28 +1,16 @@
{
"types": {},
"endpoints": [
- {
- "example_identifier": null,
- "id": {
- "path": "/foo",
- "method": "POST",
- "identifier_override": "endpoint_dataservice.foo"
- },
- "snippet": {
- "type": "csharp",
- "client": "using SeedApi;\n\nvar client = new SeedApiClient();\nawait client.Dataservice.FooAsync();\n"
- }
- },
{
"example_identifier": null,
"id": {
"path": "/data",
"method": "POST",
- "identifier_override": "endpoint_dataservice.upload"
+ "identifier_override": "endpoint_dataService.Upload"
},
"snippet": {
"type": "csharp",
- "client": "using SeedApi;\n\nvar client = new SeedApiClient();\nawait client.Dataservice.UploadAsync(\n new UploadRequest\n {\n Columns = new List()\n {\n new SeedApi.Column\n {\n Id = \"id\",\n Values = new List() { 1.1f },\n },\n },\n }\n);\n"
+ "client": "using SeedApi;\n\nvar client = new SeedApiClient();\nawait client.DataService.UploadAsync(\n new UploadRequest\n {\n Columns = new List()\n {\n new SeedApi.Column\n {\n Id = \"id\",\n Values = new List() { 1.1f },\n },\n },\n }\n);\n"
}
},
{
@@ -30,11 +18,11 @@
"id": {
"path": "/data/delete",
"method": "POST",
- "identifier_override": "endpoint_dataservice.delete"
+ "identifier_override": "endpoint_dataService.Delete"
},
"snippet": {
"type": "csharp",
- "client": "using SeedApi;\n\nvar client = new SeedApiClient();\nawait client.Dataservice.DeleteAsync(new DeleteRequest());\n"
+ "client": "using SeedApi;\n\nvar client = new SeedApiClient();\nawait client.DataService.DeleteAsync(new DeleteRequest());\n"
}
},
{
@@ -42,11 +30,11 @@
"id": {
"path": "/data/describe",
"method": "POST",
- "identifier_override": "endpoint_dataservice.describe"
+ "identifier_override": "endpoint_dataService.Describe"
},
"snippet": {
"type": "csharp",
- "client": "using SeedApi;\n\nvar client = new SeedApiClient();\nawait client.Dataservice.DescribeAsync(new DescribeRequest());\n"
+ "client": "using SeedApi;\n\nvar client = new SeedApiClient();\nawait client.DataService.DescribeAsync(new DescribeRequest());\n"
}
},
{
@@ -54,11 +42,11 @@
"id": {
"path": "/data/fetch",
"method": "GET",
- "identifier_override": "endpoint_dataservice.fetch"
+ "identifier_override": "endpoint_dataService.Fetch"
},
"snippet": {
"type": "csharp",
- "client": "using SeedApi;\n\nvar client = new SeedApiClient();\nawait client.Dataservice.FetchAsync(new FetchRequest());\n"
+ "client": "using SeedApi;\n\nvar client = new SeedApiClient();\nawait client.DataService.FetchAsync(new FetchRequest());\n"
}
},
{
@@ -66,11 +54,11 @@
"id": {
"path": "/data/list",
"method": "GET",
- "identifier_override": "endpoint_dataservice.list"
+ "identifier_override": "endpoint_dataService.List"
},
"snippet": {
"type": "csharp",
- "client": "using SeedApi;\n\nvar client = new SeedApiClient();\nawait client.Dataservice.ListAsync(new ListRequest());\n"
+ "client": "using SeedApi;\n\nvar client = new SeedApiClient();\nawait client.DataService.ListAsync(new ListRequest());\n"
}
},
{
@@ -78,11 +66,11 @@
"id": {
"path": "/data/query",
"method": "POST",
- "identifier_override": "endpoint_dataservice.query"
+ "identifier_override": "endpoint_dataService.Query"
},
"snippet": {
"type": "csharp",
- "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();\nawait client.DataService.QueryAsync(new QueryRequest { TopK = 1 });\n"
}
},
{
@@ -90,11 +78,23 @@
"id": {
"path": "/data/update",
"method": "POST",
- "identifier_override": "endpoint_dataservice.update"
+ "identifier_override": "endpoint_dataService.Update"
+ },
+ "snippet": {
+ "type": "csharp",
+ "client": "using SeedApi;\n\nvar client = new SeedApiClient();\nawait client.DataService.UpdateAsync(new UpdateRequest { Id = \"id\" });\n"
+ }
+ },
+ {
+ "example_identifier": null,
+ "id": {
+ "path": "/foo",
+ "method": "POST",
+ "identifier_override": "endpoint_.postFoo"
},
"snippet": {
"type": "csharp",
- "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();\nawait client.PostFooAsync();\n"
}
}
]
diff --git a/seed/csharp-sdk/csharp-grpc-proto-exhaustive/no-custom-config/src/SeedApi.Test/Unit/MockServer/BaseMockServerTest.cs b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/no-custom-config/src/SeedApi.Test/Unit/MockServer/BaseMockServerTest.cs
new file mode 100644
index 000000000000..3f4ed8503ec1
--- /dev/null
+++ b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/no-custom-config/src/SeedApi.Test/Unit/MockServer/BaseMockServerTest.cs
@@ -0,0 +1,37 @@
+using NUnit.Framework;
+using SeedApi;
+using WireMock.Logging;
+using WireMock.Server;
+using WireMock.Settings;
+
+namespace SeedApi.Test.Unit.MockServer;
+
+public class BaseMockServerTest
+{
+ protected WireMockServer Server { get; set; } = null!;
+
+ protected SeedApiClient Client { get; set; } = null!;
+
+ protected RequestOptions RequestOptions { get; set; } = new();
+
+ [OneTimeSetUp]
+ public void GlobalSetup()
+ {
+ // Start the WireMock server
+ Server = WireMockServer.Start(
+ new WireMockServerSettings { Logger = new WireMockConsoleLogger() }
+ );
+
+ // Initialize the Client
+ Client = new SeedApiClient(
+ clientOptions: new ClientOptions { BaseUrl = Server.Urls[0], MaxRetries = 0 }
+ );
+ }
+
+ [OneTimeTearDown]
+ public void GlobalTeardown()
+ {
+ Server.Stop();
+ Server.Dispose();
+ }
+}
diff --git a/seed/csharp-sdk/csharp-grpc-proto-exhaustive/no-custom-config/src/SeedApi.Test/Unit/MockServer/PostFooTest.cs b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/no-custom-config/src/SeedApi.Test/Unit/MockServer/PostFooTest.cs
new file mode 100644
index 000000000000..53a6e783292a
--- /dev/null
+++ b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/no-custom-config/src/SeedApi.Test/Unit/MockServer/PostFooTest.cs
@@ -0,0 +1,55 @@
+using NUnit.Framework;
+using SeedApi.Test.Utils;
+
+namespace SeedApi.Test.Unit.MockServer;
+
+[TestFixture]
+[Parallelizable(ParallelScope.Self)]
+public class PostFooTest : BaseMockServerTest
+{
+ [NUnit.Framework.Test]
+ public async Task MockServerTest_1()
+ {
+ const string mockResponse = """
+ {
+ "string": {
+ "key": "value"
+ }
+ }
+ """;
+
+ Server
+ .Given(WireMock.RequestBuilders.Request.Create().WithPath("/foo").UsingPost())
+ .RespondWith(
+ WireMock
+ .ResponseBuilders.Response.Create()
+ .WithStatusCode(200)
+ .WithBody(mockResponse)
+ );
+
+ var response = await Client.PostFooAsync();
+ JsonAssert.AreEqual(response, mockResponse);
+ }
+
+ [NUnit.Framework.Test]
+ public async Task MockServerTest_2()
+ {
+ const string mockResponse = """
+ {
+ "key": "value"
+ }
+ """;
+
+ Server
+ .Given(WireMock.RequestBuilders.Request.Create().WithPath("/foo").UsingPost())
+ .RespondWith(
+ WireMock
+ .ResponseBuilders.Response.Create()
+ .WithStatusCode(200)
+ .WithBody(mockResponse)
+ );
+
+ var response = await Client.PostFooAsync();
+ JsonAssert.AreEqual(response, mockResponse);
+ }
+}
diff --git a/seed/csharp-sdk/csharp-grpc-proto-exhaustive/package-id/src/SeedApi/Dataservice/DataserviceClient.cs b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/no-custom-config/src/SeedApi/DataService/DataServiceClient.cs
similarity index 80%
rename from seed/csharp-sdk/csharp-grpc-proto-exhaustive/package-id/src/SeedApi/Dataservice/DataserviceClient.cs
rename to seed/csharp-sdk/csharp-grpc-proto-exhaustive/no-custom-config/src/SeedApi/DataService/DataServiceClient.cs
index d7a55705956f..29883eb5de76 100644
--- a/seed/csharp-sdk/csharp-grpc-proto-exhaustive/package-id/src/SeedApi/Dataservice/DataserviceClient.cs
+++ b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/no-custom-config/src/SeedApi/DataService/DataServiceClient.cs
@@ -1,11 +1,10 @@
-using System.Text.Json;
using Data.V1.Grpc;
using Grpc.Core;
using SeedApi.Core;
namespace SeedApi;
-public partial class DataserviceClient : IDataserviceClient
+public partial class DataServiceClient : IDataServiceClient
{
private readonly RawClient _client;
@@ -13,94 +12,15 @@ public partial class DataserviceClient : IDataserviceClient
private DataService.DataServiceClient _dataService;
- internal DataserviceClient(RawClient client)
+ internal DataServiceClient(RawClient client)
{
_client = client;
_grpc = _client.Grpc;
_dataService = new DataService.DataServiceClient(_grpc.Channel);
}
- private async Task>> FooAsyncCore(
- RequestOptions? options = null,
- CancellationToken cancellationToken = default
- )
- {
- var _headers = await new SeedApi.Core.HeadersBuilder.Builder()
- .Add(_client.Options.Headers)
- .Add(_client.Options.AdditionalHeaders)
- .Add(options?.AdditionalHeaders)
- .BuildAsync()
- .ConfigureAwait(false);
- var response = await _client
- .SendRequestAsync(
- new JsonRequest
- {
- Method = HttpMethod.Post,
- Path = "foo",
- Headers = _headers,
- Options = options,
- },
- cancellationToken
- )
- .ConfigureAwait(false);
- if (response.StatusCode is >= 200 and < 400)
- {
- var responseBody = await response
- .Raw.Content.ReadAsStringAsync(cancellationToken)
- .ConfigureAwait(false);
- try
- {
- var responseData = JsonUtils.Deserialize>(
- responseBody
- )!;
- return new WithRawResponse>()
- {
- Data = responseData,
- RawResponse = new RawResponse()
- {
- StatusCode = response.Raw.StatusCode,
- Url = response.Raw.RequestMessage?.RequestUri ?? new Uri("about:blank"),
- Headers = ResponseHeaders.FromHttpResponseMessage(response.Raw),
- },
- };
- }
- catch (JsonException e)
- {
- throw new SeedApiApiException(
- "Failed to deserialize response",
- response.StatusCode,
- responseBody,
- e
- );
- }
- }
- {
- var responseBody = await response
- .Raw.Content.ReadAsStringAsync(cancellationToken)
- .ConfigureAwait(false);
- throw new SeedApiApiException(
- $"Error with status code {response.StatusCode}",
- response.StatusCode,
- responseBody
- );
- }
- }
-
- ///
- /// await client.Dataservice.FooAsync();
- ///
- public WithRawResponseTask> FooAsync(
- RequestOptions? options = null,
- CancellationToken cancellationToken = default
- )
- {
- return new WithRawResponseTask>(
- FooAsyncCore(options, cancellationToken)
- );
- }
-
///
- /// await client.Dataservice.UploadAsync(
+ /// await client.DataService.UploadAsync(
/// new UploadRequest
/// {
/// Columns = new List<SeedApi.Column>()
@@ -170,7 +90,7 @@ public async Task UploadAsync(
}
///
- /// await client.Dataservice.DeleteAsync(new DeleteRequest());
+ /// await client.DataService.DeleteAsync(new DeleteRequest());
///
public async Task DeleteAsync(
DeleteRequest request,
@@ -228,7 +148,7 @@ public async Task DeleteAsync(
}
///
- /// await client.Dataservice.DescribeAsync(new DescribeRequest());
+ /// await client.DataService.DescribeAsync(new DescribeRequest());
///
public async Task DescribeAsync(
DescribeRequest request,
@@ -286,7 +206,7 @@ public async Task DescribeAsync(
}
///
- /// await client.Dataservice.FetchAsync(new FetchRequest());
+ /// await client.DataService.FetchAsync(new FetchRequest());
///
public async Task FetchAsync(
FetchRequest request,
@@ -344,7 +264,7 @@ public async Task FetchAsync(
}
///
- /// await client.Dataservice.ListAsync(new ListRequest());
+ /// await client.DataService.ListAsync(new ListRequest());
///
public async Task ListAsync(
ListRequest request,
@@ -402,7 +322,7 @@ public async Task ListAsync(
}
///
- /// await client.Dataservice.QueryAsync(new QueryRequest { TopK = 1 });
+ /// await client.DataService.QueryAsync(new QueryRequest { TopK = 1 });
///
public async Task QueryAsync(
QueryRequest request,
@@ -460,7 +380,7 @@ public async Task QueryAsync(
}
///
- /// await client.Dataservice.UpdateAsync(new UpdateRequest { Id = "id" });
+ /// await client.DataService.UpdateAsync(new UpdateRequest { Id = "id" });
///
public async Task UpdateAsync(
UpdateRequest request,
diff --git a/seed/csharp-sdk/csharp-grpc-proto-exhaustive/include-exception-handler/src/SeedApi/Dataservice/IDataserviceClient.cs b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/no-custom-config/src/SeedApi/DataService/IDataServiceClient.cs
similarity index 85%
rename from seed/csharp-sdk/csharp-grpc-proto-exhaustive/include-exception-handler/src/SeedApi/Dataservice/IDataserviceClient.cs
rename to seed/csharp-sdk/csharp-grpc-proto-exhaustive/no-custom-config/src/SeedApi/DataService/IDataServiceClient.cs
index 4a7de66ccb27..52d48a495b2b 100644
--- a/seed/csharp-sdk/csharp-grpc-proto-exhaustive/include-exception-handler/src/SeedApi/Dataservice/IDataserviceClient.cs
+++ b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/no-custom-config/src/SeedApi/DataService/IDataServiceClient.cs
@@ -1,12 +1,7 @@
namespace SeedApi;
-public partial interface IDataserviceClient
+public partial interface IDataServiceClient
{
- WithRawResponseTask> FooAsync(
- RequestOptions? options = null,
- CancellationToken cancellationToken = default
- );
-
Task UploadAsync(
UploadRequest request,
GrpcRequestOptions? options = null,
diff --git a/seed/csharp-sdk/csharp-grpc-proto-exhaustive/no-custom-config/src/SeedApi/Dataservice/Requests/DeleteRequest.cs b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/no-custom-config/src/SeedApi/DataService/Requests/DeleteRequest.cs
similarity index 100%
rename from seed/csharp-sdk/csharp-grpc-proto-exhaustive/no-custom-config/src/SeedApi/Dataservice/Requests/DeleteRequest.cs
rename to seed/csharp-sdk/csharp-grpc-proto-exhaustive/no-custom-config/src/SeedApi/DataService/Requests/DeleteRequest.cs
diff --git a/seed/csharp-sdk/csharp-grpc-proto-exhaustive/no-custom-config/src/SeedApi/Dataservice/Requests/DescribeRequest.cs b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/no-custom-config/src/SeedApi/DataService/Requests/DescribeRequest.cs
similarity index 100%
rename from seed/csharp-sdk/csharp-grpc-proto-exhaustive/no-custom-config/src/SeedApi/Dataservice/Requests/DescribeRequest.cs
rename to seed/csharp-sdk/csharp-grpc-proto-exhaustive/no-custom-config/src/SeedApi/DataService/Requests/DescribeRequest.cs
diff --git a/seed/csharp-sdk/csharp-grpc-proto-exhaustive/no-custom-config/src/SeedApi/Dataservice/Requests/FetchRequest.cs b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/no-custom-config/src/SeedApi/DataService/Requests/FetchRequest.cs
similarity index 100%
rename from seed/csharp-sdk/csharp-grpc-proto-exhaustive/no-custom-config/src/SeedApi/Dataservice/Requests/FetchRequest.cs
rename to seed/csharp-sdk/csharp-grpc-proto-exhaustive/no-custom-config/src/SeedApi/DataService/Requests/FetchRequest.cs
diff --git a/seed/csharp-sdk/csharp-grpc-proto-exhaustive/no-custom-config/src/SeedApi/Dataservice/Requests/ListRequest.cs b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/no-custom-config/src/SeedApi/DataService/Requests/ListRequest.cs
similarity index 100%
rename from seed/csharp-sdk/csharp-grpc-proto-exhaustive/no-custom-config/src/SeedApi/Dataservice/Requests/ListRequest.cs
rename to seed/csharp-sdk/csharp-grpc-proto-exhaustive/no-custom-config/src/SeedApi/DataService/Requests/ListRequest.cs
diff --git a/seed/csharp-sdk/csharp-grpc-proto-exhaustive/no-custom-config/src/SeedApi/Dataservice/Requests/QueryRequest.cs b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/no-custom-config/src/SeedApi/DataService/Requests/QueryRequest.cs
similarity index 100%
rename from seed/csharp-sdk/csharp-grpc-proto-exhaustive/no-custom-config/src/SeedApi/Dataservice/Requests/QueryRequest.cs
rename to seed/csharp-sdk/csharp-grpc-proto-exhaustive/no-custom-config/src/SeedApi/DataService/Requests/QueryRequest.cs
diff --git a/seed/csharp-sdk/csharp-grpc-proto-exhaustive/package-id/src/SeedApi/Dataservice/Requests/UpdateRequest.cs b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/no-custom-config/src/SeedApi/DataService/Requests/UpdateRequest.cs
similarity index 78%
rename from seed/csharp-sdk/csharp-grpc-proto-exhaustive/package-id/src/SeedApi/Dataservice/Requests/UpdateRequest.cs
rename to seed/csharp-sdk/csharp-grpc-proto-exhaustive/no-custom-config/src/SeedApi/DataService/Requests/UpdateRequest.cs
index 40238253ea5e..5301c75e711f 100644
--- a/seed/csharp-sdk/csharp-grpc-proto-exhaustive/package-id/src/SeedApi/Dataservice/Requests/UpdateRequest.cs
+++ b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/no-custom-config/src/SeedApi/DataService/Requests/UpdateRequest.cs
@@ -32,6 +32,9 @@ public record UpdateRequest
[JsonPropertyName("index_types")]
public IEnumerable? IndexTypes { get; set; }
+ [JsonPropertyName("aspect_ratio")]
+ public AspectRatio? AspectRatio { get; set; }
+
///
/// Maps the UpdateRequest type into its Protobuf-equivalent representation.
///
@@ -89,6 +92,20 @@ internal Proto.UpdateRequest ToProto()
)
);
}
+ if (AspectRatio != null)
+ {
+ result.AspectRatio = AspectRatio.Value.Value switch
+ {
+ SeedApi.AspectRatio.Values.AspectRatioUnspecified => ProtoDataV1Grpc
+ .AspectRatio
+ .Unspecified,
+ SeedApi.AspectRatio.Values.AspectRatio11 => ProtoDataV1Grpc.AspectRatio._11,
+ SeedApi.AspectRatio.Values.AspectRatio169 => ProtoDataV1Grpc.AspectRatio._169,
+ SeedApi.AspectRatio.Values.AspectRatio916 => ProtoDataV1Grpc.AspectRatio._916,
+ SeedApi.AspectRatio.Values.AspectRatio43 => ProtoDataV1Grpc.AspectRatio._43,
+ _ => throw new ArgumentException($"Unknown enum value: {AspectRatio.Value.Value}"),
+ };
+ }
return result;
}
diff --git a/seed/csharp-sdk/csharp-grpc-proto-exhaustive/no-custom-config/src/SeedApi/Dataservice/Requests/UploadRequest.cs b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/no-custom-config/src/SeedApi/DataService/Requests/UploadRequest.cs
similarity index 100%
rename from seed/csharp-sdk/csharp-grpc-proto-exhaustive/no-custom-config/src/SeedApi/Dataservice/Requests/UploadRequest.cs
rename to seed/csharp-sdk/csharp-grpc-proto-exhaustive/no-custom-config/src/SeedApi/DataService/Requests/UploadRequest.cs
diff --git a/seed/csharp-sdk/csharp-grpc-proto-exhaustive/no-custom-config/src/SeedApi/ISeedApiClient.cs b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/no-custom-config/src/SeedApi/ISeedApiClient.cs
index 975e85422400..71a1b5857551 100644
--- a/seed/csharp-sdk/csharp-grpc-proto-exhaustive/no-custom-config/src/SeedApi/ISeedApiClient.cs
+++ b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/no-custom-config/src/SeedApi/ISeedApiClient.cs
@@ -2,5 +2,9 @@ namespace SeedApi;
public partial interface ISeedApiClient
{
- public IDataserviceClient Dataservice { get; }
+ public IDataServiceClient DataService { get; }
+ WithRawResponseTask> PostFooAsync(
+ RequestOptions? options = null,
+ CancellationToken cancellationToken = default
+ );
}
diff --git a/seed/csharp-sdk/csharp-grpc-proto-exhaustive/no-custom-config/src/SeedApi/SeedApiClient.cs b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/no-custom-config/src/SeedApi/SeedApiClient.cs
index 246aa6ca1fa7..f96d27cba4a6 100644
--- a/seed/csharp-sdk/csharp-grpc-proto-exhaustive/no-custom-config/src/SeedApi/SeedApiClient.cs
+++ b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/no-custom-config/src/SeedApi/SeedApiClient.cs
@@ -1,3 +1,4 @@
+using System.Text.Json;
using SeedApi.Core;
namespace SeedApi;
@@ -26,8 +27,87 @@ public SeedApiClient(ClientOptions? clientOptions = null)
}
}
_client = new RawClient(clientOptions);
- Dataservice = new DataserviceClient(_client);
+ DataService = new DataServiceClient(_client);
}
- public IDataserviceClient Dataservice { get; }
+ public IDataServiceClient DataService { get; }
+
+ private async Task>> PostFooAsyncCore(
+ RequestOptions? options = null,
+ CancellationToken cancellationToken = default
+ )
+ {
+ var _headers = await new SeedApi.Core.HeadersBuilder.Builder()
+ .Add(_client.Options.Headers)
+ .Add(_client.Options.AdditionalHeaders)
+ .Add(options?.AdditionalHeaders)
+ .BuildAsync()
+ .ConfigureAwait(false);
+ var response = await _client
+ .SendRequestAsync(
+ new JsonRequest
+ {
+ Method = HttpMethod.Post,
+ Path = "foo",
+ Headers = _headers,
+ Options = options,
+ },
+ cancellationToken
+ )
+ .ConfigureAwait(false);
+ if (response.StatusCode is >= 200 and < 400)
+ {
+ var responseBody = await response
+ .Raw.Content.ReadAsStringAsync(cancellationToken)
+ .ConfigureAwait(false);
+ try
+ {
+ var responseData = JsonUtils.Deserialize>(
+ responseBody
+ )!;
+ return new WithRawResponse>()
+ {
+ Data = responseData,
+ RawResponse = new RawResponse()
+ {
+ StatusCode = response.Raw.StatusCode,
+ Url = response.Raw.RequestMessage?.RequestUri ?? new Uri("about:blank"),
+ Headers = ResponseHeaders.FromHttpResponseMessage(response.Raw),
+ },
+ };
+ }
+ catch (JsonException e)
+ {
+ throw new SeedApiApiException(
+ "Failed to deserialize response",
+ response.StatusCode,
+ responseBody,
+ e
+ );
+ }
+ }
+ {
+ var responseBody = await response
+ .Raw.Content.ReadAsStringAsync(cancellationToken)
+ .ConfigureAwait(false);
+ throw new SeedApiApiException(
+ $"Error with status code {response.StatusCode}",
+ response.StatusCode,
+ responseBody
+ );
+ }
+ }
+
+ ///
+ /// await client.PostFooAsync();
+ ///
+ public WithRawResponseTask> PostFooAsync(
+ RequestOptions? options = null,
+ CancellationToken cancellationToken = default
+ )
+ {
+ return new WithRawResponseTask>(
+ PostFooAsyncCore(options, cancellationToken)
+ );
+ }
}
diff --git a/seed/csharp-sdk/csharp-grpc-proto-exhaustive/no-custom-config/src/SeedApi/Types/AspectRatio.cs b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/no-custom-config/src/SeedApi/Types/AspectRatio.cs
new file mode 100644
index 000000000000..d86b98014dcf
--- /dev/null
+++ b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/no-custom-config/src/SeedApi/Types/AspectRatio.cs
@@ -0,0 +1,104 @@
+using System.Text.Json;
+using System.Text.Json.Serialization;
+using SeedApi.Core;
+
+namespace SeedApi;
+
+[JsonConverter(typeof(AspectRatio.AspectRatioSerializer))]
+[Serializable]
+public readonly record struct AspectRatio : IStringEnum
+{
+ public static readonly AspectRatio AspectRatioUnspecified = new(Values.AspectRatioUnspecified);
+
+ public static readonly AspectRatio AspectRatio11 = new(Values.AspectRatio11);
+
+ public static readonly AspectRatio AspectRatio169 = new(Values.AspectRatio169);
+
+ public static readonly AspectRatio AspectRatio916 = new(Values.AspectRatio916);
+
+ public static readonly AspectRatio AspectRatio43 = new(Values.AspectRatio43);
+
+ public AspectRatio(string value)
+ {
+ Value = value;
+ }
+
+ ///
+ /// The string value of the enum.
+ ///
+ public string Value { get; }
+
+ ///
+ /// Create a string enum with the given value.
+ ///
+ public static AspectRatio FromCustom(string value)
+ {
+ return new AspectRatio(value);
+ }
+
+ public bool Equals(string? other)
+ {
+ return Value.Equals(other);
+ }
+
+ ///
+ /// Returns the string value of the enum.
+ ///
+ public override string ToString()
+ {
+ return Value;
+ }
+
+ public static bool operator ==(AspectRatio value1, string value2) =>
+ value1.Value.Equals(value2);
+
+ public static bool operator !=(AspectRatio value1, string value2) =>
+ !value1.Value.Equals(value2);
+
+ public static explicit operator string(AspectRatio value) => value.Value;
+
+ public static explicit operator AspectRatio(string value) => new(value);
+
+ internal class AspectRatioSerializer : JsonConverter
+ {
+ public override AspectRatio Read(
+ ref Utf8JsonReader reader,
+ Type typeToConvert,
+ JsonSerializerOptions options
+ )
+ {
+ var stringValue =
+ reader.GetString()
+ ?? throw new global::System.Exception(
+ "The JSON value could not be read as a string."
+ );
+ return new AspectRatio(stringValue);
+ }
+
+ public override void Write(
+ Utf8JsonWriter writer,
+ AspectRatio value,
+ JsonSerializerOptions options
+ )
+ {
+ writer.WriteStringValue(value.Value);
+ }
+ }
+
+ ///
+ /// Constant strings for enum values
+ ///
+ [Serializable]
+ public static class Values
+ {
+ public const string AspectRatioUnspecified = "ASPECT_RATIO_UNSPECIFIED";
+
+ public const string AspectRatio11 = "ASPECT_RATIO_1_1";
+
+ public const string AspectRatio169 = "ASPECT_RATIO_16_9";
+
+ public const string AspectRatio916 = "ASPECT_RATIO_9_16";
+
+ public const string AspectRatio43 = "ASPECT_RATIO_4_3";
+ }
+}
diff --git a/seed/csharp-sdk/csharp-grpc-proto-exhaustive/no-custom-config/src/SeedApi/Dataservice/Types/IndexType.cs b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/no-custom-config/src/SeedApi/Types/IndexType.cs
similarity index 100%
rename from seed/csharp-sdk/csharp-grpc-proto-exhaustive/no-custom-config/src/SeedApi/Dataservice/Types/IndexType.cs
rename to seed/csharp-sdk/csharp-grpc-proto-exhaustive/no-custom-config/src/SeedApi/Types/IndexType.cs
diff --git a/seed/csharp-sdk/csharp-grpc-proto-exhaustive/package-id/README.md b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/package-id/README.md
index bc4d312ebd54..655c3cec0600 100644
--- a/seed/csharp-sdk/csharp-grpc-proto-exhaustive/package-id/README.md
+++ b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/package-id/README.md
@@ -41,7 +41,19 @@ Instantiate and use the client with the following:
using SeedApi;
var client = new SeedApiClient();
-await client.Dataservice.FooAsync();
+await client.DataService.UploadAsync(
+ new UploadRequest
+ {
+ Columns = new List()
+ {
+ new SeedApi.Column
+ {
+ Id = "id",
+ Values = new List() { 1.1f },
+ },
+ },
+ }
+);
```
## Exception Handling
@@ -53,7 +65,7 @@ will be thrown.
using SeedApi;
try {
- var response = await client.Dataservice.FooAsync(...);
+ var response = await client.DataService.UploadAsync(...);
} catch (SeedApiApiException e) {
System.Console.WriteLine(e.Body);
System.Console.WriteLine(e.StatusCode);
@@ -77,7 +89,7 @@ A request is deemed retryable 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.FooAsync(
+var response = await client.DataService.UploadAsync(
...,
new RequestOptions {
MaxRetries: 0 // Override MaxRetries at the request level
@@ -90,7 +102,7 @@ var response = await client.Dataservice.FooAsync(
The SDK defaults to a 30 second timeout. Use the `Timeout` option to configure this behavior.
```csharp
-var response = await client.Dataservice.FooAsync(
+var response = await client.DataService.UploadAsync(
...,
new RequestOptions {
Timeout: TimeSpan.FromSeconds(3) // Override timeout to 3s
@@ -103,7 +115,7 @@ var response = await client.Dataservice.FooAsync(
If you would like to send additional headers as part of the request, use the `AdditionalHeaders` request option.
```csharp
-var response = await client.Dataservice.FooAsync(
+var response = await client.DataService.UploadAsync(
...,
new RequestOptions {
AdditionalHeaders = new Dictionary
@@ -122,25 +134,25 @@ This SDK uses forward-compatible enums that can handle unknown values gracefully
using SeedApi;
// Using a built-in value
-var indexType = IndexType.IndexTypeInvalid;
+var aspectRatio = AspectRatio.AspectRatioUnspecified;
// Using a custom value
-var customIndexType = IndexType.FromCustom("custom-value");
+var customAspectRatio = AspectRatio.FromCustom("custom-value");
// Using in a switch statement
-switch (indexType.Value)
+switch (aspectRatio.Value)
{
- case IndexType.Values.IndexTypeInvalid:
- Console.WriteLine("IndexTypeInvalid");
+ case AspectRatio.Values.AspectRatioUnspecified:
+ Console.WriteLine("AspectRatioUnspecified");
break;
default:
- Console.WriteLine($"Unknown value: {indexType.Value}");
+ Console.WriteLine($"Unknown value: {aspectRatio.Value}");
break;
}
// Explicit casting
-string indexTypeString = (string)IndexType.IndexTypeInvalid;
-IndexType indexTypeFromString = (IndexType)"INDEX_TYPE_INVALID";
+string aspectRatioString = (string)AspectRatio.AspectRatioUnspecified;
+AspectRatio aspectRatioFromString = (AspectRatio)"ASPECT_RATIO_UNSPECIFIED";
```
## Contributing
diff --git a/seed/csharp-sdk/csharp-grpc-proto-exhaustive/package-id/proto/data/v1/data.proto b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/package-id/proto/data/v1/data.proto
index b8244b95516d..46947f1d26ee 100644
--- a/seed/csharp-sdk/csharp-grpc-proto-exhaustive/package-id/proto/data/v1/data.proto
+++ b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/package-id/proto/data/v1/data.proto
@@ -17,6 +17,14 @@ enum IndexType {
INDEX_TYPE_STRICT = 2;
}
+enum AspectRatio {
+ ASPECT_RATIO_UNSPECIFIED = 0;
+ ASPECT_RATIO_1_1 = 1;
+ ASPECT_RATIO_16_9 = 2;
+ ASPECT_RATIO_9_16 = 3;
+ ASPECT_RATIO_4_3 = 4;
+}
+
message IndexedData {
repeated uint32 indices = 1 [
(google.api.field_behavior) = REQUIRED
@@ -155,6 +163,7 @@ message UpdateRequest {
IndexType index_type = 6;
google.protobuf.Any details = 7;
repeated IndexType index_types = 8;
+ optional AspectRatio aspect_ratio = 9;
}
message UpdateResponse {
diff --git a/seed/csharp-sdk/csharp-grpc-proto-exhaustive/package-id/reference.md b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/package-id/reference.md
index b5f9228a5c91..bc7264303b43 100644
--- a/seed/csharp-sdk/csharp-grpc-proto-exhaustive/package-id/reference.md
+++ b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/package-id/reference.md
@@ -1,6 +1,5 @@
# Reference
-## DataService
-client.Dataservice.FooAsync() -> WithRawResponseTask<Dictionary<string, object?>>
+client.PostFooAsync() -> WithRawResponseTask<Dictionary<string, object?>>
-
@@ -13,7 +12,7 @@
-
```csharp
-await client.Dataservice.FooAsync();
+await client.PostFooAsync();
```
@@ -25,7 +24,8 @@ await client.Dataservice.FooAsync();
-client.Dataservice.UploadAsync(UploadRequest { ... }) -> WithRawResponseTask<UploadResponse>
+## DataService
+client.DataService.UploadAsync(UploadRequest { ... }) -> WithRawResponseTask<UploadResponse>
-
@@ -38,7 +38,7 @@ await client.Dataservice.FooAsync();
-
```csharp
-await client.Dataservice.UploadAsync(
+await client.DataService.UploadAsync(
new UploadRequest
{
Columns = new List()
@@ -77,7 +77,7 @@ await client.Dataservice.UploadAsync(
-client.Dataservice.DeleteAsync(DeleteRequest { ... }) -> WithRawResponseTask<DeleteResponse>
+client.DataService.DeleteAsync(DeleteRequest { ... }) -> WithRawResponseTask<DeleteResponse>
-
@@ -90,7 +90,7 @@ await client.Dataservice.UploadAsync(
-
```csharp
-await client.Dataservice.DeleteAsync(new DeleteRequest());
+await client.DataService.DeleteAsync(new DeleteRequest());
```
@@ -117,7 +117,7 @@ await client.Dataservice.DeleteAsync(new DeleteRequest());
-client.Dataservice.DescribeAsync(DescribeRequest { ... }) -> WithRawResponseTask<DescribeResponse>
+client.DataService.DescribeAsync(DescribeRequest { ... }) -> WithRawResponseTask<DescribeResponse>
-
@@ -130,7 +130,7 @@ await client.Dataservice.DeleteAsync(new DeleteRequest());
-
```csharp
-await client.Dataservice.DescribeAsync(new DescribeRequest());
+await client.DataService.DescribeAsync(new DescribeRequest());
```
@@ -157,7 +157,7 @@ await client.Dataservice.DescribeAsync(new DescribeRequest());
-client.Dataservice.FetchAsync(FetchRequest { ... }) -> WithRawResponseTask<FetchResponse>
+client.DataService.FetchAsync(FetchRequest { ... }) -> WithRawResponseTask<FetchResponse>
-
@@ -170,7 +170,7 @@ await client.Dataservice.DescribeAsync(new DescribeRequest());
-
```csharp
-await client.Dataservice.FetchAsync(new FetchRequest());
+await client.DataService.FetchAsync(new FetchRequest());
```
@@ -197,7 +197,7 @@ await client.Dataservice.FetchAsync(new FetchRequest());
-client.Dataservice.ListAsync(ListRequest { ... }) -> WithRawResponseTask<ListResponse>
+client.DataService.ListAsync(ListRequest { ... }) -> WithRawResponseTask<ListResponse>
-
@@ -210,7 +210,7 @@ await client.Dataservice.FetchAsync(new FetchRequest());
-
```csharp
-await client.Dataservice.ListAsync(new ListRequest());
+await client.DataService.ListAsync(new ListRequest());
```
@@ -237,7 +237,7 @@ await client.Dataservice.ListAsync(new ListRequest());
-client.Dataservice.QueryAsync(QueryRequest { ... }) -> WithRawResponseTask<QueryResponse>
+client.DataService.QueryAsync(QueryRequest { ... }) -> WithRawResponseTask<QueryResponse>
-
@@ -250,7 +250,7 @@ await client.Dataservice.ListAsync(new ListRequest());
-
```csharp
-await client.Dataservice.QueryAsync(new QueryRequest { TopK = 1 });
+await client.DataService.QueryAsync(new QueryRequest { TopK = 1 });
```
@@ -277,7 +277,7 @@ await client.Dataservice.QueryAsync(new QueryRequest { TopK = 1 });
-client.Dataservice.UpdateAsync(UpdateRequest { ... }) -> WithRawResponseTask<UpdateResponse>
+client.DataService.UpdateAsync(UpdateRequest { ... }) -> WithRawResponseTask<UpdateResponse>
-
@@ -290,7 +290,7 @@ await client.Dataservice.QueryAsync(new QueryRequest { TopK = 1 });
-
```csharp
-await client.Dataservice.UpdateAsync(new UpdateRequest { Id = "id" });
+await client.DataService.UpdateAsync(new UpdateRequest { Id = "id" });
```
diff --git a/seed/csharp-sdk/csharp-grpc-proto-exhaustive/package-id/snippet.json b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/package-id/snippet.json
index 10d4d0868455..c435d6f7c198 100644
--- a/seed/csharp-sdk/csharp-grpc-proto-exhaustive/package-id/snippet.json
+++ b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/package-id/snippet.json
@@ -1,28 +1,16 @@
{
"types": {},
"endpoints": [
- {
- "example_identifier": null,
- "id": {
- "path": "/foo",
- "method": "POST",
- "identifier_override": "endpoint_dataservice.foo"
- },
- "snippet": {
- "type": "csharp",
- "client": "using SeedApi;\n\nvar client = new SeedApiClient();\nawait client.Dataservice.FooAsync();\n"
- }
- },
{
"example_identifier": null,
"id": {
"path": "/data",
"method": "POST",
- "identifier_override": "endpoint_dataservice.upload"
+ "identifier_override": "endpoint_dataService.Upload"
},
"snippet": {
"type": "csharp",
- "client": "using SeedApi;\n\nvar client = new SeedApiClient();\nawait client.Dataservice.UploadAsync(\n new UploadRequest\n {\n Columns = new List()\n {\n new SeedApi.Column\n {\n Id = \"id\",\n Values = new List() { 1.1f },\n },\n },\n }\n);\n"
+ "client": "using SeedApi;\n\nvar client = new SeedApiClient();\nawait client.DataService.UploadAsync(\n new UploadRequest\n {\n Columns = new List()\n {\n new SeedApi.Column\n {\n Id = \"id\",\n Values = new List() { 1.1f },\n },\n },\n }\n);\n"
}
},
{
@@ -30,11 +18,11 @@
"id": {
"path": "/data/delete",
"method": "POST",
- "identifier_override": "endpoint_dataservice.delete"
+ "identifier_override": "endpoint_dataService.Delete"
},
"snippet": {
"type": "csharp",
- "client": "using SeedApi;\n\nvar client = new SeedApiClient();\nawait client.Dataservice.DeleteAsync(new DeleteRequest());\n"
+ "client": "using SeedApi;\n\nvar client = new SeedApiClient();\nawait client.DataService.DeleteAsync(new DeleteRequest());\n"
}
},
{
@@ -42,11 +30,11 @@
"id": {
"path": "/data/describe",
"method": "POST",
- "identifier_override": "endpoint_dataservice.describe"
+ "identifier_override": "endpoint_dataService.Describe"
},
"snippet": {
"type": "csharp",
- "client": "using SeedApi;\n\nvar client = new SeedApiClient();\nawait client.Dataservice.DescribeAsync(new DescribeRequest());\n"
+ "client": "using SeedApi;\n\nvar client = new SeedApiClient();\nawait client.DataService.DescribeAsync(new DescribeRequest());\n"
}
},
{
@@ -54,11 +42,11 @@
"id": {
"path": "/data/fetch",
"method": "GET",
- "identifier_override": "endpoint_dataservice.fetch"
+ "identifier_override": "endpoint_dataService.Fetch"
},
"snippet": {
"type": "csharp",
- "client": "using SeedApi;\n\nvar client = new SeedApiClient();\nawait client.Dataservice.FetchAsync(new FetchRequest());\n"
+ "client": "using SeedApi;\n\nvar client = new SeedApiClient();\nawait client.DataService.FetchAsync(new FetchRequest());\n"
}
},
{
@@ -66,11 +54,11 @@
"id": {
"path": "/data/list",
"method": "GET",
- "identifier_override": "endpoint_dataservice.list"
+ "identifier_override": "endpoint_dataService.List"
},
"snippet": {
"type": "csharp",
- "client": "using SeedApi;\n\nvar client = new SeedApiClient();\nawait client.Dataservice.ListAsync(new ListRequest());\n"
+ "client": "using SeedApi;\n\nvar client = new SeedApiClient();\nawait client.DataService.ListAsync(new ListRequest());\n"
}
},
{
@@ -78,11 +66,11 @@
"id": {
"path": "/data/query",
"method": "POST",
- "identifier_override": "endpoint_dataservice.query"
+ "identifier_override": "endpoint_dataService.Query"
},
"snippet": {
"type": "csharp",
- "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();\nawait client.DataService.QueryAsync(new QueryRequest { TopK = 1 });\n"
}
},
{
@@ -90,11 +78,23 @@
"id": {
"path": "/data/update",
"method": "POST",
- "identifier_override": "endpoint_dataservice.update"
+ "identifier_override": "endpoint_dataService.Update"
+ },
+ "snippet": {
+ "type": "csharp",
+ "client": "using SeedApi;\n\nvar client = new SeedApiClient();\nawait client.DataService.UpdateAsync(new UpdateRequest { Id = \"id\" });\n"
+ }
+ },
+ {
+ "example_identifier": null,
+ "id": {
+ "path": "/foo",
+ "method": "POST",
+ "identifier_override": "endpoint_.postFoo"
},
"snippet": {
"type": "csharp",
- "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();\nawait client.PostFooAsync();\n"
}
}
]
diff --git a/seed/csharp-sdk/csharp-grpc-proto-exhaustive/package-id/src/SeedApi.Test/Unit/MockServer/BaseMockServerTest.cs b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/package-id/src/SeedApi.Test/Unit/MockServer/BaseMockServerTest.cs
new file mode 100644
index 000000000000..3f4ed8503ec1
--- /dev/null
+++ b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/package-id/src/SeedApi.Test/Unit/MockServer/BaseMockServerTest.cs
@@ -0,0 +1,37 @@
+using NUnit.Framework;
+using SeedApi;
+using WireMock.Logging;
+using WireMock.Server;
+using WireMock.Settings;
+
+namespace SeedApi.Test.Unit.MockServer;
+
+public class BaseMockServerTest
+{
+ protected WireMockServer Server { get; set; } = null!;
+
+ protected SeedApiClient Client { get; set; } = null!;
+
+ protected RequestOptions RequestOptions { get; set; } = new();
+
+ [OneTimeSetUp]
+ public void GlobalSetup()
+ {
+ // Start the WireMock server
+ Server = WireMockServer.Start(
+ new WireMockServerSettings { Logger = new WireMockConsoleLogger() }
+ );
+
+ // Initialize the Client
+ Client = new SeedApiClient(
+ clientOptions: new ClientOptions { BaseUrl = Server.Urls[0], MaxRetries = 0 }
+ );
+ }
+
+ [OneTimeTearDown]
+ public void GlobalTeardown()
+ {
+ Server.Stop();
+ Server.Dispose();
+ }
+}
diff --git a/seed/csharp-sdk/csharp-grpc-proto-exhaustive/package-id/src/SeedApi.Test/Unit/MockServer/PostFooTest.cs b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/package-id/src/SeedApi.Test/Unit/MockServer/PostFooTest.cs
new file mode 100644
index 000000000000..53a6e783292a
--- /dev/null
+++ b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/package-id/src/SeedApi.Test/Unit/MockServer/PostFooTest.cs
@@ -0,0 +1,55 @@
+using NUnit.Framework;
+using SeedApi.Test.Utils;
+
+namespace SeedApi.Test.Unit.MockServer;
+
+[TestFixture]
+[Parallelizable(ParallelScope.Self)]
+public class PostFooTest : BaseMockServerTest
+{
+ [NUnit.Framework.Test]
+ public async Task MockServerTest_1()
+ {
+ const string mockResponse = """
+ {
+ "string": {
+ "key": "value"
+ }
+ }
+ """;
+
+ Server
+ .Given(WireMock.RequestBuilders.Request.Create().WithPath("/foo").UsingPost())
+ .RespondWith(
+ WireMock
+ .ResponseBuilders.Response.Create()
+ .WithStatusCode(200)
+ .WithBody(mockResponse)
+ );
+
+ var response = await Client.PostFooAsync();
+ JsonAssert.AreEqual(response, mockResponse);
+ }
+
+ [NUnit.Framework.Test]
+ public async Task MockServerTest_2()
+ {
+ const string mockResponse = """
+ {
+ "key": "value"
+ }
+ """;
+
+ Server
+ .Given(WireMock.RequestBuilders.Request.Create().WithPath("/foo").UsingPost())
+ .RespondWith(
+ WireMock
+ .ResponseBuilders.Response.Create()
+ .WithStatusCode(200)
+ .WithBody(mockResponse)
+ );
+
+ var response = await Client.PostFooAsync();
+ JsonAssert.AreEqual(response, mockResponse);
+ }
+}
diff --git a/seed/csharp-sdk/csharp-grpc-proto-exhaustive/no-custom-config/src/SeedApi/Dataservice/DataserviceClient.cs b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/package-id/src/SeedApi/DataService/DataServiceClient.cs
similarity index 80%
rename from seed/csharp-sdk/csharp-grpc-proto-exhaustive/no-custom-config/src/SeedApi/Dataservice/DataserviceClient.cs
rename to seed/csharp-sdk/csharp-grpc-proto-exhaustive/package-id/src/SeedApi/DataService/DataServiceClient.cs
index d7a55705956f..29883eb5de76 100644
--- a/seed/csharp-sdk/csharp-grpc-proto-exhaustive/no-custom-config/src/SeedApi/Dataservice/DataserviceClient.cs
+++ b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/package-id/src/SeedApi/DataService/DataServiceClient.cs
@@ -1,11 +1,10 @@
-using System.Text.Json;
using Data.V1.Grpc;
using Grpc.Core;
using SeedApi.Core;
namespace SeedApi;
-public partial class DataserviceClient : IDataserviceClient
+public partial class DataServiceClient : IDataServiceClient
{
private readonly RawClient _client;
@@ -13,94 +12,15 @@ public partial class DataserviceClient : IDataserviceClient
private DataService.DataServiceClient _dataService;
- internal DataserviceClient(RawClient client)
+ internal DataServiceClient(RawClient client)
{
_client = client;
_grpc = _client.Grpc;
_dataService = new DataService.DataServiceClient(_grpc.Channel);
}
- private async Task>> FooAsyncCore(
- RequestOptions? options = null,
- CancellationToken cancellationToken = default
- )
- {
- var _headers = await new SeedApi.Core.HeadersBuilder.Builder()
- .Add(_client.Options.Headers)
- .Add(_client.Options.AdditionalHeaders)
- .Add(options?.AdditionalHeaders)
- .BuildAsync()
- .ConfigureAwait(false);
- var response = await _client
- .SendRequestAsync(
- new JsonRequest
- {
- Method = HttpMethod.Post,
- Path = "foo",
- Headers = _headers,
- Options = options,
- },
- cancellationToken
- )
- .ConfigureAwait(false);
- if (response.StatusCode is >= 200 and < 400)
- {
- var responseBody = await response
- .Raw.Content.ReadAsStringAsync(cancellationToken)
- .ConfigureAwait(false);
- try
- {
- var responseData = JsonUtils.Deserialize>(
- responseBody
- )!;
- return new WithRawResponse>()
- {
- Data = responseData,
- RawResponse = new RawResponse()
- {
- StatusCode = response.Raw.StatusCode,
- Url = response.Raw.RequestMessage?.RequestUri ?? new Uri("about:blank"),
- Headers = ResponseHeaders.FromHttpResponseMessage(response.Raw),
- },
- };
- }
- catch (JsonException e)
- {
- throw new SeedApiApiException(
- "Failed to deserialize response",
- response.StatusCode,
- responseBody,
- e
- );
- }
- }
- {
- var responseBody = await response
- .Raw.Content.ReadAsStringAsync(cancellationToken)
- .ConfigureAwait(false);
- throw new SeedApiApiException(
- $"Error with status code {response.StatusCode}",
- response.StatusCode,
- responseBody
- );
- }
- }
-
- ///
- /// await client.Dataservice.FooAsync();
- ///
- public WithRawResponseTask> FooAsync(
- RequestOptions? options = null,
- CancellationToken cancellationToken = default
- )
- {
- return new WithRawResponseTask>(
- FooAsyncCore(options, cancellationToken)
- );
- }
-
///
- /// await client.Dataservice.UploadAsync(
+ /// await client.DataService.UploadAsync(
/// new UploadRequest
/// {
/// Columns = new List<SeedApi.Column>()
@@ -170,7 +90,7 @@ public async Task UploadAsync(
}
///
- /// await client.Dataservice.DeleteAsync(new DeleteRequest());
+ /// await client.DataService.DeleteAsync(new DeleteRequest());
///
public async Task DeleteAsync(
DeleteRequest request,
@@ -228,7 +148,7 @@ public async Task DeleteAsync(
}
///
- /// await client.Dataservice.DescribeAsync(new DescribeRequest());
+ /// await client.DataService.DescribeAsync(new DescribeRequest());
///
public async Task DescribeAsync(
DescribeRequest request,
@@ -286,7 +206,7 @@ public async Task DescribeAsync(
}
///
- /// await client.Dataservice.FetchAsync(new FetchRequest());
+ /// await client.DataService.FetchAsync(new FetchRequest());
///
public async Task FetchAsync(
FetchRequest request,
@@ -344,7 +264,7 @@ public async Task FetchAsync(
}
///
- /// await client.Dataservice.ListAsync(new ListRequest());
+ /// await client.DataService.ListAsync(new ListRequest());
///
public async Task ListAsync(
ListRequest request,
@@ -402,7 +322,7 @@ public async Task ListAsync(
}
///
- /// await client.Dataservice.QueryAsync(new QueryRequest { TopK = 1 });
+ /// await client.DataService.QueryAsync(new QueryRequest { TopK = 1 });
///
public async Task QueryAsync(
QueryRequest request,
@@ -460,7 +380,7 @@ public async Task QueryAsync(
}
///
- /// await client.Dataservice.UpdateAsync(new UpdateRequest { Id = "id" });
+ /// await client.DataService.UpdateAsync(new UpdateRequest { Id = "id" });
///
public async Task UpdateAsync(
UpdateRequest request,
diff --git a/seed/csharp-sdk/csharp-grpc-proto-exhaustive/package-id/src/SeedApi/Dataservice/IDataserviceClient.cs b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/package-id/src/SeedApi/DataService/IDataServiceClient.cs
similarity index 85%
rename from seed/csharp-sdk/csharp-grpc-proto-exhaustive/package-id/src/SeedApi/Dataservice/IDataserviceClient.cs
rename to seed/csharp-sdk/csharp-grpc-proto-exhaustive/package-id/src/SeedApi/DataService/IDataServiceClient.cs
index 4a7de66ccb27..52d48a495b2b 100644
--- a/seed/csharp-sdk/csharp-grpc-proto-exhaustive/package-id/src/SeedApi/Dataservice/IDataserviceClient.cs
+++ b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/package-id/src/SeedApi/DataService/IDataServiceClient.cs
@@ -1,12 +1,7 @@
namespace SeedApi;
-public partial interface IDataserviceClient
+public partial interface IDataServiceClient
{
- WithRawResponseTask> FooAsync(
- RequestOptions? options = null,
- CancellationToken cancellationToken = default
- );
-
Task UploadAsync(
UploadRequest request,
GrpcRequestOptions? options = null,
diff --git a/seed/csharp-sdk/csharp-grpc-proto-exhaustive/package-id/src/SeedApi/Dataservice/Requests/DeleteRequest.cs b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/package-id/src/SeedApi/DataService/Requests/DeleteRequest.cs
similarity index 100%
rename from seed/csharp-sdk/csharp-grpc-proto-exhaustive/package-id/src/SeedApi/Dataservice/Requests/DeleteRequest.cs
rename to seed/csharp-sdk/csharp-grpc-proto-exhaustive/package-id/src/SeedApi/DataService/Requests/DeleteRequest.cs
diff --git a/seed/csharp-sdk/csharp-grpc-proto-exhaustive/package-id/src/SeedApi/Dataservice/Requests/DescribeRequest.cs b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/package-id/src/SeedApi/DataService/Requests/DescribeRequest.cs
similarity index 100%
rename from seed/csharp-sdk/csharp-grpc-proto-exhaustive/package-id/src/SeedApi/Dataservice/Requests/DescribeRequest.cs
rename to seed/csharp-sdk/csharp-grpc-proto-exhaustive/package-id/src/SeedApi/DataService/Requests/DescribeRequest.cs
diff --git a/seed/csharp-sdk/csharp-grpc-proto-exhaustive/package-id/src/SeedApi/Dataservice/Requests/FetchRequest.cs b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/package-id/src/SeedApi/DataService/Requests/FetchRequest.cs
similarity index 100%
rename from seed/csharp-sdk/csharp-grpc-proto-exhaustive/package-id/src/SeedApi/Dataservice/Requests/FetchRequest.cs
rename to seed/csharp-sdk/csharp-grpc-proto-exhaustive/package-id/src/SeedApi/DataService/Requests/FetchRequest.cs
diff --git a/seed/csharp-sdk/csharp-grpc-proto-exhaustive/package-id/src/SeedApi/Dataservice/Requests/ListRequest.cs b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/package-id/src/SeedApi/DataService/Requests/ListRequest.cs
similarity index 100%
rename from seed/csharp-sdk/csharp-grpc-proto-exhaustive/package-id/src/SeedApi/Dataservice/Requests/ListRequest.cs
rename to seed/csharp-sdk/csharp-grpc-proto-exhaustive/package-id/src/SeedApi/DataService/Requests/ListRequest.cs
diff --git a/seed/csharp-sdk/csharp-grpc-proto-exhaustive/package-id/src/SeedApi/Dataservice/Requests/QueryRequest.cs b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/package-id/src/SeedApi/DataService/Requests/QueryRequest.cs
similarity index 100%
rename from seed/csharp-sdk/csharp-grpc-proto-exhaustive/package-id/src/SeedApi/Dataservice/Requests/QueryRequest.cs
rename to seed/csharp-sdk/csharp-grpc-proto-exhaustive/package-id/src/SeedApi/DataService/Requests/QueryRequest.cs
diff --git a/seed/csharp-sdk/csharp-grpc-proto-exhaustive/include-exception-handler/src/SeedApi/Dataservice/Requests/UpdateRequest.cs b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/package-id/src/SeedApi/DataService/Requests/UpdateRequest.cs
similarity index 78%
rename from seed/csharp-sdk/csharp-grpc-proto-exhaustive/include-exception-handler/src/SeedApi/Dataservice/Requests/UpdateRequest.cs
rename to seed/csharp-sdk/csharp-grpc-proto-exhaustive/package-id/src/SeedApi/DataService/Requests/UpdateRequest.cs
index 40238253ea5e..5301c75e711f 100644
--- a/seed/csharp-sdk/csharp-grpc-proto-exhaustive/include-exception-handler/src/SeedApi/Dataservice/Requests/UpdateRequest.cs
+++ b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/package-id/src/SeedApi/DataService/Requests/UpdateRequest.cs
@@ -32,6 +32,9 @@ public record UpdateRequest
[JsonPropertyName("index_types")]
public IEnumerable? IndexTypes { get; set; }
+ [JsonPropertyName("aspect_ratio")]
+ public AspectRatio? AspectRatio { get; set; }
+
///
/// Maps the UpdateRequest type into its Protobuf-equivalent representation.
///
@@ -89,6 +92,20 @@ internal Proto.UpdateRequest ToProto()
)
);
}
+ if (AspectRatio != null)
+ {
+ result.AspectRatio = AspectRatio.Value.Value switch
+ {
+ SeedApi.AspectRatio.Values.AspectRatioUnspecified => ProtoDataV1Grpc
+ .AspectRatio
+ .Unspecified,
+ SeedApi.AspectRatio.Values.AspectRatio11 => ProtoDataV1Grpc.AspectRatio._11,
+ SeedApi.AspectRatio.Values.AspectRatio169 => ProtoDataV1Grpc.AspectRatio._169,
+ SeedApi.AspectRatio.Values.AspectRatio916 => ProtoDataV1Grpc.AspectRatio._916,
+ SeedApi.AspectRatio.Values.AspectRatio43 => ProtoDataV1Grpc.AspectRatio._43,
+ _ => throw new ArgumentException($"Unknown enum value: {AspectRatio.Value.Value}"),
+ };
+ }
return result;
}
diff --git a/seed/csharp-sdk/csharp-grpc-proto-exhaustive/package-id/src/SeedApi/Dataservice/Requests/UploadRequest.cs b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/package-id/src/SeedApi/DataService/Requests/UploadRequest.cs
similarity index 100%
rename from seed/csharp-sdk/csharp-grpc-proto-exhaustive/package-id/src/SeedApi/Dataservice/Requests/UploadRequest.cs
rename to seed/csharp-sdk/csharp-grpc-proto-exhaustive/package-id/src/SeedApi/DataService/Requests/UploadRequest.cs
diff --git a/seed/csharp-sdk/csharp-grpc-proto-exhaustive/package-id/src/SeedApi/ISeedApiClient.cs b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/package-id/src/SeedApi/ISeedApiClient.cs
index 975e85422400..71a1b5857551 100644
--- a/seed/csharp-sdk/csharp-grpc-proto-exhaustive/package-id/src/SeedApi/ISeedApiClient.cs
+++ b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/package-id/src/SeedApi/ISeedApiClient.cs
@@ -2,5 +2,9 @@ namespace SeedApi;
public partial interface ISeedApiClient
{
- public IDataserviceClient Dataservice { get; }
+ public IDataServiceClient DataService { get; }
+ WithRawResponseTask> PostFooAsync(
+ RequestOptions? options = null,
+ CancellationToken cancellationToken = default
+ );
}
diff --git a/seed/csharp-sdk/csharp-grpc-proto-exhaustive/package-id/src/SeedApi/SeedApiClient.cs b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/package-id/src/SeedApi/SeedApiClient.cs
index 246aa6ca1fa7..f96d27cba4a6 100644
--- a/seed/csharp-sdk/csharp-grpc-proto-exhaustive/package-id/src/SeedApi/SeedApiClient.cs
+++ b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/package-id/src/SeedApi/SeedApiClient.cs
@@ -1,3 +1,4 @@
+using System.Text.Json;
using SeedApi.Core;
namespace SeedApi;
@@ -26,8 +27,87 @@ public SeedApiClient(ClientOptions? clientOptions = null)
}
}
_client = new RawClient(clientOptions);
- Dataservice = new DataserviceClient(_client);
+ DataService = new DataServiceClient(_client);
}
- public IDataserviceClient Dataservice { get; }
+ public IDataServiceClient DataService { get; }
+
+ private async Task>> PostFooAsyncCore(
+ RequestOptions? options = null,
+ CancellationToken cancellationToken = default
+ )
+ {
+ var _headers = await new SeedApi.Core.HeadersBuilder.Builder()
+ .Add(_client.Options.Headers)
+ .Add(_client.Options.AdditionalHeaders)
+ .Add(options?.AdditionalHeaders)
+ .BuildAsync()
+ .ConfigureAwait(false);
+ var response = await _client
+ .SendRequestAsync(
+ new JsonRequest
+ {
+ Method = HttpMethod.Post,
+ Path = "foo",
+ Headers = _headers,
+ Options = options,
+ },
+ cancellationToken
+ )
+ .ConfigureAwait(false);
+ if (response.StatusCode is >= 200 and < 400)
+ {
+ var responseBody = await response
+ .Raw.Content.ReadAsStringAsync(cancellationToken)
+ .ConfigureAwait(false);
+ try
+ {
+ var responseData = JsonUtils.Deserialize>(
+ responseBody
+ )!;
+ return new WithRawResponse>()
+ {
+ Data = responseData,
+ RawResponse = new RawResponse()
+ {
+ StatusCode = response.Raw.StatusCode,
+ Url = response.Raw.RequestMessage?.RequestUri ?? new Uri("about:blank"),
+ Headers = ResponseHeaders.FromHttpResponseMessage(response.Raw),
+ },
+ };
+ }
+ catch (JsonException e)
+ {
+ throw new SeedApiApiException(
+ "Failed to deserialize response",
+ response.StatusCode,
+ responseBody,
+ e
+ );
+ }
+ }
+ {
+ var responseBody = await response
+ .Raw.Content.ReadAsStringAsync(cancellationToken)
+ .ConfigureAwait(false);
+ throw new SeedApiApiException(
+ $"Error with status code {response.StatusCode}",
+ response.StatusCode,
+ responseBody
+ );
+ }
+ }
+
+ ///
+ /// await client.PostFooAsync();
+ ///
+ public WithRawResponseTask> PostFooAsync(
+ RequestOptions? options = null,
+ CancellationToken cancellationToken = default
+ )
+ {
+ return new WithRawResponseTask>(
+ PostFooAsyncCore(options, cancellationToken)
+ );
+ }
}
diff --git a/seed/csharp-sdk/csharp-grpc-proto-exhaustive/package-id/src/SeedApi/Types/AspectRatio.cs b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/package-id/src/SeedApi/Types/AspectRatio.cs
new file mode 100644
index 000000000000..d86b98014dcf
--- /dev/null
+++ b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/package-id/src/SeedApi/Types/AspectRatio.cs
@@ -0,0 +1,104 @@
+using System.Text.Json;
+using System.Text.Json.Serialization;
+using SeedApi.Core;
+
+namespace SeedApi;
+
+[JsonConverter(typeof(AspectRatio.AspectRatioSerializer))]
+[Serializable]
+public readonly record struct AspectRatio : IStringEnum
+{
+ public static readonly AspectRatio AspectRatioUnspecified = new(Values.AspectRatioUnspecified);
+
+ public static readonly AspectRatio AspectRatio11 = new(Values.AspectRatio11);
+
+ public static readonly AspectRatio AspectRatio169 = new(Values.AspectRatio169);
+
+ public static readonly AspectRatio AspectRatio916 = new(Values.AspectRatio916);
+
+ public static readonly AspectRatio AspectRatio43 = new(Values.AspectRatio43);
+
+ public AspectRatio(string value)
+ {
+ Value = value;
+ }
+
+ ///
+ /// The string value of the enum.
+ ///
+ public string Value { get; }
+
+ ///
+ /// Create a string enum with the given value.
+ ///
+ public static AspectRatio FromCustom(string value)
+ {
+ return new AspectRatio(value);
+ }
+
+ public bool Equals(string? other)
+ {
+ return Value.Equals(other);
+ }
+
+ ///
+ /// Returns the string value of the enum.
+ ///
+ public override string ToString()
+ {
+ return Value;
+ }
+
+ public static bool operator ==(AspectRatio value1, string value2) =>
+ value1.Value.Equals(value2);
+
+ public static bool operator !=(AspectRatio value1, string value2) =>
+ !value1.Value.Equals(value2);
+
+ public static explicit operator string(AspectRatio value) => value.Value;
+
+ public static explicit operator AspectRatio(string value) => new(value);
+
+ internal class AspectRatioSerializer : JsonConverter
+ {
+ public override AspectRatio Read(
+ ref Utf8JsonReader reader,
+ Type typeToConvert,
+ JsonSerializerOptions options
+ )
+ {
+ var stringValue =
+ reader.GetString()
+ ?? throw new global::System.Exception(
+ "The JSON value could not be read as a string."
+ );
+ return new AspectRatio(stringValue);
+ }
+
+ public override void Write(
+ Utf8JsonWriter writer,
+ AspectRatio value,
+ JsonSerializerOptions options
+ )
+ {
+ writer.WriteStringValue(value.Value);
+ }
+ }
+
+ ///
+ /// Constant strings for enum values
+ ///
+ [Serializable]
+ public static class Values
+ {
+ public const string AspectRatioUnspecified = "ASPECT_RATIO_UNSPECIFIED";
+
+ public const string AspectRatio11 = "ASPECT_RATIO_1_1";
+
+ public const string AspectRatio169 = "ASPECT_RATIO_16_9";
+
+ public const string AspectRatio916 = "ASPECT_RATIO_9_16";
+
+ public const string AspectRatio43 = "ASPECT_RATIO_4_3";
+ }
+}
diff --git a/seed/csharp-sdk/csharp-grpc-proto-exhaustive/package-id/src/SeedApi/Dataservice/Types/IndexType.cs b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/package-id/src/SeedApi/Types/IndexType.cs
similarity index 100%
rename from seed/csharp-sdk/csharp-grpc-proto-exhaustive/package-id/src/SeedApi/Dataservice/Types/IndexType.cs
rename to seed/csharp-sdk/csharp-grpc-proto-exhaustive/package-id/src/SeedApi/Types/IndexType.cs
diff --git a/seed/csharp-sdk/csharp-grpc-proto-exhaustive/read-only-memory/README.md b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/read-only-memory/README.md
index 7cc184191f18..90fdfe030dd2 100644
--- a/seed/csharp-sdk/csharp-grpc-proto-exhaustive/read-only-memory/README.md
+++ b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/read-only-memory/README.md
@@ -41,7 +41,15 @@ Instantiate and use the client with the following:
using SeedApi;
var client = new SeedApiClient();
-await client.Dataservice.FooAsync();
+await client.DataService.UploadAsync(
+ new UploadRequest
+ {
+ Columns = new List()
+ {
+ new SeedApi.Column { Id = "id", Values = new[] { 1.1f } },
+ },
+ }
+);
```
## Exception Handling
@@ -53,7 +61,7 @@ will be thrown.
using SeedApi;
try {
- var response = await client.Dataservice.FooAsync(...);
+ var response = await client.DataService.UploadAsync(...);
} catch (SeedApiApiException e) {
System.Console.WriteLine(e.Body);
System.Console.WriteLine(e.StatusCode);
@@ -77,7 +85,7 @@ A request is deemed retryable 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.FooAsync(
+var response = await client.DataService.UploadAsync(
...,
new RequestOptions {
MaxRetries: 0 // Override MaxRetries at the request level
@@ -90,7 +98,7 @@ var response = await client.Dataservice.FooAsync(
The SDK defaults to a 30 second timeout. Use the `Timeout` option to configure this behavior.
```csharp
-var response = await client.Dataservice.FooAsync(
+var response = await client.DataService.UploadAsync(
...,
new RequestOptions {
Timeout: TimeSpan.FromSeconds(3) // Override timeout to 3s
@@ -103,7 +111,7 @@ var response = await client.Dataservice.FooAsync(
If you would like to send additional headers as part of the request, use the `AdditionalHeaders` request option.
```csharp
-var response = await client.Dataservice.FooAsync(
+var response = await client.DataService.UploadAsync(
...,
new RequestOptions {
AdditionalHeaders = new Dictionary
@@ -122,25 +130,25 @@ This SDK uses forward-compatible enums that can handle unknown values gracefully
using SeedApi;
// Using a built-in value
-var indexType = IndexType.IndexTypeInvalid;
+var aspectRatio = AspectRatio.AspectRatioUnspecified;
// Using a custom value
-var customIndexType = IndexType.FromCustom("custom-value");
+var customAspectRatio = AspectRatio.FromCustom("custom-value");
// Using in a switch statement
-switch (indexType.Value)
+switch (aspectRatio.Value)
{
- case IndexType.Values.IndexTypeInvalid:
- Console.WriteLine("IndexTypeInvalid");
+ case AspectRatio.Values.AspectRatioUnspecified:
+ Console.WriteLine("AspectRatioUnspecified");
break;
default:
- Console.WriteLine($"Unknown value: {indexType.Value}");
+ Console.WriteLine($"Unknown value: {aspectRatio.Value}");
break;
}
// Explicit casting
-string indexTypeString = (string)IndexType.IndexTypeInvalid;
-IndexType indexTypeFromString = (IndexType)"INDEX_TYPE_INVALID";
+string aspectRatioString = (string)AspectRatio.AspectRatioUnspecified;
+AspectRatio aspectRatioFromString = (AspectRatio)"ASPECT_RATIO_UNSPECIFIED";
```
## Contributing
diff --git a/seed/csharp-sdk/csharp-grpc-proto-exhaustive/read-only-memory/proto/data/v1/data.proto b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/read-only-memory/proto/data/v1/data.proto
index b8244b95516d..46947f1d26ee 100644
--- a/seed/csharp-sdk/csharp-grpc-proto-exhaustive/read-only-memory/proto/data/v1/data.proto
+++ b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/read-only-memory/proto/data/v1/data.proto
@@ -17,6 +17,14 @@ enum IndexType {
INDEX_TYPE_STRICT = 2;
}
+enum AspectRatio {
+ ASPECT_RATIO_UNSPECIFIED = 0;
+ ASPECT_RATIO_1_1 = 1;
+ ASPECT_RATIO_16_9 = 2;
+ ASPECT_RATIO_9_16 = 3;
+ ASPECT_RATIO_4_3 = 4;
+}
+
message IndexedData {
repeated uint32 indices = 1 [
(google.api.field_behavior) = REQUIRED
@@ -155,6 +163,7 @@ message UpdateRequest {
IndexType index_type = 6;
google.protobuf.Any details = 7;
repeated IndexType index_types = 8;
+ optional AspectRatio aspect_ratio = 9;
}
message UpdateResponse {
diff --git a/seed/csharp-sdk/csharp-grpc-proto-exhaustive/read-only-memory/reference.md b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/read-only-memory/reference.md
index 2a99e57fae10..f917cef928b8 100644
--- a/seed/csharp-sdk/csharp-grpc-proto-exhaustive/read-only-memory/reference.md
+++ b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/read-only-memory/reference.md
@@ -1,6 +1,5 @@
# Reference
-## DataService
-client.Dataservice.FooAsync() -> WithRawResponseTask<Dictionary<string, object?>>
+client.PostFooAsync() -> WithRawResponseTask<Dictionary<string, object?>>
-
@@ -13,7 +12,7 @@
-
```csharp
-await client.Dataservice.FooAsync();
+await client.PostFooAsync();
```
@@ -25,7 +24,8 @@ await client.Dataservice.FooAsync();
-client.Dataservice.UploadAsync(UploadRequest { ... }) -> WithRawResponseTask<UploadResponse>
+## DataService
+client.DataService.UploadAsync(UploadRequest { ... }) -> WithRawResponseTask<UploadResponse>
-
@@ -38,7 +38,7 @@ await client.Dataservice.FooAsync();
-
```csharp
-await client.Dataservice.UploadAsync(
+await client.DataService.UploadAsync(
new UploadRequest
{
Columns = new List()
@@ -73,7 +73,7 @@ await client.Dataservice.UploadAsync(
-client.Dataservice.DeleteAsync(DeleteRequest { ... }) -> WithRawResponseTask<DeleteResponse>
+client.DataService.DeleteAsync(DeleteRequest { ... }) -> WithRawResponseTask<DeleteResponse>
-
@@ -86,7 +86,7 @@ await client.Dataservice.UploadAsync(
-
```csharp
-await client.Dataservice.DeleteAsync(new DeleteRequest());
+await client.DataService.DeleteAsync(new DeleteRequest());
```
@@ -113,7 +113,7 @@ await client.Dataservice.DeleteAsync(new DeleteRequest());
-client.Dataservice.DescribeAsync(DescribeRequest { ... }) -> WithRawResponseTask<DescribeResponse>
+client.DataService.DescribeAsync(DescribeRequest { ... }) -> WithRawResponseTask<DescribeResponse>
-
@@ -126,7 +126,7 @@ await client.Dataservice.DeleteAsync(new DeleteRequest());
-
```csharp
-await client.Dataservice.DescribeAsync(new DescribeRequest());
+await client.DataService.DescribeAsync(new DescribeRequest());
```
@@ -153,7 +153,7 @@ await client.Dataservice.DescribeAsync(new DescribeRequest());
-client.Dataservice.FetchAsync(FetchRequest { ... }) -> WithRawResponseTask<FetchResponse>
+client.DataService.FetchAsync(FetchRequest { ... }) -> WithRawResponseTask<FetchResponse>
-
@@ -166,7 +166,7 @@ await client.Dataservice.DescribeAsync(new DescribeRequest());
-
```csharp
-await client.Dataservice.FetchAsync(new FetchRequest());
+await client.DataService.FetchAsync(new FetchRequest());
```
@@ -193,7 +193,7 @@ await client.Dataservice.FetchAsync(new FetchRequest());
-client.Dataservice.ListAsync(ListRequest { ... }) -> WithRawResponseTask<ListResponse>
+client.DataService.ListAsync(ListRequest { ... }) -> WithRawResponseTask<ListResponse>
-
@@ -206,7 +206,7 @@ await client.Dataservice.FetchAsync(new FetchRequest());
-
```csharp
-await client.Dataservice.ListAsync(new ListRequest());
+await client.DataService.ListAsync(new ListRequest());
```
@@ -233,7 +233,7 @@ await client.Dataservice.ListAsync(new ListRequest());
-client.Dataservice.QueryAsync(QueryRequest { ... }) -> WithRawResponseTask<QueryResponse>
+client.DataService.QueryAsync(QueryRequest { ... }) -> WithRawResponseTask<QueryResponse>
-
@@ -246,7 +246,7 @@ await client.Dataservice.ListAsync(new ListRequest());
-
```csharp
-await client.Dataservice.QueryAsync(new QueryRequest { TopK = 1 });
+await client.DataService.QueryAsync(new QueryRequest { TopK = 1 });
```
@@ -273,7 +273,7 @@ await client.Dataservice.QueryAsync(new QueryRequest { TopK = 1 });
-client.Dataservice.UpdateAsync(UpdateRequest { ... }) -> WithRawResponseTask<UpdateResponse>
+client.DataService.UpdateAsync(UpdateRequest { ... }) -> WithRawResponseTask<UpdateResponse>
-
@@ -286,7 +286,7 @@ await client.Dataservice.QueryAsync(new QueryRequest { TopK = 1 });
-
```csharp
-await client.Dataservice.UpdateAsync(new UpdateRequest { Id = "id" });
+await client.DataService.UpdateAsync(new UpdateRequest { Id = "id" });
```
diff --git a/seed/csharp-sdk/csharp-grpc-proto-exhaustive/read-only-memory/snippet.json b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/read-only-memory/snippet.json
index 6f1de7660adc..d4bcabc08c38 100644
--- a/seed/csharp-sdk/csharp-grpc-proto-exhaustive/read-only-memory/snippet.json
+++ b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/read-only-memory/snippet.json
@@ -1,28 +1,16 @@
{
"types": {},
"endpoints": [
- {
- "example_identifier": null,
- "id": {
- "path": "/foo",
- "method": "POST",
- "identifier_override": "endpoint_dataservice.foo"
- },
- "snippet": {
- "type": "csharp",
- "client": "using SeedApi;\n\nvar client = new SeedApiClient();\nawait client.Dataservice.FooAsync();\n"
- }
- },
{
"example_identifier": null,
"id": {
"path": "/data",
"method": "POST",
- "identifier_override": "endpoint_dataservice.upload"
+ "identifier_override": "endpoint_dataService.Upload"
},
"snippet": {
"type": "csharp",
- "client": "using SeedApi;\n\nvar client = new SeedApiClient();\nawait client.Dataservice.UploadAsync(\n new UploadRequest\n {\n Columns = new List()\n {\n new SeedApi.Column { Id = \"id\", Values = new[] { 1.1f } },\n },\n }\n);\n"
+ "client": "using SeedApi;\n\nvar client = new SeedApiClient();\nawait client.DataService.UploadAsync(\n new UploadRequest\n {\n Columns = new List()\n {\n new SeedApi.Column { Id = \"id\", Values = new[] { 1.1f } },\n },\n }\n);\n"
}
},
{
@@ -30,11 +18,11 @@
"id": {
"path": "/data/delete",
"method": "POST",
- "identifier_override": "endpoint_dataservice.delete"
+ "identifier_override": "endpoint_dataService.Delete"
},
"snippet": {
"type": "csharp",
- "client": "using SeedApi;\n\nvar client = new SeedApiClient();\nawait client.Dataservice.DeleteAsync(new DeleteRequest());\n"
+ "client": "using SeedApi;\n\nvar client = new SeedApiClient();\nawait client.DataService.DeleteAsync(new DeleteRequest());\n"
}
},
{
@@ -42,11 +30,11 @@
"id": {
"path": "/data/describe",
"method": "POST",
- "identifier_override": "endpoint_dataservice.describe"
+ "identifier_override": "endpoint_dataService.Describe"
},
"snippet": {
"type": "csharp",
- "client": "using SeedApi;\n\nvar client = new SeedApiClient();\nawait client.Dataservice.DescribeAsync(new DescribeRequest());\n"
+ "client": "using SeedApi;\n\nvar client = new SeedApiClient();\nawait client.DataService.DescribeAsync(new DescribeRequest());\n"
}
},
{
@@ -54,11 +42,11 @@
"id": {
"path": "/data/fetch",
"method": "GET",
- "identifier_override": "endpoint_dataservice.fetch"
+ "identifier_override": "endpoint_dataService.Fetch"
},
"snippet": {
"type": "csharp",
- "client": "using SeedApi;\n\nvar client = new SeedApiClient();\nawait client.Dataservice.FetchAsync(new FetchRequest());\n"
+ "client": "using SeedApi;\n\nvar client = new SeedApiClient();\nawait client.DataService.FetchAsync(new FetchRequest());\n"
}
},
{
@@ -66,11 +54,11 @@
"id": {
"path": "/data/list",
"method": "GET",
- "identifier_override": "endpoint_dataservice.list"
+ "identifier_override": "endpoint_dataService.List"
},
"snippet": {
"type": "csharp",
- "client": "using SeedApi;\n\nvar client = new SeedApiClient();\nawait client.Dataservice.ListAsync(new ListRequest());\n"
+ "client": "using SeedApi;\n\nvar client = new SeedApiClient();\nawait client.DataService.ListAsync(new ListRequest());\n"
}
},
{
@@ -78,11 +66,11 @@
"id": {
"path": "/data/query",
"method": "POST",
- "identifier_override": "endpoint_dataservice.query"
+ "identifier_override": "endpoint_dataService.Query"
},
"snippet": {
"type": "csharp",
- "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();\nawait client.DataService.QueryAsync(new QueryRequest { TopK = 1 });\n"
}
},
{
@@ -90,11 +78,23 @@
"id": {
"path": "/data/update",
"method": "POST",
- "identifier_override": "endpoint_dataservice.update"
+ "identifier_override": "endpoint_dataService.Update"
+ },
+ "snippet": {
+ "type": "csharp",
+ "client": "using SeedApi;\n\nvar client = new SeedApiClient();\nawait client.DataService.UpdateAsync(new UpdateRequest { Id = \"id\" });\n"
+ }
+ },
+ {
+ "example_identifier": null,
+ "id": {
+ "path": "/foo",
+ "method": "POST",
+ "identifier_override": "endpoint_.postFoo"
},
"snippet": {
"type": "csharp",
- "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();\nawait client.PostFooAsync();\n"
}
}
]
diff --git a/seed/csharp-sdk/csharp-grpc-proto-exhaustive/read-only-memory/src/SeedApi.Test/Unit/MockServer/BaseMockServerTest.cs b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/read-only-memory/src/SeedApi.Test/Unit/MockServer/BaseMockServerTest.cs
new file mode 100644
index 000000000000..3f4ed8503ec1
--- /dev/null
+++ b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/read-only-memory/src/SeedApi.Test/Unit/MockServer/BaseMockServerTest.cs
@@ -0,0 +1,37 @@
+using NUnit.Framework;
+using SeedApi;
+using WireMock.Logging;
+using WireMock.Server;
+using WireMock.Settings;
+
+namespace SeedApi.Test.Unit.MockServer;
+
+public class BaseMockServerTest
+{
+ protected WireMockServer Server { get; set; } = null!;
+
+ protected SeedApiClient Client { get; set; } = null!;
+
+ protected RequestOptions RequestOptions { get; set; } = new();
+
+ [OneTimeSetUp]
+ public void GlobalSetup()
+ {
+ // Start the WireMock server
+ Server = WireMockServer.Start(
+ new WireMockServerSettings { Logger = new WireMockConsoleLogger() }
+ );
+
+ // Initialize the Client
+ Client = new SeedApiClient(
+ clientOptions: new ClientOptions { BaseUrl = Server.Urls[0], MaxRetries = 0 }
+ );
+ }
+
+ [OneTimeTearDown]
+ public void GlobalTeardown()
+ {
+ Server.Stop();
+ Server.Dispose();
+ }
+}
diff --git a/seed/csharp-sdk/csharp-grpc-proto-exhaustive/read-only-memory/src/SeedApi.Test/Unit/MockServer/PostFooTest.cs b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/read-only-memory/src/SeedApi.Test/Unit/MockServer/PostFooTest.cs
new file mode 100644
index 000000000000..53a6e783292a
--- /dev/null
+++ b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/read-only-memory/src/SeedApi.Test/Unit/MockServer/PostFooTest.cs
@@ -0,0 +1,55 @@
+using NUnit.Framework;
+using SeedApi.Test.Utils;
+
+namespace SeedApi.Test.Unit.MockServer;
+
+[TestFixture]
+[Parallelizable(ParallelScope.Self)]
+public class PostFooTest : BaseMockServerTest
+{
+ [NUnit.Framework.Test]
+ public async Task MockServerTest_1()
+ {
+ const string mockResponse = """
+ {
+ "string": {
+ "key": "value"
+ }
+ }
+ """;
+
+ Server
+ .Given(WireMock.RequestBuilders.Request.Create().WithPath("/foo").UsingPost())
+ .RespondWith(
+ WireMock
+ .ResponseBuilders.Response.Create()
+ .WithStatusCode(200)
+ .WithBody(mockResponse)
+ );
+
+ var response = await Client.PostFooAsync();
+ JsonAssert.AreEqual(response, mockResponse);
+ }
+
+ [NUnit.Framework.Test]
+ public async Task MockServerTest_2()
+ {
+ const string mockResponse = """
+ {
+ "key": "value"
+ }
+ """;
+
+ Server
+ .Given(WireMock.RequestBuilders.Request.Create().WithPath("/foo").UsingPost())
+ .RespondWith(
+ WireMock
+ .ResponseBuilders.Response.Create()
+ .WithStatusCode(200)
+ .WithBody(mockResponse)
+ );
+
+ var response = await Client.PostFooAsync();
+ JsonAssert.AreEqual(response, mockResponse);
+ }
+}
diff --git a/seed/csharp-sdk/csharp-grpc-proto-exhaustive/read-only-memory/src/SeedApi/Dataservice/DataserviceClient.cs b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/read-only-memory/src/SeedApi/DataService/DataServiceClient.cs
similarity index 80%
rename from seed/csharp-sdk/csharp-grpc-proto-exhaustive/read-only-memory/src/SeedApi/Dataservice/DataserviceClient.cs
rename to seed/csharp-sdk/csharp-grpc-proto-exhaustive/read-only-memory/src/SeedApi/DataService/DataServiceClient.cs
index e991dba27923..2d2ef821558d 100644
--- a/seed/csharp-sdk/csharp-grpc-proto-exhaustive/read-only-memory/src/SeedApi/Dataservice/DataserviceClient.cs
+++ b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/read-only-memory/src/SeedApi/DataService/DataServiceClient.cs
@@ -1,11 +1,10 @@
-using System.Text.Json;
using Data.V1.Grpc;
using Grpc.Core;
using SeedApi.Core;
namespace SeedApi;
-public partial class DataserviceClient : IDataserviceClient
+public partial class DataServiceClient : IDataServiceClient
{
private readonly RawClient _client;
@@ -13,94 +12,15 @@ public partial class DataserviceClient : IDataserviceClient
private DataService.DataServiceClient _dataService;
- internal DataserviceClient(RawClient client)
+ internal DataServiceClient(RawClient client)
{
_client = client;
_grpc = _client.Grpc;
_dataService = new DataService.DataServiceClient(_grpc.Channel);
}
- private async Task>> FooAsyncCore(
- RequestOptions? options = null,
- CancellationToken cancellationToken = default
- )
- {
- var _headers = await new SeedApi.Core.HeadersBuilder.Builder()
- .Add(_client.Options.Headers)
- .Add(_client.Options.AdditionalHeaders)
- .Add(options?.AdditionalHeaders)
- .BuildAsync()
- .ConfigureAwait(false);
- var response = await _client
- .SendRequestAsync(
- new JsonRequest
- {
- Method = HttpMethod.Post,
- Path = "foo",
- Headers = _headers,
- Options = options,
- },
- cancellationToken
- )
- .ConfigureAwait(false);
- if (response.StatusCode is >= 200 and < 400)
- {
- var responseBody = await response
- .Raw.Content.ReadAsStringAsync(cancellationToken)
- .ConfigureAwait(false);
- try
- {
- var responseData = JsonUtils.Deserialize>(
- responseBody
- )!;
- return new WithRawResponse>()
- {
- Data = responseData,
- RawResponse = new RawResponse()
- {
- StatusCode = response.Raw.StatusCode,
- Url = response.Raw.RequestMessage?.RequestUri ?? new Uri("about:blank"),
- Headers = ResponseHeaders.FromHttpResponseMessage(response.Raw),
- },
- };
- }
- catch (JsonException e)
- {
- throw new SeedApiApiException(
- "Failed to deserialize response",
- response.StatusCode,
- responseBody,
- e
- );
- }
- }
- {
- var responseBody = await response
- .Raw.Content.ReadAsStringAsync(cancellationToken)
- .ConfigureAwait(false);
- throw new SeedApiApiException(
- $"Error with status code {response.StatusCode}",
- response.StatusCode,
- responseBody
- );
- }
- }
-
- ///
- /// await client.Dataservice.FooAsync();
- ///
- public WithRawResponseTask> FooAsync(
- RequestOptions? options = null,
- CancellationToken cancellationToken = default
- )
- {
- return new WithRawResponseTask>(
- FooAsyncCore(options, cancellationToken)
- );
- }
-
///
- /// await client.Dataservice.UploadAsync(
+ /// await client.DataService.UploadAsync(
/// new UploadRequest
/// {
/// Columns = new List<SeedApi.Column>()
@@ -166,7 +86,7 @@ public async Task UploadAsync(
}
///
- /// await client.Dataservice.DeleteAsync(new DeleteRequest());
+ /// await client.DataService.DeleteAsync(new DeleteRequest());
///
public async Task DeleteAsync(
DeleteRequest request,
@@ -224,7 +144,7 @@ public async Task DeleteAsync(
}
///
- /// await client.Dataservice.DescribeAsync(new DescribeRequest());
+ /// await client.DataService.DescribeAsync(new DescribeRequest());
///
public async Task DescribeAsync(
DescribeRequest request,
@@ -282,7 +202,7 @@ public async Task DescribeAsync(
}
///
- /// await client.Dataservice.FetchAsync(new FetchRequest());
+ /// await client.DataService.FetchAsync(new FetchRequest());
///
public async Task FetchAsync(
FetchRequest request,
@@ -340,7 +260,7 @@ public async Task FetchAsync(
}
///
- /// await client.Dataservice.ListAsync(new ListRequest());
+ /// await client.DataService.ListAsync(new ListRequest());
///
public async Task ListAsync(
ListRequest request,
@@ -398,7 +318,7 @@ public async Task ListAsync(
}
///
- /// await client.Dataservice.QueryAsync(new QueryRequest { TopK = 1 });
+ /// await client.DataService.QueryAsync(new QueryRequest { TopK = 1 });
///
public async Task QueryAsync(
QueryRequest request,
@@ -456,7 +376,7 @@ public async Task QueryAsync(
}
///
- /// await client.Dataservice.UpdateAsync(new UpdateRequest { Id = "id" });
+ /// await client.DataService.UpdateAsync(new UpdateRequest { Id = "id" });
///
public async Task UpdateAsync(
UpdateRequest request,
diff --git a/seed/csharp-sdk/csharp-grpc-proto-exhaustive/read-only-memory/src/SeedApi/Dataservice/IDataserviceClient.cs b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/read-only-memory/src/SeedApi/DataService/IDataServiceClient.cs
similarity index 85%
rename from seed/csharp-sdk/csharp-grpc-proto-exhaustive/read-only-memory/src/SeedApi/Dataservice/IDataserviceClient.cs
rename to seed/csharp-sdk/csharp-grpc-proto-exhaustive/read-only-memory/src/SeedApi/DataService/IDataServiceClient.cs
index 4a7de66ccb27..52d48a495b2b 100644
--- a/seed/csharp-sdk/csharp-grpc-proto-exhaustive/read-only-memory/src/SeedApi/Dataservice/IDataserviceClient.cs
+++ b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/read-only-memory/src/SeedApi/DataService/IDataServiceClient.cs
@@ -1,12 +1,7 @@
namespace SeedApi;
-public partial interface IDataserviceClient
+public partial interface IDataServiceClient
{
- WithRawResponseTask> FooAsync(
- RequestOptions? options = null,
- CancellationToken cancellationToken = default
- );
-
Task UploadAsync(
UploadRequest request,
GrpcRequestOptions? options = null,
diff --git a/seed/csharp-sdk/csharp-grpc-proto-exhaustive/read-only-memory/src/SeedApi/Dataservice/Requests/DeleteRequest.cs b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/read-only-memory/src/SeedApi/DataService/Requests/DeleteRequest.cs
similarity index 100%
rename from seed/csharp-sdk/csharp-grpc-proto-exhaustive/read-only-memory/src/SeedApi/Dataservice/Requests/DeleteRequest.cs
rename to seed/csharp-sdk/csharp-grpc-proto-exhaustive/read-only-memory/src/SeedApi/DataService/Requests/DeleteRequest.cs
diff --git a/seed/csharp-sdk/csharp-grpc-proto-exhaustive/read-only-memory/src/SeedApi/Dataservice/Requests/DescribeRequest.cs b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/read-only-memory/src/SeedApi/DataService/Requests/DescribeRequest.cs
similarity index 100%
rename from seed/csharp-sdk/csharp-grpc-proto-exhaustive/read-only-memory/src/SeedApi/Dataservice/Requests/DescribeRequest.cs
rename to seed/csharp-sdk/csharp-grpc-proto-exhaustive/read-only-memory/src/SeedApi/DataService/Requests/DescribeRequest.cs
diff --git a/seed/csharp-sdk/csharp-grpc-proto-exhaustive/read-only-memory/src/SeedApi/Dataservice/Requests/FetchRequest.cs b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/read-only-memory/src/SeedApi/DataService/Requests/FetchRequest.cs
similarity index 100%
rename from seed/csharp-sdk/csharp-grpc-proto-exhaustive/read-only-memory/src/SeedApi/Dataservice/Requests/FetchRequest.cs
rename to seed/csharp-sdk/csharp-grpc-proto-exhaustive/read-only-memory/src/SeedApi/DataService/Requests/FetchRequest.cs
diff --git a/seed/csharp-sdk/csharp-grpc-proto-exhaustive/read-only-memory/src/SeedApi/Dataservice/Requests/ListRequest.cs b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/read-only-memory/src/SeedApi/DataService/Requests/ListRequest.cs
similarity index 100%
rename from seed/csharp-sdk/csharp-grpc-proto-exhaustive/read-only-memory/src/SeedApi/Dataservice/Requests/ListRequest.cs
rename to seed/csharp-sdk/csharp-grpc-proto-exhaustive/read-only-memory/src/SeedApi/DataService/Requests/ListRequest.cs
diff --git a/seed/csharp-sdk/csharp-grpc-proto-exhaustive/read-only-memory/src/SeedApi/Dataservice/Requests/QueryRequest.cs b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/read-only-memory/src/SeedApi/DataService/Requests/QueryRequest.cs
similarity index 100%
rename from seed/csharp-sdk/csharp-grpc-proto-exhaustive/read-only-memory/src/SeedApi/Dataservice/Requests/QueryRequest.cs
rename to seed/csharp-sdk/csharp-grpc-proto-exhaustive/read-only-memory/src/SeedApi/DataService/Requests/QueryRequest.cs
diff --git a/seed/csharp-sdk/csharp-grpc-proto-exhaustive/read-only-memory/src/SeedApi/Dataservice/Requests/UpdateRequest.cs b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/read-only-memory/src/SeedApi/DataService/Requests/UpdateRequest.cs
similarity index 78%
rename from seed/csharp-sdk/csharp-grpc-proto-exhaustive/read-only-memory/src/SeedApi/Dataservice/Requests/UpdateRequest.cs
rename to seed/csharp-sdk/csharp-grpc-proto-exhaustive/read-only-memory/src/SeedApi/DataService/Requests/UpdateRequest.cs
index 1edaf1132bd9..ac0730dc2546 100644
--- a/seed/csharp-sdk/csharp-grpc-proto-exhaustive/read-only-memory/src/SeedApi/Dataservice/Requests/UpdateRequest.cs
+++ b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/read-only-memory/src/SeedApi/DataService/Requests/UpdateRequest.cs
@@ -32,6 +32,9 @@ public record UpdateRequest
[JsonPropertyName("index_types")]
public IEnumerable? IndexTypes { get; set; }
+ [JsonPropertyName("aspect_ratio")]
+ public AspectRatio? AspectRatio { get; set; }
+
///
/// Maps the UpdateRequest type into its Protobuf-equivalent representation.
///
@@ -89,6 +92,20 @@ internal Proto.UpdateRequest ToProto()
)
);
}
+ if (AspectRatio != null)
+ {
+ result.AspectRatio = AspectRatio.Value.Value switch
+ {
+ SeedApi.AspectRatio.Values.AspectRatioUnspecified => ProtoDataV1Grpc
+ .AspectRatio
+ .Unspecified,
+ SeedApi.AspectRatio.Values.AspectRatio11 => ProtoDataV1Grpc.AspectRatio._11,
+ SeedApi.AspectRatio.Values.AspectRatio169 => ProtoDataV1Grpc.AspectRatio._169,
+ SeedApi.AspectRatio.Values.AspectRatio916 => ProtoDataV1Grpc.AspectRatio._916,
+ SeedApi.AspectRatio.Values.AspectRatio43 => ProtoDataV1Grpc.AspectRatio._43,
+ _ => throw new ArgumentException($"Unknown enum value: {AspectRatio.Value.Value}"),
+ };
+ }
return result;
}
diff --git a/seed/csharp-sdk/csharp-grpc-proto-exhaustive/read-only-memory/src/SeedApi/Dataservice/Requests/UploadRequest.cs b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/read-only-memory/src/SeedApi/DataService/Requests/UploadRequest.cs
similarity index 100%
rename from seed/csharp-sdk/csharp-grpc-proto-exhaustive/read-only-memory/src/SeedApi/Dataservice/Requests/UploadRequest.cs
rename to seed/csharp-sdk/csharp-grpc-proto-exhaustive/read-only-memory/src/SeedApi/DataService/Requests/UploadRequest.cs
diff --git a/seed/csharp-sdk/csharp-grpc-proto-exhaustive/read-only-memory/src/SeedApi/ISeedApiClient.cs b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/read-only-memory/src/SeedApi/ISeedApiClient.cs
index 975e85422400..71a1b5857551 100644
--- a/seed/csharp-sdk/csharp-grpc-proto-exhaustive/read-only-memory/src/SeedApi/ISeedApiClient.cs
+++ b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/read-only-memory/src/SeedApi/ISeedApiClient.cs
@@ -2,5 +2,9 @@ namespace SeedApi;
public partial interface ISeedApiClient
{
- public IDataserviceClient Dataservice { get; }
+ public IDataServiceClient DataService { get; }
+ WithRawResponseTask> PostFooAsync(
+ RequestOptions? options = null,
+ CancellationToken cancellationToken = default
+ );
}
diff --git a/seed/csharp-sdk/csharp-grpc-proto-exhaustive/read-only-memory/src/SeedApi/SeedApiClient.cs b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/read-only-memory/src/SeedApi/SeedApiClient.cs
index 246aa6ca1fa7..f96d27cba4a6 100644
--- a/seed/csharp-sdk/csharp-grpc-proto-exhaustive/read-only-memory/src/SeedApi/SeedApiClient.cs
+++ b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/read-only-memory/src/SeedApi/SeedApiClient.cs
@@ -1,3 +1,4 @@
+using System.Text.Json;
using SeedApi.Core;
namespace SeedApi;
@@ -26,8 +27,87 @@ public SeedApiClient(ClientOptions? clientOptions = null)
}
}
_client = new RawClient(clientOptions);
- Dataservice = new DataserviceClient(_client);
+ DataService = new DataServiceClient(_client);
}
- public IDataserviceClient Dataservice { get; }
+ public IDataServiceClient DataService { get; }
+
+ private async Task>> PostFooAsyncCore(
+ RequestOptions? options = null,
+ CancellationToken cancellationToken = default
+ )
+ {
+ var _headers = await new SeedApi.Core.HeadersBuilder.Builder()
+ .Add(_client.Options.Headers)
+ .Add(_client.Options.AdditionalHeaders)
+ .Add(options?.AdditionalHeaders)
+ .BuildAsync()
+ .ConfigureAwait(false);
+ var response = await _client
+ .SendRequestAsync(
+ new JsonRequest
+ {
+ Method = HttpMethod.Post,
+ Path = "foo",
+ Headers = _headers,
+ Options = options,
+ },
+ cancellationToken
+ )
+ .ConfigureAwait(false);
+ if (response.StatusCode is >= 200 and < 400)
+ {
+ var responseBody = await response
+ .Raw.Content.ReadAsStringAsync(cancellationToken)
+ .ConfigureAwait(false);
+ try
+ {
+ var responseData = JsonUtils.Deserialize>(
+ responseBody
+ )!;
+ return new WithRawResponse>()
+ {
+ Data = responseData,
+ RawResponse = new RawResponse()
+ {
+ StatusCode = response.Raw.StatusCode,
+ Url = response.Raw.RequestMessage?.RequestUri ?? new Uri("about:blank"),
+ Headers = ResponseHeaders.FromHttpResponseMessage(response.Raw),
+ },
+ };
+ }
+ catch (JsonException e)
+ {
+ throw new SeedApiApiException(
+ "Failed to deserialize response",
+ response.StatusCode,
+ responseBody,
+ e
+ );
+ }
+ }
+ {
+ var responseBody = await response
+ .Raw.Content.ReadAsStringAsync(cancellationToken)
+ .ConfigureAwait(false);
+ throw new SeedApiApiException(
+ $"Error with status code {response.StatusCode}",
+ response.StatusCode,
+ responseBody
+ );
+ }
+ }
+
+ ///
+ /// await client.PostFooAsync();
+ ///
+ public WithRawResponseTask> PostFooAsync(
+ RequestOptions? options = null,
+ CancellationToken cancellationToken = default
+ )
+ {
+ return new WithRawResponseTask>(
+ PostFooAsyncCore(options, cancellationToken)
+ );
+ }
}
diff --git a/seed/csharp-sdk/csharp-grpc-proto-exhaustive/read-only-memory/src/SeedApi/Types/AspectRatio.cs b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/read-only-memory/src/SeedApi/Types/AspectRatio.cs
new file mode 100644
index 000000000000..d86b98014dcf
--- /dev/null
+++ b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/read-only-memory/src/SeedApi/Types/AspectRatio.cs
@@ -0,0 +1,104 @@
+using System.Text.Json;
+using System.Text.Json.Serialization;
+using SeedApi.Core;
+
+namespace SeedApi;
+
+[JsonConverter(typeof(AspectRatio.AspectRatioSerializer))]
+[Serializable]
+public readonly record struct AspectRatio : IStringEnum
+{
+ public static readonly AspectRatio AspectRatioUnspecified = new(Values.AspectRatioUnspecified);
+
+ public static readonly AspectRatio AspectRatio11 = new(Values.AspectRatio11);
+
+ public static readonly AspectRatio AspectRatio169 = new(Values.AspectRatio169);
+
+ public static readonly AspectRatio AspectRatio916 = new(Values.AspectRatio916);
+
+ public static readonly AspectRatio AspectRatio43 = new(Values.AspectRatio43);
+
+ public AspectRatio(string value)
+ {
+ Value = value;
+ }
+
+ ///
+ /// The string value of the enum.
+ ///
+ public string Value { get; }
+
+ ///
+ /// Create a string enum with the given value.
+ ///
+ public static AspectRatio FromCustom(string value)
+ {
+ return new AspectRatio(value);
+ }
+
+ public bool Equals(string? other)
+ {
+ return Value.Equals(other);
+ }
+
+ ///
+ /// Returns the string value of the enum.
+ ///
+ public override string ToString()
+ {
+ return Value;
+ }
+
+ public static bool operator ==(AspectRatio value1, string value2) =>
+ value1.Value.Equals(value2);
+
+ public static bool operator !=(AspectRatio value1, string value2) =>
+ !value1.Value.Equals(value2);
+
+ public static explicit operator string(AspectRatio value) => value.Value;
+
+ public static explicit operator AspectRatio(string value) => new(value);
+
+ internal class AspectRatioSerializer : JsonConverter
+ {
+ public override AspectRatio Read(
+ ref Utf8JsonReader reader,
+ Type typeToConvert,
+ JsonSerializerOptions options
+ )
+ {
+ var stringValue =
+ reader.GetString()
+ ?? throw new global::System.Exception(
+ "The JSON value could not be read as a string."
+ );
+ return new AspectRatio(stringValue);
+ }
+
+ public override void Write(
+ Utf8JsonWriter writer,
+ AspectRatio value,
+ JsonSerializerOptions options
+ )
+ {
+ writer.WriteStringValue(value.Value);
+ }
+ }
+
+ ///
+ /// Constant strings for enum values
+ ///
+ [Serializable]
+ public static class Values
+ {
+ public const string AspectRatioUnspecified = "ASPECT_RATIO_UNSPECIFIED";
+
+ public const string AspectRatio11 = "ASPECT_RATIO_1_1";
+
+ public const string AspectRatio169 = "ASPECT_RATIO_16_9";
+
+ public const string AspectRatio916 = "ASPECT_RATIO_9_16";
+
+ public const string AspectRatio43 = "ASPECT_RATIO_4_3";
+ }
+}
diff --git a/seed/csharp-sdk/csharp-grpc-proto-exhaustive/read-only-memory/src/SeedApi/Dataservice/Types/IndexType.cs b/seed/csharp-sdk/csharp-grpc-proto-exhaustive/read-only-memory/src/SeedApi/Types/IndexType.cs
similarity index 100%
rename from seed/csharp-sdk/csharp-grpc-proto-exhaustive/read-only-memory/src/SeedApi/Dataservice/Types/IndexType.cs
rename to seed/csharp-sdk/csharp-grpc-proto-exhaustive/read-only-memory/src/SeedApi/Types/IndexType.cs
diff --git a/seed/csharp-sdk/csharp-grpc-proto/no-custom-config/README.md b/seed/csharp-sdk/csharp-grpc-proto/no-custom-config/README.md
index 084b952a5cda..308edd364aaf 100644
--- a/seed/csharp-sdk/csharp-grpc-proto/no-custom-config/README.md
+++ b/seed/csharp-sdk/csharp-grpc-proto/no-custom-config/README.md
@@ -40,7 +40,7 @@ Instantiate and use the client with the following:
using SeedApi;
var client = new SeedApiClient();
-await client.Userservice.CreateAsync(new CreateRequest());
+await client.UserService.CreateAsync(new CreateRequest());
```
## Exception Handling
@@ -52,7 +52,7 @@ will be thrown.
using SeedApi;
try {
- var response = await client.Userservice.CreateAsync(...);
+ var response = await client.UserService.CreateAsync(...);
} catch (SeedApiApiException e) {
System.Console.WriteLine(e.Body);
System.Console.WriteLine(e.StatusCode);
@@ -76,7 +76,7 @@ A request is deemed retryable when any of the following HTTP status codes is ret
Use the `MaxRetries` request option to configure this behavior.
```csharp
-var response = await client.Userservice.CreateAsync(
+var response = await client.UserService.CreateAsync(
...,
new RequestOptions {
MaxRetries: 0 // Override MaxRetries at the request level
@@ -89,7 +89,7 @@ var response = await client.Userservice.CreateAsync(
The SDK defaults to a 30 second timeout. Use the `Timeout` option to configure this behavior.
```csharp
-var response = await client.Userservice.CreateAsync(
+var response = await client.UserService.CreateAsync(
...,
new RequestOptions {
Timeout: TimeSpan.FromSeconds(3) // Override timeout to 3s
@@ -102,7 +102,7 @@ var response = await client.Userservice.CreateAsync(
If you would like to send additional headers as part of the request, use the `AdditionalHeaders` request option.
```csharp
-var response = await client.Userservice.CreateAsync(
+var response = await client.UserService.CreateAsync(
...,
new RequestOptions {
AdditionalHeaders = new Dictionary
diff --git a/seed/csharp-sdk/csharp-grpc-proto/no-custom-config/reference.md b/seed/csharp-sdk/csharp-grpc-proto/no-custom-config/reference.md
index 2a8af3906abc..cbd330b36e71 100644
--- a/seed/csharp-sdk/csharp-grpc-proto/no-custom-config/reference.md
+++ b/seed/csharp-sdk/csharp-grpc-proto/no-custom-config/reference.md
@@ -1,6 +1,6 @@
# Reference
## UserService
-client.Userservice.CreateAsync(CreateRequest { ... }) -> WithRawResponseTask<CreateResponse>
+client.UserService.CreateAsync(CreateRequest { ... }) -> WithRawResponseTask<CreateResponse>
-
@@ -13,7 +13,7 @@
-
```csharp
-await client.Userservice.CreateAsync(new CreateRequest());
+await client.UserService.CreateAsync(new CreateRequest());
```
diff --git a/seed/csharp-sdk/csharp-grpc-proto/no-custom-config/snippet.json b/seed/csharp-sdk/csharp-grpc-proto/no-custom-config/snippet.json
index df65366f4528..1c7ac6aea824 100644
--- a/seed/csharp-sdk/csharp-grpc-proto/no-custom-config/snippet.json
+++ b/seed/csharp-sdk/csharp-grpc-proto/no-custom-config/snippet.json
@@ -6,11 +6,11 @@
"id": {
"path": "/users",
"method": "POST",
- "identifier_override": "endpoint_userservice.create"
+ "identifier_override": "endpoint_userService.Create"
},
"snippet": {
"type": "csharp",
- "client": "using SeedApi;\n\nvar client = new SeedApiClient();\nawait client.Userservice.CreateAsync(new CreateRequest());\n"
+ "client": "using SeedApi;\n\nvar client = new SeedApiClient();\nawait client.UserService.CreateAsync(new CreateRequest());\n"
}
}
]
diff --git a/seed/csharp-sdk/csharp-grpc-proto/no-custom-config/src/SeedApi/ISeedApiClient.cs b/seed/csharp-sdk/csharp-grpc-proto/no-custom-config/src/SeedApi/ISeedApiClient.cs
index ffefaf871345..d960c2537715 100644
--- a/seed/csharp-sdk/csharp-grpc-proto/no-custom-config/src/SeedApi/ISeedApiClient.cs
+++ b/seed/csharp-sdk/csharp-grpc-proto/no-custom-config/src/SeedApi/ISeedApiClient.cs
@@ -2,5 +2,5 @@ namespace SeedApi;
public partial interface ISeedApiClient
{
- public IUserserviceClient Userservice { get; }
+ public IUserServiceClient UserService { get; }
}
diff --git a/seed/csharp-sdk/csharp-grpc-proto/no-custom-config/src/SeedApi/SeedApiClient.cs b/seed/csharp-sdk/csharp-grpc-proto/no-custom-config/src/SeedApi/SeedApiClient.cs
index ad90c2bb3a65..c31c606689d7 100644
--- a/seed/csharp-sdk/csharp-grpc-proto/no-custom-config/src/SeedApi/SeedApiClient.cs
+++ b/seed/csharp-sdk/csharp-grpc-proto/no-custom-config/src/SeedApi/SeedApiClient.cs
@@ -26,8 +26,8 @@ public SeedApiClient(ClientOptions? clientOptions = null)
}
}
_client = new RawClient(clientOptions);
- Userservice = new UserserviceClient(_client);
+ UserService = new UserServiceClient(_client);
}
- public IUserserviceClient Userservice { get; }
+ public IUserServiceClient UserService { get; }
}
diff --git a/seed/csharp-sdk/csharp-grpc-proto/no-custom-config/src/SeedApi/Userservice/IUserserviceClient.cs b/seed/csharp-sdk/csharp-grpc-proto/no-custom-config/src/SeedApi/UserService/IUserServiceClient.cs
similarity index 81%
rename from seed/csharp-sdk/csharp-grpc-proto/no-custom-config/src/SeedApi/Userservice/IUserserviceClient.cs
rename to seed/csharp-sdk/csharp-grpc-proto/no-custom-config/src/SeedApi/UserService/IUserServiceClient.cs
index 948eb13bebe2..09ddf90facab 100644
--- a/seed/csharp-sdk/csharp-grpc-proto/no-custom-config/src/SeedApi/Userservice/IUserserviceClient.cs
+++ b/seed/csharp-sdk/csharp-grpc-proto/no-custom-config/src/SeedApi/UserService/IUserServiceClient.cs
@@ -1,6 +1,6 @@
namespace SeedApi;
-public partial interface IUserserviceClient
+public partial interface IUserServiceClient
{
Task CreateAsync(
CreateRequest request,
diff --git a/seed/csharp-sdk/csharp-grpc-proto/no-custom-config/src/SeedApi/Userservice/Requests/CreateRequest.cs b/seed/csharp-sdk/csharp-grpc-proto/no-custom-config/src/SeedApi/UserService/Requests/CreateRequest.cs
similarity index 100%
rename from seed/csharp-sdk/csharp-grpc-proto/no-custom-config/src/SeedApi/Userservice/Requests/CreateRequest.cs
rename to seed/csharp-sdk/csharp-grpc-proto/no-custom-config/src/SeedApi/UserService/Requests/CreateRequest.cs
diff --git a/seed/csharp-sdk/csharp-grpc-proto/no-custom-config/src/SeedApi/Userservice/UserserviceClient.cs b/seed/csharp-sdk/csharp-grpc-proto/no-custom-config/src/SeedApi/UserService/UserServiceClient.cs
similarity index 92%
rename from seed/csharp-sdk/csharp-grpc-proto/no-custom-config/src/SeedApi/Userservice/UserserviceClient.cs
rename to seed/csharp-sdk/csharp-grpc-proto/no-custom-config/src/SeedApi/UserService/UserServiceClient.cs
index 66fb221f639e..ffc8c954d255 100644
--- a/seed/csharp-sdk/csharp-grpc-proto/no-custom-config/src/SeedApi/Userservice/UserserviceClient.cs
+++ b/seed/csharp-sdk/csharp-grpc-proto/no-custom-config/src/SeedApi/UserService/UserServiceClient.cs
@@ -4,7 +4,7 @@
namespace SeedApi;
-public partial class UserserviceClient : IUserserviceClient
+public partial class UserServiceClient : IUserServiceClient
{
private readonly RawClient _client;
@@ -12,7 +12,7 @@ public partial class UserserviceClient : IUserserviceClient
private UserService.UserServiceClient _userService;
- internal UserserviceClient(RawClient client)
+ internal UserServiceClient(RawClient client)
{
_client = client;
_grpc = _client.Grpc;
@@ -20,7 +20,7 @@ internal UserserviceClient(RawClient client)
}
///
- /// await client.Userservice.CreateAsync(new CreateRequest());
+ /// await client.UserService.CreateAsync(new CreateRequest());
///
public async Task CreateAsync(
CreateRequest request,
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
index 56ea165b7738..6333defb8f70 100644
--- a/test-definitions/fern/apis/csharp-grpc-proto-exhaustive/openapi/openapi.yml
+++ b/test-definitions/fern/apis/csharp-grpc-proto-exhaustive/openapi/openapi.yml
@@ -9,11 +9,6 @@ tags:
paths:
/foo:
post:
- tag: dataservice
- x-fern-sdk-group-name:
- - dataservice
- x-fern-sdk-method-name: foo
- operationId: foo
responses:
"200":
content:
diff --git a/test-definitions/fern/apis/csharp-grpc-proto-exhaustive/overrides.yml b/test-definitions/fern/apis/csharp-grpc-proto-exhaustive/overrides.yml
index 17e3b51b9b23..e719158fe577 100644
--- a/test-definitions/fern/apis/csharp-grpc-proto-exhaustive/overrides.yml
+++ b/test-definitions/fern/apis/csharp-grpc-proto-exhaustive/overrides.yml
@@ -89,8 +89,6 @@ components:
metadata:
$ref: "#/components/schemas/Metadata"
IndexType:
- x-fern-sdk-group-name:
- - dataservice
x-fern-type-name: IndexType
enum:
- INDEX_TYPE_INVALID
diff --git a/test-definitions/fern/apis/csharp-grpc-proto-exhaustive/proto/data/v1/data.proto b/test-definitions/fern/apis/csharp-grpc-proto-exhaustive/proto/data/v1/data.proto
index b8244b95516d..46947f1d26ee 100644
--- a/test-definitions/fern/apis/csharp-grpc-proto-exhaustive/proto/data/v1/data.proto
+++ b/test-definitions/fern/apis/csharp-grpc-proto-exhaustive/proto/data/v1/data.proto
@@ -17,6 +17,14 @@ enum IndexType {
INDEX_TYPE_STRICT = 2;
}
+enum AspectRatio {
+ ASPECT_RATIO_UNSPECIFIED = 0;
+ ASPECT_RATIO_1_1 = 1;
+ ASPECT_RATIO_16_9 = 2;
+ ASPECT_RATIO_9_16 = 3;
+ ASPECT_RATIO_4_3 = 4;
+}
+
message IndexedData {
repeated uint32 indices = 1 [
(google.api.field_behavior) = REQUIRED
@@ -155,6 +163,7 @@ message UpdateRequest {
IndexType index_type = 6;
google.protobuf.Any details = 7;
repeated IndexType index_types = 8;
+ optional AspectRatio aspect_ratio = 9;
}
message UpdateResponse {