| 
 | 1 | +{  | 
 | 2 | +  "$schema": "http://json-schema.org/draft-07/schema#",  | 
 | 3 | +  "type": "object",  | 
 | 4 | +  "additionalProperties": {  | 
 | 5 | +    "type": "object",  | 
 | 6 | +    "properties": {  | 
 | 7 | +      "clients": {  | 
 | 8 | +        "oneOf": [  | 
 | 9 | +          {  | 
 | 10 | +            "type": "array",  | 
 | 11 | +            "items": {  | 
 | 12 | +              "type": "string",  | 
 | 13 | +              "enum": [  | 
 | 14 | +                "abtesting",  | 
 | 15 | +                "analytics",  | 
 | 16 | +                "composition",  | 
 | 17 | +                "ingestion",  | 
 | 18 | +                "insights",  | 
 | 19 | +                "monitoring",  | 
 | 20 | +                "personalization",  | 
 | 21 | +                "query-suggestions",  | 
 | 22 | +                "recommend",  | 
 | 23 | +                "search"  | 
 | 24 | +              ]  | 
 | 25 | +            }  | 
 | 26 | +          },  | 
 | 27 | +          {  | 
 | 28 | +            "type": "array",  | 
 | 29 | +            "items": {  | 
 | 30 | +              "type": "object",  | 
 | 31 | +              "properties": {  | 
 | 32 | +                "name": {  | 
 | 33 | +                  "type": "string",  | 
 | 34 | +                  "enum": [  | 
 | 35 | +                    "algoliasearch",  | 
 | 36 | +                    "abtesting",  | 
 | 37 | +                    "analytics",  | 
 | 38 | +                    "composition",  | 
 | 39 | +                    "composition-full",  | 
 | 40 | +                    "ingestion",  | 
 | 41 | +                    "insights",  | 
 | 42 | +                    "monitoring",  | 
 | 43 | +                    "personalization",  | 
 | 44 | +                    "query-suggestions",  | 
 | 45 | +                    "recommend",  | 
 | 46 | +                    "search"  | 
 | 47 | +                  ]  | 
 | 48 | +                },  | 
 | 49 | +                "output": { "type": "string" }  | 
 | 50 | +              },  | 
 | 51 | +              "required": ["name", "output"],  | 
 | 52 | +              "additionalProperties": false  | 
 | 53 | +            }  | 
 | 54 | +          }  | 
 | 55 | +        ]  | 
 | 56 | +      },  | 
 | 57 | +      "folder": { "type": "string", "description": "the output folder of your client, usually matching the github repository name, e.g. clients/algoliasearch-client-dart" },  | 
 | 58 | +      "gitRepoId": { "type": "string", "description": "the github repository name, without the organization or username that owns it, e.g. algoliasearch-client-php"},  | 
 | 59 | +      "packageVersion": { "type": "string", "description": "the version to publish the packages with, it must be semver compatible, e.g. 1.2.3" },  | 
 | 60 | +      "modelFolder": { "type": "string", "description": "the models folder, e.g. algoliasearch/models"},  | 
 | 61 | +      "apiFolder": { "type": "string", "description": "the api folder, e.g. lib/src"},  | 
 | 62 | +      "dockerImage": {   | 
 | 63 | +        "type": "string",  | 
 | 64 | +        "description": "whether your client requires a custom docker image with specific needs, most clients require 'apic_base'",  | 
 | 65 | +        "enum": [  | 
 | 66 | +          "apic_base",  | 
 | 67 | +          "apic_ruby",  | 
 | 68 | +          "apic_swift"  | 
 | 69 | +        ]  | 
 | 70 | +      },  | 
 | 71 | +      "tests": {  | 
 | 72 | +        "type": "object",  | 
 | 73 | +        "properties": {  | 
 | 74 | +          "extension": { "type": "string", "description": "the test file extension, e.g. .test.ts" },  | 
 | 75 | +          "outputFolder": { "type": "string", "description": "the test output folder, e.g. src/generated" }  | 
 | 76 | +        },  | 
 | 77 | +        "required": ["extension", "outputFolder"],  | 
 | 78 | +        "additionalProperties": false  | 
 | 79 | +      },  | 
 | 80 | +      "snippets": {  | 
 | 81 | +        "type": "object",  | 
 | 82 | +        "properties": {  | 
 | 83 | +          "extension": { "type": "string", "description": "the snippet file extension, e.g. .cs" },  | 
 | 84 | +          "outputFolder": { "type": "string", "description": "the snippet output folder, e.g. src" }  | 
 | 85 | +        },  | 
 | 86 | +        "required": ["extension", "outputFolder"],  | 
 | 87 | +        "additionalProperties": false  | 
 | 88 | +      },  | 
 | 89 | +      "supportedVersions": {  | 
 | 90 | +        "type": "array",  | 
 | 91 | +        "description": "hints the CI on what matrix to generate for this client, this must be language specific versions, e.g. versions of node",  | 
 | 92 | +        "items": { "type": "string" }  | 
 | 93 | +      }  | 
 | 94 | +    },  | 
 | 95 | +    "required": ["clients", "folder", "gitRepoId", "packageVersion", "modelFolder", "apiFolder", "tests", "snippets"],  | 
 | 96 | +    "additionalProperties": false  | 
 | 97 | +  }  | 
 | 98 | +}  | 
0 commit comments