File size: 4,707 Bytes
50a7bf0
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
# OpenAPI Generator Configuration for Video Generation API
# This file contains global configuration for generating client SDKs

# Global properties
globalProperties:
  models: true
  apis: true
  supportingFiles: true
  modelTests: true
  apiTests: true
  modelDocs: true
  apiDocs: true

# TypeScript configuration
typescript:
  generatorName: typescript-fetch
  outputDir: clients/typescript
  additionalProperties:
    npmName: video-api-client
    npmVersion: 1.0.0
    supportsES6: true
    withInterfaces: true
    typescriptThreePlus: true
    enumPropertyNaming: PascalCase
    modelPropertyNaming: camelCase
    paramNaming: camelCase
    stringEnums: true
    withSeparateModelsAndApi: true
    apiPackage: api
    modelPackage: models
  templateDir: templates/typescript
  
# Python configuration  
python:
  generatorName: python
  outputDir: clients/python
  additionalProperties:
    packageName: video_api_client
    projectName: video-api-client
    packageVersion: 1.0.0
    packageUrl: https://github.com/example/video-api-client-python
    packageDescription: Python client library for Video Generation API
    authorName: API Team
    authorEmail: [email protected]
    library: urllib3
    generateSourceCodeOnly: false
  templateDir: templates/python

# Java configuration
java:
  generatorName: java
  outputDir: clients/java
  additionalProperties:
    groupId: com.example
    artifactId: video-api-client
    artifactVersion: 1.0.0
    artifactDescription: Java client library for Video Generation API
    library: okhttp-gson
    java8: true
    dateLibrary: java8
    serializationLibrary: gson
    hideGenerationTimestamp: true
  templateDir: templates/java

# C# configuration
csharp:
  generatorName: csharp
  outputDir: clients/csharp
  additionalProperties:
    packageName: VideoApiClient
    packageVersion: 1.0.0
    clientPackage: VideoApiClient
    packageCompany: Example Inc
    packageAuthors: API Team
    packageCopyright: Copyright 2024
    packageDescription: C# client library for Video Generation API
    targetFramework: netstandard2.0
    library: httpclient
    generatePropertyChanged: true
  templateDir: templates/csharp

# Go configuration
go:
  generatorName: go
  outputDir: clients/go
  additionalProperties:
    packageName: videoapiclient
    packageVersion: 1.0.0
    packageUrl: github.com/example/video-api-client-go
    hideGenerationTimestamp: true
    withGoCodegenComment: true
    enumClassPrefix: true
  templateDir: templates/go

# PHP configuration
php:
  generatorName: php
  outputDir: clients/php
  additionalProperties:
    packageName: VideoApiClient
    composerVendorName: example
    composerProjectName: video-api-client
    packageVersion: 1.0.0
    invokerPackage: VideoApiClient
    srcBasePath: src
    hideGenerationTimestamp: true
  templateDir: templates/php

# Ruby configuration
ruby:
  generatorName: ruby
  outputDir: clients/ruby
  additionalProperties:
    gemName: video_api_client
    gemVersion: 1.0.0
    gemHomepage: https://github.com/example/video-api-client-ruby
    gemSummary: Ruby client library for Video Generation API
    gemDescription: Ruby client library for the Video Generation API
    gemAuthor: API Team
    gemAuthorEmail: [email protected]
    moduleName: VideoApiClient
    hideGenerationTimestamp: true
  templateDir: templates/ruby

# Custom templates directory structure
templates:
  typescript:
    - api.mustache
    - model.mustache
    - README.mustache
    - package.mustache
  python:
    - api.mustache
    - model.mustache
    - README.mustache
    - setup.mustache
  java:
    - api.mustache
    - model.mustache
    - README.mustache
    - pom.mustache
  csharp:
    - api.mustache
    - model.mustache
    - README.mustache
    - Project.mustache
  go:
    - api.mustache
    - model.mustache
    - README.mustache
    - go.mustache
  php:
    - api.mustache
    - model.mustache
    - README.mustache
    - composer.mustache
  ruby:
    - api.mustache
    - model.mustache
    - README.mustache
    - gemspec.mustache

# Documentation configuration
documentation:
  generateApiDocs: true
  generateModelDocs: true
  generateExamples: true
  includeAuthentication: true
  includeErrorHandling: true
  includeRateLimiting: true

# Validation rules
validation:
  validateSpec: true
  strictMode: false
  allowAdditionalPropertiesWithComposedSchema: true

# Post-processing options
postProcessing:
  removeUnusedImports: true
  formatCode: true
  generateTests: true
  generateExamples: true