From 1522855915f941826879d468be0b65f798f732ca Mon Sep 17 00:00:00 2001 From: William Cheng Date: Thu, 8 Nov 2018 21:47:16 +0800 Subject: [PATCH 01/27] update python petstore samples --- .../client/petstore/python-asyncio/petstore_api/api_client.py | 2 +- .../client/petstore/python-tornado/petstore_api/api_client.py | 2 +- samples/client/petstore/python/petstore_api/api_client.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/client/petstore/python-asyncio/petstore_api/api_client.py b/samples/client/petstore/python-asyncio/petstore_api/api_client.py index 470a9fda624..132179b9b9c 100644 --- a/samples/client/petstore/python-asyncio/petstore_api/api_client.py +++ b/samples/client/petstore/python-asyncio/petstore_api/api_client.py @@ -63,7 +63,7 @@ class ApiClient(object): _pool = None def __init__(self, configuration=None, header_name=None, header_value=None, - cookie=None, pool_threads=1): + cookie=None, pool_threads=None): if configuration is None: configuration = Configuration() self.configuration = configuration diff --git a/samples/client/petstore/python-tornado/petstore_api/api_client.py b/samples/client/petstore/python-tornado/petstore_api/api_client.py index a9bdacf1d2c..fe0c3948a4d 100644 --- a/samples/client/petstore/python-tornado/petstore_api/api_client.py +++ b/samples/client/petstore/python-tornado/petstore_api/api_client.py @@ -64,7 +64,7 @@ class ApiClient(object): _pool = None def __init__(self, configuration=None, header_name=None, header_value=None, - cookie=None, pool_threads=1): + cookie=None, pool_threads=None): if configuration is None: configuration = Configuration() self.configuration = configuration diff --git a/samples/client/petstore/python/petstore_api/api_client.py b/samples/client/petstore/python/petstore_api/api_client.py index a79d7ccf742..a8acb32cf22 100644 --- a/samples/client/petstore/python/petstore_api/api_client.py +++ b/samples/client/petstore/python/petstore_api/api_client.py @@ -63,7 +63,7 @@ class ApiClient(object): _pool = None def __init__(self, configuration=None, header_name=None, header_value=None, - cookie=None, pool_threads=1): + cookie=None, pool_threads=None): if configuration is None: configuration = Configuration() self.configuration = configuration From 4742f0086b6dc023d277d7c57a2185cbe92b9c03 Mon Sep 17 00:00:00 2001 From: Benjamin Gill Date: Fri, 9 Nov 2018 11:23:59 +0000 Subject: [PATCH 02/27] [rust-server] Re-instate ApiRequestParser (#1388) * Re-instate ApiRequestParser It turns out I was over-eager when removing file support and accidentally deleted some code that should have been kept. See https://github.com/OpenAPITools/openapi-generator/pull/547/files#diff-684007b298ee5998fa30732c261ea2fcL469. * Don't do html escaping of parameters --- .../resources/rust-server/server-mod.mustache | 14 +++ .../src/server/mod.rs | 107 ++++++++++++++++++ .../output/rust-server-test/src/server/mod.rs | 20 ++++ 3 files changed, 141 insertions(+) diff --git a/modules/openapi-generator/src/main/resources/rust-server/server-mod.mustache b/modules/openapi-generator/src/main/resources/rust-server/server-mod.mustache index e635d9432cd..887d1e468f1 100644 --- a/modules/openapi-generator/src/main/resources/rust-server/server-mod.mustache +++ b/modules/openapi-generator/src/main/resources/rust-server/server-mod.mustache @@ -380,3 +380,17 @@ impl Clone for Service } } } + +/// Request parser for `Api`. +pub struct ApiRequestParser; +impl RequestParser for ApiRequestParser { + fn parse_operation_id(request: &Request) -> Result<&'static str, ()> { + let path = paths::GLOBAL_REGEX_SET.matches(request.uri().path()); + match request.method() { +{{#apiInfo}}{{#apis}}{{#operations}}{{#operation}} + // {{{operationId}}} - {{{httpMethod}}} {{{path}}} + &hyper::Method::{{{vendorExtensions.HttpMethod}}} if path.matched(paths::ID_{{{vendorExtensions.PATH_ID}}}) => Ok("{{{operationId}}}"), +{{/operation}}{{/operations}}{{/apis}}{{/apiInfo}} _ => Err(()), + } + } +} diff --git a/samples/server/petstore/rust-server/output/petstore-with-fake-endpoints-models-for-testing/src/server/mod.rs b/samples/server/petstore/rust-server/output/petstore-with-fake-endpoints-models-for-testing/src/server/mod.rs index 8366ae215e2..ca064ca7ef0 100644 --- a/samples/server/petstore/rust-server/output/petstore-with-fake-endpoints-models-for-testing/src/server/mod.rs +++ b/samples/server/petstore/rust-server/output/petstore-with-fake-endpoints-models-for-testing/src/server/mod.rs @@ -2949,3 +2949,110 @@ impl Clone for Service } } } + +/// Request parser for `Api`. +pub struct ApiRequestParser; +impl RequestParser for ApiRequestParser { + fn parse_operation_id(request: &Request) -> Result<&'static str, ()> { + let path = paths::GLOBAL_REGEX_SET.matches(request.uri().path()); + match request.method() { + + // TestSpecialTags - PATCH /another-fake/dummy + &hyper::Method::Patch if path.matched(paths::ID_ANOTHER_FAKE_DUMMY) => Ok("TestSpecialTags"), + + // FakeOuterBooleanSerialize - POST /fake/outer/boolean + &hyper::Method::Post if path.matched(paths::ID_FAKE_OUTER_BOOLEAN) => Ok("FakeOuterBooleanSerialize"), + + // FakeOuterCompositeSerialize - POST /fake/outer/composite + &hyper::Method::Post if path.matched(paths::ID_FAKE_OUTER_COMPOSITE) => Ok("FakeOuterCompositeSerialize"), + + // FakeOuterNumberSerialize - POST /fake/outer/number + &hyper::Method::Post if path.matched(paths::ID_FAKE_OUTER_NUMBER) => Ok("FakeOuterNumberSerialize"), + + // FakeOuterStringSerialize - POST /fake/outer/string + &hyper::Method::Post if path.matched(paths::ID_FAKE_OUTER_STRING) => Ok("FakeOuterStringSerialize"), + + // TestBodyWithQueryParams - PUT /fake/body-with-query-params + &hyper::Method::Put if path.matched(paths::ID_FAKE_BODY_WITH_QUERY_PARAMS) => Ok("TestBodyWithQueryParams"), + + // TestClientModel - PATCH /fake + &hyper::Method::Patch if path.matched(paths::ID_FAKE) => Ok("TestClientModel"), + + // TestEndpointParameters - POST /fake + &hyper::Method::Post if path.matched(paths::ID_FAKE) => Ok("TestEndpointParameters"), + + // TestEnumParameters - GET /fake + &hyper::Method::Get if path.matched(paths::ID_FAKE) => Ok("TestEnumParameters"), + + // TestInlineAdditionalProperties - POST /fake/inline-additionalProperties + &hyper::Method::Post if path.matched(paths::ID_FAKE_INLINE_ADDITIONALPROPERTIES) => Ok("TestInlineAdditionalProperties"), + + // TestJsonFormData - GET /fake/jsonFormData + &hyper::Method::Get if path.matched(paths::ID_FAKE_JSONFORMDATA) => Ok("TestJsonFormData"), + + // TestClassname - PATCH /fake_classname_test + &hyper::Method::Patch if path.matched(paths::ID_FAKE_CLASSNAME_TEST) => Ok("TestClassname"), + + // AddPet - POST /pet + &hyper::Method::Post if path.matched(paths::ID_PET) => Ok("AddPet"), + + // DeletePet - DELETE /pet/{petId} + &hyper::Method::Delete if path.matched(paths::ID_PET_PETID) => Ok("DeletePet"), + + // FindPetsByStatus - GET /pet/findByStatus + &hyper::Method::Get if path.matched(paths::ID_PET_FINDBYSTATUS) => Ok("FindPetsByStatus"), + + // FindPetsByTags - GET /pet/findByTags + &hyper::Method::Get if path.matched(paths::ID_PET_FINDBYTAGS) => Ok("FindPetsByTags"), + + // GetPetById - GET /pet/{petId} + &hyper::Method::Get if path.matched(paths::ID_PET_PETID) => Ok("GetPetById"), + + // UpdatePet - PUT /pet + &hyper::Method::Put if path.matched(paths::ID_PET) => Ok("UpdatePet"), + + // UpdatePetWithForm - POST /pet/{petId} + &hyper::Method::Post if path.matched(paths::ID_PET_PETID) => Ok("UpdatePetWithForm"), + + // UploadFile - POST /pet/{petId}/uploadImage + &hyper::Method::Post if path.matched(paths::ID_PET_PETID_UPLOADIMAGE) => Ok("UploadFile"), + + // DeleteOrder - DELETE /store/order/{order_id} + &hyper::Method::Delete if path.matched(paths::ID_STORE_ORDER_ORDER_ID) => Ok("DeleteOrder"), + + // GetInventory - GET /store/inventory + &hyper::Method::Get if path.matched(paths::ID_STORE_INVENTORY) => Ok("GetInventory"), + + // GetOrderById - GET /store/order/{order_id} + &hyper::Method::Get if path.matched(paths::ID_STORE_ORDER_ORDER_ID) => Ok("GetOrderById"), + + // PlaceOrder - POST /store/order + &hyper::Method::Post if path.matched(paths::ID_STORE_ORDER) => Ok("PlaceOrder"), + + // CreateUser - POST /user + &hyper::Method::Post if path.matched(paths::ID_USER) => Ok("CreateUser"), + + // CreateUsersWithArrayInput - POST /user/createWithArray + &hyper::Method::Post if path.matched(paths::ID_USER_CREATEWITHARRAY) => Ok("CreateUsersWithArrayInput"), + + // CreateUsersWithListInput - POST /user/createWithList + &hyper::Method::Post if path.matched(paths::ID_USER_CREATEWITHLIST) => Ok("CreateUsersWithListInput"), + + // DeleteUser - DELETE /user/{username} + &hyper::Method::Delete if path.matched(paths::ID_USER_USERNAME) => Ok("DeleteUser"), + + // GetUserByName - GET /user/{username} + &hyper::Method::Get if path.matched(paths::ID_USER_USERNAME) => Ok("GetUserByName"), + + // LoginUser - GET /user/login + &hyper::Method::Get if path.matched(paths::ID_USER_LOGIN) => Ok("LoginUser"), + + // LogoutUser - GET /user/logout + &hyper::Method::Get if path.matched(paths::ID_USER_LOGOUT) => Ok("LogoutUser"), + + // UpdateUser - PUT /user/{username} + &hyper::Method::Put if path.matched(paths::ID_USER_USERNAME) => Ok("UpdateUser"), + _ => Err(()), + } + } +} diff --git a/samples/server/petstore/rust-server/output/rust-server-test/src/server/mod.rs b/samples/server/petstore/rust-server/output/rust-server-test/src/server/mod.rs index cec0ed8e38f..c436af8021b 100644 --- a/samples/server/petstore/rust-server/output/rust-server-test/src/server/mod.rs +++ b/samples/server/petstore/rust-server/output/rust-server-test/src/server/mod.rs @@ -334,3 +334,23 @@ impl Clone for Service } } } + +/// Request parser for `Api`. +pub struct ApiRequestParser; +impl RequestParser for ApiRequestParser { + fn parse_operation_id(request: &Request) -> Result<&'static str, ()> { + let path = paths::GLOBAL_REGEX_SET.matches(request.uri().path()); + match request.method() { + + // DummyGet - GET /dummy + &hyper::Method::Get if path.matched(paths::ID_DUMMY) => Ok("DummyGet"), + + // DummyPut - PUT /dummy + &hyper::Method::Put if path.matched(paths::ID_DUMMY) => Ok("DummyPut"), + + // HtmlPost - POST /html + &hyper::Method::Post if path.matched(paths::ID_HTML) => Ok("HtmlPost"), + _ => Err(()), + } + } +} From 60bc19e8306333f411487999f336e4e18fe88b9a Mon Sep 17 00:00:00 2001 From: William Cheng Date: Fri, 9 Nov 2018 23:45:21 +0800 Subject: [PATCH 03/27] Add file post-processing to PHP generators (#1402) * add file post processing to php * restore php petstore client --- .../codegen/languages/AbstractPhpCodegen.java | 39 ++++++++++++++++--- 1 file changed, 33 insertions(+), 6 deletions(-) diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractPhpCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractPhpCodegen.java index 2490293204d..967fd8357ae 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractPhpCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractPhpCodegen.java @@ -18,6 +18,7 @@ package org.openapitools.codegen.languages; import io.swagger.v3.oas.models.media.ArraySchema; import io.swagger.v3.oas.models.media.Schema; +import org.apache.commons.io.FilenameUtils; import org.apache.commons.lang3.StringUtils; import org.openapitools.codegen.CliOption; import org.openapitools.codegen.CodegenConfig; @@ -40,12 +41,6 @@ import java.util.Locale; import java.util.Map; import java.util.regex.Matcher; -import org.apache.commons.lang3.StringUtils; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - - public abstract class AbstractPhpCodegen extends DefaultCodegen implements CodegenConfig { private static final Logger LOGGER = LoggerFactory.getLogger(AbstractPhpCodegen.class); @@ -161,6 +156,11 @@ public abstract class AbstractPhpCodegen extends DefaultCodegen implements Codeg public void processOpts() { super.processOpts(); + if (StringUtils.isEmpty(System.getenv("PHP_POST_PROCESS_FILE"))) { + LOGGER.info("Environment variable PHP_POST_PROCESS_FILE not defined so the PHP code may not be properly formatted. To define it, try 'export PHP_POST_PROCESS_FILE=\"/usr/local/bin/prettier --write\"' (Linux/Mac)"); + LOGGER.info("NOTE: To enable file post-processing, 'enablePostProcessFile' must be set to `true` (--enable-post-process-file for CLI)."); + } + if (additionalProperties.containsKey(PACKAGE_NAME)) { this.setPackageName((String) additionalProperties.get(PACKAGE_NAME)); } else { @@ -773,4 +773,31 @@ public abstract class AbstractPhpCodegen extends DefaultCodegen implements Codeg final int lastBackslashIndex = phpClassName.lastIndexOf('\\'); return phpClassName.substring(lastBackslashIndex + 1); } + + @Override + public void postProcessFile(File file, String fileType) { + if (file == null) { + return; + } + String phpPostProcessFile = System.getenv("PHP_POST_PROCESS_FILE"); + if (StringUtils.isEmpty(phpPostProcessFile)) { + return; // skip if PHP_POST_PROCESS_FILE env variable is not defined + } + // only process files with php extension + if ("php".equals(FilenameUtils.getExtension(file.toString()))) { + String command = phpPostProcessFile + " " + file.toString(); + try { + Process p = Runtime.getRuntime().exec(command); + p.waitFor(); + int exitValue = p.exitValue(); + if (exitValue != 0) { + LOGGER.error("Error running the command ({}). Exit value: {}", command, exitValue); + } else { + LOGGER.info("Successfully executed: " + command); + } + } catch (Exception e) { + LOGGER.error("Error running the command ({}). Exception: {}", command, e.getMessage()); + } + } + } } From 93e2fc635581131b509959c1ef7624d592ee6fb6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eivind=20Bergst=C3=B8l?= Date: Fri, 9 Nov 2018 16:48:26 +0100 Subject: [PATCH 04/27] Fixes an issue where code generator for Java produces not compileable (#1357) code if the yml-definition does not have any type definitions. This is normal if the api only uses simple datatypes (Int, String) for inout/output. --- modules/openapi-generator/src/main/resources/Java/JSON.mustache | 2 ++ .../src/main/resources/Java/libraries/retrofit2/JSON.mustache | 2 ++ 2 files changed, 4 insertions(+) diff --git a/modules/openapi-generator/src/main/resources/Java/JSON.mustache b/modules/openapi-generator/src/main/resources/Java/JSON.mustache index 724b428392b..e207efbc05b 100644 --- a/modules/openapi-generator/src/main/resources/Java/JSON.mustache +++ b/modules/openapi-generator/src/main/resources/Java/JSON.mustache @@ -25,7 +25,9 @@ import org.threeten.bp.OffsetDateTime; import org.threeten.bp.format.DateTimeFormatter; {{/threetenbp}} +{{#parent.length}} import {{modelPackage}}.*; +{{/parent.length}} import okio.ByteString; import java.io.IOException; diff --git a/modules/openapi-generator/src/main/resources/Java/libraries/retrofit2/JSON.mustache b/modules/openapi-generator/src/main/resources/Java/libraries/retrofit2/JSON.mustache index 7dbb56a3da1..a7e1df8598a 100644 --- a/modules/openapi-generator/src/main/resources/Java/libraries/retrofit2/JSON.mustache +++ b/modules/openapi-generator/src/main/resources/Java/libraries/retrofit2/JSON.mustache @@ -25,7 +25,9 @@ import org.threeten.bp.OffsetDateTime; import org.threeten.bp.format.DateTimeFormatter; {{/threetenbp}} +{{#parent.length}} import {{modelPackage}}.*; +{{/parent.length}} import java.io.IOException; import java.io.StringReader; From 0ed02c8e917e96e68ad53a24b11c1d8cad90918c Mon Sep 17 00:00:00 2001 From: sunn <33183834+etherealjoy@users.noreply.github.com> Date: Fri, 9 Nov 2018 16:49:47 +0100 Subject: [PATCH 05/27] Fixes double prefixing during model import (#1398) --- .../org/openapitools/codegen/languages/CppQt5ClientCodegen.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CppQt5ClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CppQt5ClientCodegen.java index e033b7c44b8..fa812143330 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CppQt5ClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CppQt5ClientCodegen.java @@ -253,7 +253,7 @@ public class CppQt5ClientCodegen extends AbstractCppCodegen implements CodegenCo if (!folder.isEmpty()) folder += File.separator; - return "#include \"" + folder + toModelName(name) + ".h\""; + return "#include \"" + folder + sanitizeName(name) + ".h\""; } /** From f802e63f9f9c111b0812ad51714321ac53949bb6 Mon Sep 17 00:00:00 2001 From: Simas Abramovas Date: Fri, 9 Nov 2018 17:51:27 +0200 Subject: [PATCH 06/27] Add parcelizeModels cli option (#1289) * Add parcelizeModels cli option * Add info log to clarify the parcelization requirements. * Update docs --- docs/generators/elm.md | 3 --- docs/generators/erlang-server.md | 3 --- docs/generators/kotlin-server.md | 3 +++ docs/generators/kotlin-spring.md | 3 +++ docs/generators/kotlin.md | 3 +++ docs/generators/rust.md | 5 ---- docs/generators/spring.md | 6 ----- .../codegen/CodegenConstants.java | 4 ++++ .../languages/AbstractKotlinCodegen.java | 24 +++++++++++++++++++ .../kotlin-client/data_class.mustache | 10 +++++++- .../kotlin-server/data_class.mustache | 10 +++++++- 11 files changed, 55 insertions(+), 19 deletions(-) diff --git a/docs/generators/elm.md b/docs/generators/elm.md index bab23d8acf6..891a281d1eb 100644 --- a/docs/generators/elm.md +++ b/docs/generators/elm.md @@ -6,7 +6,4 @@ CONFIG OPTIONS for elm 0.19 - Elm 0.19 0.18 - Elm 0.18 - elmPrefixCustomTypeVariants - Prefix custom type variants (Default: false) - Back to the [generators list](README.md) diff --git a/docs/generators/erlang-server.md b/docs/generators/erlang-server.md index 51fc0c2d971..29c7d51313d 100644 --- a/docs/generators/erlang-server.md +++ b/docs/generators/erlang-server.md @@ -4,7 +4,4 @@ CONFIG OPTIONS for erlang-server packageName Erlang package name (convention: lowercase). (Default: openapi) - openAPISpecName - Openapi Spec Name. (Default: openapi) - Back to the [generators list](README.md) diff --git a/docs/generators/kotlin-server.md b/docs/generators/kotlin-server.md index 1d69a88b7fb..3ff4b615171 100644 --- a/docs/generators/kotlin-server.md +++ b/docs/generators/kotlin-server.md @@ -19,6 +19,9 @@ CONFIG OPTIONS for kotlin-server enumPropertyNaming Naming convention for enum properties: 'camelCase', 'PascalCase', 'snake_case', 'UPPERCASE', and 'original' (Default: camelCase) + parcelizeModels + toggle "@Parcelize" for generated models + library library template (sub-template) to use (Default: ktor) ktor - ktor framework diff --git a/docs/generators/kotlin-spring.md b/docs/generators/kotlin-spring.md index 16c84f74b86..568c3967eec 100644 --- a/docs/generators/kotlin-spring.md +++ b/docs/generators/kotlin-spring.md @@ -19,6 +19,9 @@ CONFIG OPTIONS for kotlin-spring enumPropertyNaming Naming convention for enum properties: 'camelCase', 'PascalCase', 'snake_case', 'UPPERCASE', and 'original' (Default: camelCase) + parcelizeModels + toggle "@Parcelize" for generated models + title server title name or client service name (Default: OpenAPI Kotlin Spring) diff --git a/docs/generators/kotlin.md b/docs/generators/kotlin.md index 75529e49286..91ebf5fc6a6 100644 --- a/docs/generators/kotlin.md +++ b/docs/generators/kotlin.md @@ -19,6 +19,9 @@ CONFIG OPTIONS for kotlin enumPropertyNaming Naming convention for enum properties: 'camelCase', 'PascalCase', 'snake_case', 'UPPERCASE', and 'original' (Default: camelCase) + parcelizeModels + toggle "@Parcelize" for generated models + dateLibrary Option. Date library to use string - String diff --git a/docs/generators/rust.md b/docs/generators/rust.md index c126505e981..c8779939a30 100644 --- a/docs/generators/rust.md +++ b/docs/generators/rust.md @@ -10,9 +10,4 @@ CONFIG OPTIONS for rust hideGenerationTimestamp Hides the generation timestamp when files are generated. (Default: true) - library - library template (sub-template) to use. (Default: hyper) - hyper - HTTP client: Hyper. - reqwest - HTTP client: Reqwest. - Back to the [generators list](README.md) diff --git a/docs/generators/spring.md b/docs/generators/spring.md index e7d64807746..ab0e1ad15a6 100644 --- a/docs/generators/spring.md +++ b/docs/generators/spring.md @@ -152,9 +152,6 @@ CONFIG OPTIONS for spring useBeanValidation Use BeanValidation API annotations (Default: true) - performBeanValidation - Use Bean Validation Impl. to perform BeanValidation (Default: false) - implicitHeaders Use of @ApiImplicitParams for headers. (Default: false) @@ -167,9 +164,6 @@ CONFIG OPTIONS for spring useOptional Use Optional container for optional parameters (Default: false) - hateoas - Use Spring HATEOAS library to allow adding HATEOAS links (Default: false) - library library template (sub-template) to use (Default: spring-boot) spring-boot - Spring-boot Server application using the SpringFox integration. diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenConstants.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenConstants.java index 1b7500c831e..c66cce4b4f6 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenConstants.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenConstants.java @@ -221,6 +221,10 @@ public class CodegenConstants { public static final String SOURCECODEONLY_GENERATION = "generateSourceCodeOnly"; public static final String SOURCECODEONLY_GENERATION_DESC = "Specifies that only a library source code is to be generated."; + public static final String PARCELIZE_MODELS = "parcelizeModels"; + public static final String PARCELIZE_MODELS_DESC = "toggle \"@Parcelize\" for generated models"; + + // Not user-configurable. System provided for use in templates. public static final String GENERATE_APIS = "generateApis"; diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractKotlinCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractKotlinCodegen.java index c73670278c5..7de4d874d29 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractKotlinCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractKotlinCodegen.java @@ -45,6 +45,7 @@ public abstract class AbstractKotlinCodegen extends DefaultCodegen implements Co protected String apiDocPath = "docs/"; protected String modelDocPath = "docs/"; + protected boolean parcelizeModels = false; protected CodegenConstants.ENUM_PROPERTY_NAMING_TYPE enumPropertyNaming = CodegenConstants.ENUM_PROPERTY_NAMING_TYPE.camelCase; @@ -199,6 +200,7 @@ public abstract class AbstractKotlinCodegen extends DefaultCodegen implements Co CliOption enumPropertyNamingOpt = new CliOption(CodegenConstants.ENUM_PROPERTY_NAMING, CodegenConstants.ENUM_PROPERTY_NAMING_DESC); cliOptions.add(enumPropertyNamingOpt.defaultValue(enumPropertyNaming.name())); + cliOptions.add(new CliOption(CodegenConstants.PARCELIZE_MODELS, CodegenConstants.PARCELIZE_MODELS_DESC)); } @Override @@ -356,6 +358,20 @@ public abstract class AbstractKotlinCodegen extends DefaultCodegen implements Co LOGGER.warn(CodegenConstants.INVOKER_PACKAGE + " with " + this.getName() + " generator is ignored. Use " + CodegenConstants.PACKAGE_NAME + "."); } + if (additionalProperties.containsKey(CodegenConstants.PARCELIZE_MODELS)) { + this.setParcelizeModels(Boolean.valueOf((String)additionalProperties.get(CodegenConstants.PARCELIZE_MODELS))); + LOGGER.info(CodegenConstants.PARCELIZE_MODELS + " depends on the android framework and " + + "experimental parcelize feature. Make sure your build applies the android plugin:\n" + + "apply plugin: 'com.android.library' OR apply plugin: 'com.android.application'.\n" + + "and enables the experimental features:\n" + + "androidExtensions {\n" + + " experimental = true\n" + + "}" + ); + } else { + additionalProperties.put(CodegenConstants.PARCELIZE_MODELS, parcelizeModels); + } + additionalProperties.put(CodegenConstants.API_PACKAGE, apiPackage()); additionalProperties.put(CodegenConstants.MODEL_PACKAGE, modelPackage()); @@ -383,6 +399,14 @@ public abstract class AbstractKotlinCodegen extends DefaultCodegen implements Co this.sourceFolder = sourceFolder; } + public Boolean getParcelizeModels() { + return parcelizeModels; + } + + public void setParcelizeModels(Boolean parcelizeModels) { + this.parcelizeModels = parcelizeModels; + } + /** * Return the sanitized variable name for enum * diff --git a/modules/openapi-generator/src/main/resources/kotlin-client/data_class.mustache b/modules/openapi-generator/src/main/resources/kotlin-client/data_class.mustache index 1431de07d13..2238c6dae29 100644 --- a/modules/openapi-generator/src/main/resources/kotlin-client/data_class.mustache +++ b/modules/openapi-generator/src/main/resources/kotlin-client/data_class.mustache @@ -1,19 +1,27 @@ {{#hasEnums}} import com.squareup.moshi.Json {{/hasEnums}} +{{#parcelizeModels}} +import android.os.Parcelable +import kotlinx.android.parcel.Parcelize + +{{/parcelizeModels}} /** * {{{description}}} {{#vars}} * @param {{name}} {{{description}}} {{/vars}} */ +{{#parcelizeModels}} +@Parcelize +{{/parcelizeModels}} data class {{classname}} ( {{#requiredVars}} {{>data_class_req_var}}{{^-last}}, {{/-last}}{{/requiredVars}}{{#hasRequired}}{{#hasOptional}}, {{/hasOptional}}{{/hasRequired}}{{#optionalVars}}{{>data_class_opt_var}}{{^-last}}, {{/-last}}{{/optionalVars}} -) { +){{#parcelizeModels}} : Parcelable{{/parcelizeModels}} { {{#hasEnums}}{{#vars}}{{#isEnum}} /** * {{{description}}} diff --git a/modules/openapi-generator/src/main/resources/kotlin-server/data_class.mustache b/modules/openapi-generator/src/main/resources/kotlin-server/data_class.mustache index 1237ec1f431..feb6a0b317e 100644 --- a/modules/openapi-generator/src/main/resources/kotlin-server/data_class.mustache +++ b/modules/openapi-generator/src/main/resources/kotlin-server/data_class.mustache @@ -1,16 +1,24 @@ +{{#parcelizeModels}} +import android.os.Parcelable +import kotlinx.android.parcel.Parcelize + +{{/parcelizeModels}} /** * {{{description}}} {{#vars}} * @param {{name}} {{{description}}} {{/vars}} */ +{{#parcelizeModels}} +@Parcelize +{{/parcelizeModels}} data class {{classname}} ( {{#requiredVars}} {{>data_class_req_var}}{{^-last}}, {{/-last}}{{/requiredVars}}{{#hasRequired}}{{#hasOptional}}, {{/hasOptional}}{{/hasRequired}}{{#optionalVars}}{{>data_class_opt_var}}{{^-last}}, {{/-last}}{{/optionalVars}} -) { +){{#parcelizeModels}} : Parcelable{{/parcelizeModels}} { {{#hasEnums}}{{#vars}}{{#isEnum}} /** * {{{description}}} From 7c6beb96929c6212cbae57acbddb60ac1c90ec40 Mon Sep 17 00:00:00 2001 From: William Cheng Date: Sat, 10 Nov 2018 00:28:08 +0800 Subject: [PATCH 07/27] update generator doc --- docs/generators/elm.md | 3 +++ docs/generators/erlang-server.md | 3 +++ docs/generators/rust.md | 5 +++++ docs/generators/spring.md | 6 ++++++ 4 files changed, 17 insertions(+) diff --git a/docs/generators/elm.md b/docs/generators/elm.md index 891a281d1eb..bab23d8acf6 100644 --- a/docs/generators/elm.md +++ b/docs/generators/elm.md @@ -6,4 +6,7 @@ CONFIG OPTIONS for elm 0.19 - Elm 0.19 0.18 - Elm 0.18 + elmPrefixCustomTypeVariants + Prefix custom type variants (Default: false) + Back to the [generators list](README.md) diff --git a/docs/generators/erlang-server.md b/docs/generators/erlang-server.md index 29c7d51313d..51fc0c2d971 100644 --- a/docs/generators/erlang-server.md +++ b/docs/generators/erlang-server.md @@ -4,4 +4,7 @@ CONFIG OPTIONS for erlang-server packageName Erlang package name (convention: lowercase). (Default: openapi) + openAPISpecName + Openapi Spec Name. (Default: openapi) + Back to the [generators list](README.md) diff --git a/docs/generators/rust.md b/docs/generators/rust.md index c8779939a30..c126505e981 100644 --- a/docs/generators/rust.md +++ b/docs/generators/rust.md @@ -10,4 +10,9 @@ CONFIG OPTIONS for rust hideGenerationTimestamp Hides the generation timestamp when files are generated. (Default: true) + library + library template (sub-template) to use. (Default: hyper) + hyper - HTTP client: Hyper. + reqwest - HTTP client: Reqwest. + Back to the [generators list](README.md) diff --git a/docs/generators/spring.md b/docs/generators/spring.md index ab0e1ad15a6..e7d64807746 100644 --- a/docs/generators/spring.md +++ b/docs/generators/spring.md @@ -152,6 +152,9 @@ CONFIG OPTIONS for spring useBeanValidation Use BeanValidation API annotations (Default: true) + performBeanValidation + Use Bean Validation Impl. to perform BeanValidation (Default: false) + implicitHeaders Use of @ApiImplicitParams for headers. (Default: false) @@ -164,6 +167,9 @@ CONFIG OPTIONS for spring useOptional Use Optional container for optional parameters (Default: false) + hateoas + Use Spring HATEOAS library to allow adding HATEOAS links (Default: false) + library library template (sub-template) to use (Default: spring-boot) spring-boot - Spring-boot Server application using the SpringFox integration. From 5711985ac37bf754cef24bb6956aa52a1daea800 Mon Sep 17 00:00:00 2001 From: James Addyman Date: Sat, 10 Nov 2018 04:59:58 +0000 Subject: [PATCH 08/27] Fix swift4 1406 (#1407) * Fix warnings produced when using Swift 4.2 * Update Petstore client for Swift 4 --- .../src/main/resources/swift4/APIs.mustache | 8 +- .../swift4/AlamofireImplementations.mustache | 4 +- .../resources/swift4/CodableHelper.mustache | 2 +- .../resources/swift4/Configuration.mustache | 2 +- .../src/main/resources/swift4/Models.mustache | 6 +- .../swift4/default/.openapi-generator/VERSION | 2 +- .../Classes/OpenAPIs/APIHelper.swift | 22 +- .../Classes/OpenAPIs/APIs.swift | 24 +- .../OpenAPIs/APIs/AnotherFakeAPI.swift | 16 +- .../Classes/OpenAPIs/APIs/FakeAPI.swift | 218 +++++++++++------- .../APIs/FakeClassnameTags123API.swift | 20 +- .../Classes/OpenAPIs/APIs/PetAPI.swift | 198 ++++++++-------- .../Classes/OpenAPIs/APIs/StoreAPI.swift | 67 +++--- .../Classes/OpenAPIs/APIs/UserAPI.swift | 129 ++++++----- .../OpenAPIs/AlamofireImplementations.swift | 127 +++++----- .../Classes/OpenAPIs/CodableHelper.swift | 10 +- .../Classes/OpenAPIs/Configuration.swift | 10 +- .../Classes/OpenAPIs/Extensions.swift | 34 +-- .../OpenAPIs/JSONEncodableEncoding.swift | 6 +- .../Classes/OpenAPIs/JSONEncodingHelper.swift | 10 +- .../Classes/OpenAPIs/Models.swift | 10 +- .../Models/AdditionalPropertiesClass.swift | 16 +- .../Classes/OpenAPIs/Models/Animal.swift | 6 + .../Classes/OpenAPIs/Models/AnimalFarm.swift | 1 + .../Classes/OpenAPIs/Models/ApiResponse.swift | 6 + .../Models/ArrayOfArrayOfNumberOnly.swift | 8 +- .../OpenAPIs/Models/ArrayOfNumberOnly.swift | 8 +- .../Classes/OpenAPIs/Models/ArrayTest.swift | 8 +- .../OpenAPIs/Models/Capitalization.swift | 8 +- .../Classes/OpenAPIs/Models/Cat.swift | 6 + .../Classes/OpenAPIs/Models/Category.swift | 16 +- .../Classes/OpenAPIs/Models/ClassModel.swift | 5 + .../Classes/OpenAPIs/Models/Client.swift | 6 + .../Classes/OpenAPIs/Models/Dog.swift | 6 + .../Classes/OpenAPIs/Models/EnumArrays.swift | 14 +- .../Classes/OpenAPIs/Models/EnumClass.swift | 1 + .../Classes/OpenAPIs/Models/EnumTest.swift | 16 +- .../Classes/OpenAPIs/Models/File.swift | 5 + .../OpenAPIs/Models/FileSchemaTestClass.swift | 6 + .../Classes/OpenAPIs/Models/FormatTest.swift | 6 + .../OpenAPIs/Models/HasOnlyReadOnly.swift | 6 + .../Classes/OpenAPIs/Models/List.swift | 8 +- .../Classes/OpenAPIs/Models/MapTest.swift | 21 +- ...opertiesAndAdditionalPropertiesClass.swift | 10 +- .../OpenAPIs/Models/Model200Response.swift | 7 +- .../Classes/OpenAPIs/Models/Name.swift | 7 +- .../Classes/OpenAPIs/Models/NumberOnly.swift | 8 +- .../Classes/OpenAPIs/Models/Order.swift | 19 +- .../OpenAPIs/Models/OuterComposite.swift | 8 +- .../Classes/OpenAPIs/Models/OuterEnum.swift | 7 +- .../Classes/OpenAPIs/Models/Pet.swift | 19 +- .../OpenAPIs/Models/ReadOnlyFirst.swift | 6 + .../Classes/OpenAPIs/Models/Return.swift | 7 +- .../OpenAPIs/Models/SpecialModelName.swift | 8 +- .../OpenAPIs/Models/StringBooleanMap.swift | 11 +- .../Classes/OpenAPIs/Models/Tag.swift | 8 +- .../Classes/OpenAPIs/Models/User.swift | 8 +- 57 files changed, 780 insertions(+), 461 deletions(-) diff --git a/modules/openapi-generator/src/main/resources/swift4/APIs.mustache b/modules/openapi-generator/src/main/resources/swift4/APIs.mustache index fb2a7791e71..6ed1abe5694 100644 --- a/modules/openapi-generator/src/main/resources/swift4/APIs.mustache +++ b/modules/openapi-generator/src/main/resources/swift4/APIs.mustache @@ -7,10 +7,10 @@ import Foundation open class {{projectName}}API { - open static var basePath = "{{{basePath}}}" - open static var credential: URLCredential? - open static var customHeaders: [String:String] = [:] - open static var requestBuilderFactory: RequestBuilderFactory = AlamofireRequestBuilderFactory() + public static var basePath = "{{{basePath}}}" + public static var credential: URLCredential? + public static var customHeaders: [String:String] = [:] + public static var requestBuilderFactory: RequestBuilderFactory = AlamofireRequestBuilderFactory() } open class RequestBuilder { diff --git a/modules/openapi-generator/src/main/resources/swift4/AlamofireImplementations.mustache b/modules/openapi-generator/src/main/resources/swift4/AlamofireImplementations.mustache index 2ade78f5a61..ac14f72c7d0 100644 --- a/modules/openapi-generator/src/main/resources/swift4/AlamofireImplementations.mustache +++ b/modules/openapi-generator/src/main/resources/swift4/AlamofireImplementations.mustache @@ -154,7 +154,7 @@ open class AlamofireRequestBuilder: RequestBuilder { if stringResponse.result.isFailure { completion( nil, - ErrorResponse.error(stringResponse.response?.statusCode ?? 500, stringResponse.data, stringResponse.result.error as Error!) + ErrorResponse.error(stringResponse.response?.statusCode ?? 500, stringResponse.data, stringResponse.result.error!) ) return } @@ -356,7 +356,7 @@ open class AlamofireDecodableRequestBuilder: AlamofireRequestBuilde if stringResponse.result.isFailure { completion( nil, - ErrorResponse.error(stringResponse.response?.statusCode ?? 500, stringResponse.data, stringResponse.result.error as Error!) + ErrorResponse.error(stringResponse.response?.statusCode ?? 500, stringResponse.data, stringResponse.result.error!) ) return } diff --git a/modules/openapi-generator/src/main/resources/swift4/CodableHelper.mustache b/modules/openapi-generator/src/main/resources/swift4/CodableHelper.mustache index bd72d81846d..e9d28accdf4 100644 --- a/modules/openapi-generator/src/main/resources/swift4/CodableHelper.mustache +++ b/modules/openapi-generator/src/main/resources/swift4/CodableHelper.mustache @@ -11,7 +11,7 @@ public typealias EncodeResult = (data: Data?, error: Error?) open class CodableHelper { - open static var dateformatter: DateFormatter? + public static var dateformatter: DateFormatter? open class func decode(_ type: T.Type, from data: Data) -> (decodableObj: T?, error: Error?) where T : Decodable { var returnedDecodable: T? = nil diff --git a/modules/openapi-generator/src/main/resources/swift4/Configuration.mustache b/modules/openapi-generator/src/main/resources/swift4/Configuration.mustache index f8180752b67..516590da5d9 100644 --- a/modules/openapi-generator/src/main/resources/swift4/Configuration.mustache +++ b/modules/openapi-generator/src/main/resources/swift4/Configuration.mustache @@ -10,6 +10,6 @@ open class Configuration { // This value is used to configure the date formatter that is used to serialize dates into JSON format. // You must set it prior to encoding any dates, and it will only be read once. - open static var dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSZZZZZ" + public static var dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSZZZZZ" } \ No newline at end of file diff --git a/modules/openapi-generator/src/main/resources/swift4/Models.mustache b/modules/openapi-generator/src/main/resources/swift4/Models.mustache index 42f8186ae4a..40856389035 100644 --- a/modules/openapi-generator/src/main/resources/swift4/Models.mustache +++ b/modules/openapi-generator/src/main/resources/swift4/Models.mustache @@ -15,9 +15,9 @@ public enum ErrorResponse : Error { } open class Response { - open let statusCode: Int - open let header: [String: String] - open let body: T? + public let statusCode: Int + public let header: [String: String] + public let body: T? public init(statusCode: Int, header: [String: String], body: T?) { self.statusCode = statusCode diff --git a/samples/client/petstore/swift4/default/.openapi-generator/VERSION b/samples/client/petstore/swift4/default/.openapi-generator/VERSION index 6d94c9c2e12..e24c1f857e0 100644 --- a/samples/client/petstore/swift4/default/.openapi-generator/VERSION +++ b/samples/client/petstore/swift4/default/.openapi-generator/VERSION @@ -1 +1 @@ -3.3.0-SNAPSHOT \ No newline at end of file +3.3.3-SNAPSHOT \ No newline at end of file diff --git a/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/APIHelper.swift b/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/APIHelper.swift index 5c99a37d584..3c7b53f8149 100644 --- a/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/APIHelper.swift +++ b/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/APIHelper.swift @@ -7,8 +7,8 @@ import Foundation public struct APIHelper { - public static func rejectNil(_ source: [String: Any?]) -> [String: Any]? { - let destination = source.reduce(into: [String: Any]()) { result, item in + public static func rejectNil(_ source: [String:Any?]) -> [String:Any]? { + let destination = source.reduce(into: [String: Any]()) { (result, item) in if let value = item.value { result[item.key] = value } @@ -20,22 +20,22 @@ public struct APIHelper { return destination } - public static func rejectNilHeaders(_ source: [String: Any?]) -> [String: String] { - return source.reduce(into: [String: String]()) { result, item in + public static func rejectNilHeaders(_ source: [String:Any?]) -> [String:String] { + return source.reduce(into: [String: String]()) { (result, item) in if let collection = item.value as? Array { - result[item.key] = collection.filter({ $0 != nil }).map { "\($0!)" }.joined(separator: ",") + result[item.key] = collection.filter({ $0 != nil }).map{ "\($0!)" }.joined(separator: ",") } else if let value: Any = item.value { result[item.key] = "\(value)" } } } - public static func convertBoolToString(_ source: [String: Any]?) -> [String: Any]? { + public static func convertBoolToString(_ source: [String: Any]?) -> [String:Any]? { guard let source = source else { return nil } - return source.reduce(into: [String: Any](), { result, item in + return source.reduce(into: [String: Any](), { (result, item) in switch item.value { case let x as Bool: result[item.key] = x.description @@ -45,10 +45,11 @@ public struct APIHelper { }) } - public static func mapValuesToQueryItems(_ source: [String: Any?]) -> [URLQueryItem]? { - let destination = source.filter({ $0.value != nil }).reduce(into: [URLQueryItem]()) { result, item in + + public static func mapValuesToQueryItems(_ source: [String:Any?]) -> [URLQueryItem]? { + let destination = source.filter({ $0.value != nil}).reduce(into: [URLQueryItem]()) { (result, item) in if let collection = item.value as? Array { - let value = collection.filter({ $0 != nil }).map({ "\($0!)" }).joined(separator: ",") + let value = collection.filter({ $0 != nil }).map({"\($0!)"}).joined(separator: ",") result.append(URLQueryItem(name: item.key, value: value)) } else if let value = item.value { result.append(URLQueryItem(name: item.key, value: "\(value)")) @@ -61,3 +62,4 @@ public struct APIHelper { return destination } } + diff --git a/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/APIs.swift b/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/APIs.swift index e07b556f393..2890bffa274 100644 --- a/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/APIs.swift +++ b/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/APIs.swift @@ -7,24 +7,24 @@ import Foundation open class PetstoreClientAPI { - open static var basePath = "http://petstore.swagger.io:80/v2" - open static var credential: URLCredential? - open static var customHeaders: [String: String] = [:] - open static var requestBuilderFactory: RequestBuilderFactory = AlamofireRequestBuilderFactory() + public static var basePath = "http://petstore.swagger.io:80/v2" + public static var credential: URLCredential? + public static var customHeaders: [String:String] = [:] + public static var requestBuilderFactory: RequestBuilderFactory = AlamofireRequestBuilderFactory() } open class RequestBuilder { var credential: URLCredential? - var headers: [String: String] - public let parameters: [String: Any]? + var headers: [String:String] + public let parameters: [String:Any]? public let isBody: Bool public let method: String public let URLString: String /// Optional block to obtain a reference to the request's progress instance when available. - public var onProgressReady: ((Progress) -> Void)? + public var onProgressReady: ((Progress) -> ())? - public required init(method: String, URLString: String, parameters: [String: Any]?, isBody: Bool, headers: [String: String] = [:]) { + required public init(method: String, URLString: String, parameters: [String:Any]?, isBody: Bool, headers: [String:String] = [:]) { self.method = method self.URLString = URLString self.parameters = parameters @@ -34,13 +34,13 @@ open class RequestBuilder { addHeaders(PetstoreClientAPI.customHeaders) } - open func addHeaders(_ aHeaders: [String: String]) { + open func addHeaders(_ aHeaders:[String:String]) { for (header, value) in aHeaders { headers[header] = value } } - open func execute(_: @escaping (_ response: Response?, _ error: Error?) -> Void) {} + open func execute(_ completion: @escaping (_ response: Response?, _ error: Error?) -> Void) { } public func addHeader(name: String, value: String) -> Self { if !value.isEmpty { @@ -50,12 +50,12 @@ open class RequestBuilder { } open func addCredential() -> Self { - credential = PetstoreClientAPI.credential + self.credential = PetstoreClientAPI.credential return self } } public protocol RequestBuilderFactory { func getNonDecodableBuilder() -> RequestBuilder.Type - func getBuilder() -> RequestBuilder.Type + func getBuilder() -> RequestBuilder.Type } diff --git a/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/APIs/AnotherFakeAPI.swift b/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/APIs/AnotherFakeAPI.swift index 34a378977c8..a31864437b1 100644 --- a/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/APIs/AnotherFakeAPI.swift +++ b/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/APIs/AnotherFakeAPI.swift @@ -5,28 +5,31 @@ // https://openapi-generator.tech // -import Alamofire import Foundation +import Alamofire + + open class AnotherFakeAPI { /** To test special tags - - - parameter client: (body) client model + + - parameter client: (body) client model - parameter completion: completion handler to receive the data and the error objects */ - open class func call123testSpecialTags(client: Client, completion: @escaping ((_ data: Client?, _ error: Error?) -> Void)) { + open class func call123testSpecialTags(client: Client, completion: @escaping ((_ data: Client?,_ error: Error?) -> Void)) { call123testSpecialTagsWithRequestBuilder(client: client).execute { (response, error) -> Void in completion(response?.body, error) } } + /** To test special tags - PATCH /another-fake/dummy - To test special tags and operation ID starting with number - - parameter client: (body) client model - - returns: RequestBuilder + - parameter client: (body) client model + - returns: RequestBuilder */ open class func call123testSpecialTagsWithRequestBuilder(client: Client) -> RequestBuilder { let path = "/another-fake/dummy" @@ -39,4 +42,5 @@ open class AnotherFakeAPI { return requestBuilder.init(method: "PATCH", URLString: (url?.string ?? URLString), parameters: parameters, isBody: true) } + } diff --git a/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/APIs/FakeAPI.swift b/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/APIs/FakeAPI.swift index 6ee99636ce7..02b129d41ef 100644 --- a/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/APIs/FakeAPI.swift +++ b/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/APIs/FakeAPI.swift @@ -5,8 +5,10 @@ // https://openapi-generator.tech // -import Alamofire import Foundation +import Alamofire + + open class FakeAPI { /** @@ -14,17 +16,18 @@ open class FakeAPI { - parameter body: (body) Input boolean as post body (optional) - parameter completion: completion handler to receive the data and the error objects */ - open class func fakeOuterBooleanSerialize(body: Bool? = nil, completion: @escaping ((_ data: Bool?, _ error: Error?) -> Void)) { + open class func fakeOuterBooleanSerialize(body: Bool? = nil, completion: @escaping ((_ data: Bool?,_ error: Error?) -> Void)) { fakeOuterBooleanSerializeWithRequestBuilder(body: body).execute { (response, error) -> Void in completion(response?.body, error) } } + /** - POST /fake/outer/boolean - Test serialization of outer boolean types - parameter body: (body) Input boolean as post body (optional) - - returns: RequestBuilder + - returns: RequestBuilder */ open class func fakeOuterBooleanSerializeWithRequestBuilder(body: Bool? = nil) -> RequestBuilder { let path = "/fake/outer/boolean" @@ -43,17 +46,18 @@ open class FakeAPI { - parameter outerComposite: (body) Input composite as post body (optional) - parameter completion: completion handler to receive the data and the error objects */ - open class func fakeOuterCompositeSerialize(outerComposite: OuterComposite? = nil, completion: @escaping ((_ data: OuterComposite?, _ error: Error?) -> Void)) { + open class func fakeOuterCompositeSerialize(outerComposite: OuterComposite? = nil, completion: @escaping ((_ data: OuterComposite?,_ error: Error?) -> Void)) { fakeOuterCompositeSerializeWithRequestBuilder(outerComposite: outerComposite).execute { (response, error) -> Void in completion(response?.body, error) } } + /** - POST /fake/outer/composite - Test serialization of object with outer number type - parameter outerComposite: (body) Input composite as post body (optional) - - returns: RequestBuilder + - returns: RequestBuilder */ open class func fakeOuterCompositeSerializeWithRequestBuilder(outerComposite: OuterComposite? = nil) -> RequestBuilder { let path = "/fake/outer/composite" @@ -72,17 +76,18 @@ open class FakeAPI { - parameter body: (body) Input number as post body (optional) - parameter completion: completion handler to receive the data and the error objects */ - open class func fakeOuterNumberSerialize(body: Double? = nil, completion: @escaping ((_ data: Double?, _ error: Error?) -> Void)) { + open class func fakeOuterNumberSerialize(body: Double? = nil, completion: @escaping ((_ data: Double?,_ error: Error?) -> Void)) { fakeOuterNumberSerializeWithRequestBuilder(body: body).execute { (response, error) -> Void in completion(response?.body, error) } } + /** - POST /fake/outer/number - Test serialization of outer number types - parameter body: (body) Input number as post body (optional) - - returns: RequestBuilder + - returns: RequestBuilder */ open class func fakeOuterNumberSerializeWithRequestBuilder(body: Double? = nil) -> RequestBuilder { let path = "/fake/outer/number" @@ -101,17 +106,18 @@ open class FakeAPI { - parameter body: (body) Input string as post body (optional) - parameter completion: completion handler to receive the data and the error objects */ - open class func fakeOuterStringSerialize(body: String? = nil, completion: @escaping ((_ data: String?, _ error: Error?) -> Void)) { + open class func fakeOuterStringSerialize(body: String? = nil, completion: @escaping ((_ data: String?,_ error: Error?) -> Void)) { fakeOuterStringSerializeWithRequestBuilder(body: body).execute { (response, error) -> Void in completion(response?.body, error) } } + /** - POST /fake/outer/string - Test serialization of outer string types - parameter body: (body) Input string as post body (optional) - - returns: RequestBuilder + - returns: RequestBuilder */ open class func fakeOuterStringSerializeWithRequestBuilder(body: String? = nil) -> RequestBuilder { let path = "/fake/outer/string" @@ -127,11 +133,11 @@ open class FakeAPI { /** - - parameter fileSchemaTestClass: (body) + - parameter fileSchemaTestClass: (body) - parameter completion: completion handler to receive the data and the error objects */ - open class func testBodyWithFileSchema(fileSchemaTestClass: FileSchemaTestClass, completion: @escaping ((_ data: Void?, _ error: Error?) -> Void)) { - testBodyWithFileSchemaWithRequestBuilder(fileSchemaTestClass: fileSchemaTestClass).execute { (_, error) -> Void in + open class func testBodyWithFileSchema(fileSchemaTestClass: FileSchemaTestClass, completion: @escaping ((_ data: Void?,_ error: Error?) -> Void)) { + testBodyWithFileSchemaWithRequestBuilder(fileSchemaTestClass: fileSchemaTestClass).execute { (response, error) -> Void in if error == nil { completion((), error) } else { @@ -140,11 +146,12 @@ open class FakeAPI { } } + /** - PUT /fake/body-with-file-schema - For this test, the body for this request much reference a schema named `File`. - - parameter fileSchemaTestClass: (body) - - returns: RequestBuilder + - parameter fileSchemaTestClass: (body) + - returns: RequestBuilder */ open class func testBodyWithFileSchemaWithRequestBuilder(fileSchemaTestClass: FileSchemaTestClass) -> RequestBuilder { let path = "/fake/body-with-file-schema" @@ -160,12 +167,12 @@ open class FakeAPI { /** - - parameter query: (query) - - parameter user: (body) + - parameter query: (query) + - parameter user: (body) - parameter completion: completion handler to receive the data and the error objects */ - open class func testBodyWithQueryParams(query: String, user: User, completion: @escaping ((_ data: Void?, _ error: Error?) -> Void)) { - testBodyWithQueryParamsWithRequestBuilder(query: query, user: user).execute { (_, error) -> Void in + open class func testBodyWithQueryParams(query: String, user: User, completion: @escaping ((_ data: Void?,_ error: Error?) -> Void)) { + testBodyWithQueryParamsWithRequestBuilder(query: query, user: user).execute { (response, error) -> Void in if error == nil { completion((), error) } else { @@ -174,11 +181,12 @@ open class FakeAPI { } } + /** - PUT /fake/body-with-query-params - - parameter query: (query) - - parameter user: (body) - - returns: RequestBuilder + - parameter query: (query) + - parameter user: (body) + - returns: RequestBuilder */ open class func testBodyWithQueryParamsWithRequestBuilder(query: String, user: User) -> RequestBuilder { let path = "/fake/body-with-query-params" @@ -187,7 +195,7 @@ open class FakeAPI { var url = URLComponents(string: URLString) url?.queryItems = APIHelper.mapValuesToQueryItems([ - "query": query, + "query": query ]) let requestBuilder: RequestBuilder.Type = PetstoreClientAPI.requestBuilderFactory.getNonDecodableBuilder() @@ -197,22 +205,23 @@ open class FakeAPI { /** To test \"client\" model - - - parameter client: (body) client model + + - parameter client: (body) client model - parameter completion: completion handler to receive the data and the error objects */ - open class func testClientModel(client: Client, completion: @escaping ((_ data: Client?, _ error: Error?) -> Void)) { + open class func testClientModel(client: Client, completion: @escaping ((_ data: Client?,_ error: Error?) -> Void)) { testClientModelWithRequestBuilder(client: client).execute { (response, error) -> Void in completion(response?.body, error) } } + /** To test \"client\" model - PATCH /fake - To test \"client\" model - - parameter client: (body) client model - - returns: RequestBuilder + - parameter client: (body) client model + - returns: RequestBuilder */ open class func testClientModelWithRequestBuilder(client: Client) -> RequestBuilder { let path = "/fake" @@ -227,12 +236,12 @@ open class FakeAPI { } /** - Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트 - - - parameter number: (form) None - - parameter double: (form) None - - parameter patternWithoutDelimiter: (form) None - - parameter byte: (form) None + Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트 + + - parameter number: (form) None + - parameter double: (form) None + - parameter patternWithoutDelimiter: (form) None + - parameter byte: (form) None - parameter integer: (form) None (optional) - parameter int32: (form) None (optional) - parameter int64: (form) None (optional) @@ -245,8 +254,8 @@ open class FakeAPI { - parameter callback: (form) None (optional) - parameter completion: completion handler to receive the data and the error objects */ - open class func testEndpointParameters(number: Double, double: Double, patternWithoutDelimiter: String, byte: Data, integer: Int? = nil, int32: Int? = nil, int64: Int64? = nil, float: Float? = nil, string: String? = nil, binary: URL? = nil, date: Date? = nil, dateTime: Date? = nil, password: String? = nil, callback: String? = nil, completion: @escaping ((_ data: Void?, _ error: Error?) -> Void)) { - testEndpointParametersWithRequestBuilder(number: number, double: double, patternWithoutDelimiter: patternWithoutDelimiter, byte: byte, integer: integer, int32: int32, int64: int64, float: float, string: string, binary: binary, date: date, dateTime: dateTime, password: password, callback: callback).execute { (_, error) -> Void in + open class func testEndpointParameters(number: Double, double: Double, patternWithoutDelimiter: String, byte: Data, integer: Int? = nil, int32: Int? = nil, int64: Int64? = nil, float: Float? = nil, string: String? = nil, binary: URL? = nil, date: Date? = nil, dateTime: Date? = nil, password: String? = nil, callback: String? = nil, completion: @escaping ((_ data: Void?,_ error: Error?) -> Void)) { + testEndpointParametersWithRequestBuilder(number: number, double: double, patternWithoutDelimiter: patternWithoutDelimiter, byte: byte, integer: integer, int32: int32, int64: int64, float: float, string: string, binary: binary, date: date, dateTime: dateTime, password: password, callback: callback).execute { (response, error) -> Void in if error == nil { completion((), error) } else { @@ -255,17 +264,18 @@ open class FakeAPI { } } + /** - Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트 + Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트 - POST /fake - - Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트 + - Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트 - BASIC: - - type: http - - name: http_basic_test - - parameter number: (form) None - - parameter double: (form) None - - parameter patternWithoutDelimiter: (form) None - - parameter byte: (form) None + - type: http + - name: http_basic_test + - parameter number: (form) None + - parameter double: (form) None + - parameter patternWithoutDelimiter: (form) None + - parameter byte: (form) None - parameter integer: (form) None (optional) - parameter int32: (form) None (optional) - parameter int64: (form) None (optional) @@ -276,12 +286,12 @@ open class FakeAPI { - parameter dateTime: (form) None (optional) - parameter password: (form) None (optional) - parameter callback: (form) None (optional) - - returns: RequestBuilder + - returns: RequestBuilder */ open class func testEndpointParametersWithRequestBuilder(number: Double, double: Double, patternWithoutDelimiter: String, byte: Data, integer: Int? = nil, int32: Int? = nil, int64: Int64? = nil, float: Float? = nil, string: String? = nil, binary: URL? = nil, date: Date? = nil, dateTime: Date? = nil, password: String? = nil, callback: String? = nil) -> RequestBuilder { let path = "/fake" let URLString = PetstoreClientAPI.basePath + path - let formParams: [String: Any?] = [ + let formParams: [String:Any?] = [ "integer": integer?.encodeToJSON(), "int32": int32?.encodeToJSON(), "int64": int64?.encodeToJSON(), @@ -295,12 +305,12 @@ open class FakeAPI { "date": date?.encodeToJSON(), "dateTime": dateTime?.encodeToJSON(), "password": password, - "callback": callback, + "callback": callback ] let nonNullParameters = APIHelper.rejectNil(formParams) let parameters = APIHelper.convertBoolToString(nonNullParameters) - + let url = URLComponents(string: URLString) let requestBuilder: RequestBuilder.Type = PetstoreClientAPI.requestBuilderFactory.getNonDecodableBuilder() @@ -377,7 +387,7 @@ open class FakeAPI { /** To test enum parameters - + - parameter enumHeaderStringArray: (header) Header parameter enum test (string array) (optional) - parameter enumHeaderString: (header) Header parameter enum test (string) (optional, default to .-efg) - parameter enumQueryStringArray: (query) Query parameter enum test (string array) (optional) @@ -388,8 +398,8 @@ open class FakeAPI { - parameter enumFormString: (form) Form parameter enum test (string) (optional, default to .-efg) - parameter completion: completion handler to receive the data and the error objects */ - open class func testEnumParameters(enumHeaderStringArray: [String]? = nil, enumHeaderString: EnumHeaderString_testEnumParameters? = nil, enumQueryStringArray: [String]? = nil, enumQueryString: EnumQueryString_testEnumParameters? = nil, enumQueryInteger: EnumQueryInteger_testEnumParameters? = nil, enumQueryDouble: EnumQueryDouble_testEnumParameters? = nil, enumFormStringArray: [String]? = nil, enumFormString: EnumFormString_testEnumParameters? = nil, completion: @escaping ((_ data: Void?, _ error: Error?) -> Void)) { - testEnumParametersWithRequestBuilder(enumHeaderStringArray: enumHeaderStringArray, enumHeaderString: enumHeaderString, enumQueryStringArray: enumQueryStringArray, enumQueryString: enumQueryString, enumQueryInteger: enumQueryInteger, enumQueryDouble: enumQueryDouble, enumFormStringArray: enumFormStringArray, enumFormString: enumFormString).execute { (_, error) -> Void in + open class func testEnumParameters(enumHeaderStringArray: [String]? = nil, enumHeaderString: EnumHeaderString_testEnumParameters? = nil, enumQueryStringArray: [String]? = nil, enumQueryString: EnumQueryString_testEnumParameters? = nil, enumQueryInteger: EnumQueryInteger_testEnumParameters? = nil, enumQueryDouble: EnumQueryDouble_testEnumParameters? = nil, enumFormStringArray: [String]? = nil, enumFormString: EnumFormString_testEnumParameters? = nil, completion: @escaping ((_ data: Void?,_ error: Error?) -> Void)) { + testEnumParametersWithRequestBuilder(enumHeaderStringArray: enumHeaderStringArray, enumHeaderString: enumHeaderString, enumQueryStringArray: enumQueryStringArray, enumQueryString: enumQueryString, enumQueryInteger: enumQueryInteger, enumQueryDouble: enumQueryDouble, enumFormStringArray: enumFormStringArray, enumFormString: enumFormString).execute { (response, error) -> Void in if error == nil { completion((), error) } else { @@ -398,6 +408,7 @@ open class FakeAPI { } } + /** To test enum parameters - GET /fake @@ -410,29 +421,29 @@ open class FakeAPI { - parameter enumQueryDouble: (query) Query parameter enum test (double) (optional) - parameter enumFormStringArray: (form) Form parameter enum test (string array) (optional, default to .$) - parameter enumFormString: (form) Form parameter enum test (string) (optional, default to .-efg) - - returns: RequestBuilder + - returns: RequestBuilder */ open class func testEnumParametersWithRequestBuilder(enumHeaderStringArray: [String]? = nil, enumHeaderString: EnumHeaderString_testEnumParameters? = nil, enumQueryStringArray: [String]? = nil, enumQueryString: EnumQueryString_testEnumParameters? = nil, enumQueryInteger: EnumQueryInteger_testEnumParameters? = nil, enumQueryDouble: EnumQueryDouble_testEnumParameters? = nil, enumFormStringArray: [String]? = nil, enumFormString: EnumFormString_testEnumParameters? = nil) -> RequestBuilder { let path = "/fake" let URLString = PetstoreClientAPI.basePath + path - let formParams: [String: Any?] = [ + let formParams: [String:Any?] = [ "enum_form_string_array": enumFormStringArray, - "enum_form_string": enumFormString?.rawValue, + "enum_form_string": enumFormString?.rawValue ] let nonNullParameters = APIHelper.rejectNil(formParams) let parameters = APIHelper.convertBoolToString(nonNullParameters) - + var url = URLComponents(string: URLString) url?.queryItems = APIHelper.mapValuesToQueryItems([ - "enum_query_string_array": enumQueryStringArray, - "enum_query_string": enumQueryString?.rawValue, - "enum_query_integer": enumQueryInteger?.rawValue, - "enum_query_double": enumQueryDouble?.rawValue, + "enum_query_string_array": enumQueryStringArray, + "enum_query_string": enumQueryString?.rawValue, + "enum_query_integer": enumQueryInteger?.rawValue, + "enum_query_double": enumQueryDouble?.rawValue ]) let nillableHeaders: [String: Any?] = [ "enum_header_string_array": enumHeaderStringArray, - "enum_header_string": enumHeaderString?.rawValue, + "enum_header_string": enumHeaderString?.rawValue ] let headerParameters = APIHelper.rejectNilHeaders(nillableHeaders) @@ -442,13 +453,15 @@ open class FakeAPI { } /** - test inline additionalProperties - - - parameter requestBody: (body) request body + Fake endpoint to test group parameters (optional) + + - parameter stringGroup: (query) String in group parameters (optional) + - parameter booleanGroup: (header) Boolean in group parameters (optional) + - parameter int64Group: (query) Integer in group parameters (optional) - parameter completion: completion handler to receive the data and the error objects */ - open class func testInlineAdditionalProperties(requestBody: [String: String], completion: @escaping ((_ data: Void?, _ error: Error?) -> Void)) { - testInlineAdditionalPropertiesWithRequestBuilder(requestBody: requestBody).execute { (_, error) -> Void in + open class func testGroupParameters(stringGroup: Int? = nil, booleanGroup: Bool? = nil, int64Group: Int64? = nil, completion: @escaping ((_ data: Void?,_ error: Error?) -> Void)) { + testGroupParametersWithRequestBuilder(stringGroup: stringGroup, booleanGroup: booleanGroup, int64Group: int64Group).execute { (response, error) -> Void in if error == nil { completion((), error) } else { @@ -457,13 +470,60 @@ open class FakeAPI { } } + + /** + Fake endpoint to test group parameters (optional) + - DELETE /fake + - Fake endpoint to test group parameters (optional) + - parameter stringGroup: (query) String in group parameters (optional) + - parameter booleanGroup: (header) Boolean in group parameters (optional) + - parameter int64Group: (query) Integer in group parameters (optional) + - returns: RequestBuilder + */ + open class func testGroupParametersWithRequestBuilder(stringGroup: Int? = nil, booleanGroup: Bool? = nil, int64Group: Int64? = nil) -> RequestBuilder { + let path = "/fake" + let URLString = PetstoreClientAPI.basePath + path + let parameters: [String:Any]? = nil + + var url = URLComponents(string: URLString) + url?.queryItems = APIHelper.mapValuesToQueryItems([ + "string_group": stringGroup?.encodeToJSON(), + "int64_group": int64Group?.encodeToJSON() + ]) + let nillableHeaders: [String: Any?] = [ + "boolean_group": booleanGroup + ] + let headerParameters = APIHelper.rejectNilHeaders(nillableHeaders) + + let requestBuilder: RequestBuilder.Type = PetstoreClientAPI.requestBuilderFactory.getNonDecodableBuilder() + + return requestBuilder.init(method: "DELETE", URLString: (url?.string ?? URLString), parameters: parameters, isBody: false, headers: headerParameters) + } + + /** + test inline additionalProperties + + - parameter requestBody: (body) request body + - parameter completion: completion handler to receive the data and the error objects + */ + open class func testInlineAdditionalProperties(requestBody: [String:String], completion: @escaping ((_ data: Void?,_ error: Error?) -> Void)) { + testInlineAdditionalPropertiesWithRequestBuilder(requestBody: requestBody).execute { (response, error) -> Void in + if error == nil { + completion((), error) + } else { + completion(nil, error) + } + } + } + + /** test inline additionalProperties - POST /fake/inline-additionalProperties - - parameter requestBody: (body) request body - - returns: RequestBuilder + - parameter requestBody: (body) request body + - returns: RequestBuilder */ - open class func testInlineAdditionalPropertiesWithRequestBuilder(requestBody: [String: String]) -> RequestBuilder { + open class func testInlineAdditionalPropertiesWithRequestBuilder(requestBody: [String:String]) -> RequestBuilder { let path = "/fake/inline-additionalProperties" let URLString = PetstoreClientAPI.basePath + path let parameters = JSONEncodingHelper.encodingParameters(forEncodableObject: requestBody) @@ -477,13 +537,13 @@ open class FakeAPI { /** test json serialization of form data - - - parameter param: (form) field1 - - parameter param2: (form) field2 + + - parameter param: (form) field1 + - parameter param2: (form) field2 - parameter completion: completion handler to receive the data and the error objects */ - open class func testJsonFormData(param: String, param2: String, completion: @escaping ((_ data: Void?, _ error: Error?) -> Void)) { - testJsonFormDataWithRequestBuilder(param: param, param2: param2).execute { (_, error) -> Void in + open class func testJsonFormData(param: String, param2: String, completion: @escaping ((_ data: Void?,_ error: Error?) -> Void)) { + testJsonFormDataWithRequestBuilder(param: param, param2: param2).execute { (response, error) -> Void in if error == nil { completion((), error) } else { @@ -492,28 +552,30 @@ open class FakeAPI { } } + /** test json serialization of form data - GET /fake/jsonFormData - - parameter param: (form) field1 - - parameter param2: (form) field2 - - returns: RequestBuilder + - parameter param: (form) field1 + - parameter param2: (form) field2 + - returns: RequestBuilder */ open class func testJsonFormDataWithRequestBuilder(param: String, param2: String) -> RequestBuilder { let path = "/fake/jsonFormData" let URLString = PetstoreClientAPI.basePath + path - let formParams: [String: Any?] = [ + let formParams: [String:Any?] = [ "param": param, - "param2": param2, + "param2": param2 ] let nonNullParameters = APIHelper.rejectNil(formParams) let parameters = APIHelper.convertBoolToString(nonNullParameters) - + let url = URLComponents(string: URLString) let requestBuilder: RequestBuilder.Type = PetstoreClientAPI.requestBuilderFactory.getNonDecodableBuilder() return requestBuilder.init(method: "GET", URLString: (url?.string ?? URLString), parameters: parameters, isBody: false) } + } diff --git a/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/APIs/FakeClassnameTags123API.swift b/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/APIs/FakeClassnameTags123API.swift index 43fb8dec518..8bb79ddd28f 100644 --- a/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/APIs/FakeClassnameTags123API.swift +++ b/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/APIs/FakeClassnameTags123API.swift @@ -5,31 +5,34 @@ // https://openapi-generator.tech // -import Alamofire import Foundation +import Alamofire + + open class FakeClassnameTags123API { /** To test class name in snake case - - - parameter client: (body) client model + + - parameter client: (body) client model - parameter completion: completion handler to receive the data and the error objects */ - open class func testClassname(client: Client, completion: @escaping ((_ data: Client?, _ error: Error?) -> Void)) { + open class func testClassname(client: Client, completion: @escaping ((_ data: Client?,_ error: Error?) -> Void)) { testClassnameWithRequestBuilder(client: client).execute { (response, error) -> Void in completion(response?.body, error) } } + /** To test class name in snake case - PATCH /fake_classname_test - To test class name in snake case - API Key: - - type: apiKey api_key_query (QUERY) - - name: api_key_query - - parameter client: (body) client model - - returns: RequestBuilder + - type: apiKey api_key_query (QUERY) + - name: api_key_query + - parameter client: (body) client model + - returns: RequestBuilder */ open class func testClassnameWithRequestBuilder(client: Client) -> RequestBuilder { let path = "/fake_classname_test" @@ -42,4 +45,5 @@ open class FakeClassnameTags123API { return requestBuilder.init(method: "PATCH", URLString: (url?.string ?? URLString), parameters: parameters, isBody: true) } + } diff --git a/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/APIs/PetAPI.swift b/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/APIs/PetAPI.swift index b975c79c1b6..266ac7c402b 100644 --- a/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/APIs/PetAPI.swift +++ b/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/APIs/PetAPI.swift @@ -5,18 +5,20 @@ // https://openapi-generator.tech // -import Alamofire import Foundation +import Alamofire + + open class PetAPI { /** Add a new pet to the store - - - parameter pet: (body) Pet object that needs to be added to the store + + - parameter pet: (body) Pet object that needs to be added to the store - parameter completion: completion handler to receive the data and the error objects */ - open class func addPet(pet: Pet, completion: @escaping ((_ data: Void?, _ error: Error?) -> Void)) { - addPetWithRequestBuilder(pet: pet).execute { (_, error) -> Void in + open class func addPet(pet: Pet, completion: @escaping ((_ data: Void?,_ error: Error?) -> Void)) { + addPetWithRequestBuilder(pet: pet).execute { (response, error) -> Void in if error == nil { completion((), error) } else { @@ -25,14 +27,15 @@ open class PetAPI { } } + /** Add a new pet to the store - POST /pet - OAuth: - - type: oauth2 - - name: petstore_auth - - parameter pet: (body) Pet object that needs to be added to the store - - returns: RequestBuilder + - type: oauth2 + - name: petstore_auth + - parameter pet: (body) Pet object that needs to be added to the store + - returns: RequestBuilder */ open class func addPetWithRequestBuilder(pet: Pet) -> RequestBuilder { let path = "/pet" @@ -48,13 +51,13 @@ open class PetAPI { /** Deletes a pet - - - parameter petId: (path) Pet id to delete + + - parameter petId: (path) Pet id to delete - parameter apiKey: (header) (optional) - parameter completion: completion handler to receive the data and the error objects */ - open class func deletePet(petId: Int64, apiKey: String? = nil, completion: @escaping ((_ data: Void?, _ error: Error?) -> Void)) { - deletePetWithRequestBuilder(petId: petId, apiKey: apiKey).execute { (_, error) -> Void in + open class func deletePet(petId: Int64, apiKey: String? = nil, completion: @escaping ((_ data: Void?,_ error: Error?) -> Void)) { + deletePetWithRequestBuilder(petId: petId, apiKey: apiKey).execute { (response, error) -> Void in if error == nil { completion((), error) } else { @@ -63,15 +66,16 @@ open class PetAPI { } } + /** Deletes a pet - DELETE /pet/{petId} - OAuth: - - type: oauth2 - - name: petstore_auth - - parameter petId: (path) Pet id to delete + - type: oauth2 + - name: petstore_auth + - parameter petId: (path) Pet id to delete - parameter apiKey: (header) (optional) - - returns: RequestBuilder + - returns: RequestBuilder */ open class func deletePetWithRequestBuilder(petId: Int64, apiKey: String? = nil) -> RequestBuilder { var path = "/pet/{petId}" @@ -79,11 +83,11 @@ open class PetAPI { let petIdPostEscape = petIdPreEscape.addingPercentEncoding(withAllowedCharacters: .urlPathAllowed) ?? "" path = path.replacingOccurrences(of: "{petId}", with: petIdPostEscape, options: .literal, range: nil) let URLString = PetstoreClientAPI.basePath + path - let parameters: [String: Any]? = nil - + let parameters: [String:Any]? = nil + let url = URLComponents(string: URLString) let nillableHeaders: [String: Any?] = [ - "api_key": apiKey, + "api_key": apiKey ] let headerParameters = APIHelper.rejectNilHeaders(nillableHeaders) @@ -96,41 +100,42 @@ open class PetAPI { * enum for parameter status */ public enum Status_findPetsByStatus: String { - case available - case pending - case sold + case available = "available" + case pending = "pending" + case sold = "sold" } /** Finds Pets by status - - - parameter status: (query) Status values that need to be considered for filter + + - parameter status: (query) Status values that need to be considered for filter - parameter completion: completion handler to receive the data and the error objects */ - open class func findPetsByStatus(status: [String], completion: @escaping ((_ data: [Pet]?, _ error: Error?) -> Void)) { + open class func findPetsByStatus(status: [String], completion: @escaping ((_ data: [Pet]?,_ error: Error?) -> Void)) { findPetsByStatusWithRequestBuilder(status: status).execute { (response, error) -> Void in completion(response?.body, error) } } + /** Finds Pets by status - GET /pet/findByStatus - Multiple status values can be provided with comma separated strings - OAuth: - - type: oauth2 - - name: petstore_auth - - parameter status: (query) Status values that need to be considered for filter - - returns: RequestBuilder<[Pet]> + - type: oauth2 + - name: petstore_auth + - parameter status: (query) Status values that need to be considered for filter + - returns: RequestBuilder<[Pet]> */ open class func findPetsByStatusWithRequestBuilder(status: [String]) -> RequestBuilder<[Pet]> { let path = "/pet/findByStatus" let URLString = PetstoreClientAPI.basePath + path - let parameters: [String: Any]? = nil - + let parameters: [String:Any]? = nil + var url = URLComponents(string: URLString) url?.queryItems = APIHelper.mapValuesToQueryItems([ - "status": status, + "status": status ]) let requestBuilder: RequestBuilder<[Pet]>.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder() @@ -140,34 +145,35 @@ open class PetAPI { /** Finds Pets by tags - - - parameter tags: (query) Tags to filter by + + - parameter tags: (query) Tags to filter by - parameter completion: completion handler to receive the data and the error objects */ - open class func findPetsByTags(tags: [String], completion: @escaping ((_ data: [Pet]?, _ error: Error?) -> Void)) { + open class func findPetsByTags(tags: [String], completion: @escaping ((_ data: [Pet]?,_ error: Error?) -> Void)) { findPetsByTagsWithRequestBuilder(tags: tags).execute { (response, error) -> Void in completion(response?.body, error) } } + /** Finds Pets by tags - GET /pet/findByTags - Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing. - OAuth: - - type: oauth2 - - name: petstore_auth - - parameter tags: (query) Tags to filter by - - returns: RequestBuilder<[Pet]> + - type: oauth2 + - name: petstore_auth + - parameter tags: (query) Tags to filter by + - returns: RequestBuilder<[Pet]> */ open class func findPetsByTagsWithRequestBuilder(tags: [String]) -> RequestBuilder<[Pet]> { let path = "/pet/findByTags" let URLString = PetstoreClientAPI.basePath + path - let parameters: [String: Any]? = nil - + let parameters: [String:Any]? = nil + var url = URLComponents(string: URLString) url?.queryItems = APIHelper.mapValuesToQueryItems([ - "tags": tags, + "tags": tags ]) let requestBuilder: RequestBuilder<[Pet]>.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder() @@ -177,25 +183,26 @@ open class PetAPI { /** Find pet by ID - - - parameter petId: (path) ID of pet to return + + - parameter petId: (path) ID of pet to return - parameter completion: completion handler to receive the data and the error objects */ - open class func getPetById(petId: Int64, completion: @escaping ((_ data: Pet?, _ error: Error?) -> Void)) { + open class func getPetById(petId: Int64, completion: @escaping ((_ data: Pet?,_ error: Error?) -> Void)) { getPetByIdWithRequestBuilder(petId: petId).execute { (response, error) -> Void in completion(response?.body, error) } } + /** Find pet by ID - GET /pet/{petId} - Returns a single pet - API Key: - - type: apiKey api_key - - name: api_key - - parameter petId: (path) ID of pet to return - - returns: RequestBuilder + - type: apiKey api_key + - name: api_key + - parameter petId: (path) ID of pet to return + - returns: RequestBuilder */ open class func getPetByIdWithRequestBuilder(petId: Int64) -> RequestBuilder { var path = "/pet/{petId}" @@ -203,8 +210,8 @@ open class PetAPI { let petIdPostEscape = petIdPreEscape.addingPercentEncoding(withAllowedCharacters: .urlPathAllowed) ?? "" path = path.replacingOccurrences(of: "{petId}", with: petIdPostEscape, options: .literal, range: nil) let URLString = PetstoreClientAPI.basePath + path - let parameters: [String: Any]? = nil - + let parameters: [String:Any]? = nil + let url = URLComponents(string: URLString) let requestBuilder: RequestBuilder.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder() @@ -214,12 +221,12 @@ open class PetAPI { /** Update an existing pet - - - parameter pet: (body) Pet object that needs to be added to the store + + - parameter pet: (body) Pet object that needs to be added to the store - parameter completion: completion handler to receive the data and the error objects */ - open class func updatePet(pet: Pet, completion: @escaping ((_ data: Void?, _ error: Error?) -> Void)) { - updatePetWithRequestBuilder(pet: pet).execute { (_, error) -> Void in + open class func updatePet(pet: Pet, completion: @escaping ((_ data: Void?,_ error: Error?) -> Void)) { + updatePetWithRequestBuilder(pet: pet).execute { (response, error) -> Void in if error == nil { completion((), error) } else { @@ -228,14 +235,15 @@ open class PetAPI { } } + /** Update an existing pet - PUT /pet - OAuth: - - type: oauth2 - - name: petstore_auth - - parameter pet: (body) Pet object that needs to be added to the store - - returns: RequestBuilder + - type: oauth2 + - name: petstore_auth + - parameter pet: (body) Pet object that needs to be added to the store + - returns: RequestBuilder */ open class func updatePetWithRequestBuilder(pet: Pet) -> RequestBuilder { let path = "/pet" @@ -251,14 +259,14 @@ open class PetAPI { /** Updates a pet in the store with form data - - - parameter petId: (path) ID of pet that needs to be updated + + - parameter petId: (path) ID of pet that needs to be updated - parameter name: (form) Updated name of the pet (optional) - parameter status: (form) Updated status of the pet (optional) - parameter completion: completion handler to receive the data and the error objects */ - open class func updatePetWithForm(petId: Int64, name: String? = nil, status: String? = nil, completion: @escaping ((_ data: Void?, _ error: Error?) -> Void)) { - updatePetWithFormWithRequestBuilder(petId: petId, name: name, status: status).execute { (_, error) -> Void in + open class func updatePetWithForm(petId: Int64, name: String? = nil, status: String? = nil, completion: @escaping ((_ data: Void?,_ error: Error?) -> Void)) { + updatePetWithFormWithRequestBuilder(petId: petId, name: name, status: status).execute { (response, error) -> Void in if error == nil { completion((), error) } else { @@ -267,16 +275,17 @@ open class PetAPI { } } + /** Updates a pet in the store with form data - POST /pet/{petId} - OAuth: - - type: oauth2 - - name: petstore_auth - - parameter petId: (path) ID of pet that needs to be updated + - type: oauth2 + - name: petstore_auth + - parameter petId: (path) ID of pet that needs to be updated - parameter name: (form) Updated name of the pet (optional) - parameter status: (form) Updated status of the pet (optional) - - returns: RequestBuilder + - returns: RequestBuilder */ open class func updatePetWithFormWithRequestBuilder(petId: Int64, name: String? = nil, status: String? = nil) -> RequestBuilder { var path = "/pet/{petId}" @@ -284,14 +293,14 @@ open class PetAPI { let petIdPostEscape = petIdPreEscape.addingPercentEncoding(withAllowedCharacters: .urlPathAllowed) ?? "" path = path.replacingOccurrences(of: "{petId}", with: petIdPostEscape, options: .literal, range: nil) let URLString = PetstoreClientAPI.basePath + path - let formParams: [String: Any?] = [ + let formParams: [String:Any?] = [ "name": name, - "status": status, + "status": status ] let nonNullParameters = APIHelper.rejectNil(formParams) let parameters = APIHelper.convertBoolToString(nonNullParameters) - + let url = URLComponents(string: URLString) let requestBuilder: RequestBuilder.Type = PetstoreClientAPI.requestBuilderFactory.getNonDecodableBuilder() @@ -301,28 +310,29 @@ open class PetAPI { /** uploads an image - - - parameter petId: (path) ID of pet to update + + - parameter petId: (path) ID of pet to update - parameter additionalMetadata: (form) Additional data to pass to server (optional) - parameter file: (form) file to upload (optional) - parameter completion: completion handler to receive the data and the error objects */ - open class func uploadFile(petId: Int64, additionalMetadata: String? = nil, file: URL? = nil, completion: @escaping ((_ data: ApiResponse?, _ error: Error?) -> Void)) { + open class func uploadFile(petId: Int64, additionalMetadata: String? = nil, file: URL? = nil, completion: @escaping ((_ data: ApiResponse?,_ error: Error?) -> Void)) { uploadFileWithRequestBuilder(petId: petId, additionalMetadata: additionalMetadata, file: file).execute { (response, error) -> Void in completion(response?.body, error) } } + /** uploads an image - POST /pet/{petId}/uploadImage - OAuth: - - type: oauth2 - - name: petstore_auth - - parameter petId: (path) ID of pet to update + - type: oauth2 + - name: petstore_auth + - parameter petId: (path) ID of pet to update - parameter additionalMetadata: (form) Additional data to pass to server (optional) - parameter file: (form) file to upload (optional) - - returns: RequestBuilder + - returns: RequestBuilder */ open class func uploadFileWithRequestBuilder(petId: Int64, additionalMetadata: String? = nil, file: URL? = nil) -> RequestBuilder { var path = "/pet/{petId}/uploadImage" @@ -330,14 +340,14 @@ open class PetAPI { let petIdPostEscape = petIdPreEscape.addingPercentEncoding(withAllowedCharacters: .urlPathAllowed) ?? "" path = path.replacingOccurrences(of: "{petId}", with: petIdPostEscape, options: .literal, range: nil) let URLString = PetstoreClientAPI.basePath + path - let formParams: [String: Any?] = [ + let formParams: [String:Any?] = [ "additionalMetadata": additionalMetadata, - "file": file, + "file": file ] let nonNullParameters = APIHelper.rejectNil(formParams) let parameters = APIHelper.convertBoolToString(nonNullParameters) - + let url = URLComponents(string: URLString) let requestBuilder: RequestBuilder.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder() @@ -347,28 +357,29 @@ open class PetAPI { /** uploads an image (required) - - - parameter petId: (path) ID of pet to update - - parameter requiredFile: (form) file to upload + + - parameter petId: (path) ID of pet to update + - parameter requiredFile: (form) file to upload - parameter additionalMetadata: (form) Additional data to pass to server (optional) - parameter completion: completion handler to receive the data and the error objects */ - open class func uploadFileWithRequiredFile(petId: Int64, requiredFile: URL, additionalMetadata: String? = nil, completion: @escaping ((_ data: ApiResponse?, _ error: Error?) -> Void)) { + open class func uploadFileWithRequiredFile(petId: Int64, requiredFile: URL, additionalMetadata: String? = nil, completion: @escaping ((_ data: ApiResponse?,_ error: Error?) -> Void)) { uploadFileWithRequiredFileWithRequestBuilder(petId: petId, requiredFile: requiredFile, additionalMetadata: additionalMetadata).execute { (response, error) -> Void in completion(response?.body, error) } } + /** uploads an image (required) - POST /fake/{petId}/uploadImageWithRequiredFile - OAuth: - - type: oauth2 - - name: petstore_auth - - parameter petId: (path) ID of pet to update - - parameter requiredFile: (form) file to upload + - type: oauth2 + - name: petstore_auth + - parameter petId: (path) ID of pet to update + - parameter requiredFile: (form) file to upload - parameter additionalMetadata: (form) Additional data to pass to server (optional) - - returns: RequestBuilder + - returns: RequestBuilder */ open class func uploadFileWithRequiredFileWithRequestBuilder(petId: Int64, requiredFile: URL, additionalMetadata: String? = nil) -> RequestBuilder { var path = "/fake/{petId}/uploadImageWithRequiredFile" @@ -376,18 +387,19 @@ open class PetAPI { let petIdPostEscape = petIdPreEscape.addingPercentEncoding(withAllowedCharacters: .urlPathAllowed) ?? "" path = path.replacingOccurrences(of: "{petId}", with: petIdPostEscape, options: .literal, range: nil) let URLString = PetstoreClientAPI.basePath + path - let formParams: [String: Any?] = [ + let formParams: [String:Any?] = [ "additionalMetadata": additionalMetadata, - "requiredFile": requiredFile, + "requiredFile": requiredFile ] let nonNullParameters = APIHelper.rejectNil(formParams) let parameters = APIHelper.convertBoolToString(nonNullParameters) - + let url = URLComponents(string: URLString) let requestBuilder: RequestBuilder.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder() return requestBuilder.init(method: "POST", URLString: (url?.string ?? URLString), parameters: parameters, isBody: false) } + } diff --git a/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/APIs/StoreAPI.swift b/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/APIs/StoreAPI.swift index 8e749634af3..920eff9816b 100644 --- a/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/APIs/StoreAPI.swift +++ b/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/APIs/StoreAPI.swift @@ -5,18 +5,20 @@ // https://openapi-generator.tech // -import Alamofire import Foundation +import Alamofire + + open class StoreAPI { /** Delete purchase order by ID - - - parameter orderId: (path) ID of the order that needs to be deleted + + - parameter orderId: (path) ID of the order that needs to be deleted - parameter completion: completion handler to receive the data and the error objects */ - open class func deleteOrder(orderId: String, completion: @escaping ((_ data: Void?, _ error: Error?) -> Void)) { - deleteOrderWithRequestBuilder(orderId: orderId).execute { (_, error) -> Void in + open class func deleteOrder(orderId: String, completion: @escaping ((_ data: Void?,_ error: Error?) -> Void)) { + deleteOrderWithRequestBuilder(orderId: orderId).execute { (response, error) -> Void in if error == nil { completion((), error) } else { @@ -25,12 +27,13 @@ open class StoreAPI { } } + /** Delete purchase order by ID - DELETE /store/order/{order_id} - For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors - - parameter orderId: (path) ID of the order that needs to be deleted - - returns: RequestBuilder + - parameter orderId: (path) ID of the order that needs to be deleted + - returns: RequestBuilder */ open class func deleteOrderWithRequestBuilder(orderId: String) -> RequestBuilder { var path = "/store/order/{order_id}" @@ -38,8 +41,8 @@ open class StoreAPI { let orderIdPostEscape = orderIdPreEscape.addingPercentEncoding(withAllowedCharacters: .urlPathAllowed) ?? "" path = path.replacingOccurrences(of: "{order_id}", with: orderIdPostEscape, options: .literal, range: nil) let URLString = PetstoreClientAPI.basePath + path - let parameters: [String: Any]? = nil - + let parameters: [String:Any]? = nil + let url = URLComponents(string: URLString) let requestBuilder: RequestBuilder.Type = PetstoreClientAPI.requestBuilderFactory.getNonDecodableBuilder() @@ -49,54 +52,56 @@ open class StoreAPI { /** Returns pet inventories by status - + - parameter completion: completion handler to receive the data and the error objects */ - open class func getInventory(completion: @escaping ((_ data: [String: Int]?, _ error: Error?) -> Void)) { + open class func getInventory(completion: @escaping ((_ data: [String:Int]?,_ error: Error?) -> Void)) { getInventoryWithRequestBuilder().execute { (response, error) -> Void in completion(response?.body, error) } } + /** Returns pet inventories by status - GET /store/inventory - Returns a map of status codes to quantities - API Key: - - type: apiKey api_key - - name: api_key - - returns: RequestBuilder<[String:Int]> + - type: apiKey api_key + - name: api_key + - returns: RequestBuilder<[String:Int]> */ - open class func getInventoryWithRequestBuilder() -> RequestBuilder<[String: Int]> { + open class func getInventoryWithRequestBuilder() -> RequestBuilder<[String:Int]> { let path = "/store/inventory" let URLString = PetstoreClientAPI.basePath + path - let parameters: [String: Any]? = nil - + let parameters: [String:Any]? = nil + let url = URLComponents(string: URLString) - let requestBuilder: RequestBuilder<[String: Int]>.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder() + let requestBuilder: RequestBuilder<[String:Int]>.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder() return requestBuilder.init(method: "GET", URLString: (url?.string ?? URLString), parameters: parameters, isBody: false) } /** Find purchase order by ID - - - parameter orderId: (path) ID of pet that needs to be fetched + + - parameter orderId: (path) ID of pet that needs to be fetched - parameter completion: completion handler to receive the data and the error objects */ - open class func getOrderById(orderId: Int64, completion: @escaping ((_ data: Order?, _ error: Error?) -> Void)) { + open class func getOrderById(orderId: Int64, completion: @escaping ((_ data: Order?,_ error: Error?) -> Void)) { getOrderByIdWithRequestBuilder(orderId: orderId).execute { (response, error) -> Void in completion(response?.body, error) } } + /** Find purchase order by ID - GET /store/order/{order_id} - For valid response try integer IDs with value <= 5 or > 10. Other values will generated exceptions - - parameter orderId: (path) ID of pet that needs to be fetched - - returns: RequestBuilder + - parameter orderId: (path) ID of pet that needs to be fetched + - returns: RequestBuilder */ open class func getOrderByIdWithRequestBuilder(orderId: Int64) -> RequestBuilder { var path = "/store/order/{order_id}" @@ -104,8 +109,8 @@ open class StoreAPI { let orderIdPostEscape = orderIdPreEscape.addingPercentEncoding(withAllowedCharacters: .urlPathAllowed) ?? "" path = path.replacingOccurrences(of: "{order_id}", with: orderIdPostEscape, options: .literal, range: nil) let URLString = PetstoreClientAPI.basePath + path - let parameters: [String: Any]? = nil - + let parameters: [String:Any]? = nil + let url = URLComponents(string: URLString) let requestBuilder: RequestBuilder.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder() @@ -115,21 +120,22 @@ open class StoreAPI { /** Place an order for a pet - - - parameter order: (body) order placed for purchasing the pet + + - parameter order: (body) order placed for purchasing the pet - parameter completion: completion handler to receive the data and the error objects */ - open class func placeOrder(order: Order, completion: @escaping ((_ data: Order?, _ error: Error?) -> Void)) { + open class func placeOrder(order: Order, completion: @escaping ((_ data: Order?,_ error: Error?) -> Void)) { placeOrderWithRequestBuilder(order: order).execute { (response, error) -> Void in completion(response?.body, error) } } + /** Place an order for a pet - POST /store/order - - parameter order: (body) order placed for purchasing the pet - - returns: RequestBuilder + - parameter order: (body) order placed for purchasing the pet + - returns: RequestBuilder */ open class func placeOrderWithRequestBuilder(order: Order) -> RequestBuilder { let path = "/store/order" @@ -142,4 +148,5 @@ open class StoreAPI { return requestBuilder.init(method: "POST", URLString: (url?.string ?? URLString), parameters: parameters, isBody: true) } + } diff --git a/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/APIs/UserAPI.swift b/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/APIs/UserAPI.swift index 7a629ee75a2..e9457fc88a6 100644 --- a/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/APIs/UserAPI.swift +++ b/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/APIs/UserAPI.swift @@ -5,18 +5,20 @@ // https://openapi-generator.tech // -import Alamofire import Foundation +import Alamofire + + open class UserAPI { /** Create user - - - parameter user: (body) Created user object + + - parameter user: (body) Created user object - parameter completion: completion handler to receive the data and the error objects */ - open class func createUser(user: User, completion: @escaping ((_ data: Void?, _ error: Error?) -> Void)) { - createUserWithRequestBuilder(user: user).execute { (_, error) -> Void in + open class func createUser(user: User, completion: @escaping ((_ data: Void?,_ error: Error?) -> Void)) { + createUserWithRequestBuilder(user: user).execute { (response, error) -> Void in if error == nil { completion((), error) } else { @@ -25,12 +27,13 @@ open class UserAPI { } } + /** Create user - POST /user - This can only be done by the logged in user. - - parameter user: (body) Created user object - - returns: RequestBuilder + - parameter user: (body) Created user object + - returns: RequestBuilder */ open class func createUserWithRequestBuilder(user: User) -> RequestBuilder { let path = "/user" @@ -46,12 +49,12 @@ open class UserAPI { /** Creates list of users with given input array - - - parameter user: (body) List of user object + + - parameter user: (body) List of user object - parameter completion: completion handler to receive the data and the error objects */ - open class func createUsersWithArrayInput(user: [User], completion: @escaping ((_ data: Void?, _ error: Error?) -> Void)) { - createUsersWithArrayInputWithRequestBuilder(user: user).execute { (_, error) -> Void in + open class func createUsersWithArrayInput(user: [User], completion: @escaping ((_ data: Void?,_ error: Error?) -> Void)) { + createUsersWithArrayInputWithRequestBuilder(user: user).execute { (response, error) -> Void in if error == nil { completion((), error) } else { @@ -60,11 +63,12 @@ open class UserAPI { } } + /** Creates list of users with given input array - POST /user/createWithArray - - parameter user: (body) List of user object - - returns: RequestBuilder + - parameter user: (body) List of user object + - returns: RequestBuilder */ open class func createUsersWithArrayInputWithRequestBuilder(user: [User]) -> RequestBuilder { let path = "/user/createWithArray" @@ -80,12 +84,12 @@ open class UserAPI { /** Creates list of users with given input array - - - parameter user: (body) List of user object + + - parameter user: (body) List of user object - parameter completion: completion handler to receive the data and the error objects */ - open class func createUsersWithListInput(user: [User], completion: @escaping ((_ data: Void?, _ error: Error?) -> Void)) { - createUsersWithListInputWithRequestBuilder(user: user).execute { (_, error) -> Void in + open class func createUsersWithListInput(user: [User], completion: @escaping ((_ data: Void?,_ error: Error?) -> Void)) { + createUsersWithListInputWithRequestBuilder(user: user).execute { (response, error) -> Void in if error == nil { completion((), error) } else { @@ -94,11 +98,12 @@ open class UserAPI { } } + /** Creates list of users with given input array - POST /user/createWithList - - parameter user: (body) List of user object - - returns: RequestBuilder + - parameter user: (body) List of user object + - returns: RequestBuilder */ open class func createUsersWithListInputWithRequestBuilder(user: [User]) -> RequestBuilder { let path = "/user/createWithList" @@ -114,12 +119,12 @@ open class UserAPI { /** Delete user - - - parameter username: (path) The name that needs to be deleted + + - parameter username: (path) The name that needs to be deleted - parameter completion: completion handler to receive the data and the error objects */ - open class func deleteUser(username: String, completion: @escaping ((_ data: Void?, _ error: Error?) -> Void)) { - deleteUserWithRequestBuilder(username: username).execute { (_, error) -> Void in + open class func deleteUser(username: String, completion: @escaping ((_ data: Void?,_ error: Error?) -> Void)) { + deleteUserWithRequestBuilder(username: username).execute { (response, error) -> Void in if error == nil { completion((), error) } else { @@ -128,12 +133,13 @@ open class UserAPI { } } + /** Delete user - DELETE /user/{username} - This can only be done by the logged in user. - - parameter username: (path) The name that needs to be deleted - - returns: RequestBuilder + - parameter username: (path) The name that needs to be deleted + - returns: RequestBuilder */ open class func deleteUserWithRequestBuilder(username: String) -> RequestBuilder { var path = "/user/{username}" @@ -141,8 +147,8 @@ open class UserAPI { let usernamePostEscape = usernamePreEscape.addingPercentEncoding(withAllowedCharacters: .urlPathAllowed) ?? "" path = path.replacingOccurrences(of: "{username}", with: usernamePostEscape, options: .literal, range: nil) let URLString = PetstoreClientAPI.basePath + path - let parameters: [String: Any]? = nil - + let parameters: [String:Any]? = nil + let url = URLComponents(string: URLString) let requestBuilder: RequestBuilder.Type = PetstoreClientAPI.requestBuilderFactory.getNonDecodableBuilder() @@ -152,21 +158,22 @@ open class UserAPI { /** Get user by user name - - - parameter username: (path) The name that needs to be fetched. Use user1 for testing. + + - parameter username: (path) The name that needs to be fetched. Use user1 for testing. - parameter completion: completion handler to receive the data and the error objects */ - open class func getUserByName(username: String, completion: @escaping ((_ data: User?, _ error: Error?) -> Void)) { + open class func getUserByName(username: String, completion: @escaping ((_ data: User?,_ error: Error?) -> Void)) { getUserByNameWithRequestBuilder(username: username).execute { (response, error) -> Void in completion(response?.body, error) } } + /** Get user by user name - GET /user/{username} - - parameter username: (path) The name that needs to be fetched. Use user1 for testing. - - returns: RequestBuilder + - parameter username: (path) The name that needs to be fetched. Use user1 for testing. + - returns: RequestBuilder */ open class func getUserByNameWithRequestBuilder(username: String) -> RequestBuilder { var path = "/user/{username}" @@ -174,8 +181,8 @@ open class UserAPI { let usernamePostEscape = usernamePreEscape.addingPercentEncoding(withAllowedCharacters: .urlPathAllowed) ?? "" path = path.replacingOccurrences(of: "{username}", with: usernamePostEscape, options: .literal, range: nil) let URLString = PetstoreClientAPI.basePath + path - let parameters: [String: Any]? = nil - + let parameters: [String:Any]? = nil + let url = URLComponents(string: URLString) let requestBuilder: RequestBuilder.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder() @@ -185,34 +192,35 @@ open class UserAPI { /** Logs user into the system - - - parameter username: (query) The user name for login - - parameter password: (query) The password for login in clear text + + - parameter username: (query) The user name for login + - parameter password: (query) The password for login in clear text - parameter completion: completion handler to receive the data and the error objects */ - open class func loginUser(username: String, password: String, completion: @escaping ((_ data: String?, _ error: Error?) -> Void)) { + open class func loginUser(username: String, password: String, completion: @escaping ((_ data: String?,_ error: Error?) -> Void)) { loginUserWithRequestBuilder(username: username, password: password).execute { (response, error) -> Void in completion(response?.body, error) } } + /** Logs user into the system - GET /user/login - responseHeaders: [X-Rate-Limit(Int), X-Expires-After(Date)] - - parameter username: (query) The user name for login - - parameter password: (query) The password for login in clear text - - returns: RequestBuilder + - parameter username: (query) The user name for login + - parameter password: (query) The password for login in clear text + - returns: RequestBuilder */ open class func loginUserWithRequestBuilder(username: String, password: String) -> RequestBuilder { let path = "/user/login" let URLString = PetstoreClientAPI.basePath + path - let parameters: [String: Any]? = nil - + let parameters: [String:Any]? = nil + var url = URLComponents(string: URLString) url?.queryItems = APIHelper.mapValuesToQueryItems([ - "username": username, - "password": password, + "username": username, + "password": password ]) let requestBuilder: RequestBuilder.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder() @@ -222,11 +230,11 @@ open class UserAPI { /** Logs out current logged in user session - + - parameter completion: completion handler to receive the data and the error objects */ - open class func logoutUser(completion: @escaping ((_ data: Void?, _ error: Error?) -> Void)) { - logoutUserWithRequestBuilder().execute { (_, error) -> Void in + open class func logoutUser(completion: @escaping ((_ data: Void?,_ error: Error?) -> Void)) { + logoutUserWithRequestBuilder().execute { (response, error) -> Void in if error == nil { completion((), error) } else { @@ -235,16 +243,17 @@ open class UserAPI { } } + /** Logs out current logged in user session - GET /user/logout - - returns: RequestBuilder + - returns: RequestBuilder */ open class func logoutUserWithRequestBuilder() -> RequestBuilder { let path = "/user/logout" let URLString = PetstoreClientAPI.basePath + path - let parameters: [String: Any]? = nil - + let parameters: [String:Any]? = nil + let url = URLComponents(string: URLString) let requestBuilder: RequestBuilder.Type = PetstoreClientAPI.requestBuilderFactory.getNonDecodableBuilder() @@ -254,13 +263,13 @@ open class UserAPI { /** Updated user - - - parameter username: (path) name that need to be deleted - - parameter user: (body) Updated user object + + - parameter username: (path) name that need to be deleted + - parameter user: (body) Updated user object - parameter completion: completion handler to receive the data and the error objects */ - open class func updateUser(username: String, user: User, completion: @escaping ((_ data: Void?, _ error: Error?) -> Void)) { - updateUserWithRequestBuilder(username: username, user: user).execute { (_, error) -> Void in + open class func updateUser(username: String, user: User, completion: @escaping ((_ data: Void?,_ error: Error?) -> Void)) { + updateUserWithRequestBuilder(username: username, user: user).execute { (response, error) -> Void in if error == nil { completion((), error) } else { @@ -269,13 +278,14 @@ open class UserAPI { } } + /** Updated user - PUT /user/{username} - This can only be done by the logged in user. - - parameter username: (path) name that need to be deleted - - parameter user: (body) Updated user object - - returns: RequestBuilder + - parameter username: (path) name that need to be deleted + - parameter user: (body) Updated user object + - returns: RequestBuilder */ open class func updateUserWithRequestBuilder(username: String, user: User) -> RequestBuilder { var path = "/user/{username}" @@ -291,4 +301,5 @@ open class UserAPI { return requestBuilder.init(method: "PUT", URLString: (url?.string ?? URLString), parameters: parameters, isBody: true) } + } diff --git a/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/AlamofireImplementations.swift b/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/AlamofireImplementations.swift index 9ac32d699a1..ac14f72c7d0 100644 --- a/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/AlamofireImplementations.swift +++ b/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/AlamofireImplementations.swift @@ -4,52 +4,53 @@ // https://openapi-generator.tech // -import Alamofire import Foundation +import Alamofire class AlamofireRequestBuilderFactory: RequestBuilderFactory { func getNonDecodableBuilder() -> RequestBuilder.Type { return AlamofireRequestBuilder.self } - func getBuilder() -> RequestBuilder.Type { + func getBuilder() -> RequestBuilder.Type { return AlamofireDecodableRequestBuilder.self } } private struct SynchronizedDictionary { - private var dictionary = [K: V]() - private let queue = DispatchQueue( - label: "SynchronizedDictionary", - qos: DispatchQoS.userInitiated, - attributes: [DispatchQueue.Attributes.concurrent], - autoreleaseFrequency: DispatchQueue.AutoreleaseFrequency.inherit, - target: nil - ) - public subscript(key: K) -> V? { - get { - var value: V? + private var dictionary = [K: V]() + private let queue = DispatchQueue( + label: "SynchronizedDictionary", + qos: DispatchQoS.userInitiated, + attributes: [DispatchQueue.Attributes.concurrent], + autoreleaseFrequency: DispatchQueue.AutoreleaseFrequency.inherit, + target: nil + ) - queue.sync { - value = self.dictionary[key] - } + public subscript(key: K) -> V? { + get { + var value: V? - return value - } - set { - queue.sync(flags: DispatchWorkItemFlags.barrier) { - self.dictionary[key] = newValue - } - } - } -} + queue.sync { + value = self.dictionary[key] + } + + return value + } + set { + queue.sync(flags: DispatchWorkItemFlags.barrier) { + self.dictionary[key] = newValue + } + } + } + } // Store manager to retain its reference private var managerStore = SynchronizedDictionary() open class AlamofireRequestBuilder: RequestBuilder { - public required init(method: String, URLString: String, parameters: [String: Any]?, isBody: Bool, headers: [String: String] = [:]) { + required public init(method: String, URLString: String, parameters: [String : Any]?, isBody: Bool, headers: [String : String] = [:]) { super.init(method: method, URLString: URLString, parameters: parameters, isBody: isBody, headers: headers) } @@ -70,7 +71,7 @@ open class AlamofireRequestBuilder: RequestBuilder { Return nil to use the default behavior (inferring the Content-Type from the file extension). Return the desired Content-Type otherwise. */ - open func contentTypeForFormPart(fileURL _: URL) -> String? { + open func contentTypeForFormPart(fileURL: URL) -> String? { return nil } @@ -78,21 +79,21 @@ open class AlamofireRequestBuilder: RequestBuilder { May be overridden by a subclass if you want to control the request configuration (e.g. to override the cache policy). */ - open func makeRequest(manager: SessionManager, method: HTTPMethod, encoding: ParameterEncoding, headers: [String: String]) -> DataRequest { + open func makeRequest(manager: SessionManager, method: HTTPMethod, encoding: ParameterEncoding, headers: [String:String]) -> DataRequest { return manager.request(URLString, method: method, parameters: parameters, encoding: encoding, headers: headers) } - open override func execute(_ completion: @escaping (_ response: Response?, _ error: Error?) -> Void) { - let managerId: String = UUID().uuidString + override open func execute(_ completion: @escaping (_ response: Response?, _ error: Error?) -> Void) { + let managerId:String = UUID().uuidString // Create a new manager for each request to customize its request header let manager = createSessionManager() managerStore[managerId] = manager - let encoding: ParameterEncoding = isBody ? JSONDataEncoding() : URLEncoding() + let encoding:ParameterEncoding = isBody ? JSONDataEncoding() : URLEncoding() let xMethod = Alamofire.HTTPMethod(rawValue: method) let fileKeys = parameters == nil ? [] : parameters!.filter { $1 is NSURL } - .map { $0.0 } + .map { $0.0 } if fileKeys.count > 0 { manager.upload(multipartFormData: { mpForm in @@ -101,7 +102,8 @@ open class AlamofireRequestBuilder: RequestBuilder { case let fileURL as URL: if let mimeType = self.contentTypeForFormPart(fileURL: fileURL) { mpForm.append(fileURL, withName: k, fileName: fileURL.lastPathComponent, mimeType: mimeType) - } else { + } + else { mpForm.append(fileURL, withName: k) } case let string as String: @@ -112,14 +114,14 @@ open class AlamofireRequestBuilder: RequestBuilder { fatalError("Unprocessable value \(v) with key \(k)") } } - }, to: URLString, method: xMethod!, headers: nil, encodingCompletion: { encodingResult in + }, to: URLString, method: xMethod!, headers: nil, encodingCompletion: { encodingResult in switch encodingResult { case .success(let upload, _, _): if let onProgressReady = self.onProgressReady { onProgressReady(upload.uploadProgress) } self.processRequest(request: upload, managerId, completion) - case let .failure(encodingError): + case .failure(let encodingError): completion(nil, ErrorResponse.error(415, nil, encodingError)) } }) @@ -130,6 +132,7 @@ open class AlamofireRequestBuilder: RequestBuilder { } processRequest(request: request, managerId, completion) } + } fileprivate func processRequest(request: DataRequest, _ managerId: String, _ completion: @escaping (_ response: Response?, _ error: Error?) -> Void) { @@ -145,13 +148,13 @@ open class AlamofireRequestBuilder: RequestBuilder { switch T.self { case is String.Type: - validatedRequest.responseString(completionHandler: { stringResponse in + validatedRequest.responseString(completionHandler: { (stringResponse) in cleanupRequest() if stringResponse.result.isFailure { completion( nil, - ErrorResponse.error(stringResponse.response?.statusCode ?? 500, stringResponse.data, stringResponse.result.error as Error!) + ErrorResponse.error(stringResponse.response?.statusCode ?? 500, stringResponse.data, stringResponse.result.error!) ) return } @@ -165,10 +168,11 @@ open class AlamofireRequestBuilder: RequestBuilder { ) }) case is URL.Type: - validatedRequest.responseData(completionHandler: { dataResponse in + validatedRequest.responseData(completionHandler: { (dataResponse) in cleanupRequest() do { + guard !dataResponse.result.isFailure else { throw DownloadException.responseFailed } @@ -214,7 +218,7 @@ open class AlamofireRequestBuilder: RequestBuilder { return }) case is Void.Type: - validatedRequest.responseData(completionHandler: { voidResponse in + validatedRequest.responseData(completionHandler: { (voidResponse) in cleanupRequest() if voidResponse.result.isFailure { @@ -228,13 +232,12 @@ open class AlamofireRequestBuilder: RequestBuilder { completion( Response( response: voidResponse.response!, - body: nil - ), + body: nil), nil ) }) default: - validatedRequest.responseData(completionHandler: { dataResponse in + validatedRequest.responseData(completionHandler: { (dataResponse) in cleanupRequest() if dataResponse.result.isFailure { @@ -258,22 +261,24 @@ open class AlamofireRequestBuilder: RequestBuilder { open func buildHeaders() -> [String: String] { var httpHeaders = SessionManager.defaultHTTPHeaders - for (key, value) in headers { + for (key, value) in self.headers { httpHeaders[key] = value } return httpHeaders } - fileprivate func getFileName(fromContentDisposition contentDisposition: String?) -> String? { + fileprivate func getFileName(fromContentDisposition contentDisposition : String?) -> String? { + guard let contentDisposition = contentDisposition else { return nil } let items = contentDisposition.components(separatedBy: ";") - var filename: String? + var filename : String? = nil for contentItem in items { + let filenameKey = "filename=" guard let range = contentItem.range(of: filenameKey) else { break @@ -281,15 +286,17 @@ open class AlamofireRequestBuilder: RequestBuilder { filename = contentItem return filename? - .replacingCharacters(in: range, with: "") + .replacingCharacters(in: range, with:"") .replacingOccurrences(of: "\"", with: "") .trimmingCharacters(in: .whitespacesAndNewlines) } return filename + } - fileprivate func getPath(from url: URL) throws -> String { + fileprivate func getPath(from url : URL) throws -> String { + guard var path = URLComponents(url: url, resolvingAgainstBaseURL: true)?.path else { throw DownloadException.requestMissingPath } @@ -299,18 +306,21 @@ open class AlamofireRequestBuilder: RequestBuilder { } return path + } - fileprivate func getURL(from urlRequest: URLRequest) throws -> URL { + fileprivate func getURL(from urlRequest : URLRequest) throws -> URL { + guard let url = urlRequest.url else { throw DownloadException.requestMissingURL } return url } + } -fileprivate enum DownloadException: Error { +fileprivate enum DownloadException : Error { case responseDataMissing case responseFailed case requestMissing @@ -325,8 +335,9 @@ public enum AlamofireDecodableRequestBuilderError: Error { case generalError(Error) } -open class AlamofireDecodableRequestBuilder: AlamofireRequestBuilder { - fileprivate override func processRequest(request: DataRequest, _ managerId: String, _ completion: @escaping (_ response: Response?, _ error: Error?) -> Void) { +open class AlamofireDecodableRequestBuilder: AlamofireRequestBuilder { + + override fileprivate func processRequest(request: DataRequest, _ managerId: String, _ completion: @escaping (_ response: Response?, _ error: Error?) -> Void) { if let credential = self.credential { request.authenticate(usingCredential: credential) } @@ -339,13 +350,13 @@ open class AlamofireDecodableRequestBuilder: AlamofireRequestBuild switch T.self { case is String.Type: - validatedRequest.responseString(completionHandler: { stringResponse in + validatedRequest.responseString(completionHandler: { (stringResponse) in cleanupRequest() if stringResponse.result.isFailure { completion( nil, - ErrorResponse.error(stringResponse.response?.statusCode ?? 500, stringResponse.data, stringResponse.result.error as Error!) + ErrorResponse.error(stringResponse.response?.statusCode ?? 500, stringResponse.data, stringResponse.result.error!) ) return } @@ -359,7 +370,7 @@ open class AlamofireDecodableRequestBuilder: AlamofireRequestBuild ) }) case is Void.Type: - validatedRequest.responseData(completionHandler: { voidResponse in + validatedRequest.responseData(completionHandler: { (voidResponse) in cleanupRequest() if voidResponse.result.isFailure { @@ -373,13 +384,12 @@ open class AlamofireDecodableRequestBuilder: AlamofireRequestBuild completion( Response( response: voidResponse.response!, - body: nil - ), + body: nil), nil ) }) case is Data.Type: - validatedRequest.responseData(completionHandler: { dataResponse in + validatedRequest.responseData(completionHandler: { (dataResponse) in cleanupRequest() if dataResponse.result.isFailure { @@ -417,7 +427,7 @@ open class AlamofireDecodableRequestBuilder: AlamofireRequestBuild return } - var responseObj: Response? + var responseObj: Response? = nil let decodeResult: (decodableObj: T?, error: Error?) = CodableHelper.decode(T.self, from: data) if decodeResult.error == nil { @@ -428,4 +438,5 @@ open class AlamofireDecodableRequestBuilder: AlamofireRequestBuild }) } } + } diff --git a/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/CodableHelper.swift b/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/CodableHelper.swift index 7585573b8a9..e9d28accdf4 100644 --- a/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/CodableHelper.swift +++ b/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/CodableHelper.swift @@ -10,9 +10,10 @@ import Foundation public typealias EncodeResult = (data: Data?, error: Error?) open class CodableHelper { - open static var dateformatter: DateFormatter? - open class func decode(_ type: T.Type, from data: Data) -> (decodableObj: T?, error: Error?) where T: Decodable { + public static var dateformatter: DateFormatter? + + open class func decode(_ type: T.Type, from data: Data) -> (decodableObj: T?, error: Error?) where T : Decodable { var returnedDecodable: T? = nil var returnedError: Error? = nil @@ -38,9 +39,9 @@ open class CodableHelper { return (returnedDecodable, returnedError) } - open class func encode(_ value: T, prettyPrint: Bool = false) -> EncodeResult where T: Encodable { + open class func encode(_ value: T, prettyPrint: Bool = false) -> EncodeResult where T : Encodable { var returnedData: Data? - var returnedError: Error? + var returnedError: Error? = nil let encoder = JSONEncoder() if prettyPrint { @@ -66,4 +67,5 @@ open class CodableHelper { return (returnedData, returnedError) } + } diff --git a/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Configuration.swift b/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Configuration.swift index 81fd74f6748..516590da5d9 100644 --- a/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Configuration.swift +++ b/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Configuration.swift @@ -7,7 +7,9 @@ import Foundation open class Configuration { - // This value is used to configure the date formatter that is used to serialize dates into JSON format. - // You must set it prior to encoding any dates, and it will only be read once. - open static var dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSZZZZZ" -} + + // This value is used to configure the date formatter that is used to serialize dates into JSON format. + // You must set it prior to encoding any dates, and it will only be read once. + public static var dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSZZZZZ" + +} \ No newline at end of file diff --git a/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Extensions.swift b/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Extensions.swift index e2f17a6cb86..abe218b4e7a 100644 --- a/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Extensions.swift +++ b/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Extensions.swift @@ -4,8 +4,8 @@ // https://openapi-generator.tech // -import Alamofire import Foundation +import Alamofire extension Bool: JSONEncodable { func encodeToJSON() -> Any { return self as Any } @@ -45,7 +45,7 @@ private func encodeIfPossible(_ object: T) -> Any { extension Array: JSONEncodable { func encodeToJSON() -> Any { - return map(encodeIfPossible) + return self.map(encodeIfPossible) } } @@ -61,7 +61,7 @@ extension Dictionary: JSONEncodable { extension Data: JSONEncodable { func encodeToJSON() -> Any { - return base64EncodedString(options: Data.Base64EncodingOptions()) + return self.base64EncodedString(options: Data.Base64EncodingOptions()) } } @@ -80,11 +80,12 @@ extension Date: JSONEncodable { extension UUID: JSONEncodable { func encodeToJSON() -> Any { - return uuidString + return self.uuidString } } extension String: CodingKey { + public var stringValue: String { return self } @@ -97,38 +98,42 @@ extension String: CodingKey { return nil } - public init?(intValue _: Int) { + public init?(intValue: Int) { return nil } + } extension KeyedEncodingContainerProtocol { - public mutating func encodeArray(_ values: [T], forKey key: Self.Key) throws where T: Encodable { + + public mutating func encodeArray(_ values: [T], forKey key: Self.Key) throws where T : Encodable { var arrayContainer = nestedUnkeyedContainer(forKey: key) try arrayContainer.encode(contentsOf: values) } - public mutating func encodeArrayIfPresent(_ values: [T]?, forKey key: Self.Key) throws where T: Encodable { + public mutating func encodeArrayIfPresent(_ values: [T]?, forKey key: Self.Key) throws where T : Encodable { if let values = values { try encodeArray(values, forKey: key) } } - public mutating func encodeMap(_ pairs: [Self.Key: T]) throws where T: Encodable { + public mutating func encodeMap(_ pairs: [Self.Key: T]) throws where T : Encodable { for (key, value) in pairs { try encode(value, forKey: key) } } - public mutating func encodeMapIfPresent(_ pairs: [Self.Key: T]?) throws where T: Encodable { + public mutating func encodeMapIfPresent(_ pairs: [Self.Key: T]?) throws where T : Encodable { if let pairs = pairs { try encodeMap(pairs) } } + } extension KeyedDecodingContainerProtocol { - public func decodeArray(_: T.Type, forKey key: Self.Key) throws -> [T] where T: Decodable { + + public func decodeArray(_ type: T.Type, forKey key: Self.Key) throws -> [T] where T : Decodable { var tmpArray = [T]() var nestedContainer = try nestedUnkeyedContainer(forKey: key) @@ -140,7 +145,7 @@ extension KeyedDecodingContainerProtocol { return tmpArray } - public func decodeArrayIfPresent(_: T.Type, forKey key: Self.Key) throws -> [T]? where T: Decodable { + public func decodeArrayIfPresent(_ type: T.Type, forKey key: Self.Key) throws -> [T]? where T : Decodable { var tmpArray: [T]? = nil if contains(key) { @@ -150,8 +155,8 @@ extension KeyedDecodingContainerProtocol { return tmpArray } - public func decodeMap(_: T.Type, excludedKeys: Set) throws -> [Self.Key: T] where T: Decodable { - var map: [Self.Key: T] = [:] + public func decodeMap(_ type: T.Type, excludedKeys: Set) throws -> [Self.Key: T] where T : Decodable { + var map: [Self.Key : T] = [:] for key in allKeys { if !excludedKeys.contains(key) { @@ -162,4 +167,7 @@ extension KeyedDecodingContainerProtocol { return map } + } + + diff --git a/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/JSONEncodableEncoding.swift b/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/JSONEncodableEncoding.swift index 9d59bd8b764..ca05906d420 100644 --- a/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/JSONEncodableEncoding.swift +++ b/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/JSONEncodableEncoding.swift @@ -5,10 +5,11 @@ // https://openapi-generator.tech // -import Alamofire import Foundation +import Alamofire public struct JSONDataEncoding: ParameterEncoding { + // MARK: Properties private static let jsonDataKey = "jsonData" @@ -41,7 +42,7 @@ public struct JSONDataEncoding: ParameterEncoding { } public static func encodingParameters(jsonData: Data?) -> Parameters? { - var returnedParams: Parameters? + var returnedParams: Parameters? = nil if let jsonData = jsonData, !jsonData.isEmpty { var params = Parameters() params[jsonDataKey] = jsonData @@ -49,4 +50,5 @@ public struct JSONDataEncoding: ParameterEncoding { } return returnedParams } + } diff --git a/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/JSONEncodingHelper.swift b/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/JSONEncodingHelper.swift index 7a9c6a33803..70449515842 100644 --- a/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/JSONEncodingHelper.swift +++ b/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/JSONEncodingHelper.swift @@ -5,12 +5,13 @@ // https://openapi-generator.tech // -import Alamofire import Foundation +import Alamofire open class JSONEncodingHelper { - open class func encodingParameters(forEncodableObject encodableObj: T?) -> Parameters? { - var params: Parameters? + + open class func encodingParameters(forEncodableObject encodableObj: T?) -> Parameters? { + var params: Parameters? = nil // Encode the Encodable object if let encodableObj = encodableObj { @@ -24,7 +25,7 @@ open class JSONEncodingHelper { } open class func encodingParameters(forEncodableObject encodableObj: Any?) -> Parameters? { - var params: Parameters? + var params: Parameters? = nil if let encodableObj = encodableObj { do { @@ -38,4 +39,5 @@ open class JSONEncodingHelper { return params } + } diff --git a/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models.swift b/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models.swift index 9d4101c3cd4..40856389035 100644 --- a/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models.swift +++ b/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models.swift @@ -10,14 +10,14 @@ protocol JSONEncodable { func encodeToJSON() -> Any } -public enum ErrorResponse: Error { +public enum ErrorResponse : Error { case error(Int, Data?, Error) } open class Response { - open let statusCode: Int - open let header: [String: String] - open let body: T? + public let statusCode: Int + public let header: [String: String] + public let body: T? public init(statusCode: Int, header: [String: String], body: T?) { self.statusCode = statusCode @@ -27,7 +27,7 @@ open class Response { public convenience init(response: HTTPURLResponse, body: T?) { let rawHeader = response.allHeaderFields - var header = [String: String]() + var header = [String:String]() for case let (key, value) as (String, String) in rawHeader { header[key] = value } diff --git a/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/AdditionalPropertiesClass.swift b/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/AdditionalPropertiesClass.swift index 7e770e93db1..4e018486ad7 100644 --- a/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/AdditionalPropertiesClass.swift +++ b/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/AdditionalPropertiesClass.swift @@ -7,17 +7,23 @@ import Foundation -public struct AdditionalPropertiesClass: Codable { - public var mapProperty: [String: String]? - public var mapOfMapProperty: [String: [String: String]]? - public init(mapProperty: [String: String]?, mapOfMapProperty: [String: [String: String]]?) { + +public struct AdditionalPropertiesClass: Codable { + + public var mapProperty: [String:String]? + public var mapOfMapProperty: [String:[String:String]]? + + public init(mapProperty: [String:String]?, mapOfMapProperty: [String:[String:String]]?) { self.mapProperty = mapProperty self.mapOfMapProperty = mapOfMapProperty } - public enum CodingKeys: String, CodingKey { + public enum CodingKeys: String, CodingKey { case mapProperty = "map_property" case mapOfMapProperty = "map_of_map_property" } + + } + diff --git a/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/Animal.swift b/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/Animal.swift index 7512bbb43cf..7221a1be099 100644 --- a/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/Animal.swift +++ b/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/Animal.swift @@ -7,7 +7,10 @@ import Foundation + + public struct Animal: Codable { + public var className: String public var color: String? = "red" @@ -15,4 +18,7 @@ public struct Animal: Codable { self.className = className self.color = color } + + } + diff --git a/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/AnimalFarm.swift b/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/AnimalFarm.swift index e09b0e9efdc..e7bea63f8ed 100644 --- a/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/AnimalFarm.swift +++ b/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/AnimalFarm.swift @@ -7,4 +7,5 @@ import Foundation + public typealias AnimalFarm = [Animal] diff --git a/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/ApiResponse.swift b/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/ApiResponse.swift index 0b3b089649e..a22e9aaebbb 100644 --- a/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/ApiResponse.swift +++ b/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/ApiResponse.swift @@ -7,7 +7,10 @@ import Foundation + + public struct ApiResponse: Codable { + public var code: Int? public var type: String? public var message: String? @@ -17,4 +20,7 @@ public struct ApiResponse: Codable { self.type = type self.message = message } + + } + diff --git a/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/ArrayOfArrayOfNumberOnly.swift b/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/ArrayOfArrayOfNumberOnly.swift index e495772674a..4e5a5ca1445 100644 --- a/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/ArrayOfArrayOfNumberOnly.swift +++ b/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/ArrayOfArrayOfNumberOnly.swift @@ -7,14 +7,20 @@ import Foundation + + public struct ArrayOfArrayOfNumberOnly: Codable { + public var arrayArrayNumber: [[Double]]? public init(arrayArrayNumber: [[Double]]?) { self.arrayArrayNumber = arrayArrayNumber } - public enum CodingKeys: String, CodingKey { + public enum CodingKeys: String, CodingKey { case arrayArrayNumber = "ArrayArrayNumber" } + + } + diff --git a/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/ArrayOfNumberOnly.swift b/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/ArrayOfNumberOnly.swift index 2621da38aa0..7d059d36833 100644 --- a/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/ArrayOfNumberOnly.swift +++ b/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/ArrayOfNumberOnly.swift @@ -7,14 +7,20 @@ import Foundation + + public struct ArrayOfNumberOnly: Codable { + public var arrayNumber: [Double]? public init(arrayNumber: [Double]?) { self.arrayNumber = arrayNumber } - public enum CodingKeys: String, CodingKey { + public enum CodingKeys: String, CodingKey { case arrayNumber = "ArrayNumber" } + + } + diff --git a/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/ArrayTest.swift b/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/ArrayTest.swift index f185b9dc3e3..9c56fed50c2 100644 --- a/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/ArrayTest.swift +++ b/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/ArrayTest.swift @@ -7,7 +7,10 @@ import Foundation + + public struct ArrayTest: Codable { + public var arrayOfString: [String]? public var arrayArrayOfInteger: [[Int64]]? public var arrayArrayOfModel: [[ReadOnlyFirst]]? @@ -18,9 +21,12 @@ public struct ArrayTest: Codable { self.arrayArrayOfModel = arrayArrayOfModel } - public enum CodingKeys: String, CodingKey { + public enum CodingKeys: String, CodingKey { case arrayOfString = "array_of_string" case arrayArrayOfInteger = "array_array_of_integer" case arrayArrayOfModel = "array_array_of_model" } + + } + diff --git a/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/Capitalization.swift b/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/Capitalization.swift index b56ad455668..98cda23dac9 100644 --- a/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/Capitalization.swift +++ b/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/Capitalization.swift @@ -7,7 +7,10 @@ import Foundation + + public struct Capitalization: Codable { + public var smallCamel: String? public var capitalCamel: String? public var smallSnake: String? @@ -25,7 +28,7 @@ public struct Capitalization: Codable { self.ATT_NAME = ATT_NAME } - public enum CodingKeys: String, CodingKey { + public enum CodingKeys: String, CodingKey { case smallCamel case capitalCamel = "CapitalCamel" case smallSnake = "small_Snake" @@ -33,4 +36,7 @@ public struct Capitalization: Codable { case sCAETHFlowPoints = "SCA_ETH_Flow_Points" case ATT_NAME } + + } + diff --git a/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/Cat.swift b/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/Cat.swift index df496298f0c..a116d964ea8 100644 --- a/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/Cat.swift +++ b/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/Cat.swift @@ -7,7 +7,10 @@ import Foundation + + public struct Cat: Codable { + public var className: String public var color: String? = "red" public var declawed: Bool? @@ -17,4 +20,7 @@ public struct Cat: Codable { self.color = color self.declawed = declawed } + + } + diff --git a/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/Category.swift b/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/Category.swift index 7a5bc6d6c1c..afdc89b6dd0 100644 --- a/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/Category.swift +++ b/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/Category.swift @@ -7,17 +7,23 @@ import Foundation -public struct Category: Codable { - public var _id: Int64? - public var name: String? - public init(_id: Int64?, name: String?) { + +public struct Category: Codable { + + public var _id: Int64? + public var name: String = "default-name" + + public init(_id: Int64?, name: String) { self._id = _id self.name = name } - public enum CodingKeys: String, CodingKey { + public enum CodingKeys: String, CodingKey { case _id = "id" case name } + + } + diff --git a/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/ClassModel.swift b/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/ClassModel.swift index 48c4a01e597..f673ed127cd 100644 --- a/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/ClassModel.swift +++ b/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/ClassModel.swift @@ -7,12 +7,17 @@ import Foundation + /** Model for testing model with \"_class\" property */ public struct ClassModel: Codable { + public var _class: String? public init(_class: String?) { self._class = _class } + + } + diff --git a/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/Client.swift b/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/Client.swift index 07d1e7155af..51390b6c4ea 100644 --- a/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/Client.swift +++ b/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/Client.swift @@ -7,10 +7,16 @@ import Foundation + + public struct Client: Codable { + public var client: String? public init(client: String?) { self.client = client } + + } + diff --git a/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/Dog.swift b/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/Dog.swift index e92c098dcc7..239ce74dcc2 100644 --- a/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/Dog.swift +++ b/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/Dog.swift @@ -7,7 +7,10 @@ import Foundation + + public struct Dog: Codable { + public var className: String public var color: String? = "red" public var breed: String? @@ -17,4 +20,7 @@ public struct Dog: Codable { self.color = color self.breed = breed } + + } + diff --git a/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/EnumArrays.swift b/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/EnumArrays.swift index 975174f10c2..8713961520e 100644 --- a/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/EnumArrays.swift +++ b/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/EnumArrays.swift @@ -7,17 +7,18 @@ import Foundation + + public struct EnumArrays: Codable { + public enum JustSymbol: String, Codable { case greaterThanOrEqualTo = ">=" case dollar = "$" } - public enum ArrayEnum: String, Codable { - case fish - case crab + case fish = "fish" + case crab = "crab" } - public var justSymbol: JustSymbol? public var arrayEnum: [ArrayEnum]? @@ -26,8 +27,11 @@ public struct EnumArrays: Codable { self.arrayEnum = arrayEnum } - public enum CodingKeys: String, CodingKey { + public enum CodingKeys: String, CodingKey { case justSymbol = "just_symbol" case arrayEnum = "array_enum" } + + } + diff --git a/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/EnumClass.swift b/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/EnumClass.swift index 3c1dfcac577..7280a621fec 100644 --- a/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/EnumClass.swift +++ b/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/EnumClass.swift @@ -7,6 +7,7 @@ import Foundation + public enum EnumClass: String, Codable { case abc = "_abc" case efg = "-efg" diff --git a/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/EnumTest.swift b/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/EnumTest.swift index e594b59d0f0..0f546c76a21 100644 --- a/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/EnumTest.swift +++ b/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/EnumTest.swift @@ -7,29 +7,28 @@ import Foundation + + public struct EnumTest: Codable { + public enum EnumString: String, Codable { case upper = "UPPER" - case lower + case lower = "lower" case empty = "" } - public enum EnumStringRequired: String, Codable { case upper = "UPPER" - case lower + case lower = "lower" case empty = "" } - public enum EnumInteger: Int, Codable { case _1 = 1 case number1 = -1 } - public enum EnumNumber: Double, Codable { case _11 = 1.1 case number12 = -1.2 } - public var enumString: EnumString? public var enumStringRequired: EnumStringRequired public var enumInteger: EnumInteger? @@ -44,11 +43,14 @@ public struct EnumTest: Codable { self.outerEnum = outerEnum } - public enum CodingKeys: String, CodingKey { + public enum CodingKeys: String, CodingKey { case enumString = "enum_string" case enumStringRequired = "enum_string_required" case enumInteger = "enum_integer" case enumNumber = "enum_number" case outerEnum } + + } + diff --git a/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/File.swift b/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/File.swift index af7980371e0..c8bd1f19589 100644 --- a/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/File.swift +++ b/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/File.swift @@ -7,13 +7,18 @@ import Foundation + /** Must be named `File` for test. */ public struct File: Codable { + /** Test capitalization */ public var sourceURI: String? public init(sourceURI: String?) { self.sourceURI = sourceURI } + + } + diff --git a/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/FileSchemaTestClass.swift b/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/FileSchemaTestClass.swift index 582bc0c9052..64d02506802 100644 --- a/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/FileSchemaTestClass.swift +++ b/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/FileSchemaTestClass.swift @@ -7,7 +7,10 @@ import Foundation + + public struct FileSchemaTestClass: Codable { + public var file: File? public var files: [File]? @@ -15,4 +18,7 @@ public struct FileSchemaTestClass: Codable { self.file = file self.files = files } + + } + diff --git a/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/FormatTest.swift b/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/FormatTest.swift index 50e1d1d08cc..faa091b0658 100644 --- a/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/FormatTest.swift +++ b/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/FormatTest.swift @@ -7,7 +7,10 @@ import Foundation + + public struct FormatTest: Codable { + public var integer: Int? public var int32: Int? public var int64: Int64? @@ -37,4 +40,7 @@ public struct FormatTest: Codable { self.uuid = uuid self.password = password } + + } + diff --git a/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/HasOnlyReadOnly.swift b/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/HasOnlyReadOnly.swift index f25c8021038..554aee1081a 100644 --- a/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/HasOnlyReadOnly.swift +++ b/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/HasOnlyReadOnly.swift @@ -7,7 +7,10 @@ import Foundation + + public struct HasOnlyReadOnly: Codable { + public var bar: String? public var foo: String? @@ -15,4 +18,7 @@ public struct HasOnlyReadOnly: Codable { self.bar = bar self.foo = foo } + + } + diff --git a/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/List.swift b/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/List.swift index 9170bca2710..8997340ff4b 100644 --- a/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/List.swift +++ b/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/List.swift @@ -7,14 +7,20 @@ import Foundation + + public struct List: Codable { + public var _123list: String? public init(_123list: String?) { self._123list = _123list } - public enum CodingKeys: String, CodingKey { + public enum CodingKeys: String, CodingKey { case _123list = "123-list" } + + } + diff --git a/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/MapTest.swift b/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/MapTest.swift index 9fe75f50c48..392c1e44383 100644 --- a/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/MapTest.swift +++ b/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/MapTest.swift @@ -7,28 +7,33 @@ import Foundation + + public struct MapTest: Codable { + public enum MapOfEnumString: String, Codable { case upper = "UPPER" - case lower + case lower = "lower" } + public var mapMapOfString: [String:[String:String]]? + public var mapOfEnumString: [String:String]? + public var directMap: [String:Bool]? + public var indirectMap: [String:Bool]? - public var mapMapOfString: [String: [String: String]]? - public var mapOfEnumString: [String: String]? - public var directMap: [String: Bool]? - public var indirectMap: StringBooleanMap? - - public init(mapMapOfString: [String: [String: String]]?, mapOfEnumString: [String: String]?, directMap: [String: Bool]?, indirectMap: StringBooleanMap?) { + public init(mapMapOfString: [String:[String:String]]?, mapOfEnumString: [String:String]?, directMap: [String:Bool]?, indirectMap: [String:Bool]?) { self.mapMapOfString = mapMapOfString self.mapOfEnumString = mapOfEnumString self.directMap = directMap self.indirectMap = indirectMap } - public enum CodingKeys: String, CodingKey { + public enum CodingKeys: String, CodingKey { case mapMapOfString = "map_map_of_string" case mapOfEnumString = "map_of_enum_string" case directMap = "direct_map" case indirectMap = "indirect_map" } + + } + diff --git a/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/MixedPropertiesAndAdditionalPropertiesClass.swift b/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/MixedPropertiesAndAdditionalPropertiesClass.swift index cd66f2e2523..7116108fd7a 100644 --- a/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/MixedPropertiesAndAdditionalPropertiesClass.swift +++ b/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/MixedPropertiesAndAdditionalPropertiesClass.swift @@ -7,14 +7,20 @@ import Foundation + + public struct MixedPropertiesAndAdditionalPropertiesClass: Codable { + public var uuid: UUID? public var dateTime: Date? - public var map: [String: Animal]? + public var map: [String:Animal]? - public init(uuid: UUID?, dateTime: Date?, map: [String: Animal]?) { + public init(uuid: UUID?, dateTime: Date?, map: [String:Animal]?) { self.uuid = uuid self.dateTime = dateTime self.map = map } + + } + diff --git a/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/Model200Response.swift b/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/Model200Response.swift index 71a64598403..fc1d0606b7b 100644 --- a/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/Model200Response.swift +++ b/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/Model200Response.swift @@ -7,9 +7,11 @@ import Foundation + /** Model for testing model name starting with number */ public struct Model200Response: Codable { + public var name: Int? public var _class: String? @@ -18,8 +20,11 @@ public struct Model200Response: Codable { self._class = _class } - public enum CodingKeys: String, CodingKey { + public enum CodingKeys: String, CodingKey { case name case _class = "class" } + + } + diff --git a/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/Name.swift b/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/Name.swift index 2e763d9cec4..cc165d767d9 100644 --- a/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/Name.swift +++ b/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/Name.swift @@ -7,9 +7,11 @@ import Foundation + /** Model for testing model name same as property name */ public struct Name: Codable { + public var name: Int public var snakeCase: Int? public var property: String? @@ -22,10 +24,13 @@ public struct Name: Codable { self._123number = _123number } - public enum CodingKeys: String, CodingKey { + public enum CodingKeys: String, CodingKey { case name case snakeCase = "snake_case" case property case _123number = "123Number" } + + } + diff --git a/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/NumberOnly.swift b/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/NumberOnly.swift index e17f7f837a9..e6fb206093a 100644 --- a/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/NumberOnly.swift +++ b/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/NumberOnly.swift @@ -7,14 +7,20 @@ import Foundation + + public struct NumberOnly: Codable { + public var justNumber: Double? public init(justNumber: Double?) { self.justNumber = justNumber } - public enum CodingKeys: String, CodingKey { + public enum CodingKeys: String, CodingKey { case justNumber = "JustNumber" } + + } + diff --git a/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/Order.swift b/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/Order.swift index 5c0470d50eb..5cad29458b7 100644 --- a/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/Order.swift +++ b/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/Order.swift @@ -7,13 +7,15 @@ import Foundation -public struct Order: Codable { - public enum Status: String, Codable { - case placed - case approved - case delivered - } + +public struct Order: Codable { + + public enum Status: String, Codable { + case placed = "placed" + case approved = "approved" + case delivered = "delivered" + } public var _id: Int64? public var petId: Int64? public var quantity: Int? @@ -31,7 +33,7 @@ public struct Order: Codable { self.complete = complete } - public enum CodingKeys: String, CodingKey { + public enum CodingKeys: String, CodingKey { case _id = "id" case petId case quantity @@ -39,4 +41,7 @@ public struct Order: Codable { case status case complete } + + } + diff --git a/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/OuterComposite.swift b/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/OuterComposite.swift index 7313180b130..edc4523d9f0 100644 --- a/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/OuterComposite.swift +++ b/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/OuterComposite.swift @@ -7,7 +7,10 @@ import Foundation + + public struct OuterComposite: Codable { + public var myNumber: Double? public var myString: String? public var myBoolean: Bool? @@ -18,9 +21,12 @@ public struct OuterComposite: Codable { self.myBoolean = myBoolean } - public enum CodingKeys: String, CodingKey { + public enum CodingKeys: String, CodingKey { case myNumber = "my_number" case myString = "my_string" case myBoolean = "my_boolean" } + + } + diff --git a/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/OuterEnum.swift b/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/OuterEnum.swift index f96a41a000a..bd1643d279e 100644 --- a/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/OuterEnum.swift +++ b/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/OuterEnum.swift @@ -7,8 +7,9 @@ import Foundation + public enum OuterEnum: String, Codable { - case placed - case approved - case delivered + case placed = "placed" + case approved = "approved" + case delivered = "delivered" } diff --git a/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/Pet.swift b/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/Pet.swift index a81c4de439a..3773bf53317 100644 --- a/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/Pet.swift +++ b/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/Pet.swift @@ -7,13 +7,15 @@ import Foundation -public struct Pet: Codable { - public enum Status: String, Codable { - case available - case pending - case sold - } + +public struct Pet: Codable { + + public enum Status: String, Codable { + case available = "available" + case pending = "pending" + case sold = "sold" + } public var _id: Int64? public var category: Category? public var name: String @@ -31,7 +33,7 @@ public struct Pet: Codable { self.status = status } - public enum CodingKeys: String, CodingKey { + public enum CodingKeys: String, CodingKey { case _id = "id" case category case name @@ -39,4 +41,7 @@ public struct Pet: Codable { case tags case status } + + } + diff --git a/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/ReadOnlyFirst.swift b/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/ReadOnlyFirst.swift index 79e89c2daa6..48b655a5b0a 100644 --- a/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/ReadOnlyFirst.swift +++ b/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/ReadOnlyFirst.swift @@ -7,7 +7,10 @@ import Foundation + + public struct ReadOnlyFirst: Codable { + public var bar: String? public var baz: String? @@ -15,4 +18,7 @@ public struct ReadOnlyFirst: Codable { self.bar = bar self.baz = baz } + + } + diff --git a/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/Return.swift b/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/Return.swift index 1a645d26967..de4b218999b 100644 --- a/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/Return.swift +++ b/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/Return.swift @@ -7,16 +7,21 @@ import Foundation + /** Model for testing reserved words */ public struct Return: Codable { + public var _return: Int? public init(_return: Int?) { self._return = _return } - public enum CodingKeys: String, CodingKey { + public enum CodingKeys: String, CodingKey { case _return = "return" } + + } + diff --git a/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/SpecialModelName.swift b/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/SpecialModelName.swift index ff2460d2019..213d896ba98 100644 --- a/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/SpecialModelName.swift +++ b/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/SpecialModelName.swift @@ -7,14 +7,20 @@ import Foundation + + public struct SpecialModelName: Codable { + public var specialPropertyName: Int64? public init(specialPropertyName: Int64?) { self.specialPropertyName = specialPropertyName } - public enum CodingKeys: String, CodingKey { + public enum CodingKeys: String, CodingKey { case specialPropertyName = "$special[property.name]" } + + } + diff --git a/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/StringBooleanMap.swift b/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/StringBooleanMap.swift index 581899343a1..ae15e87d94b 100644 --- a/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/StringBooleanMap.swift +++ b/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/StringBooleanMap.swift @@ -7,8 +7,12 @@ import Foundation + + public struct StringBooleanMap: Codable { - public var additionalProperties: [String: Bool] = [:] + + + public var additionalProperties: [String:Bool] = [:] public subscript(key: String) -> Bool? { get { @@ -26,6 +30,7 @@ public struct StringBooleanMap: Codable { // Encodable protocol methods public func encode(to encoder: Encoder) throws { + var container = encoder.container(keyedBy: String.self) try container.encodeMap(additionalProperties) @@ -39,4 +44,8 @@ public struct StringBooleanMap: Codable { var nonAdditionalPropertyKeys = Set() additionalProperties = try container.decodeMap(Bool.self, excludedKeys: nonAdditionalPropertyKeys) } + + + } + diff --git a/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/Tag.swift b/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/Tag.swift index 063ee1ddc3c..20f50efd3ac 100644 --- a/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/Tag.swift +++ b/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/Tag.swift @@ -7,7 +7,10 @@ import Foundation + + public struct Tag: Codable { + public var _id: Int64? public var name: String? @@ -16,8 +19,11 @@ public struct Tag: Codable { self.name = name } - public enum CodingKeys: String, CodingKey { + public enum CodingKeys: String, CodingKey { case _id = "id" case name } + + } + diff --git a/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/User.swift b/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/User.swift index aba2f35accc..d9c564d2a1f 100644 --- a/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/User.swift +++ b/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Models/User.swift @@ -7,7 +7,10 @@ import Foundation + + public struct User: Codable { + public var _id: Int64? public var username: String? public var firstName: String? @@ -29,7 +32,7 @@ public struct User: Codable { self.userStatus = userStatus } - public enum CodingKeys: String, CodingKey { + public enum CodingKeys: String, CodingKey { case _id = "id" case username case firstName @@ -39,4 +42,7 @@ public struct User: Codable { case phone case userStatus } + + } + From fd46b4e566807acd90399bff4150c00adf5b3bc8 Mon Sep 17 00:00:00 2001 From: sunn <33183834+etherealjoy@users.noreply.github.com> Date: Sat, 10 Nov 2018 21:07:49 +0100 Subject: [PATCH 09/27] Sanitize Model Import (#1411) --- .../openapitools/codegen/languages/CppQt5ClientCodegen.java | 4 ++-- .../codegen/languages/CppQt5QHttpEngineServerCodegen.java | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CppQt5ClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CppQt5ClientCodegen.java index fa812143330..9f68c9679fe 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CppQt5ClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CppQt5ClientCodegen.java @@ -276,12 +276,12 @@ public class CppQt5ClientCodegen extends AbstractCppCodegen implements CodegenCo @Override public String toModelFilename(String name) { - return initialCaps(toModelName(name)); + return sanitizeName(initialCaps(toModelName(name))); } @Override public String toApiFilename(String name) { - return modelNamePrefix + initialCaps(name) + "Api"; + return modelNamePrefix + sanitizeName(initialCaps(name)) + "Api"; } /** diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CppQt5QHttpEngineServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CppQt5QHttpEngineServerCodegen.java index f8e2f760999..10ca4b79f8d 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CppQt5QHttpEngineServerCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CppQt5QHttpEngineServerCodegen.java @@ -306,7 +306,7 @@ public class CppQt5QHttpEngineServerCodegen extends AbstractCppCodegen implement @Override public String toModelFilename(String name) { - return modelNamePrefix + initialCaps(name); + return modelNamePrefix + sanitizeName(initialCaps(name)); } @Override @@ -322,7 +322,7 @@ public class CppQt5QHttpEngineServerCodegen extends AbstractCppCodegen implement @Override public String toApiFilename(String name) { - return modelNamePrefix + initialCaps(name) + "ApiHandler"; + return modelNamePrefix + sanitizeName(initialCaps(name)) + "ApiHandler"; } /** From 7ce38aae38423b000ff6afcf39599673d30fc3d9 Mon Sep 17 00:00:00 2001 From: William Cheng Date: Sun, 11 Nov 2018 21:33:28 +0800 Subject: [PATCH 10/27] Remove duplicated imports (#1414) * remove duplicated imports * fix model import in java * update generator docs * fix model import for retrofit2 client --- .../main/java/org/openapitools/codegen/DefaultGenerator.java | 5 ++++- .../openapi-generator/src/main/resources/Java/JSON.mustache | 4 ++-- .../main/resources/Java/libraries/retrofit2/JSON.mustache | 4 ++-- samples/client/petstore/lua/.openapi-generator/VERSION | 2 +- samples/client/petstore/lua/petstore/api/pet_api.lua | 1 - samples/client/petstore/lua/petstore/api/store_api.lua | 1 - samples/client/petstore/lua/petstore/api/user_api.lua | 1 - 7 files changed, 9 insertions(+), 9 deletions(-) diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultGenerator.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultGenerator.java index a18fffa3582..e21b7cf3bab 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultGenerator.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultGenerator.java @@ -1032,13 +1032,16 @@ public class DefaultGenerator extends AbstractGenerator implements Generator { } List> imports = new ArrayList>(); + Set mappingSet = new TreeSet<>(); for (String nextImport : allImports) { Map im = new LinkedHashMap(); String mapping = config.importMapping().get(nextImport); if (mapping == null) { mapping = config.toModelImport(nextImport); } - if (mapping != null) { + + if (mapping != null && !mappingSet.contains(mapping)) { // ensure import (mapping) is unique + mappingSet.add(mapping); im.put("import", mapping); im.put("classname", nextImport); if (!imports.contains(im)) { // avoid duplicates diff --git a/modules/openapi-generator/src/main/resources/Java/JSON.mustache b/modules/openapi-generator/src/main/resources/Java/JSON.mustache index e207efbc05b..b7f458c9d12 100644 --- a/modules/openapi-generator/src/main/resources/Java/JSON.mustache +++ b/modules/openapi-generator/src/main/resources/Java/JSON.mustache @@ -25,9 +25,9 @@ import org.threeten.bp.OffsetDateTime; import org.threeten.bp.format.DateTimeFormatter; {{/threetenbp}} -{{#parent.length}} +{{#models.0}} import {{modelPackage}}.*; -{{/parent.length}} +{{/models.0}} import okio.ByteString; import java.io.IOException; diff --git a/modules/openapi-generator/src/main/resources/Java/libraries/retrofit2/JSON.mustache b/modules/openapi-generator/src/main/resources/Java/libraries/retrofit2/JSON.mustache index a7e1df8598a..9ba7567bffe 100644 --- a/modules/openapi-generator/src/main/resources/Java/libraries/retrofit2/JSON.mustache +++ b/modules/openapi-generator/src/main/resources/Java/libraries/retrofit2/JSON.mustache @@ -25,9 +25,9 @@ import org.threeten.bp.OffsetDateTime; import org.threeten.bp.format.DateTimeFormatter; {{/threetenbp}} -{{#parent.length}} +{{#models.0}} import {{modelPackage}}.*; -{{/parent.length}} +{{/models.0}} import java.io.IOException; import java.io.StringReader; diff --git a/samples/client/petstore/lua/.openapi-generator/VERSION b/samples/client/petstore/lua/.openapi-generator/VERSION index a6527129083..e24c1f857e0 100644 --- a/samples/client/petstore/lua/.openapi-generator/VERSION +++ b/samples/client/petstore/lua/.openapi-generator/VERSION @@ -1 +1 @@ -3.3.2-SNAPSHOT \ No newline at end of file +3.3.3-SNAPSHOT \ No newline at end of file diff --git a/samples/client/petstore/lua/petstore/api/pet_api.lua b/samples/client/petstore/lua/petstore/api/pet_api.lua index 9e27ac3bdb1..eb5657ce697 100644 --- a/samples/client/petstore/lua/petstore/api/pet_api.lua +++ b/samples/client/petstore/lua/petstore/api/pet_api.lua @@ -18,7 +18,6 @@ local basexx = require "basexx" -- model import local petstore_api_response = require "petstore.model.api_response" local petstore_pet = require "petstore.model.pet" -local petstore_pet = require "petstore.model.pet" local pet_api = {} local pet_api_mt = { diff --git a/samples/client/petstore/lua/petstore/api/store_api.lua b/samples/client/petstore/lua/petstore/api/store_api.lua index 0ef6ae56bc7..e3432cac5f9 100644 --- a/samples/client/petstore/lua/petstore/api/store_api.lua +++ b/samples/client/petstore/lua/petstore/api/store_api.lua @@ -17,7 +17,6 @@ local basexx = require "basexx" -- model import local petstore_order = require "petstore.model.order" -local petstore_order = require "petstore.model.order" local store_api = {} local store_api_mt = { diff --git a/samples/client/petstore/lua/petstore/api/user_api.lua b/samples/client/petstore/lua/petstore/api/user_api.lua index 1febe3aee48..3008016cf89 100644 --- a/samples/client/petstore/lua/petstore/api/user_api.lua +++ b/samples/client/petstore/lua/petstore/api/user_api.lua @@ -17,7 +17,6 @@ local basexx = require "basexx" -- model import local petstore_user = require "petstore.model.user" -local petstore_user = require "petstore.model.user" local user_api = {} local user_api_mt = { From 69a766882d4386a1d5b9475b2c0781210668b553 Mon Sep 17 00:00:00 2001 From: William Cheng Date: Mon, 12 Nov 2018 11:37:30 +0800 Subject: [PATCH 11/27] Add tip about running online openapi-generator via Docker (#1415) Add tip about running online openapi-generator via Docker --- docs/online-openapi-generator.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/online-openapi-generator.md b/docs/online-openapi-generator.md index ade1a025157..2780ca8dcdb 100644 --- a/docs/online-openapi-generator.md +++ b/docs/online-openapi-generator.md @@ -9,6 +9,8 @@ cd modules/openapi-generator-online mvn spring-boot:run ``` +:bulb: The online openapi-generator can be run via [Docker](https://github.com/OpenAPITools/openapi-generator#16---docker) as well. + For example, to generate Ruby API client, simply send the following HTTP request using curl: ```sh curl -X POST -H "content-type:application/json" -d '{"openAPIUrl":"https://raw.githubusercontent.com/openapitools/openapi-generator/master/modules/openapi-generator/src/test/resources/2_0/petstore.yaml"}' http://localhost:8080/api/gen/clients/ruby From c7349c7f88166f7dfc30e163dff7fb86a2c5a799 Mon Sep 17 00:00:00 2001 From: William Cheng Date: Mon, 12 Nov 2018 14:25:32 +0800 Subject: [PATCH 12/27] Add top level x-group-parameters support (#1405) * add top level x-group-parameters support * update petstore samples --- .../codegen/DefaultGenerator.java | 17 ++++- ...ith-fake-endpoints-models-for-testing.yaml | 16 +++++ ...ith-fake-endpoints-models-for-testing.yaml | 19 ++++++ .../csharp/OpenAPIClient/docs/FakeApi.md | 10 ++- .../src/Org.OpenAPITools/Api/FakeApi.cs | 68 ++++++++++++++++--- .../petstore/go/go-petstore/api/openapi.yaml | 19 ++++++ .../petstore/go/go-petstore/api_fake.go | 8 ++- .../petstore/go/go-petstore/docs/FakeApi.md | 8 ++- .../lib/OpenAPIPetstore/API/Fake.hs | 10 ++- .../lib/OpenAPIPetstore/Model.hs | 9 +++ .../petstore/haskell-http-client/openapi.yaml | 19 ++++++ .../org/openapitools/client/api/FakeApi.java | 26 +++++-- .../openapitools/client/api/FakeApiTest.java | 55 +++++++++++++++ .../org/openapitools/client/api/FakeApi.java | 26 +++++-- .../openapitools/client/api/FakeApiTest.java | 40 +++++++++++ .../java/google-api-client/docs/FakeApi.md | 10 ++- .../org/openapitools/client/api/FakeApi.java | 66 +++++++++++++++--- .../openapitools/client/api/FakeApiTest.java | 38 +++++++++++ .../petstore/java/jersey1/docs/FakeApi.md | 10 ++- .../org/openapitools/client/api/FakeApi.java | 26 ++++++- .../openapitools/client/api/FakeApiTest.java | 22 +++++- .../java/jersey2-java6/docs/FakeApi.md | 10 ++- .../org/openapitools/client/api/FakeApi.java | 33 +++++++-- .../openapitools/client/api/FakeApiTest.java | 21 ++++++ .../java/jersey2-java8/docs/FakeApi.md | 10 ++- .../org/openapitools/client/api/FakeApi.java | 33 +++++++-- .../openapitools/client/api/FakeApiTest.java | 5 +- .../petstore/java/jersey2/docs/FakeApi.md | 10 ++- .../org/openapitools/client/api/FakeApi.java | 33 +++++++-- .../openapitools/client/api/FakeApiTest.java | 5 +- .../docs/FakeApi.md | 10 ++- .../org/openapitools/client/api/FakeApi.java | 57 +++++++++++++--- .../openapitools/client/api/FakeApiTest.java | 38 +++++++++++ .../petstore/java/okhttp-gson/docs/FakeApi.md | 10 ++- .../org/openapitools/client/api/FakeApi.java | 57 +++++++++++++--- .../openapitools/client/api/FakeApiTest.java | 5 +- .../java/rest-assured/docs/FakeApi.md | 10 ++- .../org/openapitools/client/api/FakeApi.java | 36 ++++++++++ .../openapitools/client/api/FakeApiTest.java | 8 ++- .../petstore/java/resteasy/docs/FakeApi.md | 10 ++- .../org/openapitools/client/api/FakeApi.java | 26 ++++++- .../openapitools/client/api/FakeApiTest.java | 38 +++++++++++ .../java/resttemplate-withXml/docs/FakeApi.md | 10 ++- .../org/openapitools/client/api/FakeApi.java | 24 ++++++- .../openapitools/client/api/FakeApiTest.java | 38 +++++++++++ .../java/resttemplate/docs/FakeApi.md | 10 ++- .../org/openapitools/client/api/FakeApi.java | 24 ++++++- .../openapitools/client/api/FakeApiTest.java | 38 +++++++++++ .../org/openapitools/client/api/FakeApi.java | 10 ++- .../openapitools/client/api/FakeApiTest.java | 32 +++++++++ .../java/retrofit2-play24/docs/FakeApi.md | 10 ++- .../org/openapitools/client/api/FakeApi.java | 5 +- .../openapitools/client/api/FakeApiTest.java | 30 ++++++++ .../java/retrofit2-play25/docs/FakeApi.md | 10 ++- .../org/openapitools/client/api/FakeApi.java | 5 +- .../openapitools/client/api/FakeApiTest.java | 30 ++++++++ .../java/retrofit2-play26/docs/FakeApi.md | 10 ++- .../org/openapitools/client/api/FakeApi.java | 5 +- .../openapitools/client/api/FakeApiTest.java | 53 ++++++++++----- .../petstore/java/retrofit2/docs/FakeApi.md | 10 ++- .../org/openapitools/client/api/FakeApi.java | 5 +- .../openapitools/client/api/FakeApiTest.java | 30 ++++++++ .../petstore/java/retrofit2rx/docs/FakeApi.md | 10 ++- .../org/openapitools/client/api/FakeApi.java | 5 +- .../openapitools/client/api/FakeApiTest.java | 30 ++++++++ .../java/retrofit2rx2/docs/FakeApi.md | 10 ++- .../org/openapitools/client/api/FakeApi.java | 5 +- .../openapitools/client/api/FakeApiTest.java | 30 ++++++++ .../petstore/java/vertx/docs/FakeApi.md | 10 ++- .../org/openapitools/client/api/FakeApi.java | 2 +- .../openapitools/client/api/FakeApiImpl.java | 29 +++++++- .../client/api/rxjava/FakeApi.java | 14 ++-- .../openapitools/client/api/FakeApiTest.java | 38 +++++++++++ .../petstore/java/webclient/docs/FakeApi.md | 10 ++- .../org/openapitools/client/api/FakeApi.java | 24 ++++++- .../openapitools/client/api/FakeApiTest.java | 18 +++++ .../php/OpenAPIClient-php/docs/Api/FakeApi.md | 8 ++- .../php/OpenAPIClient-php/lib/Api/FakeApi.php | 50 +++++++++++++- samples/client/petstore/ruby/docs/FakeApi.md | 10 ++- .../ruby/lib/petstore/api/fake_api.rb | 27 +++++++- .../php/OpenAPIClient-php/docs/Api/FakeApi.md | 8 ++- .../php/OpenAPIClient-php/lib/Api/FakeApi.php | 50 +++++++++++++- .../java/org/openapitools/api/FakeApi.java | 2 +- .../api/impl/FakeApiServiceImpl.java | 2 +- .../org/openapitools/api/FakeApiTest.java | 5 +- .../java/org/openapitools/api/FakeApi.java | 7 +- .../org/openapitools/api/FakeApiService.java | 2 +- .../api/impl/FakeApiServiceImpl.java | 2 +- .../java/org/openapitools/api/FakeApi.java | 7 +- .../org/openapitools/api/FakeApiService.java | 2 +- .../api/impl/FakeApiServiceImpl.java | 2 +- .../java/org/openapitools/api/FakeApi.java | 2 +- .../src/main/openapi/openapi.yaml | 19 ++++++ .../java/org/openapitools/api/FakeApi.java | 2 +- .../jaxrs-spec/src/main/openapi/openapi.yaml | 19 ++++++ .../java/org/openapitools/api/FakeApi.java | 5 +- .../org/openapitools/api/FakeApiService.java | 2 +- .../api/impl/FakeApiServiceImpl.java | 2 +- .../java/org/openapitools/api/FakeApi.java | 5 +- .../org/openapitools/api/FakeApiService.java | 2 +- .../api/impl/FakeApiServiceImpl.java | 2 +- .../java/org/openapitools/api/FakeApi.java | 7 +- .../org/openapitools/api/FakeApiService.java | 2 +- .../api/impl/FakeApiServiceImpl.java | 2 +- .../java/org/openapitools/api/FakeApi.java | 7 +- .../org/openapitools/api/FakeApiService.java | 2 +- .../api/impl/FakeApiServiceImpl.java | 2 +- .../lib/app/Http/Controllers/FakeApi.php | 15 ++++ .../petstore/php-slim/lib/Api/FakeApi.php | 3 + .../java/org/openapitools/api/FakeApi.java | 2 +- .../java/org/openapitools/api/FakeApi.java | 2 +- .../java/org/openapitools/api/FakeApi.java | 2 +- .../openapitools/api/FakeApiController.java | 2 +- .../java/org/openapitools/api/FakeApi.java | 2 +- .../openapitools/api/FakeApiController.java | 2 +- .../java/org/openapitools/api/FakeApi.java | 4 +- .../org/openapitools/api/FakeApiDelegate.java | 5 +- .../java/org/openapitools/api/FakeApi.java | 2 +- .../openapitools/api/FakeApiController.java | 4 +- .../org/openapitools/api/FakeApiDelegate.java | 5 +- .../java/org/openapitools/api/FakeApi.java | 3 +- .../java/org/openapitools/api/FakeApi.java | 4 +- .../org/openapitools/api/FakeApiDelegate.java | 5 +- .../src/main/resources/openapi.yaml | 19 ++++++ .../java/org/openapitools/api/FakeApi.java | 2 +- .../openapitools/virtualan/api/FakeApi.java | 2 +- .../java/org/openapitools/api/FakeApi.java | 2 +- 127 files changed, 1762 insertions(+), 202 deletions(-) diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultGenerator.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultGenerator.java index e21b7cf3bab..4128fb71b3d 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultGenerator.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultGenerator.java @@ -170,7 +170,6 @@ public class DefaultGenerator extends AbstractGenerator implements Generator { config.additionalProperties().put(CodegenConstants.EXCLUDE_TESTS, true); } - if (System.getProperty("debugOpenAPI") != null) { Json.prettyPrint(openAPI); } else if (System.getProperty("debugSwagger") != null) { @@ -528,6 +527,21 @@ public class DefaultGenerator extends AbstractGenerator implements Generator { operation.put("vendorExtensions", config.vendorExtensions()); } + // process top-level x-group-parameters + if (config.vendorExtensions().containsKey("x-group-parameters")) { + Boolean isGroupParameters = Boolean.valueOf(config.vendorExtensions().get("x-group-parameters").toString()); + + Map objectMap = (Map) operation.get("operations"); + @SuppressWarnings("unchecked") + List operations = (List) objectMap.get("operation"); + for (CodegenOperation op : operations) { + op.httpMethod = op.httpMethod.toLowerCase(Locale.ROOT); + if (!op.vendorExtensions.containsKey("x-group-parameters")) { + op.vendorExtensions.put("x-group-parameters", Boolean.TRUE); + } + } + } + // Pass sortParamsByRequiredFlag through to the Mustache template... boolean sortParamsByRequiredFlag = true; if (this.config.additionalProperties().containsKey(CodegenConstants.SORT_PARAMS_BY_REQUIRED_FLAG)) { @@ -1056,6 +1070,7 @@ public class DefaultGenerator extends AbstractGenerator implements Generator { if (imports.size() > 0) { operations.put("hasImport", true); } + config.postProcessOperations(operations); config.postProcessOperationsWithModels(operations, allModels); if (objs.size() > 0) { diff --git a/modules/openapi-generator/src/test/resources/2_0/petstore-with-fake-endpoints-models-for-testing.yaml b/modules/openapi-generator/src/test/resources/2_0/petstore-with-fake-endpoints-models-for-testing.yaml index 4307bdc0eb5..2a57404e601 100644 --- a/modules/openapi-generator/src/test/resources/2_0/petstore-with-fake-endpoints-models-for-testing.yaml +++ b/modules/openapi-generator/src/test/resources/2_0/petstore-with-fake-endpoints-models-for-testing.yaml @@ -800,6 +800,22 @@ paths: operationId: testGroupParameters x-group-parameters: true parameters: + - name: required_string_group + type: integer + in: query + description: Required String in group parameters + required: true + - name: required_boolean_group + type: boolean + in: header + description: Required Boolean in group parameters + required: true + - name: required_int64_group + type: integer + format: int64 + in: query + description: Required Integer in group parameters + required: true - name: string_group type: integer in: query diff --git a/modules/openapi-generator/src/test/resources/3_0/petstore-with-fake-endpoints-models-for-testing.yaml b/modules/openapi-generator/src/test/resources/3_0/petstore-with-fake-endpoints-models-for-testing.yaml index d60c17ddc3a..563ca99bc94 100644 --- a/modules/openapi-generator/src/test/resources/3_0/petstore-with-fake-endpoints-models-for-testing.yaml +++ b/modules/openapi-generator/src/test/resources/3_0/petstore-with-fake-endpoints-models-for-testing.yaml @@ -773,6 +773,25 @@ paths: operationId: testGroupParameters x-group-parameters: true parameters: + - name: required_string_group + in: query + description: Required String in group parameters + required: true + schema: + type: integer + - name: required_boolean_group + in: header + description: Required Boolean in group parameters + required: true + schema: + type: boolean + - name: required_int64_group + in: query + description: Required Integer in group parameters + required: true + schema: + type: integer + format: int64 - name: string_group in: query description: String in group parameters diff --git a/samples/client/petstore/csharp/OpenAPIClient/docs/FakeApi.md b/samples/client/petstore/csharp/OpenAPIClient/docs/FakeApi.md index d9f2c5dc7f3..5be422501cd 100644 --- a/samples/client/petstore/csharp/OpenAPIClient/docs/FakeApi.md +++ b/samples/client/petstore/csharp/OpenAPIClient/docs/FakeApi.md @@ -603,7 +603,7 @@ No authorization required # **TestGroupParameters** -> void TestGroupParameters (int? stringGroup = null, bool? booleanGroup = null, long? int64Group = null) +> void TestGroupParameters (int? requiredStringGroup, bool? requiredBooleanGroup, long? requiredInt64Group, int? stringGroup = null, bool? booleanGroup = null, long? int64Group = null) Fake endpoint to test group parameters (optional) @@ -624,6 +624,9 @@ namespace Example public void main() { var apiInstance = new FakeApi(); + var requiredStringGroup = 56; // int? | Required String in group parameters + var requiredBooleanGroup = true; // bool? | Required Boolean in group parameters + var requiredInt64Group = 789; // long? | Required Integer in group parameters var stringGroup = 56; // int? | String in group parameters (optional) var booleanGroup = true; // bool? | Boolean in group parameters (optional) var int64Group = 789; // long? | Integer in group parameters (optional) @@ -631,7 +634,7 @@ namespace Example try { // Fake endpoint to test group parameters (optional) - apiInstance.TestGroupParameters(stringGroup, booleanGroup, int64Group); + apiInstance.TestGroupParameters(requiredStringGroup, requiredBooleanGroup, requiredInt64Group, stringGroup, booleanGroup, int64Group); } catch (Exception e) { @@ -646,6 +649,9 @@ namespace Example Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- + **requiredStringGroup** | **int?**| Required String in group parameters | + **requiredBooleanGroup** | **bool?**| Required Boolean in group parameters | + **requiredInt64Group** | **long?**| Required Integer in group parameters | **stringGroup** | **int?**| String in group parameters | [optional] **booleanGroup** | **bool?**| Boolean in group parameters | [optional] **int64Group** | **long?**| Integer in group parameters | [optional] diff --git a/samples/client/petstore/csharp/OpenAPIClient/src/Org.OpenAPITools/Api/FakeApi.cs b/samples/client/petstore/csharp/OpenAPIClient/src/Org.OpenAPITools/Api/FakeApi.cs index 283b7db9dc2..5de355ea7db 100644 --- a/samples/client/petstore/csharp/OpenAPIClient/src/Org.OpenAPITools/Api/FakeApi.cs +++ b/samples/client/petstore/csharp/OpenAPIClient/src/Org.OpenAPITools/Api/FakeApi.cs @@ -262,11 +262,14 @@ namespace Org.OpenAPITools.Api /// Fake endpoint to test group parameters (optional) /// /// Thrown when fails to make API call + /// Required String in group parameters + /// Required Boolean in group parameters + /// Required Integer in group parameters /// String in group parameters (optional) /// Boolean in group parameters (optional) /// Integer in group parameters (optional) /// - void TestGroupParameters (int? stringGroup = null, bool? booleanGroup = null, long? int64Group = null); + void TestGroupParameters (int? requiredStringGroup, bool? requiredBooleanGroup, long? requiredInt64Group, int? stringGroup = null, bool? booleanGroup = null, long? int64Group = null); /// /// Fake endpoint to test group parameters (optional) @@ -275,11 +278,14 @@ namespace Org.OpenAPITools.Api /// Fake endpoint to test group parameters (optional) /// /// Thrown when fails to make API call + /// Required String in group parameters + /// Required Boolean in group parameters + /// Required Integer in group parameters /// String in group parameters (optional) /// Boolean in group parameters (optional) /// Integer in group parameters (optional) /// ApiResponse of Object(void) - ApiResponse TestGroupParametersWithHttpInfo (int? stringGroup = null, bool? booleanGroup = null, long? int64Group = null); + ApiResponse TestGroupParametersWithHttpInfo (int? requiredStringGroup, bool? requiredBooleanGroup, long? requiredInt64Group, int? stringGroup = null, bool? booleanGroup = null, long? int64Group = null); /// /// test inline additionalProperties /// @@ -564,11 +570,14 @@ namespace Org.OpenAPITools.Api /// Fake endpoint to test group parameters (optional) /// /// Thrown when fails to make API call + /// Required String in group parameters + /// Required Boolean in group parameters + /// Required Integer in group parameters /// String in group parameters (optional) /// Boolean in group parameters (optional) /// Integer in group parameters (optional) /// Task of void - System.Threading.Tasks.Task TestGroupParametersAsync (int? stringGroup = null, bool? booleanGroup = null, long? int64Group = null); + System.Threading.Tasks.Task TestGroupParametersAsync (int? requiredStringGroup, bool? requiredBooleanGroup, long? requiredInt64Group, int? stringGroup = null, bool? booleanGroup = null, long? int64Group = null); /// /// Fake endpoint to test group parameters (optional) @@ -577,11 +586,14 @@ namespace Org.OpenAPITools.Api /// Fake endpoint to test group parameters (optional) /// /// Thrown when fails to make API call + /// Required String in group parameters + /// Required Boolean in group parameters + /// Required Integer in group parameters /// String in group parameters (optional) /// Boolean in group parameters (optional) /// Integer in group parameters (optional) /// Task of ApiResponse - System.Threading.Tasks.Task> TestGroupParametersAsyncWithHttpInfo (int? stringGroup = null, bool? booleanGroup = null, long? int64Group = null); + System.Threading.Tasks.Task> TestGroupParametersAsyncWithHttpInfo (int? requiredStringGroup, bool? requiredBooleanGroup, long? requiredInt64Group, int? stringGroup = null, bool? booleanGroup = null, long? int64Group = null); /// /// test inline additionalProperties /// @@ -2162,25 +2174,40 @@ namespace Org.OpenAPITools.Api /// Fake endpoint to test group parameters (optional) Fake endpoint to test group parameters (optional) /// /// Thrown when fails to make API call + /// Required String in group parameters + /// Required Boolean in group parameters + /// Required Integer in group parameters /// String in group parameters (optional) /// Boolean in group parameters (optional) /// Integer in group parameters (optional) /// - public void TestGroupParameters (int? stringGroup = null, bool? booleanGroup = null, long? int64Group = null) + public void TestGroupParameters (int? requiredStringGroup, bool? requiredBooleanGroup, long? requiredInt64Group, int? stringGroup = null, bool? booleanGroup = null, long? int64Group = null) { - TestGroupParametersWithHttpInfo(stringGroup, booleanGroup, int64Group); + TestGroupParametersWithHttpInfo(requiredStringGroup, requiredBooleanGroup, requiredInt64Group, stringGroup, booleanGroup, int64Group); } /// /// Fake endpoint to test group parameters (optional) Fake endpoint to test group parameters (optional) /// /// Thrown when fails to make API call + /// Required String in group parameters + /// Required Boolean in group parameters + /// Required Integer in group parameters /// String in group parameters (optional) /// Boolean in group parameters (optional) /// Integer in group parameters (optional) /// ApiResponse of Object(void) - public ApiResponse TestGroupParametersWithHttpInfo (int? stringGroup = null, bool? booleanGroup = null, long? int64Group = null) + public ApiResponse TestGroupParametersWithHttpInfo (int? requiredStringGroup, bool? requiredBooleanGroup, long? requiredInt64Group, int? stringGroup = null, bool? booleanGroup = null, long? int64Group = null) { + // verify the required parameter 'requiredStringGroup' is set + if (requiredStringGroup == null) + throw new ApiException(400, "Missing required parameter 'requiredStringGroup' when calling FakeApi->TestGroupParameters"); + // verify the required parameter 'requiredBooleanGroup' is set + if (requiredBooleanGroup == null) + throw new ApiException(400, "Missing required parameter 'requiredBooleanGroup' when calling FakeApi->TestGroupParameters"); + // verify the required parameter 'requiredInt64Group' is set + if (requiredInt64Group == null) + throw new ApiException(400, "Missing required parameter 'requiredInt64Group' when calling FakeApi->TestGroupParameters"); var localVarPath = "/fake"; var localVarPathParams = new Dictionary(); @@ -2202,8 +2229,11 @@ namespace Org.OpenAPITools.Api if (localVarHttpHeaderAccept != null) localVarHeaderParams.Add("Accept", localVarHttpHeaderAccept); + if (requiredStringGroup != null) localVarQueryParams.AddRange(this.Configuration.ApiClient.ParameterToKeyValuePairs("", "required_string_group", requiredStringGroup)); // query parameter + if (requiredInt64Group != null) localVarQueryParams.AddRange(this.Configuration.ApiClient.ParameterToKeyValuePairs("", "required_int64_group", requiredInt64Group)); // query parameter if (stringGroup != null) localVarQueryParams.AddRange(this.Configuration.ApiClient.ParameterToKeyValuePairs("", "string_group", stringGroup)); // query parameter if (int64Group != null) localVarQueryParams.AddRange(this.Configuration.ApiClient.ParameterToKeyValuePairs("", "int64_group", int64Group)); // query parameter + if (requiredBooleanGroup != null) localVarHeaderParams.Add("required_boolean_group", this.Configuration.ApiClient.ParameterToString(requiredBooleanGroup)); // header parameter if (booleanGroup != null) localVarHeaderParams.Add("boolean_group", this.Configuration.ApiClient.ParameterToString(booleanGroup)); // header parameter @@ -2229,13 +2259,16 @@ namespace Org.OpenAPITools.Api /// Fake endpoint to test group parameters (optional) Fake endpoint to test group parameters (optional) /// /// Thrown when fails to make API call + /// Required String in group parameters + /// Required Boolean in group parameters + /// Required Integer in group parameters /// String in group parameters (optional) /// Boolean in group parameters (optional) /// Integer in group parameters (optional) /// Task of void - public async System.Threading.Tasks.Task TestGroupParametersAsync (int? stringGroup = null, bool? booleanGroup = null, long? int64Group = null) + public async System.Threading.Tasks.Task TestGroupParametersAsync (int? requiredStringGroup, bool? requiredBooleanGroup, long? requiredInt64Group, int? stringGroup = null, bool? booleanGroup = null, long? int64Group = null) { - await TestGroupParametersAsyncWithHttpInfo(stringGroup, booleanGroup, int64Group); + await TestGroupParametersAsyncWithHttpInfo(requiredStringGroup, requiredBooleanGroup, requiredInt64Group, stringGroup, booleanGroup, int64Group); } @@ -2243,12 +2276,24 @@ namespace Org.OpenAPITools.Api /// Fake endpoint to test group parameters (optional) Fake endpoint to test group parameters (optional) /// /// Thrown when fails to make API call + /// Required String in group parameters + /// Required Boolean in group parameters + /// Required Integer in group parameters /// String in group parameters (optional) /// Boolean in group parameters (optional) /// Integer in group parameters (optional) /// Task of ApiResponse - public async System.Threading.Tasks.Task> TestGroupParametersAsyncWithHttpInfo (int? stringGroup = null, bool? booleanGroup = null, long? int64Group = null) + public async System.Threading.Tasks.Task> TestGroupParametersAsyncWithHttpInfo (int? requiredStringGroup, bool? requiredBooleanGroup, long? requiredInt64Group, int? stringGroup = null, bool? booleanGroup = null, long? int64Group = null) { + // verify the required parameter 'requiredStringGroup' is set + if (requiredStringGroup == null) + throw new ApiException(400, "Missing required parameter 'requiredStringGroup' when calling FakeApi->TestGroupParameters"); + // verify the required parameter 'requiredBooleanGroup' is set + if (requiredBooleanGroup == null) + throw new ApiException(400, "Missing required parameter 'requiredBooleanGroup' when calling FakeApi->TestGroupParameters"); + // verify the required parameter 'requiredInt64Group' is set + if (requiredInt64Group == null) + throw new ApiException(400, "Missing required parameter 'requiredInt64Group' when calling FakeApi->TestGroupParameters"); var localVarPath = "/fake"; var localVarPathParams = new Dictionary(); @@ -2270,8 +2315,11 @@ namespace Org.OpenAPITools.Api if (localVarHttpHeaderAccept != null) localVarHeaderParams.Add("Accept", localVarHttpHeaderAccept); + if (requiredStringGroup != null) localVarQueryParams.AddRange(this.Configuration.ApiClient.ParameterToKeyValuePairs("", "required_string_group", requiredStringGroup)); // query parameter + if (requiredInt64Group != null) localVarQueryParams.AddRange(this.Configuration.ApiClient.ParameterToKeyValuePairs("", "required_int64_group", requiredInt64Group)); // query parameter if (stringGroup != null) localVarQueryParams.AddRange(this.Configuration.ApiClient.ParameterToKeyValuePairs("", "string_group", stringGroup)); // query parameter if (int64Group != null) localVarQueryParams.AddRange(this.Configuration.ApiClient.ParameterToKeyValuePairs("", "int64_group", int64Group)); // query parameter + if (requiredBooleanGroup != null) localVarHeaderParams.Add("required_boolean_group", this.Configuration.ApiClient.ParameterToString(requiredBooleanGroup)); // header parameter if (booleanGroup != null) localVarHeaderParams.Add("boolean_group", this.Configuration.ApiClient.ParameterToString(booleanGroup)); // header parameter diff --git a/samples/client/petstore/go/go-petstore/api/openapi.yaml b/samples/client/petstore/go/go-petstore/api/openapi.yaml index 95a925396fa..40878d2c58d 100644 --- a/samples/client/petstore/go/go-petstore/api/openapi.yaml +++ b/samples/client/petstore/go/go-petstore/api/openapi.yaml @@ -593,6 +593,25 @@ paths: description: Fake endpoint to test group parameters (optional) operationId: testGroupParameters parameters: + - description: Required String in group parameters + in: query + name: required_string_group + required: true + schema: + type: integer + - description: Required Boolean in group parameters + in: header + name: required_boolean_group + required: true + schema: + type: boolean + - description: Required Integer in group parameters + in: query + name: required_int64_group + required: true + schema: + format: int64 + type: integer - description: String in group parameters in: query name: string_group diff --git a/samples/client/petstore/go/go-petstore/api_fake.go b/samples/client/petstore/go/go-petstore/api_fake.go index f3792213114..4b6efb216fc 100644 --- a/samples/client/petstore/go/go-petstore/api_fake.go +++ b/samples/client/petstore/go/go-petstore/api_fake.go @@ -914,6 +914,9 @@ func (a *FakeApiService) TestEnumParameters(ctx context.Context, localVarOptiona FakeApiService Fake endpoint to test group parameters (optional) Fake endpoint to test group parameters (optional) * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + * @param requiredStringGroup Required String in group parameters + * @param requiredBooleanGroup Required Boolean in group parameters + * @param requiredInt64Group Required Integer in group parameters * @param optional nil or *TestGroupParametersOpts - Optional Parameters: * @param "StringGroup" (optional.Int32) - String in group parameters * @param "BooleanGroup" (optional.Bool) - Boolean in group parameters @@ -926,7 +929,7 @@ type TestGroupParametersOpts struct { Int64Group optional.Int64 } -func (a *FakeApiService) TestGroupParameters(ctx context.Context, localVarOptionals *TestGroupParametersOpts) (*http.Response, error) { +func (a *FakeApiService) TestGroupParameters(ctx context.Context, requiredStringGroup int32, requiredBooleanGroup bool, requiredInt64Group int64, localVarOptionals *TestGroupParametersOpts) (*http.Response, error) { var ( localVarHttpMethod = strings.ToUpper("Delete") localVarPostBody interface{} @@ -942,6 +945,8 @@ func (a *FakeApiService) TestGroupParameters(ctx context.Context, localVarOption localVarQueryParams := url.Values{} localVarFormParams := url.Values{} + localVarQueryParams.Add("required_string_group", parameterToString(requiredStringGroup, "")) + localVarQueryParams.Add("required_int64_group", parameterToString(requiredInt64Group, "")) if localVarOptionals != nil && localVarOptionals.StringGroup.IsSet() { localVarQueryParams.Add("string_group", parameterToString(localVarOptionals.StringGroup.Value(), "")) } @@ -965,6 +970,7 @@ func (a *FakeApiService) TestGroupParameters(ctx context.Context, localVarOption if localVarHttpHeaderAccept != "" { localVarHeaderParams["Accept"] = localVarHttpHeaderAccept } + localVarHeaderParams["required_boolean_group"] = parameterToString(requiredBooleanGroup, "") if localVarOptionals != nil && localVarOptionals.BooleanGroup.IsSet() { localVarHeaderParams["boolean_group"] = parameterToString(localVarOptionals.BooleanGroup.Value(), "") } diff --git a/samples/client/petstore/go/go-petstore/docs/FakeApi.md b/samples/client/petstore/go/go-petstore/docs/FakeApi.md index 8490ca254c7..c08f5d6f714 100644 --- a/samples/client/petstore/go/go-petstore/docs/FakeApi.md +++ b/samples/client/petstore/go/go-petstore/docs/FakeApi.md @@ -336,7 +336,7 @@ No authorization required [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) # **TestGroupParameters** -> TestGroupParameters(ctx, optional) +> TestGroupParameters(ctx, requiredStringGroup, requiredBooleanGroup, requiredInt64Group, optional) Fake endpoint to test group parameters (optional) Fake endpoint to test group parameters (optional) @@ -346,6 +346,9 @@ Fake endpoint to test group parameters (optional) Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. + **requiredStringGroup** | **int32**| Required String in group parameters | + **requiredBooleanGroup** | **bool**| Required Boolean in group parameters | + **requiredInt64Group** | **int64**| Required Integer in group parameters | **optional** | ***TestGroupParametersOpts** | optional parameters | nil if no parameters ### Optional Parameters @@ -353,6 +356,9 @@ Optional parameters are passed through a pointer to a TestGroupParametersOpts st Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- + + + **stringGroup** | **optional.Int32**| String in group parameters | **booleanGroup** | **optional.Bool**| Boolean in group parameters | **int64Group** | **optional.Int64**| Integer in group parameters | diff --git a/samples/client/petstore/haskell-http-client/lib/OpenAPIPetstore/API/Fake.hs b/samples/client/petstore/haskell-http-client/lib/OpenAPIPetstore/API/Fake.hs index 0af6e0fa70e..03b15031c2c 100644 --- a/samples/client/petstore/haskell-http-client/lib/OpenAPIPetstore/API/Fake.hs +++ b/samples/client/petstore/haskell-http-client/lib/OpenAPIPetstore/API/Fake.hs @@ -377,9 +377,15 @@ instance Produces TestEnumParameters MimeNoContent -- Fake endpoint to test group parameters (optional) -- testGroupParameters - :: OpenAPIPetstoreRequest TestGroupParameters MimeNoContent NoContent MimeNoContent -testGroupParameters = + :: RequiredStringGroup -- ^ "requiredStringGroup" - Required String in group parameters + -> RequiredBooleanGroup -- ^ "requiredBooleanGroup" - Required Boolean in group parameters + -> RequiredInt64Group -- ^ "requiredInt64Group" - Required Integer in group parameters + -> OpenAPIPetstoreRequest TestGroupParameters MimeNoContent NoContent MimeNoContent +testGroupParameters (RequiredStringGroup requiredStringGroup) (RequiredBooleanGroup requiredBooleanGroup) (RequiredInt64Group requiredInt64Group) = _mkRequest "DELETE" ["/fake"] + `setQuery` toQuery ("required_string_group", Just requiredStringGroup) + `setHeader` toHeader ("required_boolean_group", requiredBooleanGroup) + `setQuery` toQuery ("required_int64_group", Just requiredInt64Group) data TestGroupParameters diff --git a/samples/client/petstore/haskell-http-client/lib/OpenAPIPetstore/Model.hs b/samples/client/petstore/haskell-http-client/lib/OpenAPIPetstore/Model.hs index d6a12c9dc75..ef55290920b 100644 --- a/samples/client/petstore/haskell-http-client/lib/OpenAPIPetstore/Model.hs +++ b/samples/client/petstore/haskell-http-client/lib/OpenAPIPetstore/Model.hs @@ -180,9 +180,18 @@ newtype Query = Query { unQuery :: Text } deriving (P.Eq, P.Show) -- ** RequestBody newtype RequestBody = RequestBody { unRequestBody :: (Map.Map String Text) } deriving (P.Eq, P.Show, A.ToJSON) +-- ** RequiredBooleanGroup +newtype RequiredBooleanGroup = RequiredBooleanGroup { unRequiredBooleanGroup :: Bool } deriving (P.Eq, P.Show) + -- ** RequiredFile newtype RequiredFile = RequiredFile { unRequiredFile :: FilePath } deriving (P.Eq, P.Show) +-- ** RequiredInt64Group +newtype RequiredInt64Group = RequiredInt64Group { unRequiredInt64Group :: Integer } deriving (P.Eq, P.Show) + +-- ** RequiredStringGroup +newtype RequiredStringGroup = RequiredStringGroup { unRequiredStringGroup :: Int } deriving (P.Eq, P.Show) + -- ** Status newtype Status = Status { unStatus :: [E'Status2] } deriving (P.Eq, P.Show) diff --git a/samples/client/petstore/haskell-http-client/openapi.yaml b/samples/client/petstore/haskell-http-client/openapi.yaml index 95a925396fa..40878d2c58d 100644 --- a/samples/client/petstore/haskell-http-client/openapi.yaml +++ b/samples/client/petstore/haskell-http-client/openapi.yaml @@ -593,6 +593,25 @@ paths: description: Fake endpoint to test group parameters (optional) operationId: testGroupParameters parameters: + - description: Required String in group parameters + in: query + name: required_string_group + required: true + schema: + type: integer + - description: Required Boolean in group parameters + in: header + name: required_boolean_group + required: true + schema: + type: boolean + - description: Required Integer in group parameters + in: query + name: required_int64_group + required: true + schema: + format: int64 + type: integer - description: String in group parameters in: query name: string_group diff --git a/samples/client/petstore/java/feign/src/main/java/org/openapitools/client/api/FakeApi.java b/samples/client/petstore/java/feign/src/main/java/org/openapitools/client/api/FakeApi.java index af078f73628..e5bcaac7afe 100644 --- a/samples/client/petstore/java/feign/src/main/java/org/openapitools/client/api/FakeApi.java +++ b/samples/client/petstore/java/feign/src/main/java/org/openapitools/client/api/FakeApi.java @@ -249,16 +249,21 @@ public interface FakeApi extends ApiClient.Api { /** * Fake endpoint to test group parameters (optional) * Fake endpoint to test group parameters (optional) + * @param requiredStringGroup Required String in group parameters (required) + * @param requiredBooleanGroup Required Boolean in group parameters (required) + * @param requiredInt64Group Required Integer in group parameters (required) * @param stringGroup String in group parameters (optional) * @param booleanGroup Boolean in group parameters (optional) * @param int64Group Integer in group parameters (optional) */ - @RequestLine("DELETE /fake?string_group={stringGroup}&int64_group={int64Group}") + @RequestLine("DELETE /fake?required_string_group={requiredStringGroup}&required_int64_group={requiredInt64Group}&string_group={stringGroup}&int64_group={int64Group}") @Headers({ "Accept: application/json", + "required_boolean_group: {requiredBooleanGroup}", + "boolean_group: {booleanGroup}" }) - void testGroupParameters(@Param("stringGroup") Integer stringGroup, @Param("booleanGroup") Boolean booleanGroup, @Param("int64Group") Long int64Group); + void testGroupParameters(@Param("requiredStringGroup") Integer requiredStringGroup, @Param("requiredBooleanGroup") Boolean requiredBooleanGroup, @Param("requiredInt64Group") Long requiredInt64Group, @Param("stringGroup") Integer stringGroup, @Param("booleanGroup") Boolean booleanGroup, @Param("int64Group") Long int64Group); /** * Fake endpoint to test group parameters (optional) @@ -268,26 +273,39 @@ public interface FakeApi extends ApiClient.Api { * is convenient for services with optional query parameters, especially when * used with the {@link TestGroupParametersQueryParams} class that allows for * building up this map in a fluent style. + * @param requiredBooleanGroup Required Boolean in group parameters (required) * @param booleanGroup Boolean in group parameters (optional) * @param queryParams Map of query parameters as name-value pairs *

The following elements may be specified in the query map:

*
    + *
  • requiredStringGroup - Required String in group parameters (required)
  • + *
  • requiredInt64Group - Required Integer in group parameters (required)
  • *
  • stringGroup - String in group parameters (optional)
  • *
  • int64Group - Integer in group parameters (optional)
  • *
*/ - @RequestLine("DELETE /fake?string_group={stringGroup}&int64_group={int64Group}") + @RequestLine("DELETE /fake?required_string_group={requiredStringGroup}&required_int64_group={requiredInt64Group}&string_group={stringGroup}&int64_group={int64Group}") @Headers({ "Accept: application/json", + "required_boolean_group: {requiredBooleanGroup}", + "boolean_group: {booleanGroup}" }) - void testGroupParameters(@Param("booleanGroup") Boolean booleanGroup, @QueryMap(encoded=true) Map queryParams); + void testGroupParameters(@Param("requiredBooleanGroup") Boolean requiredBooleanGroup, @Param("booleanGroup") Boolean booleanGroup, @QueryMap(encoded=true) Map queryParams); /** * A convenience class for generating query parameters for the * testGroupParameters method in a fluent style. */ public static class TestGroupParametersQueryParams extends HashMap { + public TestGroupParametersQueryParams requiredStringGroup(final Integer value) { + put("required_string_group", EncodingUtils.encode(value)); + return this; + } + public TestGroupParametersQueryParams requiredInt64Group(final Long value) { + put("required_int64_group", EncodingUtils.encode(value)); + return this; + } public TestGroupParametersQueryParams stringGroup(final Integer value) { put("string_group", EncodingUtils.encode(value)); return this; diff --git a/samples/client/petstore/java/feign/src/test/java/org/openapitools/client/api/FakeApiTest.java b/samples/client/petstore/java/feign/src/test/java/org/openapitools/client/api/FakeApiTest.java index 1203f5b63bd..bbb4a9bbc85 100644 --- a/samples/client/petstore/java/feign/src/test/java/org/openapitools/client/api/FakeApiTest.java +++ b/samples/client/petstore/java/feign/src/test/java/org/openapitools/client/api/FakeApiTest.java @@ -4,6 +4,7 @@ import org.openapitools.client.ApiClient; import java.math.BigDecimal; import org.openapitools.client.model.Client; import java.io.File; +import org.openapitools.client.model.FileSchemaTestClass; import org.threeten.bp.LocalDate; import org.threeten.bp.OffsetDateTime; import org.openapitools.client.model.OuterComposite; @@ -85,6 +86,20 @@ public class FakeApiTest { } + /** + * + * + * For this test, the body for this request much reference a schema named `File`. + */ + @Test + public void testBodyWithFileSchemaTest() { + FileSchemaTestClass fileSchemaTestClass = null; + // api.testBodyWithFileSchema(fileSchemaTestClass); + + // TODO: test validations + } + + /** * * @@ -202,6 +217,46 @@ public class FakeApiTest { // TODO: test validations } + /** + * Fake endpoint to test group parameters (optional) + * + * Fake endpoint to test group parameters (optional) + */ + @Test + public void testGroupParametersTest() { + Integer requiredStringGroup = null; + Boolean requiredBooleanGroup = null; + Long requiredInt64Group = null; + Integer stringGroup = null; + Boolean booleanGroup = null; + Long int64Group = null; + // api.testGroupParameters(requiredStringGroup, requiredBooleanGroup, requiredInt64Group, stringGroup, booleanGroup, int64Group); + + // TODO: test validations + } + + /** + * Fake endpoint to test group parameters (optional) + * + * Fake endpoint to test group parameters (optional) + * + * This tests the overload of the method that uses a Map for query parameters instead of + * listing them out individually. + */ + @Test + public void testGroupParametersTestQueryMap() { + Boolean requiredBooleanGroup = null; + Boolean booleanGroup = null; + FakeApi.TestGroupParametersQueryParams queryParams = new FakeApi.TestGroupParametersQueryParams() + .requiredStringGroup(null) + .requiredInt64Group(null) + .stringGroup(null) + .int64Group(null); + // api.testGroupParameters(requiredBooleanGroup, booleanGroup, queryParams); + + // TODO: test validations + } + /** * test inline additionalProperties * diff --git a/samples/client/petstore/java/feign10x/src/main/java/org/openapitools/client/api/FakeApi.java b/samples/client/petstore/java/feign10x/src/main/java/org/openapitools/client/api/FakeApi.java index af078f73628..e5bcaac7afe 100644 --- a/samples/client/petstore/java/feign10x/src/main/java/org/openapitools/client/api/FakeApi.java +++ b/samples/client/petstore/java/feign10x/src/main/java/org/openapitools/client/api/FakeApi.java @@ -249,16 +249,21 @@ public interface FakeApi extends ApiClient.Api { /** * Fake endpoint to test group parameters (optional) * Fake endpoint to test group parameters (optional) + * @param requiredStringGroup Required String in group parameters (required) + * @param requiredBooleanGroup Required Boolean in group parameters (required) + * @param requiredInt64Group Required Integer in group parameters (required) * @param stringGroup String in group parameters (optional) * @param booleanGroup Boolean in group parameters (optional) * @param int64Group Integer in group parameters (optional) */ - @RequestLine("DELETE /fake?string_group={stringGroup}&int64_group={int64Group}") + @RequestLine("DELETE /fake?required_string_group={requiredStringGroup}&required_int64_group={requiredInt64Group}&string_group={stringGroup}&int64_group={int64Group}") @Headers({ "Accept: application/json", + "required_boolean_group: {requiredBooleanGroup}", + "boolean_group: {booleanGroup}" }) - void testGroupParameters(@Param("stringGroup") Integer stringGroup, @Param("booleanGroup") Boolean booleanGroup, @Param("int64Group") Long int64Group); + void testGroupParameters(@Param("requiredStringGroup") Integer requiredStringGroup, @Param("requiredBooleanGroup") Boolean requiredBooleanGroup, @Param("requiredInt64Group") Long requiredInt64Group, @Param("stringGroup") Integer stringGroup, @Param("booleanGroup") Boolean booleanGroup, @Param("int64Group") Long int64Group); /** * Fake endpoint to test group parameters (optional) @@ -268,26 +273,39 @@ public interface FakeApi extends ApiClient.Api { * is convenient for services with optional query parameters, especially when * used with the {@link TestGroupParametersQueryParams} class that allows for * building up this map in a fluent style. + * @param requiredBooleanGroup Required Boolean in group parameters (required) * @param booleanGroup Boolean in group parameters (optional) * @param queryParams Map of query parameters as name-value pairs *

The following elements may be specified in the query map:

*
    + *
  • requiredStringGroup - Required String in group parameters (required)
  • + *
  • requiredInt64Group - Required Integer in group parameters (required)
  • *
  • stringGroup - String in group parameters (optional)
  • *
  • int64Group - Integer in group parameters (optional)
  • *
*/ - @RequestLine("DELETE /fake?string_group={stringGroup}&int64_group={int64Group}") + @RequestLine("DELETE /fake?required_string_group={requiredStringGroup}&required_int64_group={requiredInt64Group}&string_group={stringGroup}&int64_group={int64Group}") @Headers({ "Accept: application/json", + "required_boolean_group: {requiredBooleanGroup}", + "boolean_group: {booleanGroup}" }) - void testGroupParameters(@Param("booleanGroup") Boolean booleanGroup, @QueryMap(encoded=true) Map queryParams); + void testGroupParameters(@Param("requiredBooleanGroup") Boolean requiredBooleanGroup, @Param("booleanGroup") Boolean booleanGroup, @QueryMap(encoded=true) Map queryParams); /** * A convenience class for generating query parameters for the * testGroupParameters method in a fluent style. */ public static class TestGroupParametersQueryParams extends HashMap { + public TestGroupParametersQueryParams requiredStringGroup(final Integer value) { + put("required_string_group", EncodingUtils.encode(value)); + return this; + } + public TestGroupParametersQueryParams requiredInt64Group(final Long value) { + put("required_int64_group", EncodingUtils.encode(value)); + return this; + } public TestGroupParametersQueryParams stringGroup(final Integer value) { put("string_group", EncodingUtils.encode(value)); return this; diff --git a/samples/client/petstore/java/feign10x/src/test/java/org/openapitools/client/api/FakeApiTest.java b/samples/client/petstore/java/feign10x/src/test/java/org/openapitools/client/api/FakeApiTest.java index c5153830112..bbb4a9bbc85 100644 --- a/samples/client/petstore/java/feign10x/src/test/java/org/openapitools/client/api/FakeApiTest.java +++ b/samples/client/petstore/java/feign10x/src/test/java/org/openapitools/client/api/FakeApiTest.java @@ -217,6 +217,46 @@ public class FakeApiTest { // TODO: test validations } + /** + * Fake endpoint to test group parameters (optional) + * + * Fake endpoint to test group parameters (optional) + */ + @Test + public void testGroupParametersTest() { + Integer requiredStringGroup = null; + Boolean requiredBooleanGroup = null; + Long requiredInt64Group = null; + Integer stringGroup = null; + Boolean booleanGroup = null; + Long int64Group = null; + // api.testGroupParameters(requiredStringGroup, requiredBooleanGroup, requiredInt64Group, stringGroup, booleanGroup, int64Group); + + // TODO: test validations + } + + /** + * Fake endpoint to test group parameters (optional) + * + * Fake endpoint to test group parameters (optional) + * + * This tests the overload of the method that uses a Map for query parameters instead of + * listing them out individually. + */ + @Test + public void testGroupParametersTestQueryMap() { + Boolean requiredBooleanGroup = null; + Boolean booleanGroup = null; + FakeApi.TestGroupParametersQueryParams queryParams = new FakeApi.TestGroupParametersQueryParams() + .requiredStringGroup(null) + .requiredInt64Group(null) + .stringGroup(null) + .int64Group(null); + // api.testGroupParameters(requiredBooleanGroup, booleanGroup, queryParams); + + // TODO: test validations + } + /** * test inline additionalProperties * diff --git a/samples/client/petstore/java/google-api-client/docs/FakeApi.md b/samples/client/petstore/java/google-api-client/docs/FakeApi.md index a29ac9987a3..62046473c1f 100644 --- a/samples/client/petstore/java/google-api-client/docs/FakeApi.md +++ b/samples/client/petstore/java/google-api-client/docs/FakeApi.md @@ -470,7 +470,7 @@ No authorization required # **testGroupParameters** -> testGroupParameters(stringGroup, booleanGroup, int64Group) +> testGroupParameters(requiredStringGroup, requiredBooleanGroup, requiredInt64Group, stringGroup, booleanGroup, int64Group) Fake endpoint to test group parameters (optional) @@ -484,11 +484,14 @@ Fake endpoint to test group parameters (optional) FakeApi apiInstance = new FakeApi(); +Integer requiredStringGroup = 56; // Integer | Required String in group parameters +Boolean requiredBooleanGroup = true; // Boolean | Required Boolean in group parameters +Long requiredInt64Group = 56L; // Long | Required Integer in group parameters Integer stringGroup = 56; // Integer | String in group parameters Boolean booleanGroup = true; // Boolean | Boolean in group parameters Long int64Group = 56L; // Long | Integer in group parameters try { - apiInstance.testGroupParameters(stringGroup, booleanGroup, int64Group); + apiInstance.testGroupParameters(requiredStringGroup, requiredBooleanGroup, requiredInt64Group, stringGroup, booleanGroup, int64Group); } catch (ApiException e) { System.err.println("Exception when calling FakeApi#testGroupParameters"); e.printStackTrace(); @@ -499,6 +502,9 @@ try { Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- + **requiredStringGroup** | **Integer**| Required String in group parameters | + **requiredBooleanGroup** | **Boolean**| Required Boolean in group parameters | + **requiredInt64Group** | **Long**| Required Integer in group parameters | **stringGroup** | **Integer**| String in group parameters | [optional] **booleanGroup** | **Boolean**| Boolean in group parameters | [optional] **int64Group** | **Long**| Integer in group parameters | [optional] diff --git a/samples/client/petstore/java/google-api-client/src/main/java/org/openapitools/client/api/FakeApi.java b/samples/client/petstore/java/google-api-client/src/main/java/org/openapitools/client/api/FakeApi.java index 706f7ac9a5d..90a90a5f13c 100644 --- a/samples/client/petstore/java/google-api-client/src/main/java/org/openapitools/client/api/FakeApi.java +++ b/samples/client/petstore/java/google-api-client/src/main/java/org/openapitools/client/api/FakeApi.java @@ -883,30 +883,65 @@ public class FakeApi { * Fake endpoint to test group parameters (optional) * Fake endpoint to test group parameters (optional) *

400 - Someting wrong + * @param requiredStringGroup Required String in group parameters + * @param requiredBooleanGroup Required Boolean in group parameters + * @param requiredInt64Group Required Integer in group parameters * @param stringGroup String in group parameters * @param booleanGroup Boolean in group parameters * @param int64Group Integer in group parameters * @throws IOException if an error occurs while attempting to invoke the API **/ - public void testGroupParameters(Integer stringGroup, Boolean booleanGroup, Long int64Group) throws IOException { - testGroupParametersForHttpResponse(stringGroup, booleanGroup, int64Group); + public void testGroupParameters(Integer requiredStringGroup, Boolean requiredBooleanGroup, Long requiredInt64Group, Integer stringGroup, Boolean booleanGroup, Long int64Group) throws IOException { + testGroupParametersForHttpResponse(requiredStringGroup, requiredBooleanGroup, requiredInt64Group, stringGroup, booleanGroup, int64Group); } /** * Fake endpoint to test group parameters (optional) * Fake endpoint to test group parameters (optional) *

400 - Someting wrong + * @param requiredStringGroup Required String in group parameters + * @param requiredBooleanGroup Required Boolean in group parameters + * @param requiredInt64Group Required Integer in group parameters * @param params Map of query params. A collection will be interpreted as passing in multiple instances of the same query param. * @throws IOException if an error occurs while attempting to invoke the API **/ - public void testGroupParameters(Map params) throws IOException { - testGroupParametersForHttpResponse(params); + public void testGroupParameters(Integer requiredStringGroup, Boolean requiredBooleanGroup, Long requiredInt64Group, Map params) throws IOException { + testGroupParametersForHttpResponse(requiredStringGroup, requiredBooleanGroup, requiredInt64Group, params); } - public HttpResponse testGroupParametersForHttpResponse(Integer stringGroup, Boolean booleanGroup, Long int64Group) throws IOException { - + public HttpResponse testGroupParametersForHttpResponse(Integer requiredStringGroup, Boolean requiredBooleanGroup, Long requiredInt64Group, Integer stringGroup, Boolean booleanGroup, Long int64Group) throws IOException { + // verify the required parameter 'requiredStringGroup' is set + if (requiredStringGroup == null) { + throw new IllegalArgumentException("Missing the required parameter 'requiredStringGroup' when calling testGroupParameters"); + }// verify the required parameter 'requiredBooleanGroup' is set + if (requiredBooleanGroup == null) { + throw new IllegalArgumentException("Missing the required parameter 'requiredBooleanGroup' when calling testGroupParameters"); + }// verify the required parameter 'requiredInt64Group' is set + if (requiredInt64Group == null) { + throw new IllegalArgumentException("Missing the required parameter 'requiredInt64Group' when calling testGroupParameters"); + } UriBuilder uriBuilder = UriBuilder.fromUri(apiClient.getBasePath() + "/fake"); - if (stringGroup != null) { + if (requiredStringGroup != null) { + String key = "required_string_group"; + Object value = requiredStringGroup; + if (value instanceof Collection) { + uriBuilder = uriBuilder.queryParam(key, ((Collection) value).toArray()); + } else if (value instanceof Object[]) { + uriBuilder = uriBuilder.queryParam(key, (Object[]) value); + } else { + uriBuilder = uriBuilder.queryParam(key, value); + } + } if (requiredInt64Group != null) { + String key = "required_int64_group"; + Object value = requiredInt64Group; + if (value instanceof Collection) { + uriBuilder = uriBuilder.queryParam(key, ((Collection) value).toArray()); + } else if (value instanceof Object[]) { + uriBuilder = uriBuilder.queryParam(key, (Object[]) value); + } else { + uriBuilder = uriBuilder.queryParam(key, value); + } + } if (stringGroup != null) { String key = "string_group"; Object value = stringGroup; if (value instanceof Collection) { @@ -935,12 +970,25 @@ public class FakeApi { return apiClient.getHttpRequestFactory().buildRequest(HttpMethods.DELETE, genericUrl, content).execute(); } - public HttpResponse testGroupParametersForHttpResponse(Map params) throws IOException { - + public HttpResponse testGroupParametersForHttpResponse(Integer requiredStringGroup, Boolean requiredBooleanGroup, Long requiredInt64Group, Map params) throws IOException { + // verify the required parameter 'requiredStringGroup' is set + if (requiredStringGroup == null) { + throw new IllegalArgumentException("Missing the required parameter 'requiredStringGroup' when calling testGroupParameters"); + }// verify the required parameter 'requiredBooleanGroup' is set + if (requiredBooleanGroup == null) { + throw new IllegalArgumentException("Missing the required parameter 'requiredBooleanGroup' when calling testGroupParameters"); + }// verify the required parameter 'requiredInt64Group' is set + if (requiredInt64Group == null) { + throw new IllegalArgumentException("Missing the required parameter 'requiredInt64Group' when calling testGroupParameters"); + } UriBuilder uriBuilder = UriBuilder.fromUri(apiClient.getBasePath() + "/fake"); // Copy the params argument if present, to allow passing in immutable maps Map allParams = params == null ? new HashMap() : new HashMap(params); + // Add the required query param 'requiredStringGroup' to the map of query params + allParams.put("requiredStringGroup", requiredStringGroup); + // Add the required query param 'requiredInt64Group' to the map of query params + allParams.put("requiredInt64Group", requiredInt64Group); for (Map.Entry entry: allParams.entrySet()) { String key = entry.getKey(); diff --git a/samples/client/petstore/java/google-api-client/src/test/java/org/openapitools/client/api/FakeApiTest.java b/samples/client/petstore/java/google-api-client/src/test/java/org/openapitools/client/api/FakeApiTest.java index 17250f43361..d8bfb243b10 100644 --- a/samples/client/petstore/java/google-api-client/src/test/java/org/openapitools/client/api/FakeApiTest.java +++ b/samples/client/petstore/java/google-api-client/src/test/java/org/openapitools/client/api/FakeApiTest.java @@ -16,6 +16,7 @@ package org.openapitools.client.api; import java.math.BigDecimal; import org.openapitools.client.model.Client; import java.io.File; +import org.openapitools.client.model.FileSchemaTestClass; import org.threeten.bp.LocalDate; import org.threeten.bp.OffsetDateTime; import org.openapitools.client.model.OuterComposite; @@ -102,6 +103,22 @@ public class FakeApiTest { // TODO: test validations } + /** + * + * + * For this test, the body for this request much reference a schema named `File`. + * + * @throws IOException + * if the Api call fails + */ + @Test + public void testBodyWithFileSchemaTest() throws IOException { + FileSchemaTestClass fileSchemaTestClass = null; + api.testBodyWithFileSchema(fileSchemaTestClass); + + // TODO: test validations + } + /** * * @@ -187,6 +204,27 @@ public class FakeApiTest { // TODO: test validations } + /** + * Fake endpoint to test group parameters (optional) + * + * Fake endpoint to test group parameters (optional) + * + * @throws IOException + * if the Api call fails + */ + @Test + public void testGroupParametersTest() throws IOException { + Integer requiredStringGroup = null; + Boolean requiredBooleanGroup = null; + Long requiredInt64Group = null; + Integer stringGroup = null; + Boolean booleanGroup = null; + Long int64Group = null; + api.testGroupParameters(requiredStringGroup, requiredBooleanGroup, requiredInt64Group, stringGroup, booleanGroup, int64Group); + + // TODO: test validations + } + /** * test inline additionalProperties * diff --git a/samples/client/petstore/java/jersey1/docs/FakeApi.md b/samples/client/petstore/java/jersey1/docs/FakeApi.md index a29ac9987a3..62046473c1f 100644 --- a/samples/client/petstore/java/jersey1/docs/FakeApi.md +++ b/samples/client/petstore/java/jersey1/docs/FakeApi.md @@ -470,7 +470,7 @@ No authorization required # **testGroupParameters** -> testGroupParameters(stringGroup, booleanGroup, int64Group) +> testGroupParameters(requiredStringGroup, requiredBooleanGroup, requiredInt64Group, stringGroup, booleanGroup, int64Group) Fake endpoint to test group parameters (optional) @@ -484,11 +484,14 @@ Fake endpoint to test group parameters (optional) FakeApi apiInstance = new FakeApi(); +Integer requiredStringGroup = 56; // Integer | Required String in group parameters +Boolean requiredBooleanGroup = true; // Boolean | Required Boolean in group parameters +Long requiredInt64Group = 56L; // Long | Required Integer in group parameters Integer stringGroup = 56; // Integer | String in group parameters Boolean booleanGroup = true; // Boolean | Boolean in group parameters Long int64Group = 56L; // Long | Integer in group parameters try { - apiInstance.testGroupParameters(stringGroup, booleanGroup, int64Group); + apiInstance.testGroupParameters(requiredStringGroup, requiredBooleanGroup, requiredInt64Group, stringGroup, booleanGroup, int64Group); } catch (ApiException e) { System.err.println("Exception when calling FakeApi#testGroupParameters"); e.printStackTrace(); @@ -499,6 +502,9 @@ try { Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- + **requiredStringGroup** | **Integer**| Required String in group parameters | + **requiredBooleanGroup** | **Boolean**| Required Boolean in group parameters | + **requiredInt64Group** | **Long**| Required Integer in group parameters | **stringGroup** | **Integer**| String in group parameters | [optional] **booleanGroup** | **Boolean**| Boolean in group parameters | [optional] **int64Group** | **Long**| Integer in group parameters | [optional] diff --git a/samples/client/petstore/java/jersey1/src/main/java/org/openapitools/client/api/FakeApi.java b/samples/client/petstore/java/jersey1/src/main/java/org/openapitools/client/api/FakeApi.java index 97fe4cc1356..f4f7e114907 100644 --- a/samples/client/petstore/java/jersey1/src/main/java/org/openapitools/client/api/FakeApi.java +++ b/samples/client/petstore/java/jersey1/src/main/java/org/openapitools/client/api/FakeApi.java @@ -489,14 +489,32 @@ if (enumFormString != null) /** * Fake endpoint to test group parameters (optional) * Fake endpoint to test group parameters (optional) + * @param requiredStringGroup Required String in group parameters (required) + * @param requiredBooleanGroup Required Boolean in group parameters (required) + * @param requiredInt64Group Required Integer in group parameters (required) * @param stringGroup String in group parameters (optional) * @param booleanGroup Boolean in group parameters (optional) * @param int64Group Integer in group parameters (optional) * @throws ApiException if fails to make API call */ - public void testGroupParameters(Integer stringGroup, Boolean booleanGroup, Long int64Group) throws ApiException { + public void testGroupParameters(Integer requiredStringGroup, Boolean requiredBooleanGroup, Long requiredInt64Group, Integer stringGroup, Boolean booleanGroup, Long int64Group) throws ApiException { Object localVarPostBody = null; + // verify the required parameter 'requiredStringGroup' is set + if (requiredStringGroup == null) { + throw new ApiException(400, "Missing the required parameter 'requiredStringGroup' when calling testGroupParameters"); + } + + // verify the required parameter 'requiredBooleanGroup' is set + if (requiredBooleanGroup == null) { + throw new ApiException(400, "Missing the required parameter 'requiredBooleanGroup' when calling testGroupParameters"); + } + + // verify the required parameter 'requiredInt64Group' is set + if (requiredInt64Group == null) { + throw new ApiException(400, "Missing the required parameter 'requiredInt64Group' when calling testGroupParameters"); + } + // create path and map variables String localVarPath = "/fake"; @@ -506,10 +524,14 @@ if (enumFormString != null) Map localVarHeaderParams = new HashMap(); Map localVarFormParams = new HashMap(); + localVarQueryParams.addAll(apiClient.parameterToPair("required_string_group", requiredStringGroup)); + localVarQueryParams.addAll(apiClient.parameterToPair("required_int64_group", requiredInt64Group)); localVarQueryParams.addAll(apiClient.parameterToPair("string_group", stringGroup)); localVarQueryParams.addAll(apiClient.parameterToPair("int64_group", int64Group)); - if (booleanGroup != null) + if (requiredBooleanGroup != null) + localVarHeaderParams.put("required_boolean_group", apiClient.parameterToString(requiredBooleanGroup)); +if (booleanGroup != null) localVarHeaderParams.put("boolean_group", apiClient.parameterToString(booleanGroup)); diff --git a/samples/client/petstore/java/jersey1/src/test/java/org/openapitools/client/api/FakeApiTest.java b/samples/client/petstore/java/jersey1/src/test/java/org/openapitools/client/api/FakeApiTest.java index 23f854df6ab..07f4a80a5b2 100644 --- a/samples/client/petstore/java/jersey1/src/test/java/org/openapitools/client/api/FakeApiTest.java +++ b/samples/client/petstore/java/jersey1/src/test/java/org/openapitools/client/api/FakeApiTest.java @@ -15,6 +15,7 @@ package org.openapitools.client.api; import org.openapitools.client.ApiException; import java.math.BigDecimal; +import org.openapitools.client.model.Client; import java.io.File; import org.openapitools.client.model.FileSchemaTestClass; import org.threeten.bp.LocalDate; @@ -135,6 +136,22 @@ public class FakeApiTest { // TODO: test validations } + /** + * To test \"client\" model + * + * To test \"client\" model + * + * @throws ApiException + * if the Api call fails + */ + @Test + public void testClientModelTest() throws ApiException { + Client client = null; + Client response = api.testClientModel(client); + + // TODO: test validations + } + /** * Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트 * @@ -197,10 +214,13 @@ public class FakeApiTest { */ @Test public void testGroupParametersTest() throws ApiException { + Integer requiredStringGroup = null; + Boolean requiredBooleanGroup = null; + Long requiredInt64Group = null; Integer stringGroup = null; Boolean booleanGroup = null; Long int64Group = null; - api.testGroupParameters(stringGroup, booleanGroup, int64Group); + api.testGroupParameters(requiredStringGroup, requiredBooleanGroup, requiredInt64Group, stringGroup, booleanGroup, int64Group); // TODO: test validations } diff --git a/samples/client/petstore/java/jersey2-java6/docs/FakeApi.md b/samples/client/petstore/java/jersey2-java6/docs/FakeApi.md index a29ac9987a3..62046473c1f 100644 --- a/samples/client/petstore/java/jersey2-java6/docs/FakeApi.md +++ b/samples/client/petstore/java/jersey2-java6/docs/FakeApi.md @@ -470,7 +470,7 @@ No authorization required # **testGroupParameters** -> testGroupParameters(stringGroup, booleanGroup, int64Group) +> testGroupParameters(requiredStringGroup, requiredBooleanGroup, requiredInt64Group, stringGroup, booleanGroup, int64Group) Fake endpoint to test group parameters (optional) @@ -484,11 +484,14 @@ Fake endpoint to test group parameters (optional) FakeApi apiInstance = new FakeApi(); +Integer requiredStringGroup = 56; // Integer | Required String in group parameters +Boolean requiredBooleanGroup = true; // Boolean | Required Boolean in group parameters +Long requiredInt64Group = 56L; // Long | Required Integer in group parameters Integer stringGroup = 56; // Integer | String in group parameters Boolean booleanGroup = true; // Boolean | Boolean in group parameters Long int64Group = 56L; // Long | Integer in group parameters try { - apiInstance.testGroupParameters(stringGroup, booleanGroup, int64Group); + apiInstance.testGroupParameters(requiredStringGroup, requiredBooleanGroup, requiredInt64Group, stringGroup, booleanGroup, int64Group); } catch (ApiException e) { System.err.println("Exception when calling FakeApi#testGroupParameters"); e.printStackTrace(); @@ -499,6 +502,9 @@ try { Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- + **requiredStringGroup** | **Integer**| Required String in group parameters | + **requiredBooleanGroup** | **Boolean**| Required Boolean in group parameters | + **requiredInt64Group** | **Long**| Required Integer in group parameters | **stringGroup** | **Integer**| String in group parameters | [optional] **booleanGroup** | **Boolean**| Boolean in group parameters | [optional] **int64Group** | **Long**| Integer in group parameters | [optional] diff --git a/samples/client/petstore/java/jersey2-java6/src/main/java/org/openapitools/client/api/FakeApi.java b/samples/client/petstore/java/jersey2-java6/src/main/java/org/openapitools/client/api/FakeApi.java index f27eb4d2d53..d167939bf5b 100644 --- a/samples/client/petstore/java/jersey2-java6/src/main/java/org/openapitools/client/api/FakeApi.java +++ b/samples/client/petstore/java/jersey2-java6/src/main/java/org/openapitools/client/api/FakeApi.java @@ -587,27 +587,48 @@ if (enumFormString != null) /** * Fake endpoint to test group parameters (optional) * Fake endpoint to test group parameters (optional) + * @param requiredStringGroup Required String in group parameters (required) + * @param requiredBooleanGroup Required Boolean in group parameters (required) + * @param requiredInt64Group Required Integer in group parameters (required) * @param stringGroup String in group parameters (optional) * @param booleanGroup Boolean in group parameters (optional) * @param int64Group Integer in group parameters (optional) * @throws ApiException if fails to make API call */ - public void testGroupParameters(Integer stringGroup, Boolean booleanGroup, Long int64Group) throws ApiException { + public void testGroupParameters(Integer requiredStringGroup, Boolean requiredBooleanGroup, Long requiredInt64Group, Integer stringGroup, Boolean booleanGroup, Long int64Group) throws ApiException { - testGroupParametersWithHttpInfo(stringGroup, booleanGroup, int64Group); + testGroupParametersWithHttpInfo(requiredStringGroup, requiredBooleanGroup, requiredInt64Group, stringGroup, booleanGroup, int64Group); } /** * Fake endpoint to test group parameters (optional) * Fake endpoint to test group parameters (optional) + * @param requiredStringGroup Required String in group parameters (required) + * @param requiredBooleanGroup Required Boolean in group parameters (required) + * @param requiredInt64Group Required Integer in group parameters (required) * @param stringGroup String in group parameters (optional) * @param booleanGroup Boolean in group parameters (optional) * @param int64Group Integer in group parameters (optional) * @throws ApiException if fails to make API call */ - public ApiResponse testGroupParametersWithHttpInfo(Integer stringGroup, Boolean booleanGroup, Long int64Group) throws ApiException { + public ApiResponse testGroupParametersWithHttpInfo(Integer requiredStringGroup, Boolean requiredBooleanGroup, Long requiredInt64Group, Integer stringGroup, Boolean booleanGroup, Long int64Group) throws ApiException { Object localVarPostBody = new Object(); + // verify the required parameter 'requiredStringGroup' is set + if (requiredStringGroup == null) { + throw new ApiException(400, "Missing the required parameter 'requiredStringGroup' when calling testGroupParameters"); + } + + // verify the required parameter 'requiredBooleanGroup' is set + if (requiredBooleanGroup == null) { + throw new ApiException(400, "Missing the required parameter 'requiredBooleanGroup' when calling testGroupParameters"); + } + + // verify the required parameter 'requiredInt64Group' is set + if (requiredInt64Group == null) { + throw new ApiException(400, "Missing the required parameter 'requiredInt64Group' when calling testGroupParameters"); + } + // create path and map variables String localVarPath = "/fake"; @@ -616,10 +637,14 @@ if (enumFormString != null) Map localVarHeaderParams = new HashMap(); Map localVarFormParams = new HashMap(); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "required_string_group", requiredStringGroup)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "required_int64_group", requiredInt64Group)); localVarQueryParams.addAll(apiClient.parameterToPairs("", "string_group", stringGroup)); localVarQueryParams.addAll(apiClient.parameterToPairs("", "int64_group", int64Group)); - if (booleanGroup != null) + if (requiredBooleanGroup != null) + localVarHeaderParams.put("required_boolean_group", apiClient.parameterToString(requiredBooleanGroup)); +if (booleanGroup != null) localVarHeaderParams.put("boolean_group", apiClient.parameterToString(booleanGroup)); diff --git a/samples/client/petstore/java/jersey2-java6/src/test/java/org/openapitools/client/api/FakeApiTest.java b/samples/client/petstore/java/jersey2-java6/src/test/java/org/openapitools/client/api/FakeApiTest.java index 11916028aac..07f4a80a5b2 100644 --- a/samples/client/petstore/java/jersey2-java6/src/test/java/org/openapitools/client/api/FakeApiTest.java +++ b/samples/client/petstore/java/jersey2-java6/src/test/java/org/openapitools/client/api/FakeApiTest.java @@ -204,6 +204,27 @@ public class FakeApiTest { // TODO: test validations } + /** + * Fake endpoint to test group parameters (optional) + * + * Fake endpoint to test group parameters (optional) + * + * @throws ApiException + * if the Api call fails + */ + @Test + public void testGroupParametersTest() throws ApiException { + Integer requiredStringGroup = null; + Boolean requiredBooleanGroup = null; + Long requiredInt64Group = null; + Integer stringGroup = null; + Boolean booleanGroup = null; + Long int64Group = null; + api.testGroupParameters(requiredStringGroup, requiredBooleanGroup, requiredInt64Group, stringGroup, booleanGroup, int64Group); + + // TODO: test validations + } + /** * test inline additionalProperties * diff --git a/samples/client/petstore/java/jersey2-java8/docs/FakeApi.md b/samples/client/petstore/java/jersey2-java8/docs/FakeApi.md index a29ac9987a3..62046473c1f 100644 --- a/samples/client/petstore/java/jersey2-java8/docs/FakeApi.md +++ b/samples/client/petstore/java/jersey2-java8/docs/FakeApi.md @@ -470,7 +470,7 @@ No authorization required # **testGroupParameters** -> testGroupParameters(stringGroup, booleanGroup, int64Group) +> testGroupParameters(requiredStringGroup, requiredBooleanGroup, requiredInt64Group, stringGroup, booleanGroup, int64Group) Fake endpoint to test group parameters (optional) @@ -484,11 +484,14 @@ Fake endpoint to test group parameters (optional) FakeApi apiInstance = new FakeApi(); +Integer requiredStringGroup = 56; // Integer | Required String in group parameters +Boolean requiredBooleanGroup = true; // Boolean | Required Boolean in group parameters +Long requiredInt64Group = 56L; // Long | Required Integer in group parameters Integer stringGroup = 56; // Integer | String in group parameters Boolean booleanGroup = true; // Boolean | Boolean in group parameters Long int64Group = 56L; // Long | Integer in group parameters try { - apiInstance.testGroupParameters(stringGroup, booleanGroup, int64Group); + apiInstance.testGroupParameters(requiredStringGroup, requiredBooleanGroup, requiredInt64Group, stringGroup, booleanGroup, int64Group); } catch (ApiException e) { System.err.println("Exception when calling FakeApi#testGroupParameters"); e.printStackTrace(); @@ -499,6 +502,9 @@ try { Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- + **requiredStringGroup** | **Integer**| Required String in group parameters | + **requiredBooleanGroup** | **Boolean**| Required Boolean in group parameters | + **requiredInt64Group** | **Long**| Required Integer in group parameters | **stringGroup** | **Integer**| String in group parameters | [optional] **booleanGroup** | **Boolean**| Boolean in group parameters | [optional] **int64Group** | **Long**| Integer in group parameters | [optional] diff --git a/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/api/FakeApi.java b/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/api/FakeApi.java index 434cebdd6f3..068ba3e71f7 100644 --- a/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/api/FakeApi.java +++ b/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/api/FakeApi.java @@ -587,27 +587,48 @@ if (enumFormString != null) /** * Fake endpoint to test group parameters (optional) * Fake endpoint to test group parameters (optional) + * @param requiredStringGroup Required String in group parameters (required) + * @param requiredBooleanGroup Required Boolean in group parameters (required) + * @param requiredInt64Group Required Integer in group parameters (required) * @param stringGroup String in group parameters (optional) * @param booleanGroup Boolean in group parameters (optional) * @param int64Group Integer in group parameters (optional) * @throws ApiException if fails to make API call */ - public void testGroupParameters(Integer stringGroup, Boolean booleanGroup, Long int64Group) throws ApiException { + public void testGroupParameters(Integer requiredStringGroup, Boolean requiredBooleanGroup, Long requiredInt64Group, Integer stringGroup, Boolean booleanGroup, Long int64Group) throws ApiException { - testGroupParametersWithHttpInfo(stringGroup, booleanGroup, int64Group); + testGroupParametersWithHttpInfo(requiredStringGroup, requiredBooleanGroup, requiredInt64Group, stringGroup, booleanGroup, int64Group); } /** * Fake endpoint to test group parameters (optional) * Fake endpoint to test group parameters (optional) + * @param requiredStringGroup Required String in group parameters (required) + * @param requiredBooleanGroup Required Boolean in group parameters (required) + * @param requiredInt64Group Required Integer in group parameters (required) * @param stringGroup String in group parameters (optional) * @param booleanGroup Boolean in group parameters (optional) * @param int64Group Integer in group parameters (optional) * @throws ApiException if fails to make API call */ - public ApiResponse testGroupParametersWithHttpInfo(Integer stringGroup, Boolean booleanGroup, Long int64Group) throws ApiException { + public ApiResponse testGroupParametersWithHttpInfo(Integer requiredStringGroup, Boolean requiredBooleanGroup, Long requiredInt64Group, Integer stringGroup, Boolean booleanGroup, Long int64Group) throws ApiException { Object localVarPostBody = new Object(); + // verify the required parameter 'requiredStringGroup' is set + if (requiredStringGroup == null) { + throw new ApiException(400, "Missing the required parameter 'requiredStringGroup' when calling testGroupParameters"); + } + + // verify the required parameter 'requiredBooleanGroup' is set + if (requiredBooleanGroup == null) { + throw new ApiException(400, "Missing the required parameter 'requiredBooleanGroup' when calling testGroupParameters"); + } + + // verify the required parameter 'requiredInt64Group' is set + if (requiredInt64Group == null) { + throw new ApiException(400, "Missing the required parameter 'requiredInt64Group' when calling testGroupParameters"); + } + // create path and map variables String localVarPath = "/fake"; @@ -616,10 +637,14 @@ if (enumFormString != null) Map localVarHeaderParams = new HashMap(); Map localVarFormParams = new HashMap(); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "required_string_group", requiredStringGroup)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "required_int64_group", requiredInt64Group)); localVarQueryParams.addAll(apiClient.parameterToPairs("", "string_group", stringGroup)); localVarQueryParams.addAll(apiClient.parameterToPairs("", "int64_group", int64Group)); - if (booleanGroup != null) + if (requiredBooleanGroup != null) + localVarHeaderParams.put("required_boolean_group", apiClient.parameterToString(requiredBooleanGroup)); +if (booleanGroup != null) localVarHeaderParams.put("boolean_group", apiClient.parameterToString(booleanGroup)); diff --git a/samples/client/petstore/java/jersey2-java8/src/test/java/org/openapitools/client/api/FakeApiTest.java b/samples/client/petstore/java/jersey2-java8/src/test/java/org/openapitools/client/api/FakeApiTest.java index 66fd7294503..4731d235db3 100644 --- a/samples/client/petstore/java/jersey2-java8/src/test/java/org/openapitools/client/api/FakeApiTest.java +++ b/samples/client/petstore/java/jersey2-java8/src/test/java/org/openapitools/client/api/FakeApiTest.java @@ -214,10 +214,13 @@ public class FakeApiTest { */ @Test public void testGroupParametersTest() throws ApiException { + Integer requiredStringGroup = null; + Boolean requiredBooleanGroup = null; + Long requiredInt64Group = null; Integer stringGroup = null; Boolean booleanGroup = null; Long int64Group = null; - api.testGroupParameters(stringGroup, booleanGroup, int64Group); + api.testGroupParameters(requiredStringGroup, requiredBooleanGroup, requiredInt64Group, stringGroup, booleanGroup, int64Group); // TODO: test validations } diff --git a/samples/client/petstore/java/jersey2/docs/FakeApi.md b/samples/client/petstore/java/jersey2/docs/FakeApi.md index a29ac9987a3..62046473c1f 100644 --- a/samples/client/petstore/java/jersey2/docs/FakeApi.md +++ b/samples/client/petstore/java/jersey2/docs/FakeApi.md @@ -470,7 +470,7 @@ No authorization required # **testGroupParameters** -> testGroupParameters(stringGroup, booleanGroup, int64Group) +> testGroupParameters(requiredStringGroup, requiredBooleanGroup, requiredInt64Group, stringGroup, booleanGroup, int64Group) Fake endpoint to test group parameters (optional) @@ -484,11 +484,14 @@ Fake endpoint to test group parameters (optional) FakeApi apiInstance = new FakeApi(); +Integer requiredStringGroup = 56; // Integer | Required String in group parameters +Boolean requiredBooleanGroup = true; // Boolean | Required Boolean in group parameters +Long requiredInt64Group = 56L; // Long | Required Integer in group parameters Integer stringGroup = 56; // Integer | String in group parameters Boolean booleanGroup = true; // Boolean | Boolean in group parameters Long int64Group = 56L; // Long | Integer in group parameters try { - apiInstance.testGroupParameters(stringGroup, booleanGroup, int64Group); + apiInstance.testGroupParameters(requiredStringGroup, requiredBooleanGroup, requiredInt64Group, stringGroup, booleanGroup, int64Group); } catch (ApiException e) { System.err.println("Exception when calling FakeApi#testGroupParameters"); e.printStackTrace(); @@ -499,6 +502,9 @@ try { Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- + **requiredStringGroup** | **Integer**| Required String in group parameters | + **requiredBooleanGroup** | **Boolean**| Required Boolean in group parameters | + **requiredInt64Group** | **Long**| Required Integer in group parameters | **stringGroup** | **Integer**| String in group parameters | [optional] **booleanGroup** | **Boolean**| Boolean in group parameters | [optional] **int64Group** | **Long**| Integer in group parameters | [optional] diff --git a/samples/client/petstore/java/jersey2/src/main/java/org/openapitools/client/api/FakeApi.java b/samples/client/petstore/java/jersey2/src/main/java/org/openapitools/client/api/FakeApi.java index f27eb4d2d53..d167939bf5b 100644 --- a/samples/client/petstore/java/jersey2/src/main/java/org/openapitools/client/api/FakeApi.java +++ b/samples/client/petstore/java/jersey2/src/main/java/org/openapitools/client/api/FakeApi.java @@ -587,27 +587,48 @@ if (enumFormString != null) /** * Fake endpoint to test group parameters (optional) * Fake endpoint to test group parameters (optional) + * @param requiredStringGroup Required String in group parameters (required) + * @param requiredBooleanGroup Required Boolean in group parameters (required) + * @param requiredInt64Group Required Integer in group parameters (required) * @param stringGroup String in group parameters (optional) * @param booleanGroup Boolean in group parameters (optional) * @param int64Group Integer in group parameters (optional) * @throws ApiException if fails to make API call */ - public void testGroupParameters(Integer stringGroup, Boolean booleanGroup, Long int64Group) throws ApiException { + public void testGroupParameters(Integer requiredStringGroup, Boolean requiredBooleanGroup, Long requiredInt64Group, Integer stringGroup, Boolean booleanGroup, Long int64Group) throws ApiException { - testGroupParametersWithHttpInfo(stringGroup, booleanGroup, int64Group); + testGroupParametersWithHttpInfo(requiredStringGroup, requiredBooleanGroup, requiredInt64Group, stringGroup, booleanGroup, int64Group); } /** * Fake endpoint to test group parameters (optional) * Fake endpoint to test group parameters (optional) + * @param requiredStringGroup Required String in group parameters (required) + * @param requiredBooleanGroup Required Boolean in group parameters (required) + * @param requiredInt64Group Required Integer in group parameters (required) * @param stringGroup String in group parameters (optional) * @param booleanGroup Boolean in group parameters (optional) * @param int64Group Integer in group parameters (optional) * @throws ApiException if fails to make API call */ - public ApiResponse testGroupParametersWithHttpInfo(Integer stringGroup, Boolean booleanGroup, Long int64Group) throws ApiException { + public ApiResponse testGroupParametersWithHttpInfo(Integer requiredStringGroup, Boolean requiredBooleanGroup, Long requiredInt64Group, Integer stringGroup, Boolean booleanGroup, Long int64Group) throws ApiException { Object localVarPostBody = new Object(); + // verify the required parameter 'requiredStringGroup' is set + if (requiredStringGroup == null) { + throw new ApiException(400, "Missing the required parameter 'requiredStringGroup' when calling testGroupParameters"); + } + + // verify the required parameter 'requiredBooleanGroup' is set + if (requiredBooleanGroup == null) { + throw new ApiException(400, "Missing the required parameter 'requiredBooleanGroup' when calling testGroupParameters"); + } + + // verify the required parameter 'requiredInt64Group' is set + if (requiredInt64Group == null) { + throw new ApiException(400, "Missing the required parameter 'requiredInt64Group' when calling testGroupParameters"); + } + // create path and map variables String localVarPath = "/fake"; @@ -616,10 +637,14 @@ if (enumFormString != null) Map localVarHeaderParams = new HashMap(); Map localVarFormParams = new HashMap(); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "required_string_group", requiredStringGroup)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "required_int64_group", requiredInt64Group)); localVarQueryParams.addAll(apiClient.parameterToPairs("", "string_group", stringGroup)); localVarQueryParams.addAll(apiClient.parameterToPairs("", "int64_group", int64Group)); - if (booleanGroup != null) + if (requiredBooleanGroup != null) + localVarHeaderParams.put("required_boolean_group", apiClient.parameterToString(requiredBooleanGroup)); +if (booleanGroup != null) localVarHeaderParams.put("boolean_group", apiClient.parameterToString(booleanGroup)); diff --git a/samples/client/petstore/java/jersey2/src/test/java/org/openapitools/client/api/FakeApiTest.java b/samples/client/petstore/java/jersey2/src/test/java/org/openapitools/client/api/FakeApiTest.java index 6fffb218baa..07f4a80a5b2 100644 --- a/samples/client/petstore/java/jersey2/src/test/java/org/openapitools/client/api/FakeApiTest.java +++ b/samples/client/petstore/java/jersey2/src/test/java/org/openapitools/client/api/FakeApiTest.java @@ -214,10 +214,13 @@ public class FakeApiTest { */ @Test public void testGroupParametersTest() throws ApiException { + Integer requiredStringGroup = null; + Boolean requiredBooleanGroup = null; + Long requiredInt64Group = null; Integer stringGroup = null; Boolean booleanGroup = null; Long int64Group = null; - api.testGroupParameters(stringGroup, booleanGroup, int64Group); + api.testGroupParameters(requiredStringGroup, requiredBooleanGroup, requiredInt64Group, stringGroup, booleanGroup, int64Group); // TODO: test validations } diff --git a/samples/client/petstore/java/okhttp-gson-parcelableModel/docs/FakeApi.md b/samples/client/petstore/java/okhttp-gson-parcelableModel/docs/FakeApi.md index a29ac9987a3..62046473c1f 100644 --- a/samples/client/petstore/java/okhttp-gson-parcelableModel/docs/FakeApi.md +++ b/samples/client/petstore/java/okhttp-gson-parcelableModel/docs/FakeApi.md @@ -470,7 +470,7 @@ No authorization required # **testGroupParameters** -> testGroupParameters(stringGroup, booleanGroup, int64Group) +> testGroupParameters(requiredStringGroup, requiredBooleanGroup, requiredInt64Group, stringGroup, booleanGroup, int64Group) Fake endpoint to test group parameters (optional) @@ -484,11 +484,14 @@ Fake endpoint to test group parameters (optional) FakeApi apiInstance = new FakeApi(); +Integer requiredStringGroup = 56; // Integer | Required String in group parameters +Boolean requiredBooleanGroup = true; // Boolean | Required Boolean in group parameters +Long requiredInt64Group = 56L; // Long | Required Integer in group parameters Integer stringGroup = 56; // Integer | String in group parameters Boolean booleanGroup = true; // Boolean | Boolean in group parameters Long int64Group = 56L; // Long | Integer in group parameters try { - apiInstance.testGroupParameters(stringGroup, booleanGroup, int64Group); + apiInstance.testGroupParameters(requiredStringGroup, requiredBooleanGroup, requiredInt64Group, stringGroup, booleanGroup, int64Group); } catch (ApiException e) { System.err.println("Exception when calling FakeApi#testGroupParameters"); e.printStackTrace(); @@ -499,6 +502,9 @@ try { Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- + **requiredStringGroup** | **Integer**| Required String in group parameters | + **requiredBooleanGroup** | **Boolean**| Required Boolean in group parameters | + **requiredInt64Group** | **Long**| Required Integer in group parameters | **stringGroup** | **Integer**| String in group parameters | [optional] **booleanGroup** | **Boolean**| Boolean in group parameters | [optional] **int64Group** | **Long**| Integer in group parameters | [optional] diff --git a/samples/client/petstore/java/okhttp-gson-parcelableModel/src/main/java/org/openapitools/client/api/FakeApi.java b/samples/client/petstore/java/okhttp-gson-parcelableModel/src/main/java/org/openapitools/client/api/FakeApi.java index 783dfb78ec2..49f8a954e98 100644 --- a/samples/client/petstore/java/okhttp-gson-parcelableModel/src/main/java/org/openapitools/client/api/FakeApi.java +++ b/samples/client/petstore/java/okhttp-gson-parcelableModel/src/main/java/org/openapitools/client/api/FakeApi.java @@ -1307,6 +1307,9 @@ public class FakeApi { } /** * Build call for testGroupParameters + * @param requiredStringGroup Required String in group parameters (required) + * @param requiredBooleanGroup Required Boolean in group parameters (required) + * @param requiredInt64Group Required Integer in group parameters (required) * @param stringGroup String in group parameters (optional) * @param booleanGroup Boolean in group parameters (optional) * @param int64Group Integer in group parameters (optional) @@ -1315,7 +1318,7 @@ public class FakeApi { * @return Call to execute * @throws ApiException If fail to serialize the request body object */ - public com.squareup.okhttp.Call testGroupParametersCall(Integer stringGroup, Boolean booleanGroup, Long int64Group, final ProgressResponseBody.ProgressListener progressListener, final ProgressRequestBody.ProgressRequestListener progressRequestListener) throws ApiException { + public com.squareup.okhttp.Call testGroupParametersCall(Integer requiredStringGroup, Boolean requiredBooleanGroup, Long requiredInt64Group, Integer stringGroup, Boolean booleanGroup, Long int64Group, final ProgressResponseBody.ProgressListener progressListener, final ProgressRequestBody.ProgressRequestListener progressRequestListener) throws ApiException { Object localVarPostBody = new Object(); // create path and map variables @@ -1323,6 +1326,14 @@ public class FakeApi { List localVarQueryParams = new ArrayList(); List localVarCollectionQueryParams = new ArrayList(); + if (requiredStringGroup != null) { + localVarQueryParams.addAll(apiClient.parameterToPair("required_string_group", requiredStringGroup)); + } + + if (requiredInt64Group != null) { + localVarQueryParams.addAll(apiClient.parameterToPair("required_int64_group", requiredInt64Group)); + } + if (stringGroup != null) { localVarQueryParams.addAll(apiClient.parameterToPair("string_group", stringGroup)); } @@ -1332,6 +1343,10 @@ public class FakeApi { } Map localVarHeaderParams = new HashMap(); + if (requiredBooleanGroup != null) { + localVarHeaderParams.put("required_boolean_group", apiClient.parameterToString(requiredBooleanGroup)); + } + if (booleanGroup != null) { localVarHeaderParams.put("boolean_group", apiClient.parameterToString(booleanGroup)); } @@ -1368,10 +1383,25 @@ public class FakeApi { } @SuppressWarnings("rawtypes") - private com.squareup.okhttp.Call testGroupParametersValidateBeforeCall(Integer stringGroup, Boolean booleanGroup, Long int64Group, final ProgressResponseBody.ProgressListener progressListener, final ProgressRequestBody.ProgressRequestListener progressRequestListener) throws ApiException { + private com.squareup.okhttp.Call testGroupParametersValidateBeforeCall(Integer requiredStringGroup, Boolean requiredBooleanGroup, Long requiredInt64Group, Integer stringGroup, Boolean booleanGroup, Long int64Group, final ProgressResponseBody.ProgressListener progressListener, final ProgressRequestBody.ProgressRequestListener progressRequestListener) throws ApiException { + + // verify the required parameter 'requiredStringGroup' is set + if (requiredStringGroup == null) { + throw new ApiException("Missing the required parameter 'requiredStringGroup' when calling testGroupParameters(Async)"); + } + + // verify the required parameter 'requiredBooleanGroup' is set + if (requiredBooleanGroup == null) { + throw new ApiException("Missing the required parameter 'requiredBooleanGroup' when calling testGroupParameters(Async)"); + } + + // verify the required parameter 'requiredInt64Group' is set + if (requiredInt64Group == null) { + throw new ApiException("Missing the required parameter 'requiredInt64Group' when calling testGroupParameters(Async)"); + } - com.squareup.okhttp.Call call = testGroupParametersCall(stringGroup, booleanGroup, int64Group, progressListener, progressRequestListener); + com.squareup.okhttp.Call call = testGroupParametersCall(requiredStringGroup, requiredBooleanGroup, requiredInt64Group, stringGroup, booleanGroup, int64Group, progressListener, progressRequestListener); return call; } @@ -1379,32 +1409,41 @@ public class FakeApi { /** * Fake endpoint to test group parameters (optional) * Fake endpoint to test group parameters (optional) + * @param requiredStringGroup Required String in group parameters (required) + * @param requiredBooleanGroup Required Boolean in group parameters (required) + * @param requiredInt64Group Required Integer in group parameters (required) * @param stringGroup String in group parameters (optional) * @param booleanGroup Boolean in group parameters (optional) * @param int64Group Integer in group parameters (optional) * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body */ - public void testGroupParameters(Integer stringGroup, Boolean booleanGroup, Long int64Group) throws ApiException { - testGroupParametersWithHttpInfo(stringGroup, booleanGroup, int64Group); + public void testGroupParameters(Integer requiredStringGroup, Boolean requiredBooleanGroup, Long requiredInt64Group, Integer stringGroup, Boolean booleanGroup, Long int64Group) throws ApiException { + testGroupParametersWithHttpInfo(requiredStringGroup, requiredBooleanGroup, requiredInt64Group, stringGroup, booleanGroup, int64Group); } /** * Fake endpoint to test group parameters (optional) * Fake endpoint to test group parameters (optional) + * @param requiredStringGroup Required String in group parameters (required) + * @param requiredBooleanGroup Required Boolean in group parameters (required) + * @param requiredInt64Group Required Integer in group parameters (required) * @param stringGroup String in group parameters (optional) * @param booleanGroup Boolean in group parameters (optional) * @param int64Group Integer in group parameters (optional) * @return ApiResponse<Void> * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body */ - public ApiResponse testGroupParametersWithHttpInfo(Integer stringGroup, Boolean booleanGroup, Long int64Group) throws ApiException { - com.squareup.okhttp.Call call = testGroupParametersValidateBeforeCall(stringGroup, booleanGroup, int64Group, null, null); + public ApiResponse testGroupParametersWithHttpInfo(Integer requiredStringGroup, Boolean requiredBooleanGroup, Long requiredInt64Group, Integer stringGroup, Boolean booleanGroup, Long int64Group) throws ApiException { + com.squareup.okhttp.Call call = testGroupParametersValidateBeforeCall(requiredStringGroup, requiredBooleanGroup, requiredInt64Group, stringGroup, booleanGroup, int64Group, null, null); return apiClient.execute(call); } /** * Fake endpoint to test group parameters (optional) (asynchronously) * Fake endpoint to test group parameters (optional) + * @param requiredStringGroup Required String in group parameters (required) + * @param requiredBooleanGroup Required Boolean in group parameters (required) + * @param requiredInt64Group Required Integer in group parameters (required) * @param stringGroup String in group parameters (optional) * @param booleanGroup Boolean in group parameters (optional) * @param int64Group Integer in group parameters (optional) @@ -1412,7 +1451,7 @@ public class FakeApi { * @return The request call * @throws ApiException If fail to process the API call, e.g. serializing the request body object */ - public com.squareup.okhttp.Call testGroupParametersAsync(Integer stringGroup, Boolean booleanGroup, Long int64Group, final ApiCallback callback) throws ApiException { + public com.squareup.okhttp.Call testGroupParametersAsync(Integer requiredStringGroup, Boolean requiredBooleanGroup, Long requiredInt64Group, Integer stringGroup, Boolean booleanGroup, Long int64Group, final ApiCallback callback) throws ApiException { ProgressResponseBody.ProgressListener progressListener = null; ProgressRequestBody.ProgressRequestListener progressRequestListener = null; @@ -1433,7 +1472,7 @@ public class FakeApi { }; } - com.squareup.okhttp.Call call = testGroupParametersValidateBeforeCall(stringGroup, booleanGroup, int64Group, progressListener, progressRequestListener); + com.squareup.okhttp.Call call = testGroupParametersValidateBeforeCall(requiredStringGroup, requiredBooleanGroup, requiredInt64Group, stringGroup, booleanGroup, int64Group, progressListener, progressRequestListener); apiClient.executeAsync(call, callback); return call; } diff --git a/samples/client/petstore/java/okhttp-gson-parcelableModel/src/test/java/org/openapitools/client/api/FakeApiTest.java b/samples/client/petstore/java/okhttp-gson-parcelableModel/src/test/java/org/openapitools/client/api/FakeApiTest.java index f23eef8b585..07f4a80a5b2 100644 --- a/samples/client/petstore/java/okhttp-gson-parcelableModel/src/test/java/org/openapitools/client/api/FakeApiTest.java +++ b/samples/client/petstore/java/okhttp-gson-parcelableModel/src/test/java/org/openapitools/client/api/FakeApiTest.java @@ -17,6 +17,7 @@ import org.openapitools.client.ApiException; import java.math.BigDecimal; import org.openapitools.client.model.Client; import java.io.File; +import org.openapitools.client.model.FileSchemaTestClass; import org.threeten.bp.LocalDate; import org.threeten.bp.OffsetDateTime; import org.openapitools.client.model.OuterComposite; @@ -102,6 +103,22 @@ public class FakeApiTest { // TODO: test validations } + /** + * + * + * For this test, the body for this request much reference a schema named `File`. + * + * @throws ApiException + * if the Api call fails + */ + @Test + public void testBodyWithFileSchemaTest() throws ApiException { + FileSchemaTestClass fileSchemaTestClass = null; + api.testBodyWithFileSchema(fileSchemaTestClass); + + // TODO: test validations + } + /** * * @@ -187,6 +204,27 @@ public class FakeApiTest { // TODO: test validations } + /** + * Fake endpoint to test group parameters (optional) + * + * Fake endpoint to test group parameters (optional) + * + * @throws ApiException + * if the Api call fails + */ + @Test + public void testGroupParametersTest() throws ApiException { + Integer requiredStringGroup = null; + Boolean requiredBooleanGroup = null; + Long requiredInt64Group = null; + Integer stringGroup = null; + Boolean booleanGroup = null; + Long int64Group = null; + api.testGroupParameters(requiredStringGroup, requiredBooleanGroup, requiredInt64Group, stringGroup, booleanGroup, int64Group); + + // TODO: test validations + } + /** * test inline additionalProperties * diff --git a/samples/client/petstore/java/okhttp-gson/docs/FakeApi.md b/samples/client/petstore/java/okhttp-gson/docs/FakeApi.md index a29ac9987a3..62046473c1f 100644 --- a/samples/client/petstore/java/okhttp-gson/docs/FakeApi.md +++ b/samples/client/petstore/java/okhttp-gson/docs/FakeApi.md @@ -470,7 +470,7 @@ No authorization required # **testGroupParameters** -> testGroupParameters(stringGroup, booleanGroup, int64Group) +> testGroupParameters(requiredStringGroup, requiredBooleanGroup, requiredInt64Group, stringGroup, booleanGroup, int64Group) Fake endpoint to test group parameters (optional) @@ -484,11 +484,14 @@ Fake endpoint to test group parameters (optional) FakeApi apiInstance = new FakeApi(); +Integer requiredStringGroup = 56; // Integer | Required String in group parameters +Boolean requiredBooleanGroup = true; // Boolean | Required Boolean in group parameters +Long requiredInt64Group = 56L; // Long | Required Integer in group parameters Integer stringGroup = 56; // Integer | String in group parameters Boolean booleanGroup = true; // Boolean | Boolean in group parameters Long int64Group = 56L; // Long | Integer in group parameters try { - apiInstance.testGroupParameters(stringGroup, booleanGroup, int64Group); + apiInstance.testGroupParameters(requiredStringGroup, requiredBooleanGroup, requiredInt64Group, stringGroup, booleanGroup, int64Group); } catch (ApiException e) { System.err.println("Exception when calling FakeApi#testGroupParameters"); e.printStackTrace(); @@ -499,6 +502,9 @@ try { Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- + **requiredStringGroup** | **Integer**| Required String in group parameters | + **requiredBooleanGroup** | **Boolean**| Required Boolean in group parameters | + **requiredInt64Group** | **Long**| Required Integer in group parameters | **stringGroup** | **Integer**| String in group parameters | [optional] **booleanGroup** | **Boolean**| Boolean in group parameters | [optional] **int64Group** | **Long**| Integer in group parameters | [optional] diff --git a/samples/client/petstore/java/okhttp-gson/src/main/java/org/openapitools/client/api/FakeApi.java b/samples/client/petstore/java/okhttp-gson/src/main/java/org/openapitools/client/api/FakeApi.java index 783dfb78ec2..49f8a954e98 100644 --- a/samples/client/petstore/java/okhttp-gson/src/main/java/org/openapitools/client/api/FakeApi.java +++ b/samples/client/petstore/java/okhttp-gson/src/main/java/org/openapitools/client/api/FakeApi.java @@ -1307,6 +1307,9 @@ public class FakeApi { } /** * Build call for testGroupParameters + * @param requiredStringGroup Required String in group parameters (required) + * @param requiredBooleanGroup Required Boolean in group parameters (required) + * @param requiredInt64Group Required Integer in group parameters (required) * @param stringGroup String in group parameters (optional) * @param booleanGroup Boolean in group parameters (optional) * @param int64Group Integer in group parameters (optional) @@ -1315,7 +1318,7 @@ public class FakeApi { * @return Call to execute * @throws ApiException If fail to serialize the request body object */ - public com.squareup.okhttp.Call testGroupParametersCall(Integer stringGroup, Boolean booleanGroup, Long int64Group, final ProgressResponseBody.ProgressListener progressListener, final ProgressRequestBody.ProgressRequestListener progressRequestListener) throws ApiException { + public com.squareup.okhttp.Call testGroupParametersCall(Integer requiredStringGroup, Boolean requiredBooleanGroup, Long requiredInt64Group, Integer stringGroup, Boolean booleanGroup, Long int64Group, final ProgressResponseBody.ProgressListener progressListener, final ProgressRequestBody.ProgressRequestListener progressRequestListener) throws ApiException { Object localVarPostBody = new Object(); // create path and map variables @@ -1323,6 +1326,14 @@ public class FakeApi { List localVarQueryParams = new ArrayList(); List localVarCollectionQueryParams = new ArrayList(); + if (requiredStringGroup != null) { + localVarQueryParams.addAll(apiClient.parameterToPair("required_string_group", requiredStringGroup)); + } + + if (requiredInt64Group != null) { + localVarQueryParams.addAll(apiClient.parameterToPair("required_int64_group", requiredInt64Group)); + } + if (stringGroup != null) { localVarQueryParams.addAll(apiClient.parameterToPair("string_group", stringGroup)); } @@ -1332,6 +1343,10 @@ public class FakeApi { } Map localVarHeaderParams = new HashMap(); + if (requiredBooleanGroup != null) { + localVarHeaderParams.put("required_boolean_group", apiClient.parameterToString(requiredBooleanGroup)); + } + if (booleanGroup != null) { localVarHeaderParams.put("boolean_group", apiClient.parameterToString(booleanGroup)); } @@ -1368,10 +1383,25 @@ public class FakeApi { } @SuppressWarnings("rawtypes") - private com.squareup.okhttp.Call testGroupParametersValidateBeforeCall(Integer stringGroup, Boolean booleanGroup, Long int64Group, final ProgressResponseBody.ProgressListener progressListener, final ProgressRequestBody.ProgressRequestListener progressRequestListener) throws ApiException { + private com.squareup.okhttp.Call testGroupParametersValidateBeforeCall(Integer requiredStringGroup, Boolean requiredBooleanGroup, Long requiredInt64Group, Integer stringGroup, Boolean booleanGroup, Long int64Group, final ProgressResponseBody.ProgressListener progressListener, final ProgressRequestBody.ProgressRequestListener progressRequestListener) throws ApiException { + + // verify the required parameter 'requiredStringGroup' is set + if (requiredStringGroup == null) { + throw new ApiException("Missing the required parameter 'requiredStringGroup' when calling testGroupParameters(Async)"); + } + + // verify the required parameter 'requiredBooleanGroup' is set + if (requiredBooleanGroup == null) { + throw new ApiException("Missing the required parameter 'requiredBooleanGroup' when calling testGroupParameters(Async)"); + } + + // verify the required parameter 'requiredInt64Group' is set + if (requiredInt64Group == null) { + throw new ApiException("Missing the required parameter 'requiredInt64Group' when calling testGroupParameters(Async)"); + } - com.squareup.okhttp.Call call = testGroupParametersCall(stringGroup, booleanGroup, int64Group, progressListener, progressRequestListener); + com.squareup.okhttp.Call call = testGroupParametersCall(requiredStringGroup, requiredBooleanGroup, requiredInt64Group, stringGroup, booleanGroup, int64Group, progressListener, progressRequestListener); return call; } @@ -1379,32 +1409,41 @@ public class FakeApi { /** * Fake endpoint to test group parameters (optional) * Fake endpoint to test group parameters (optional) + * @param requiredStringGroup Required String in group parameters (required) + * @param requiredBooleanGroup Required Boolean in group parameters (required) + * @param requiredInt64Group Required Integer in group parameters (required) * @param stringGroup String in group parameters (optional) * @param booleanGroup Boolean in group parameters (optional) * @param int64Group Integer in group parameters (optional) * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body */ - public void testGroupParameters(Integer stringGroup, Boolean booleanGroup, Long int64Group) throws ApiException { - testGroupParametersWithHttpInfo(stringGroup, booleanGroup, int64Group); + public void testGroupParameters(Integer requiredStringGroup, Boolean requiredBooleanGroup, Long requiredInt64Group, Integer stringGroup, Boolean booleanGroup, Long int64Group) throws ApiException { + testGroupParametersWithHttpInfo(requiredStringGroup, requiredBooleanGroup, requiredInt64Group, stringGroup, booleanGroup, int64Group); } /** * Fake endpoint to test group parameters (optional) * Fake endpoint to test group parameters (optional) + * @param requiredStringGroup Required String in group parameters (required) + * @param requiredBooleanGroup Required Boolean in group parameters (required) + * @param requiredInt64Group Required Integer in group parameters (required) * @param stringGroup String in group parameters (optional) * @param booleanGroup Boolean in group parameters (optional) * @param int64Group Integer in group parameters (optional) * @return ApiResponse<Void> * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body */ - public ApiResponse testGroupParametersWithHttpInfo(Integer stringGroup, Boolean booleanGroup, Long int64Group) throws ApiException { - com.squareup.okhttp.Call call = testGroupParametersValidateBeforeCall(stringGroup, booleanGroup, int64Group, null, null); + public ApiResponse testGroupParametersWithHttpInfo(Integer requiredStringGroup, Boolean requiredBooleanGroup, Long requiredInt64Group, Integer stringGroup, Boolean booleanGroup, Long int64Group) throws ApiException { + com.squareup.okhttp.Call call = testGroupParametersValidateBeforeCall(requiredStringGroup, requiredBooleanGroup, requiredInt64Group, stringGroup, booleanGroup, int64Group, null, null); return apiClient.execute(call); } /** * Fake endpoint to test group parameters (optional) (asynchronously) * Fake endpoint to test group parameters (optional) + * @param requiredStringGroup Required String in group parameters (required) + * @param requiredBooleanGroup Required Boolean in group parameters (required) + * @param requiredInt64Group Required Integer in group parameters (required) * @param stringGroup String in group parameters (optional) * @param booleanGroup Boolean in group parameters (optional) * @param int64Group Integer in group parameters (optional) @@ -1412,7 +1451,7 @@ public class FakeApi { * @return The request call * @throws ApiException If fail to process the API call, e.g. serializing the request body object */ - public com.squareup.okhttp.Call testGroupParametersAsync(Integer stringGroup, Boolean booleanGroup, Long int64Group, final ApiCallback callback) throws ApiException { + public com.squareup.okhttp.Call testGroupParametersAsync(Integer requiredStringGroup, Boolean requiredBooleanGroup, Long requiredInt64Group, Integer stringGroup, Boolean booleanGroup, Long int64Group, final ApiCallback callback) throws ApiException { ProgressResponseBody.ProgressListener progressListener = null; ProgressRequestBody.ProgressRequestListener progressRequestListener = null; @@ -1433,7 +1472,7 @@ public class FakeApi { }; } - com.squareup.okhttp.Call call = testGroupParametersValidateBeforeCall(stringGroup, booleanGroup, int64Group, progressListener, progressRequestListener); + com.squareup.okhttp.Call call = testGroupParametersValidateBeforeCall(requiredStringGroup, requiredBooleanGroup, requiredInt64Group, stringGroup, booleanGroup, int64Group, progressListener, progressRequestListener); apiClient.executeAsync(call, callback); return call; } diff --git a/samples/client/petstore/java/okhttp-gson/src/test/java/org/openapitools/client/api/FakeApiTest.java b/samples/client/petstore/java/okhttp-gson/src/test/java/org/openapitools/client/api/FakeApiTest.java index 6fffb218baa..07f4a80a5b2 100644 --- a/samples/client/petstore/java/okhttp-gson/src/test/java/org/openapitools/client/api/FakeApiTest.java +++ b/samples/client/petstore/java/okhttp-gson/src/test/java/org/openapitools/client/api/FakeApiTest.java @@ -214,10 +214,13 @@ public class FakeApiTest { */ @Test public void testGroupParametersTest() throws ApiException { + Integer requiredStringGroup = null; + Boolean requiredBooleanGroup = null; + Long requiredInt64Group = null; Integer stringGroup = null; Boolean booleanGroup = null; Long int64Group = null; - api.testGroupParameters(stringGroup, booleanGroup, int64Group); + api.testGroupParameters(requiredStringGroup, requiredBooleanGroup, requiredInt64Group, stringGroup, booleanGroup, int64Group); // TODO: test validations } diff --git a/samples/client/petstore/java/rest-assured/docs/FakeApi.md b/samples/client/petstore/java/rest-assured/docs/FakeApi.md index 8d5f569c6c7..153e5030c27 100644 --- a/samples/client/petstore/java/rest-assured/docs/FakeApi.md +++ b/samples/client/petstore/java/rest-assured/docs/FakeApi.md @@ -416,7 +416,7 @@ No authorization required # **testGroupParameters** -> testGroupParameters(stringGroup, booleanGroup, int64Group) +> testGroupParameters(requiredStringGroup, requiredBooleanGroup, requiredInt64Group, stringGroup, booleanGroup, int64Group) Fake endpoint to test group parameters (optional) @@ -433,13 +433,19 @@ FakeApi api = ApiClient.api(ApiClient.Config.apiConfig().withReqSpecSupplier( () -> new RequestSpecBuilder() .setBaseUri("http://petstore.swagger.io:80/v2"))).fake(); -api.testGroupParameters().execute(r -> r.prettyPeek()); +api.testGroupParameters() + .requiredStringGroupQuery(requiredStringGroup) + .requiredBooleanGroupHeader(requiredBooleanGroup) + .requiredInt64GroupQuery(requiredInt64Group).execute(r -> r.prettyPeek()); ``` ### Parameters Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- + **requiredStringGroup** | **Integer**| Required String in group parameters | + **requiredBooleanGroup** | **Boolean**| Required Boolean in group parameters | + **requiredInt64Group** | **Long**| Required Integer in group parameters | **stringGroup** | **Integer**| String in group parameters | [optional] **booleanGroup** | **Boolean**| Boolean in group parameters | [optional] **int64Group** | **Long**| Integer in group parameters | [optional] diff --git a/samples/client/petstore/java/rest-assured/src/main/java/org/openapitools/client/api/FakeApi.java b/samples/client/petstore/java/rest-assured/src/main/java/org/openapitools/client/api/FakeApi.java index 991442d3dd0..ac8e81a6c37 100644 --- a/samples/client/petstore/java/rest-assured/src/main/java/org/openapitools/client/api/FakeApi.java +++ b/samples/client/petstore/java/rest-assured/src/main/java/org/openapitools/client/api/FakeApi.java @@ -1044,6 +1044,9 @@ public class FakeApi { * Fake endpoint to test group parameters (optional) * Fake endpoint to test group parameters (optional) * + * @see #requiredStringGroupQuery Required String in group parameters (required) + * @see #requiredBooleanGroupHeader Required Boolean in group parameters (required) + * @see #requiredInt64GroupQuery Required Integer in group parameters (required) * @see #stringGroupQuery String in group parameters (optional) * @see #booleanGroupHeader Boolean in group parameters (optional) * @see #int64GroupQuery Integer in group parameters (optional) @@ -1072,6 +1075,17 @@ public class FakeApi { return handler.apply(RestAssured.given().spec(reqSpec.build()).expect().spec(respSpec.build()).when().request(REQ_METHOD, REQ_URI)); } + public static final String REQUIRED_BOOLEAN_GROUP_HEADER = "required_boolean_group"; + + /** + * @param requiredBooleanGroup (Boolean) Required Boolean in group parameters (required) + * @return operation + */ + public TestGroupParametersOper requiredBooleanGroupHeader(String requiredBooleanGroup) { + reqSpec.addHeader(REQUIRED_BOOLEAN_GROUP_HEADER, requiredBooleanGroup); + return this; + } + public static final String BOOLEAN_GROUP_HEADER = "boolean_group"; /** @@ -1083,6 +1097,28 @@ public class FakeApi { return this; } + public static final String REQUIRED_STRING_GROUP_QUERY = "required_string_group"; + + /** + * @param requiredStringGroup (Integer) Required String in group parameters (required) + * @return operation + */ + public TestGroupParametersOper requiredStringGroupQuery(Object... requiredStringGroup) { + reqSpec.addQueryParam(REQUIRED_STRING_GROUP_QUERY, requiredStringGroup); + return this; + } + + public static final String REQUIRED_INT64_GROUP_QUERY = "required_int64_group"; + + /** + * @param requiredInt64Group (Long) Required Integer in group parameters (required) + * @return operation + */ + public TestGroupParametersOper requiredInt64GroupQuery(Object... requiredInt64Group) { + reqSpec.addQueryParam(REQUIRED_INT64_GROUP_QUERY, requiredInt64Group); + return this; + } + public static final String STRING_GROUP_QUERY = "string_group"; /** diff --git a/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/api/FakeApiTest.java b/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/api/FakeApiTest.java index d05c8622726..f8746ac3c95 100644 --- a/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/api/FakeApiTest.java +++ b/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/api/FakeApiTest.java @@ -230,10 +230,16 @@ public class FakeApiTest { */ @Test public void shouldSee400AfterTestGroupParameters() { + Integer requiredStringGroup = null; + String requiredBooleanGroup = null; + Long requiredInt64Group = null; Integer stringGroup = null; String booleanGroup = null; Long int64Group = null; - api.testGroupParameters().execute(r -> r.prettyPeek()); + api.testGroupParameters() + .requiredStringGroupQuery(requiredStringGroup) + .requiredBooleanGroupHeader(requiredBooleanGroup) + .requiredInt64GroupQuery(requiredInt64Group).execute(r -> r.prettyPeek()); // TODO: test validations } diff --git a/samples/client/petstore/java/resteasy/docs/FakeApi.md b/samples/client/petstore/java/resteasy/docs/FakeApi.md index a29ac9987a3..62046473c1f 100644 --- a/samples/client/petstore/java/resteasy/docs/FakeApi.md +++ b/samples/client/petstore/java/resteasy/docs/FakeApi.md @@ -470,7 +470,7 @@ No authorization required # **testGroupParameters** -> testGroupParameters(stringGroup, booleanGroup, int64Group) +> testGroupParameters(requiredStringGroup, requiredBooleanGroup, requiredInt64Group, stringGroup, booleanGroup, int64Group) Fake endpoint to test group parameters (optional) @@ -484,11 +484,14 @@ Fake endpoint to test group parameters (optional) FakeApi apiInstance = new FakeApi(); +Integer requiredStringGroup = 56; // Integer | Required String in group parameters +Boolean requiredBooleanGroup = true; // Boolean | Required Boolean in group parameters +Long requiredInt64Group = 56L; // Long | Required Integer in group parameters Integer stringGroup = 56; // Integer | String in group parameters Boolean booleanGroup = true; // Boolean | Boolean in group parameters Long int64Group = 56L; // Long | Integer in group parameters try { - apiInstance.testGroupParameters(stringGroup, booleanGroup, int64Group); + apiInstance.testGroupParameters(requiredStringGroup, requiredBooleanGroup, requiredInt64Group, stringGroup, booleanGroup, int64Group); } catch (ApiException e) { System.err.println("Exception when calling FakeApi#testGroupParameters"); e.printStackTrace(); @@ -499,6 +502,9 @@ try { Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- + **requiredStringGroup** | **Integer**| Required String in group parameters | + **requiredBooleanGroup** | **Boolean**| Required Boolean in group parameters | + **requiredInt64Group** | **Long**| Required Integer in group parameters | **stringGroup** | **Integer**| String in group parameters | [optional] **booleanGroup** | **Boolean**| Boolean in group parameters | [optional] **int64Group** | **Long**| Integer in group parameters | [optional] diff --git a/samples/client/petstore/java/resteasy/src/main/java/org/openapitools/client/api/FakeApi.java b/samples/client/petstore/java/resteasy/src/main/java/org/openapitools/client/api/FakeApi.java index a1c5fef69c1..dff8c8271e8 100644 --- a/samples/client/petstore/java/resteasy/src/main/java/org/openapitools/client/api/FakeApi.java +++ b/samples/client/petstore/java/resteasy/src/main/java/org/openapitools/client/api/FakeApi.java @@ -466,14 +466,32 @@ if (enumFormString != null) /** * Fake endpoint to test group parameters (optional) * Fake endpoint to test group parameters (optional) + * @param requiredStringGroup Required String in group parameters (required) + * @param requiredBooleanGroup Required Boolean in group parameters (required) + * @param requiredInt64Group Required Integer in group parameters (required) * @param stringGroup String in group parameters (optional) * @param booleanGroup Boolean in group parameters (optional) * @param int64Group Integer in group parameters (optional) * @throws ApiException if fails to make API call */ - public void testGroupParameters(Integer stringGroup, Boolean booleanGroup, Long int64Group) throws ApiException { + public void testGroupParameters(Integer requiredStringGroup, Boolean requiredBooleanGroup, Long requiredInt64Group, Integer stringGroup, Boolean booleanGroup, Long int64Group) throws ApiException { Object localVarPostBody = new Object(); + // verify the required parameter 'requiredStringGroup' is set + if (requiredStringGroup == null) { + throw new ApiException(400, "Missing the required parameter 'requiredStringGroup' when calling testGroupParameters"); + } + + // verify the required parameter 'requiredBooleanGroup' is set + if (requiredBooleanGroup == null) { + throw new ApiException(400, "Missing the required parameter 'requiredBooleanGroup' when calling testGroupParameters"); + } + + // verify the required parameter 'requiredInt64Group' is set + if (requiredInt64Group == null) { + throw new ApiException(400, "Missing the required parameter 'requiredInt64Group' when calling testGroupParameters"); + } + // create path and map variables String localVarPath = "/fake".replaceAll("\\{format\\}","json"); @@ -482,10 +500,14 @@ if (enumFormString != null) Map localVarHeaderParams = new HashMap(); Map localVarFormParams = new HashMap(); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "required_string_group", requiredStringGroup)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "required_int64_group", requiredInt64Group)); localVarQueryParams.addAll(apiClient.parameterToPairs("", "string_group", stringGroup)); localVarQueryParams.addAll(apiClient.parameterToPairs("", "int64_group", int64Group)); - if (booleanGroup != null) + if (requiredBooleanGroup != null) + localVarHeaderParams.put("required_boolean_group", apiClient.parameterToString(requiredBooleanGroup)); +if (booleanGroup != null) localVarHeaderParams.put("boolean_group", apiClient.parameterToString(booleanGroup)); diff --git a/samples/client/petstore/java/resteasy/src/test/java/org/openapitools/client/api/FakeApiTest.java b/samples/client/petstore/java/resteasy/src/test/java/org/openapitools/client/api/FakeApiTest.java index f23eef8b585..07f4a80a5b2 100644 --- a/samples/client/petstore/java/resteasy/src/test/java/org/openapitools/client/api/FakeApiTest.java +++ b/samples/client/petstore/java/resteasy/src/test/java/org/openapitools/client/api/FakeApiTest.java @@ -17,6 +17,7 @@ import org.openapitools.client.ApiException; import java.math.BigDecimal; import org.openapitools.client.model.Client; import java.io.File; +import org.openapitools.client.model.FileSchemaTestClass; import org.threeten.bp.LocalDate; import org.threeten.bp.OffsetDateTime; import org.openapitools.client.model.OuterComposite; @@ -102,6 +103,22 @@ public class FakeApiTest { // TODO: test validations } + /** + * + * + * For this test, the body for this request much reference a schema named `File`. + * + * @throws ApiException + * if the Api call fails + */ + @Test + public void testBodyWithFileSchemaTest() throws ApiException { + FileSchemaTestClass fileSchemaTestClass = null; + api.testBodyWithFileSchema(fileSchemaTestClass); + + // TODO: test validations + } + /** * * @@ -187,6 +204,27 @@ public class FakeApiTest { // TODO: test validations } + /** + * Fake endpoint to test group parameters (optional) + * + * Fake endpoint to test group parameters (optional) + * + * @throws ApiException + * if the Api call fails + */ + @Test + public void testGroupParametersTest() throws ApiException { + Integer requiredStringGroup = null; + Boolean requiredBooleanGroup = null; + Long requiredInt64Group = null; + Integer stringGroup = null; + Boolean booleanGroup = null; + Long int64Group = null; + api.testGroupParameters(requiredStringGroup, requiredBooleanGroup, requiredInt64Group, stringGroup, booleanGroup, int64Group); + + // TODO: test validations + } + /** * test inline additionalProperties * diff --git a/samples/client/petstore/java/resttemplate-withXml/docs/FakeApi.md b/samples/client/petstore/java/resttemplate-withXml/docs/FakeApi.md index a29ac9987a3..62046473c1f 100644 --- a/samples/client/petstore/java/resttemplate-withXml/docs/FakeApi.md +++ b/samples/client/petstore/java/resttemplate-withXml/docs/FakeApi.md @@ -470,7 +470,7 @@ No authorization required # **testGroupParameters** -> testGroupParameters(stringGroup, booleanGroup, int64Group) +> testGroupParameters(requiredStringGroup, requiredBooleanGroup, requiredInt64Group, stringGroup, booleanGroup, int64Group) Fake endpoint to test group parameters (optional) @@ -484,11 +484,14 @@ Fake endpoint to test group parameters (optional) FakeApi apiInstance = new FakeApi(); +Integer requiredStringGroup = 56; // Integer | Required String in group parameters +Boolean requiredBooleanGroup = true; // Boolean | Required Boolean in group parameters +Long requiredInt64Group = 56L; // Long | Required Integer in group parameters Integer stringGroup = 56; // Integer | String in group parameters Boolean booleanGroup = true; // Boolean | Boolean in group parameters Long int64Group = 56L; // Long | Integer in group parameters try { - apiInstance.testGroupParameters(stringGroup, booleanGroup, int64Group); + apiInstance.testGroupParameters(requiredStringGroup, requiredBooleanGroup, requiredInt64Group, stringGroup, booleanGroup, int64Group); } catch (ApiException e) { System.err.println("Exception when calling FakeApi#testGroupParameters"); e.printStackTrace(); @@ -499,6 +502,9 @@ try { Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- + **requiredStringGroup** | **Integer**| Required String in group parameters | + **requiredBooleanGroup** | **Boolean**| Required Boolean in group parameters | + **requiredInt64Group** | **Long**| Required Integer in group parameters | **stringGroup** | **Integer**| String in group parameters | [optional] **booleanGroup** | **Boolean**| Boolean in group parameters | [optional] **int64Group** | **Long**| Integer in group parameters | [optional] diff --git a/samples/client/petstore/java/resttemplate-withXml/src/main/java/org/openapitools/client/api/FakeApi.java b/samples/client/petstore/java/resttemplate-withXml/src/main/java/org/openapitools/client/api/FakeApi.java index 4a3cd69107c..725ad066104 100644 --- a/samples/client/petstore/java/resttemplate-withXml/src/main/java/org/openapitools/client/api/FakeApi.java +++ b/samples/client/petstore/java/resttemplate-withXml/src/main/java/org/openapitools/client/api/FakeApi.java @@ -425,23 +425,45 @@ public class FakeApi { * Fake endpoint to test group parameters (optional) * Fake endpoint to test group parameters (optional) *

400 - Someting wrong + * @param requiredStringGroup Required String in group parameters + * @param requiredBooleanGroup Required Boolean in group parameters + * @param requiredInt64Group Required Integer in group parameters * @param stringGroup String in group parameters * @param booleanGroup Boolean in group parameters * @param int64Group Integer in group parameters * @throws RestClientException if an error occurs while attempting to invoke the API */ - public void testGroupParameters(Integer stringGroup, Boolean booleanGroup, Long int64Group) throws RestClientException { + public void testGroupParameters(Integer requiredStringGroup, Boolean requiredBooleanGroup, Long requiredInt64Group, Integer stringGroup, Boolean booleanGroup, Long int64Group) throws RestClientException { Object postBody = null; + // verify the required parameter 'requiredStringGroup' is set + if (requiredStringGroup == null) { + throw new HttpClientErrorException(HttpStatus.BAD_REQUEST, "Missing the required parameter 'requiredStringGroup' when calling testGroupParameters"); + } + + // verify the required parameter 'requiredBooleanGroup' is set + if (requiredBooleanGroup == null) { + throw new HttpClientErrorException(HttpStatus.BAD_REQUEST, "Missing the required parameter 'requiredBooleanGroup' when calling testGroupParameters"); + } + + // verify the required parameter 'requiredInt64Group' is set + if (requiredInt64Group == null) { + throw new HttpClientErrorException(HttpStatus.BAD_REQUEST, "Missing the required parameter 'requiredInt64Group' when calling testGroupParameters"); + } + String path = UriComponentsBuilder.fromPath("/fake").build().toUriString(); final MultiValueMap queryParams = new LinkedMultiValueMap(); final HttpHeaders headerParams = new HttpHeaders(); final MultiValueMap formParams = new LinkedMultiValueMap(); + queryParams.putAll(apiClient.parameterToMultiValueMap(null, "required_string_group", requiredStringGroup)); + queryParams.putAll(apiClient.parameterToMultiValueMap(null, "required_int64_group", requiredInt64Group)); queryParams.putAll(apiClient.parameterToMultiValueMap(null, "string_group", stringGroup)); queryParams.putAll(apiClient.parameterToMultiValueMap(null, "int64_group", int64Group)); + if (requiredBooleanGroup != null) + headerParams.add("required_boolean_group", apiClient.parameterToString(requiredBooleanGroup)); if (booleanGroup != null) headerParams.add("boolean_group", apiClient.parameterToString(booleanGroup)); diff --git a/samples/client/petstore/java/resttemplate-withXml/src/test/java/org/openapitools/client/api/FakeApiTest.java b/samples/client/petstore/java/resttemplate-withXml/src/test/java/org/openapitools/client/api/FakeApiTest.java index 373a0c691c7..5d14435fc03 100644 --- a/samples/client/petstore/java/resttemplate-withXml/src/test/java/org/openapitools/client/api/FakeApiTest.java +++ b/samples/client/petstore/java/resttemplate-withXml/src/test/java/org/openapitools/client/api/FakeApiTest.java @@ -16,6 +16,7 @@ package org.openapitools.client.api; import java.math.BigDecimal; import org.openapitools.client.model.Client; import java.io.File; +import org.openapitools.client.model.FileSchemaTestClass; import org.threeten.bp.LocalDate; import org.threeten.bp.OffsetDateTime; import org.openapitools.client.model.OuterComposite; @@ -101,6 +102,22 @@ public class FakeApiTest { // TODO: test validations } + /** + * + * + * For this test, the body for this request much reference a schema named `File`. + * + * @throws ApiException + * if the Api call fails + */ + @Test + public void testBodyWithFileSchemaTest() { + FileSchemaTestClass fileSchemaTestClass = null; + api.testBodyWithFileSchema(fileSchemaTestClass); + + // TODO: test validations + } + /** * * @@ -186,6 +203,27 @@ public class FakeApiTest { // TODO: test validations } + /** + * Fake endpoint to test group parameters (optional) + * + * Fake endpoint to test group parameters (optional) + * + * @throws ApiException + * if the Api call fails + */ + @Test + public void testGroupParametersTest() { + Integer requiredStringGroup = null; + Boolean requiredBooleanGroup = null; + Long requiredInt64Group = null; + Integer stringGroup = null; + Boolean booleanGroup = null; + Long int64Group = null; + api.testGroupParameters(requiredStringGroup, requiredBooleanGroup, requiredInt64Group, stringGroup, booleanGroup, int64Group); + + // TODO: test validations + } + /** * test inline additionalProperties * diff --git a/samples/client/petstore/java/resttemplate/docs/FakeApi.md b/samples/client/petstore/java/resttemplate/docs/FakeApi.md index a29ac9987a3..62046473c1f 100644 --- a/samples/client/petstore/java/resttemplate/docs/FakeApi.md +++ b/samples/client/petstore/java/resttemplate/docs/FakeApi.md @@ -470,7 +470,7 @@ No authorization required # **testGroupParameters** -> testGroupParameters(stringGroup, booleanGroup, int64Group) +> testGroupParameters(requiredStringGroup, requiredBooleanGroup, requiredInt64Group, stringGroup, booleanGroup, int64Group) Fake endpoint to test group parameters (optional) @@ -484,11 +484,14 @@ Fake endpoint to test group parameters (optional) FakeApi apiInstance = new FakeApi(); +Integer requiredStringGroup = 56; // Integer | Required String in group parameters +Boolean requiredBooleanGroup = true; // Boolean | Required Boolean in group parameters +Long requiredInt64Group = 56L; // Long | Required Integer in group parameters Integer stringGroup = 56; // Integer | String in group parameters Boolean booleanGroup = true; // Boolean | Boolean in group parameters Long int64Group = 56L; // Long | Integer in group parameters try { - apiInstance.testGroupParameters(stringGroup, booleanGroup, int64Group); + apiInstance.testGroupParameters(requiredStringGroup, requiredBooleanGroup, requiredInt64Group, stringGroup, booleanGroup, int64Group); } catch (ApiException e) { System.err.println("Exception when calling FakeApi#testGroupParameters"); e.printStackTrace(); @@ -499,6 +502,9 @@ try { Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- + **requiredStringGroup** | **Integer**| Required String in group parameters | + **requiredBooleanGroup** | **Boolean**| Required Boolean in group parameters | + **requiredInt64Group** | **Long**| Required Integer in group parameters | **stringGroup** | **Integer**| String in group parameters | [optional] **booleanGroup** | **Boolean**| Boolean in group parameters | [optional] **int64Group** | **Long**| Integer in group parameters | [optional] diff --git a/samples/client/petstore/java/resttemplate/src/main/java/org/openapitools/client/api/FakeApi.java b/samples/client/petstore/java/resttemplate/src/main/java/org/openapitools/client/api/FakeApi.java index 4a3cd69107c..725ad066104 100644 --- a/samples/client/petstore/java/resttemplate/src/main/java/org/openapitools/client/api/FakeApi.java +++ b/samples/client/petstore/java/resttemplate/src/main/java/org/openapitools/client/api/FakeApi.java @@ -425,23 +425,45 @@ public class FakeApi { * Fake endpoint to test group parameters (optional) * Fake endpoint to test group parameters (optional) *

400 - Someting wrong + * @param requiredStringGroup Required String in group parameters + * @param requiredBooleanGroup Required Boolean in group parameters + * @param requiredInt64Group Required Integer in group parameters * @param stringGroup String in group parameters * @param booleanGroup Boolean in group parameters * @param int64Group Integer in group parameters * @throws RestClientException if an error occurs while attempting to invoke the API */ - public void testGroupParameters(Integer stringGroup, Boolean booleanGroup, Long int64Group) throws RestClientException { + public void testGroupParameters(Integer requiredStringGroup, Boolean requiredBooleanGroup, Long requiredInt64Group, Integer stringGroup, Boolean booleanGroup, Long int64Group) throws RestClientException { Object postBody = null; + // verify the required parameter 'requiredStringGroup' is set + if (requiredStringGroup == null) { + throw new HttpClientErrorException(HttpStatus.BAD_REQUEST, "Missing the required parameter 'requiredStringGroup' when calling testGroupParameters"); + } + + // verify the required parameter 'requiredBooleanGroup' is set + if (requiredBooleanGroup == null) { + throw new HttpClientErrorException(HttpStatus.BAD_REQUEST, "Missing the required parameter 'requiredBooleanGroup' when calling testGroupParameters"); + } + + // verify the required parameter 'requiredInt64Group' is set + if (requiredInt64Group == null) { + throw new HttpClientErrorException(HttpStatus.BAD_REQUEST, "Missing the required parameter 'requiredInt64Group' when calling testGroupParameters"); + } + String path = UriComponentsBuilder.fromPath("/fake").build().toUriString(); final MultiValueMap queryParams = new LinkedMultiValueMap(); final HttpHeaders headerParams = new HttpHeaders(); final MultiValueMap formParams = new LinkedMultiValueMap(); + queryParams.putAll(apiClient.parameterToMultiValueMap(null, "required_string_group", requiredStringGroup)); + queryParams.putAll(apiClient.parameterToMultiValueMap(null, "required_int64_group", requiredInt64Group)); queryParams.putAll(apiClient.parameterToMultiValueMap(null, "string_group", stringGroup)); queryParams.putAll(apiClient.parameterToMultiValueMap(null, "int64_group", int64Group)); + if (requiredBooleanGroup != null) + headerParams.add("required_boolean_group", apiClient.parameterToString(requiredBooleanGroup)); if (booleanGroup != null) headerParams.add("boolean_group", apiClient.parameterToString(booleanGroup)); diff --git a/samples/client/petstore/java/resttemplate/src/test/java/org/openapitools/client/api/FakeApiTest.java b/samples/client/petstore/java/resttemplate/src/test/java/org/openapitools/client/api/FakeApiTest.java index 373a0c691c7..5d14435fc03 100644 --- a/samples/client/petstore/java/resttemplate/src/test/java/org/openapitools/client/api/FakeApiTest.java +++ b/samples/client/petstore/java/resttemplate/src/test/java/org/openapitools/client/api/FakeApiTest.java @@ -16,6 +16,7 @@ package org.openapitools.client.api; import java.math.BigDecimal; import org.openapitools.client.model.Client; import java.io.File; +import org.openapitools.client.model.FileSchemaTestClass; import org.threeten.bp.LocalDate; import org.threeten.bp.OffsetDateTime; import org.openapitools.client.model.OuterComposite; @@ -101,6 +102,22 @@ public class FakeApiTest { // TODO: test validations } + /** + * + * + * For this test, the body for this request much reference a schema named `File`. + * + * @throws ApiException + * if the Api call fails + */ + @Test + public void testBodyWithFileSchemaTest() { + FileSchemaTestClass fileSchemaTestClass = null; + api.testBodyWithFileSchema(fileSchemaTestClass); + + // TODO: test validations + } + /** * * @@ -186,6 +203,27 @@ public class FakeApiTest { // TODO: test validations } + /** + * Fake endpoint to test group parameters (optional) + * + * Fake endpoint to test group parameters (optional) + * + * @throws ApiException + * if the Api call fails + */ + @Test + public void testGroupParametersTest() { + Integer requiredStringGroup = null; + Boolean requiredBooleanGroup = null; + Long requiredInt64Group = null; + Integer stringGroup = null; + Boolean booleanGroup = null; + Long int64Group = null; + api.testGroupParameters(requiredStringGroup, requiredBooleanGroup, requiredInt64Group, stringGroup, booleanGroup, int64Group); + + // TODO: test validations + } + /** * test inline additionalProperties * diff --git a/samples/client/petstore/java/retrofit/src/main/java/org/openapitools/client/api/FakeApi.java b/samples/client/petstore/java/retrofit/src/main/java/org/openapitools/client/api/FakeApi.java index ed7fb62be50..a83105fd0d3 100644 --- a/samples/client/petstore/java/retrofit/src/main/java/org/openapitools/client/api/FakeApi.java +++ b/samples/client/petstore/java/retrofit/src/main/java/org/openapitools/client/api/FakeApi.java @@ -287,6 +287,9 @@ public interface FakeApi { * Fake endpoint to test group parameters (optional) * Sync method * Fake endpoint to test group parameters (optional) + * @param requiredStringGroup Required String in group parameters (required) + * @param requiredBooleanGroup Required Boolean in group parameters (required) + * @param requiredInt64Group Required Integer in group parameters (required) * @param stringGroup String in group parameters (optional) * @param booleanGroup Boolean in group parameters (optional) * @param int64Group Integer in group parameters (optional) @@ -295,12 +298,15 @@ public interface FakeApi { @DELETE("/fake") Void testGroupParameters( - @retrofit.http.Query("string_group") Integer stringGroup, @retrofit.http.Header("boolean_group") Boolean booleanGroup, @retrofit.http.Query("int64_group") Long int64Group + @retrofit.http.Query("required_string_group") Integer requiredStringGroup, @retrofit.http.Header("required_boolean_group") Boolean requiredBooleanGroup, @retrofit.http.Query("required_int64_group") Long requiredInt64Group, @retrofit.http.Query("string_group") Integer stringGroup, @retrofit.http.Header("boolean_group") Boolean booleanGroup, @retrofit.http.Query("int64_group") Long int64Group ); /** * Fake endpoint to test group parameters (optional) * Async method + * @param requiredStringGroup Required String in group parameters (required) + * @param requiredBooleanGroup Required Boolean in group parameters (required) + * @param requiredInt64Group Required Integer in group parameters (required) * @param stringGroup String in group parameters (optional) * @param booleanGroup Boolean in group parameters (optional) * @param int64Group Integer in group parameters (optional) @@ -309,7 +315,7 @@ public interface FakeApi { @DELETE("/fake") void testGroupParameters( - @retrofit.http.Query("string_group") Integer stringGroup, @retrofit.http.Header("boolean_group") Boolean booleanGroup, @retrofit.http.Query("int64_group") Long int64Group, Callback cb + @retrofit.http.Query("required_string_group") Integer requiredStringGroup, @retrofit.http.Header("required_boolean_group") Boolean requiredBooleanGroup, @retrofit.http.Query("required_int64_group") Long requiredInt64Group, @retrofit.http.Query("string_group") Integer stringGroup, @retrofit.http.Header("boolean_group") Boolean booleanGroup, @retrofit.http.Query("int64_group") Long int64Group, Callback cb ); /** * test inline additionalProperties diff --git a/samples/client/petstore/java/retrofit/src/test/java/org/openapitools/client/api/FakeApiTest.java b/samples/client/petstore/java/retrofit/src/test/java/org/openapitools/client/api/FakeApiTest.java index c5094b98fd5..d055e54ede9 100644 --- a/samples/client/petstore/java/retrofit/src/test/java/org/openapitools/client/api/FakeApiTest.java +++ b/samples/client/petstore/java/retrofit/src/test/java/org/openapitools/client/api/FakeApiTest.java @@ -5,6 +5,7 @@ import java.math.BigDecimal; import org.openapitools.client.model.Client; import org.joda.time.DateTime; import java.io.File; +import org.openapitools.client.model.FileSchemaTestClass; import org.joda.time.LocalDate; import org.openapitools.client.model.OuterComposite; import org.openapitools.client.model.User; @@ -81,6 +82,19 @@ public class FakeApiTest { // TODO: test validations } + /** + * + * + * For this test, the body for this request much reference a schema named `File`. + */ + @Test + public void testBodyWithFileSchemaTest() { + FileSchemaTestClass fileSchemaTestClass = null; + // api.testBodyWithFileSchema(fileSchemaTestClass); + + // TODO: test validations + } + /** * * @@ -154,6 +168,24 @@ public class FakeApiTest { // TODO: test validations } + /** + * Fake endpoint to test group parameters (optional) + * + * Fake endpoint to test group parameters (optional) + */ + @Test + public void testGroupParametersTest() { + Integer requiredStringGroup = null; + Boolean requiredBooleanGroup = null; + Long requiredInt64Group = null; + Integer stringGroup = null; + Boolean booleanGroup = null; + Long int64Group = null; + // api.testGroupParameters(requiredStringGroup, requiredBooleanGroup, requiredInt64Group, stringGroup, booleanGroup, int64Group); + + // TODO: test validations + } + /** * test inline additionalProperties * diff --git a/samples/client/petstore/java/retrofit2-play24/docs/FakeApi.md b/samples/client/petstore/java/retrofit2-play24/docs/FakeApi.md index 3caa786e5ac..5335c1521aa 100644 --- a/samples/client/petstore/java/retrofit2-play24/docs/FakeApi.md +++ b/samples/client/petstore/java/retrofit2-play24/docs/FakeApi.md @@ -470,7 +470,7 @@ No authorization required # **testGroupParameters** -> testGroupParameters(stringGroup, booleanGroup, int64Group) +> testGroupParameters(requiredStringGroup, requiredBooleanGroup, requiredInt64Group, stringGroup, booleanGroup, int64Group) Fake endpoint to test group parameters (optional) @@ -484,11 +484,14 @@ Fake endpoint to test group parameters (optional) FakeApi apiInstance = new FakeApi(); +Integer requiredStringGroup = 56; // Integer | Required String in group parameters +Boolean requiredBooleanGroup = true; // Boolean | Required Boolean in group parameters +Long requiredInt64Group = 56L; // Long | Required Integer in group parameters Integer stringGroup = 56; // Integer | String in group parameters Boolean booleanGroup = true; // Boolean | Boolean in group parameters Long int64Group = 56L; // Long | Integer in group parameters try { - apiInstance.testGroupParameters(stringGroup, booleanGroup, int64Group); + apiInstance.testGroupParameters(requiredStringGroup, requiredBooleanGroup, requiredInt64Group, stringGroup, booleanGroup, int64Group); } catch (ApiException e) { System.err.println("Exception when calling FakeApi#testGroupParameters"); e.printStackTrace(); @@ -499,6 +502,9 @@ try { Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- + **requiredStringGroup** | **Integer**| Required String in group parameters | + **requiredBooleanGroup** | **Boolean**| Required Boolean in group parameters | + **requiredInt64Group** | **Long**| Required Integer in group parameters | **stringGroup** | **Integer**| String in group parameters | [optional] **booleanGroup** | **Boolean**| Boolean in group parameters | [optional] **int64Group** | **Long**| Integer in group parameters | [optional] diff --git a/samples/client/petstore/java/retrofit2-play24/src/main/java/org/openapitools/client/api/FakeApi.java b/samples/client/petstore/java/retrofit2-play24/src/main/java/org/openapitools/client/api/FakeApi.java index 84745f86ce9..88d49bfb020 100644 --- a/samples/client/petstore/java/retrofit2-play24/src/main/java/org/openapitools/client/api/FakeApi.java +++ b/samples/client/petstore/java/retrofit2-play24/src/main/java/org/openapitools/client/api/FakeApi.java @@ -163,6 +163,9 @@ public interface FakeApi { /** * Fake endpoint to test group parameters (optional) * Fake endpoint to test group parameters (optional) + * @param requiredStringGroup Required String in group parameters (required) + * @param requiredBooleanGroup Required Boolean in group parameters (required) + * @param requiredInt64Group Required Integer in group parameters (required) * @param stringGroup String in group parameters (optional) * @param booleanGroup Boolean in group parameters (optional) * @param int64Group Integer in group parameters (optional) @@ -170,7 +173,7 @@ public interface FakeApi { */ @DELETE("fake") F.Promise> testGroupParameters( - @retrofit2.http.Query("string_group") Integer stringGroup, @retrofit2.http.Header("boolean_group") Boolean booleanGroup, @retrofit2.http.Query("int64_group") Long int64Group + @retrofit2.http.Query("required_string_group") Integer requiredStringGroup, @retrofit2.http.Header("required_boolean_group") Boolean requiredBooleanGroup, @retrofit2.http.Query("required_int64_group") Long requiredInt64Group, @retrofit2.http.Query("string_group") Integer stringGroup, @retrofit2.http.Header("boolean_group") Boolean booleanGroup, @retrofit2.http.Query("int64_group") Long int64Group ); /** diff --git a/samples/client/petstore/java/retrofit2-play24/src/test/java/org/openapitools/client/api/FakeApiTest.java b/samples/client/petstore/java/retrofit2-play24/src/test/java/org/openapitools/client/api/FakeApiTest.java index 649446d984c..82a96b9818b 100644 --- a/samples/client/petstore/java/retrofit2-play24/src/test/java/org/openapitools/client/api/FakeApiTest.java +++ b/samples/client/petstore/java/retrofit2-play24/src/test/java/org/openapitools/client/api/FakeApiTest.java @@ -4,6 +4,7 @@ import org.openapitools.client.ApiClient; import java.math.BigDecimal; import org.openapitools.client.model.Client; import java.io.File; +import org.openapitools.client.model.FileSchemaTestClass; import java.time.LocalDate; import java.time.OffsetDateTime; import org.openapitools.client.model.OuterComposite; @@ -76,6 +77,18 @@ public class FakeApiTest { // TODO: test validations } + /** + * + * + * For this test, the body for this request much reference a schema named `File`. + */ + @Test + public void testBodyWithFileSchemaTest() { + FileSchemaTestClass fileSchemaTestClass = null; + // api.testBodyWithFileSchema(fileSchemaTestClass); + + // TODO: test validations + } /** * * @@ -145,6 +158,23 @@ public class FakeApiTest { // TODO: test validations } + /** + * Fake endpoint to test group parameters (optional) + * + * Fake endpoint to test group parameters (optional) + */ + @Test + public void testGroupParametersTest() { + Integer requiredStringGroup = null; + Boolean requiredBooleanGroup = null; + Long requiredInt64Group = null; + Integer stringGroup = null; + Boolean booleanGroup = null; + Long int64Group = null; + // api.testGroupParameters(requiredStringGroup, requiredBooleanGroup, requiredInt64Group, stringGroup, booleanGroup, int64Group); + + // TODO: test validations + } /** * test inline additionalProperties * diff --git a/samples/client/petstore/java/retrofit2-play25/docs/FakeApi.md b/samples/client/petstore/java/retrofit2-play25/docs/FakeApi.md index 3caa786e5ac..5335c1521aa 100644 --- a/samples/client/petstore/java/retrofit2-play25/docs/FakeApi.md +++ b/samples/client/petstore/java/retrofit2-play25/docs/FakeApi.md @@ -470,7 +470,7 @@ No authorization required # **testGroupParameters** -> testGroupParameters(stringGroup, booleanGroup, int64Group) +> testGroupParameters(requiredStringGroup, requiredBooleanGroup, requiredInt64Group, stringGroup, booleanGroup, int64Group) Fake endpoint to test group parameters (optional) @@ -484,11 +484,14 @@ Fake endpoint to test group parameters (optional) FakeApi apiInstance = new FakeApi(); +Integer requiredStringGroup = 56; // Integer | Required String in group parameters +Boolean requiredBooleanGroup = true; // Boolean | Required Boolean in group parameters +Long requiredInt64Group = 56L; // Long | Required Integer in group parameters Integer stringGroup = 56; // Integer | String in group parameters Boolean booleanGroup = true; // Boolean | Boolean in group parameters Long int64Group = 56L; // Long | Integer in group parameters try { - apiInstance.testGroupParameters(stringGroup, booleanGroup, int64Group); + apiInstance.testGroupParameters(requiredStringGroup, requiredBooleanGroup, requiredInt64Group, stringGroup, booleanGroup, int64Group); } catch (ApiException e) { System.err.println("Exception when calling FakeApi#testGroupParameters"); e.printStackTrace(); @@ -499,6 +502,9 @@ try { Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- + **requiredStringGroup** | **Integer**| Required String in group parameters | + **requiredBooleanGroup** | **Boolean**| Required Boolean in group parameters | + **requiredInt64Group** | **Long**| Required Integer in group parameters | **stringGroup** | **Integer**| String in group parameters | [optional] **booleanGroup** | **Boolean**| Boolean in group parameters | [optional] **int64Group** | **Long**| Integer in group parameters | [optional] diff --git a/samples/client/petstore/java/retrofit2-play25/src/main/java/org/openapitools/client/api/FakeApi.java b/samples/client/petstore/java/retrofit2-play25/src/main/java/org/openapitools/client/api/FakeApi.java index 3394d297167..c542ee4d79c 100644 --- a/samples/client/petstore/java/retrofit2-play25/src/main/java/org/openapitools/client/api/FakeApi.java +++ b/samples/client/petstore/java/retrofit2-play25/src/main/java/org/openapitools/client/api/FakeApi.java @@ -163,6 +163,9 @@ public interface FakeApi { /** * Fake endpoint to test group parameters (optional) * Fake endpoint to test group parameters (optional) + * @param requiredStringGroup Required String in group parameters (required) + * @param requiredBooleanGroup Required Boolean in group parameters (required) + * @param requiredInt64Group Required Integer in group parameters (required) * @param stringGroup String in group parameters (optional) * @param booleanGroup Boolean in group parameters (optional) * @param int64Group Integer in group parameters (optional) @@ -170,7 +173,7 @@ public interface FakeApi { */ @DELETE("fake") CompletionStage> testGroupParameters( - @retrofit2.http.Query("string_group") Integer stringGroup, @retrofit2.http.Header("boolean_group") Boolean booleanGroup, @retrofit2.http.Query("int64_group") Long int64Group + @retrofit2.http.Query("required_string_group") Integer requiredStringGroup, @retrofit2.http.Header("required_boolean_group") Boolean requiredBooleanGroup, @retrofit2.http.Query("required_int64_group") Long requiredInt64Group, @retrofit2.http.Query("string_group") Integer stringGroup, @retrofit2.http.Header("boolean_group") Boolean booleanGroup, @retrofit2.http.Query("int64_group") Long int64Group ); /** diff --git a/samples/client/petstore/java/retrofit2-play25/src/test/java/org/openapitools/client/api/FakeApiTest.java b/samples/client/petstore/java/retrofit2-play25/src/test/java/org/openapitools/client/api/FakeApiTest.java index c7caf851a43..aec2e41c34e 100644 --- a/samples/client/petstore/java/retrofit2-play25/src/test/java/org/openapitools/client/api/FakeApiTest.java +++ b/samples/client/petstore/java/retrofit2-play25/src/test/java/org/openapitools/client/api/FakeApiTest.java @@ -4,6 +4,7 @@ import org.openapitools.client.ApiClient; import java.math.BigDecimal; import org.openapitools.client.model.Client; import java.io.File; +import org.openapitools.client.model.FileSchemaTestClass; import org.threeten.bp.LocalDate; import org.threeten.bp.OffsetDateTime; import org.openapitools.client.model.OuterComposite; @@ -76,6 +77,18 @@ public class FakeApiTest { // TODO: test validations } + /** + * + * + * For this test, the body for this request much reference a schema named `File`. + */ + @Test + public void testBodyWithFileSchemaTest() { + FileSchemaTestClass fileSchemaTestClass = null; + // api.testBodyWithFileSchema(fileSchemaTestClass); + + // TODO: test validations + } /** * * @@ -145,6 +158,23 @@ public class FakeApiTest { // TODO: test validations } + /** + * Fake endpoint to test group parameters (optional) + * + * Fake endpoint to test group parameters (optional) + */ + @Test + public void testGroupParametersTest() { + Integer requiredStringGroup = null; + Boolean requiredBooleanGroup = null; + Long requiredInt64Group = null; + Integer stringGroup = null; + Boolean booleanGroup = null; + Long int64Group = null; + // api.testGroupParameters(requiredStringGroup, requiredBooleanGroup, requiredInt64Group, stringGroup, booleanGroup, int64Group); + + // TODO: test validations + } /** * test inline additionalProperties * diff --git a/samples/client/petstore/java/retrofit2-play26/docs/FakeApi.md b/samples/client/petstore/java/retrofit2-play26/docs/FakeApi.md index 3caa786e5ac..5335c1521aa 100644 --- a/samples/client/petstore/java/retrofit2-play26/docs/FakeApi.md +++ b/samples/client/petstore/java/retrofit2-play26/docs/FakeApi.md @@ -470,7 +470,7 @@ No authorization required # **testGroupParameters** -> testGroupParameters(stringGroup, booleanGroup, int64Group) +> testGroupParameters(requiredStringGroup, requiredBooleanGroup, requiredInt64Group, stringGroup, booleanGroup, int64Group) Fake endpoint to test group parameters (optional) @@ -484,11 +484,14 @@ Fake endpoint to test group parameters (optional) FakeApi apiInstance = new FakeApi(); +Integer requiredStringGroup = 56; // Integer | Required String in group parameters +Boolean requiredBooleanGroup = true; // Boolean | Required Boolean in group parameters +Long requiredInt64Group = 56L; // Long | Required Integer in group parameters Integer stringGroup = 56; // Integer | String in group parameters Boolean booleanGroup = true; // Boolean | Boolean in group parameters Long int64Group = 56L; // Long | Integer in group parameters try { - apiInstance.testGroupParameters(stringGroup, booleanGroup, int64Group); + apiInstance.testGroupParameters(requiredStringGroup, requiredBooleanGroup, requiredInt64Group, stringGroup, booleanGroup, int64Group); } catch (ApiException e) { System.err.println("Exception when calling FakeApi#testGroupParameters"); e.printStackTrace(); @@ -499,6 +502,9 @@ try { Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- + **requiredStringGroup** | **Integer**| Required String in group parameters | + **requiredBooleanGroup** | **Boolean**| Required Boolean in group parameters | + **requiredInt64Group** | **Long**| Required Integer in group parameters | **stringGroup** | **Integer**| String in group parameters | [optional] **booleanGroup** | **Boolean**| Boolean in group parameters | [optional] **int64Group** | **Long**| Integer in group parameters | [optional] diff --git a/samples/client/petstore/java/retrofit2-play26/src/main/java/org/openapitools/client/api/FakeApi.java b/samples/client/petstore/java/retrofit2-play26/src/main/java/org/openapitools/client/api/FakeApi.java index 3394d297167..c542ee4d79c 100644 --- a/samples/client/petstore/java/retrofit2-play26/src/main/java/org/openapitools/client/api/FakeApi.java +++ b/samples/client/petstore/java/retrofit2-play26/src/main/java/org/openapitools/client/api/FakeApi.java @@ -163,6 +163,9 @@ public interface FakeApi { /** * Fake endpoint to test group parameters (optional) * Fake endpoint to test group parameters (optional) + * @param requiredStringGroup Required String in group parameters (required) + * @param requiredBooleanGroup Required Boolean in group parameters (required) + * @param requiredInt64Group Required Integer in group parameters (required) * @param stringGroup String in group parameters (optional) * @param booleanGroup Boolean in group parameters (optional) * @param int64Group Integer in group parameters (optional) @@ -170,7 +173,7 @@ public interface FakeApi { */ @DELETE("fake") CompletionStage> testGroupParameters( - @retrofit2.http.Query("string_group") Integer stringGroup, @retrofit2.http.Header("boolean_group") Boolean booleanGroup, @retrofit2.http.Query("int64_group") Long int64Group + @retrofit2.http.Query("required_string_group") Integer requiredStringGroup, @retrofit2.http.Header("required_boolean_group") Boolean requiredBooleanGroup, @retrofit2.http.Query("required_int64_group") Long requiredInt64Group, @retrofit2.http.Query("string_group") Integer stringGroup, @retrofit2.http.Header("boolean_group") Boolean booleanGroup, @retrofit2.http.Query("int64_group") Long int64Group ); /** diff --git a/samples/client/petstore/java/retrofit2-play26/src/test/java/org/openapitools/client/api/FakeApiTest.java b/samples/client/petstore/java/retrofit2-play26/src/test/java/org/openapitools/client/api/FakeApiTest.java index 4889e92772c..aec2e41c34e 100644 --- a/samples/client/petstore/java/retrofit2-play26/src/test/java/org/openapitools/client/api/FakeApiTest.java +++ b/samples/client/petstore/java/retrofit2-play26/src/test/java/org/openapitools/client/api/FakeApiTest.java @@ -1,17 +1,19 @@ package org.openapitools.client.api; -import org.junit.Before; -import org.junit.Test; import org.openapitools.client.ApiClient; +import java.math.BigDecimal; import org.openapitools.client.model.Client; +import java.io.File; import org.openapitools.client.model.FileSchemaTestClass; -import org.openapitools.client.model.OuterComposite; -import org.openapitools.client.model.User; import org.threeten.bp.LocalDate; import org.threeten.bp.OffsetDateTime; +import org.openapitools.client.model.OuterComposite; +import org.openapitools.client.model.User; +import org.junit.Before; +import org.junit.Test; -import java.io.File; -import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import java.util.Map; @@ -28,7 +30,7 @@ public class FakeApiTest { } /** - * + * * * Test serialization of outer boolean types */ @@ -40,7 +42,7 @@ public class FakeApiTest { // TODO: test validations } /** - * + * * * Test serialization of object with outer number type */ @@ -52,7 +54,7 @@ public class FakeApiTest { // TODO: test validations } /** - * + * * * Test serialization of outer number types */ @@ -64,7 +66,7 @@ public class FakeApiTest { // TODO: test validations } /** - * + * * * Test serialization of outer string types */ @@ -76,7 +78,7 @@ public class FakeApiTest { // TODO: test validations } /** - * + * * * For this test, the body for this request much reference a schema named `File`. */ @@ -88,9 +90,9 @@ public class FakeApiTest { // TODO: test validations } /** + * * - * - * + * */ @Test public void testBodyWithQueryParamsTest() { @@ -113,9 +115,9 @@ public class FakeApiTest { // TODO: test validations } /** - * Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트 + * Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트 * - * Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트 + * Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트 */ @Test public void testEndpointParametersTest() { @@ -156,10 +158,27 @@ public class FakeApiTest { // TODO: test validations } + /** + * Fake endpoint to test group parameters (optional) + * + * Fake endpoint to test group parameters (optional) + */ + @Test + public void testGroupParametersTest() { + Integer requiredStringGroup = null; + Boolean requiredBooleanGroup = null; + Long requiredInt64Group = null; + Integer stringGroup = null; + Boolean booleanGroup = null; + Long int64Group = null; + // api.testGroupParameters(requiredStringGroup, requiredBooleanGroup, requiredInt64Group, stringGroup, booleanGroup, int64Group); + + // TODO: test validations + } /** * test inline additionalProperties * - * + * */ @Test public void testInlineAdditionalPropertiesTest() { @@ -171,7 +190,7 @@ public class FakeApiTest { /** * test json serialization of form data * - * + * */ @Test public void testJsonFormDataTest() { diff --git a/samples/client/petstore/java/retrofit2/docs/FakeApi.md b/samples/client/petstore/java/retrofit2/docs/FakeApi.md index 3caa786e5ac..5335c1521aa 100644 --- a/samples/client/petstore/java/retrofit2/docs/FakeApi.md +++ b/samples/client/petstore/java/retrofit2/docs/FakeApi.md @@ -470,7 +470,7 @@ No authorization required # **testGroupParameters** -> testGroupParameters(stringGroup, booleanGroup, int64Group) +> testGroupParameters(requiredStringGroup, requiredBooleanGroup, requiredInt64Group, stringGroup, booleanGroup, int64Group) Fake endpoint to test group parameters (optional) @@ -484,11 +484,14 @@ Fake endpoint to test group parameters (optional) FakeApi apiInstance = new FakeApi(); +Integer requiredStringGroup = 56; // Integer | Required String in group parameters +Boolean requiredBooleanGroup = true; // Boolean | Required Boolean in group parameters +Long requiredInt64Group = 56L; // Long | Required Integer in group parameters Integer stringGroup = 56; // Integer | String in group parameters Boolean booleanGroup = true; // Boolean | Boolean in group parameters Long int64Group = 56L; // Long | Integer in group parameters try { - apiInstance.testGroupParameters(stringGroup, booleanGroup, int64Group); + apiInstance.testGroupParameters(requiredStringGroup, requiredBooleanGroup, requiredInt64Group, stringGroup, booleanGroup, int64Group); } catch (ApiException e) { System.err.println("Exception when calling FakeApi#testGroupParameters"); e.printStackTrace(); @@ -499,6 +502,9 @@ try { Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- + **requiredStringGroup** | **Integer**| Required String in group parameters | + **requiredBooleanGroup** | **Boolean**| Required Boolean in group parameters | + **requiredInt64Group** | **Long**| Required Integer in group parameters | **stringGroup** | **Integer**| String in group parameters | [optional] **booleanGroup** | **Boolean**| Boolean in group parameters | [optional] **int64Group** | **Long**| Integer in group parameters | [optional] diff --git a/samples/client/petstore/java/retrofit2/src/main/java/org/openapitools/client/api/FakeApi.java b/samples/client/petstore/java/retrofit2/src/main/java/org/openapitools/client/api/FakeApi.java index 1f6a1f76981..42da2aed960 100644 --- a/samples/client/petstore/java/retrofit2/src/main/java/org/openapitools/client/api/FakeApi.java +++ b/samples/client/petstore/java/retrofit2/src/main/java/org/openapitools/client/api/FakeApi.java @@ -158,6 +158,9 @@ public interface FakeApi { /** * Fake endpoint to test group parameters (optional) * Fake endpoint to test group parameters (optional) + * @param requiredStringGroup Required String in group parameters (required) + * @param requiredBooleanGroup Required Boolean in group parameters (required) + * @param requiredInt64Group Required Integer in group parameters (required) * @param stringGroup String in group parameters (optional) * @param booleanGroup Boolean in group parameters (optional) * @param int64Group Integer in group parameters (optional) @@ -165,7 +168,7 @@ public interface FakeApi { */ @DELETE("fake") Call testGroupParameters( - @retrofit2.http.Query("string_group") Integer stringGroup, @retrofit2.http.Header("boolean_group") Boolean booleanGroup, @retrofit2.http.Query("int64_group") Long int64Group + @retrofit2.http.Query("required_string_group") Integer requiredStringGroup, @retrofit2.http.Header("required_boolean_group") Boolean requiredBooleanGroup, @retrofit2.http.Query("required_int64_group") Long requiredInt64Group, @retrofit2.http.Query("string_group") Integer stringGroup, @retrofit2.http.Header("boolean_group") Boolean booleanGroup, @retrofit2.http.Query("int64_group") Long int64Group ); /** diff --git a/samples/client/petstore/java/retrofit2/src/test/java/org/openapitools/client/api/FakeApiTest.java b/samples/client/petstore/java/retrofit2/src/test/java/org/openapitools/client/api/FakeApiTest.java index c7caf851a43..aec2e41c34e 100644 --- a/samples/client/petstore/java/retrofit2/src/test/java/org/openapitools/client/api/FakeApiTest.java +++ b/samples/client/petstore/java/retrofit2/src/test/java/org/openapitools/client/api/FakeApiTest.java @@ -4,6 +4,7 @@ import org.openapitools.client.ApiClient; import java.math.BigDecimal; import org.openapitools.client.model.Client; import java.io.File; +import org.openapitools.client.model.FileSchemaTestClass; import org.threeten.bp.LocalDate; import org.threeten.bp.OffsetDateTime; import org.openapitools.client.model.OuterComposite; @@ -76,6 +77,18 @@ public class FakeApiTest { // TODO: test validations } + /** + * + * + * For this test, the body for this request much reference a schema named `File`. + */ + @Test + public void testBodyWithFileSchemaTest() { + FileSchemaTestClass fileSchemaTestClass = null; + // api.testBodyWithFileSchema(fileSchemaTestClass); + + // TODO: test validations + } /** * * @@ -145,6 +158,23 @@ public class FakeApiTest { // TODO: test validations } + /** + * Fake endpoint to test group parameters (optional) + * + * Fake endpoint to test group parameters (optional) + */ + @Test + public void testGroupParametersTest() { + Integer requiredStringGroup = null; + Boolean requiredBooleanGroup = null; + Long requiredInt64Group = null; + Integer stringGroup = null; + Boolean booleanGroup = null; + Long int64Group = null; + // api.testGroupParameters(requiredStringGroup, requiredBooleanGroup, requiredInt64Group, stringGroup, booleanGroup, int64Group); + + // TODO: test validations + } /** * test inline additionalProperties * diff --git a/samples/client/petstore/java/retrofit2rx/docs/FakeApi.md b/samples/client/petstore/java/retrofit2rx/docs/FakeApi.md index 3caa786e5ac..5335c1521aa 100644 --- a/samples/client/petstore/java/retrofit2rx/docs/FakeApi.md +++ b/samples/client/petstore/java/retrofit2rx/docs/FakeApi.md @@ -470,7 +470,7 @@ No authorization required # **testGroupParameters** -> testGroupParameters(stringGroup, booleanGroup, int64Group) +> testGroupParameters(requiredStringGroup, requiredBooleanGroup, requiredInt64Group, stringGroup, booleanGroup, int64Group) Fake endpoint to test group parameters (optional) @@ -484,11 +484,14 @@ Fake endpoint to test group parameters (optional) FakeApi apiInstance = new FakeApi(); +Integer requiredStringGroup = 56; // Integer | Required String in group parameters +Boolean requiredBooleanGroup = true; // Boolean | Required Boolean in group parameters +Long requiredInt64Group = 56L; // Long | Required Integer in group parameters Integer stringGroup = 56; // Integer | String in group parameters Boolean booleanGroup = true; // Boolean | Boolean in group parameters Long int64Group = 56L; // Long | Integer in group parameters try { - apiInstance.testGroupParameters(stringGroup, booleanGroup, int64Group); + apiInstance.testGroupParameters(requiredStringGroup, requiredBooleanGroup, requiredInt64Group, stringGroup, booleanGroup, int64Group); } catch (ApiException e) { System.err.println("Exception when calling FakeApi#testGroupParameters"); e.printStackTrace(); @@ -499,6 +502,9 @@ try { Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- + **requiredStringGroup** | **Integer**| Required String in group parameters | + **requiredBooleanGroup** | **Boolean**| Required Boolean in group parameters | + **requiredInt64Group** | **Long**| Required Integer in group parameters | **stringGroup** | **Integer**| String in group parameters | [optional] **booleanGroup** | **Boolean**| Boolean in group parameters | [optional] **int64Group** | **Long**| Integer in group parameters | [optional] diff --git a/samples/client/petstore/java/retrofit2rx/src/main/java/org/openapitools/client/api/FakeApi.java b/samples/client/petstore/java/retrofit2rx/src/main/java/org/openapitools/client/api/FakeApi.java index 09f958ecd6a..1c1f58d8c15 100644 --- a/samples/client/petstore/java/retrofit2rx/src/main/java/org/openapitools/client/api/FakeApi.java +++ b/samples/client/petstore/java/retrofit2rx/src/main/java/org/openapitools/client/api/FakeApi.java @@ -158,6 +158,9 @@ public interface FakeApi { /** * Fake endpoint to test group parameters (optional) * Fake endpoint to test group parameters (optional) + * @param requiredStringGroup Required String in group parameters (required) + * @param requiredBooleanGroup Required Boolean in group parameters (required) + * @param requiredInt64Group Required Integer in group parameters (required) * @param stringGroup String in group parameters (optional) * @param booleanGroup Boolean in group parameters (optional) * @param int64Group Integer in group parameters (optional) @@ -165,7 +168,7 @@ public interface FakeApi { */ @DELETE("fake") Observable testGroupParameters( - @retrofit2.http.Query("string_group") Integer stringGroup, @retrofit2.http.Header("boolean_group") Boolean booleanGroup, @retrofit2.http.Query("int64_group") Long int64Group + @retrofit2.http.Query("required_string_group") Integer requiredStringGroup, @retrofit2.http.Header("required_boolean_group") Boolean requiredBooleanGroup, @retrofit2.http.Query("required_int64_group") Long requiredInt64Group, @retrofit2.http.Query("string_group") Integer stringGroup, @retrofit2.http.Header("boolean_group") Boolean booleanGroup, @retrofit2.http.Query("int64_group") Long int64Group ); /** diff --git a/samples/client/petstore/java/retrofit2rx/src/test/java/org/openapitools/client/api/FakeApiTest.java b/samples/client/petstore/java/retrofit2rx/src/test/java/org/openapitools/client/api/FakeApiTest.java index c7caf851a43..aec2e41c34e 100644 --- a/samples/client/petstore/java/retrofit2rx/src/test/java/org/openapitools/client/api/FakeApiTest.java +++ b/samples/client/petstore/java/retrofit2rx/src/test/java/org/openapitools/client/api/FakeApiTest.java @@ -4,6 +4,7 @@ import org.openapitools.client.ApiClient; import java.math.BigDecimal; import org.openapitools.client.model.Client; import java.io.File; +import org.openapitools.client.model.FileSchemaTestClass; import org.threeten.bp.LocalDate; import org.threeten.bp.OffsetDateTime; import org.openapitools.client.model.OuterComposite; @@ -76,6 +77,18 @@ public class FakeApiTest { // TODO: test validations } + /** + * + * + * For this test, the body for this request much reference a schema named `File`. + */ + @Test + public void testBodyWithFileSchemaTest() { + FileSchemaTestClass fileSchemaTestClass = null; + // api.testBodyWithFileSchema(fileSchemaTestClass); + + // TODO: test validations + } /** * * @@ -145,6 +158,23 @@ public class FakeApiTest { // TODO: test validations } + /** + * Fake endpoint to test group parameters (optional) + * + * Fake endpoint to test group parameters (optional) + */ + @Test + public void testGroupParametersTest() { + Integer requiredStringGroup = null; + Boolean requiredBooleanGroup = null; + Long requiredInt64Group = null; + Integer stringGroup = null; + Boolean booleanGroup = null; + Long int64Group = null; + // api.testGroupParameters(requiredStringGroup, requiredBooleanGroup, requiredInt64Group, stringGroup, booleanGroup, int64Group); + + // TODO: test validations + } /** * test inline additionalProperties * diff --git a/samples/client/petstore/java/retrofit2rx2/docs/FakeApi.md b/samples/client/petstore/java/retrofit2rx2/docs/FakeApi.md index 3caa786e5ac..5335c1521aa 100644 --- a/samples/client/petstore/java/retrofit2rx2/docs/FakeApi.md +++ b/samples/client/petstore/java/retrofit2rx2/docs/FakeApi.md @@ -470,7 +470,7 @@ No authorization required # **testGroupParameters** -> testGroupParameters(stringGroup, booleanGroup, int64Group) +> testGroupParameters(requiredStringGroup, requiredBooleanGroup, requiredInt64Group, stringGroup, booleanGroup, int64Group) Fake endpoint to test group parameters (optional) @@ -484,11 +484,14 @@ Fake endpoint to test group parameters (optional) FakeApi apiInstance = new FakeApi(); +Integer requiredStringGroup = 56; // Integer | Required String in group parameters +Boolean requiredBooleanGroup = true; // Boolean | Required Boolean in group parameters +Long requiredInt64Group = 56L; // Long | Required Integer in group parameters Integer stringGroup = 56; // Integer | String in group parameters Boolean booleanGroup = true; // Boolean | Boolean in group parameters Long int64Group = 56L; // Long | Integer in group parameters try { - apiInstance.testGroupParameters(stringGroup, booleanGroup, int64Group); + apiInstance.testGroupParameters(requiredStringGroup, requiredBooleanGroup, requiredInt64Group, stringGroup, booleanGroup, int64Group); } catch (ApiException e) { System.err.println("Exception when calling FakeApi#testGroupParameters"); e.printStackTrace(); @@ -499,6 +502,9 @@ try { Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- + **requiredStringGroup** | **Integer**| Required String in group parameters | + **requiredBooleanGroup** | **Boolean**| Required Boolean in group parameters | + **requiredInt64Group** | **Long**| Required Integer in group parameters | **stringGroup** | **Integer**| String in group parameters | [optional] **booleanGroup** | **Boolean**| Boolean in group parameters | [optional] **int64Group** | **Long**| Integer in group parameters | [optional] diff --git a/samples/client/petstore/java/retrofit2rx2/src/main/java/org/openapitools/client/api/FakeApi.java b/samples/client/petstore/java/retrofit2rx2/src/main/java/org/openapitools/client/api/FakeApi.java index dfdb1132524..01e20f57220 100644 --- a/samples/client/petstore/java/retrofit2rx2/src/main/java/org/openapitools/client/api/FakeApi.java +++ b/samples/client/petstore/java/retrofit2rx2/src/main/java/org/openapitools/client/api/FakeApi.java @@ -159,6 +159,9 @@ public interface FakeApi { /** * Fake endpoint to test group parameters (optional) * Fake endpoint to test group parameters (optional) + * @param requiredStringGroup Required String in group parameters (required) + * @param requiredBooleanGroup Required Boolean in group parameters (required) + * @param requiredInt64Group Required Integer in group parameters (required) * @param stringGroup String in group parameters (optional) * @param booleanGroup Boolean in group parameters (optional) * @param int64Group Integer in group parameters (optional) @@ -166,7 +169,7 @@ public interface FakeApi { */ @DELETE("fake") Completable testGroupParameters( - @retrofit2.http.Query("string_group") Integer stringGroup, @retrofit2.http.Header("boolean_group") Boolean booleanGroup, @retrofit2.http.Query("int64_group") Long int64Group + @retrofit2.http.Query("required_string_group") Integer requiredStringGroup, @retrofit2.http.Header("required_boolean_group") Boolean requiredBooleanGroup, @retrofit2.http.Query("required_int64_group") Long requiredInt64Group, @retrofit2.http.Query("string_group") Integer stringGroup, @retrofit2.http.Header("boolean_group") Boolean booleanGroup, @retrofit2.http.Query("int64_group") Long int64Group ); /** diff --git a/samples/client/petstore/java/retrofit2rx2/src/test/java/org/openapitools/client/api/FakeApiTest.java b/samples/client/petstore/java/retrofit2rx2/src/test/java/org/openapitools/client/api/FakeApiTest.java index c7caf851a43..aec2e41c34e 100644 --- a/samples/client/petstore/java/retrofit2rx2/src/test/java/org/openapitools/client/api/FakeApiTest.java +++ b/samples/client/petstore/java/retrofit2rx2/src/test/java/org/openapitools/client/api/FakeApiTest.java @@ -4,6 +4,7 @@ import org.openapitools.client.ApiClient; import java.math.BigDecimal; import org.openapitools.client.model.Client; import java.io.File; +import org.openapitools.client.model.FileSchemaTestClass; import org.threeten.bp.LocalDate; import org.threeten.bp.OffsetDateTime; import org.openapitools.client.model.OuterComposite; @@ -76,6 +77,18 @@ public class FakeApiTest { // TODO: test validations } + /** + * + * + * For this test, the body for this request much reference a schema named `File`. + */ + @Test + public void testBodyWithFileSchemaTest() { + FileSchemaTestClass fileSchemaTestClass = null; + // api.testBodyWithFileSchema(fileSchemaTestClass); + + // TODO: test validations + } /** * * @@ -145,6 +158,23 @@ public class FakeApiTest { // TODO: test validations } + /** + * Fake endpoint to test group parameters (optional) + * + * Fake endpoint to test group parameters (optional) + */ + @Test + public void testGroupParametersTest() { + Integer requiredStringGroup = null; + Boolean requiredBooleanGroup = null; + Long requiredInt64Group = null; + Integer stringGroup = null; + Boolean booleanGroup = null; + Long int64Group = null; + // api.testGroupParameters(requiredStringGroup, requiredBooleanGroup, requiredInt64Group, stringGroup, booleanGroup, int64Group); + + // TODO: test validations + } /** * test inline additionalProperties * diff --git a/samples/client/petstore/java/vertx/docs/FakeApi.md b/samples/client/petstore/java/vertx/docs/FakeApi.md index 8ea6866dc51..34bb5172b87 100644 --- a/samples/client/petstore/java/vertx/docs/FakeApi.md +++ b/samples/client/petstore/java/vertx/docs/FakeApi.md @@ -470,7 +470,7 @@ No authorization required # **testGroupParameters** -> testGroupParameters(stringGroup, booleanGroup, int64Group) +> testGroupParameters(requiredStringGroup, requiredBooleanGroup, requiredInt64Group, stringGroup, booleanGroup, int64Group) Fake endpoint to test group parameters (optional) @@ -484,11 +484,14 @@ Fake endpoint to test group parameters (optional) FakeApi apiInstance = new FakeApi(); +Integer requiredStringGroup = 56; // Integer | Required String in group parameters +Boolean requiredBooleanGroup = true; // Boolean | Required Boolean in group parameters +Long requiredInt64Group = 56L; // Long | Required Integer in group parameters Integer stringGroup = 56; // Integer | String in group parameters Boolean booleanGroup = true; // Boolean | Boolean in group parameters Long int64Group = 56L; // Long | Integer in group parameters try { - apiInstance.testGroupParameters(stringGroup, booleanGroup, int64Group); + apiInstance.testGroupParameters(requiredStringGroup, requiredBooleanGroup, requiredInt64Group, stringGroup, booleanGroup, int64Group); } catch (ApiException e) { System.err.println("Exception when calling FakeApi#testGroupParameters"); e.printStackTrace(); @@ -499,6 +502,9 @@ try { Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- + **requiredStringGroup** | **Integer**| Required String in group parameters | + **requiredBooleanGroup** | **Boolean**| Required Boolean in group parameters | + **requiredInt64Group** | **Long**| Required Integer in group parameters | **stringGroup** | **Integer**| String in group parameters | [optional] **booleanGroup** | **Boolean**| Boolean in group parameters | [optional] **int64Group** | **Long**| Integer in group parameters | [optional] diff --git a/samples/client/petstore/java/vertx/src/main/java/org/openapitools/client/api/FakeApi.java b/samples/client/petstore/java/vertx/src/main/java/org/openapitools/client/api/FakeApi.java index e95457a4270..d4349a5564e 100644 --- a/samples/client/petstore/java/vertx/src/main/java/org/openapitools/client/api/FakeApi.java +++ b/samples/client/petstore/java/vertx/src/main/java/org/openapitools/client/api/FakeApi.java @@ -34,7 +34,7 @@ public interface FakeApi { void testEnumParameters(List enumHeaderStringArray, String enumHeaderString, List enumQueryStringArray, String enumQueryString, Integer enumQueryInteger, Double enumQueryDouble, List enumFormStringArray, String enumFormString, Handler> handler); - void testGroupParameters(Integer stringGroup, Boolean booleanGroup, Long int64Group, Handler> handler); + void testGroupParameters(Integer requiredStringGroup, Boolean requiredBooleanGroup, Long requiredInt64Group, Integer stringGroup, Boolean booleanGroup, Long int64Group, Handler> handler); void testInlineAdditionalProperties(Map requestBody, Handler> handler); diff --git a/samples/client/petstore/java/vertx/src/main/java/org/openapitools/client/api/FakeApiImpl.java b/samples/client/petstore/java/vertx/src/main/java/org/openapitools/client/api/FakeApiImpl.java index fbc675cc003..39b3124f3a0 100644 --- a/samples/client/petstore/java/vertx/src/main/java/org/openapitools/client/api/FakeApiImpl.java +++ b/samples/client/petstore/java/vertx/src/main/java/org/openapitools/client/api/FakeApiImpl.java @@ -393,25 +393,50 @@ if (enumFormString != null) localVarFormParams.put("enum_form_string", enumFormS /** * Fake endpoint to test group parameters (optional) * Fake endpoint to test group parameters (optional) + * @param requiredStringGroup Required String in group parameters (required) + * @param requiredBooleanGroup Required Boolean in group parameters (required) + * @param requiredInt64Group Required Integer in group parameters (required) * @param stringGroup String in group parameters (optional) * @param booleanGroup Boolean in group parameters (optional) * @param int64Group Integer in group parameters (optional) * @param resultHandler Asynchronous result handler */ - public void testGroupParameters(Integer stringGroup, Boolean booleanGroup, Long int64Group, Handler> resultHandler) { + public void testGroupParameters(Integer requiredStringGroup, Boolean requiredBooleanGroup, Long requiredInt64Group, Integer stringGroup, Boolean booleanGroup, Long int64Group, Handler> resultHandler) { Object localVarBody = null; + // verify the required parameter 'requiredStringGroup' is set + if (requiredStringGroup == null) { + resultHandler.handle(ApiException.fail(400, "Missing the required parameter 'requiredStringGroup' when calling testGroupParameters")); + return; + } + + // verify the required parameter 'requiredBooleanGroup' is set + if (requiredBooleanGroup == null) { + resultHandler.handle(ApiException.fail(400, "Missing the required parameter 'requiredBooleanGroup' when calling testGroupParameters")); + return; + } + + // verify the required parameter 'requiredInt64Group' is set + if (requiredInt64Group == null) { + resultHandler.handle(ApiException.fail(400, "Missing the required parameter 'requiredInt64Group' when calling testGroupParameters")); + return; + } + // create path and map variables String localVarPath = "/fake"; // query params List localVarQueryParams = new ArrayList<>(); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "required_string_group", requiredStringGroup)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "required_int64_group", requiredInt64Group)); localVarQueryParams.addAll(apiClient.parameterToPairs("", "string_group", stringGroup)); localVarQueryParams.addAll(apiClient.parameterToPairs("", "int64_group", int64Group)); // header params MultiMap localVarHeaderParams = MultiMap.caseInsensitiveMultiMap(); - if (booleanGroup != null) + if (requiredBooleanGroup != null) + localVarHeaderParams.add("required_boolean_group", apiClient.parameterToString(requiredBooleanGroup)); +if (booleanGroup != null) localVarHeaderParams.add("boolean_group", apiClient.parameterToString(booleanGroup)); // form params diff --git a/samples/client/petstore/java/vertx/src/main/java/org/openapitools/client/api/rxjava/FakeApi.java b/samples/client/petstore/java/vertx/src/main/java/org/openapitools/client/api/rxjava/FakeApi.java index 243a8fc4335..fce29914f89 100644 --- a/samples/client/petstore/java/vertx/src/main/java/org/openapitools/client/api/rxjava/FakeApi.java +++ b/samples/client/petstore/java/vertx/src/main/java/org/openapitools/client/api/rxjava/FakeApi.java @@ -262,26 +262,32 @@ public class FakeApi { /** * Fake endpoint to test group parameters (optional) * Fake endpoint to test group parameters (optional) + * @param requiredStringGroup Required String in group parameters (required) + * @param requiredBooleanGroup Required Boolean in group parameters (required) + * @param requiredInt64Group Required Integer in group parameters (required) * @param stringGroup String in group parameters (optional) * @param booleanGroup Boolean in group parameters (optional) * @param int64Group Integer in group parameters (optional) * @param resultHandler Asynchronous result handler */ - public void testGroupParameters(Integer stringGroup, Boolean booleanGroup, Long int64Group, Handler> resultHandler) { - delegate.testGroupParameters(stringGroup, booleanGroup, int64Group, resultHandler); + public void testGroupParameters(Integer requiredStringGroup, Boolean requiredBooleanGroup, Long requiredInt64Group, Integer stringGroup, Boolean booleanGroup, Long int64Group, Handler> resultHandler) { + delegate.testGroupParameters(requiredStringGroup, requiredBooleanGroup, requiredInt64Group, stringGroup, booleanGroup, int64Group, resultHandler); } /** * Fake endpoint to test group parameters (optional) * Fake endpoint to test group parameters (optional) + * @param requiredStringGroup Required String in group parameters (required) + * @param requiredBooleanGroup Required Boolean in group parameters (required) + * @param requiredInt64Group Required Integer in group parameters (required) * @param stringGroup String in group parameters (optional) * @param booleanGroup Boolean in group parameters (optional) * @param int64Group Integer in group parameters (optional) * @return Asynchronous result handler (RxJava Single) */ - public Single rxTestGroupParameters(Integer stringGroup, Boolean booleanGroup, Long int64Group) { + public Single rxTestGroupParameters(Integer requiredStringGroup, Boolean requiredBooleanGroup, Long requiredInt64Group, Integer stringGroup, Boolean booleanGroup, Long int64Group) { return Single.create(new io.vertx.rx.java.SingleOnSubscribeAdapter<>(fut -> { - delegate.testGroupParameters(stringGroup, booleanGroup, int64Group, fut); + delegate.testGroupParameters(requiredStringGroup, requiredBooleanGroup, requiredInt64Group, stringGroup, booleanGroup, int64Group, fut); })); } /** diff --git a/samples/client/petstore/java/vertx/src/test/java/org/openapitools/client/api/FakeApiTest.java b/samples/client/petstore/java/vertx/src/test/java/org/openapitools/client/api/FakeApiTest.java index 4edda7faf91..611a4cf6149 100644 --- a/samples/client/petstore/java/vertx/src/test/java/org/openapitools/client/api/FakeApiTest.java +++ b/samples/client/petstore/java/vertx/src/test/java/org/openapitools/client/api/FakeApiTest.java @@ -15,6 +15,7 @@ package org.openapitools.client.api; import io.vertx.core.file.AsyncFile; import java.math.BigDecimal; import org.openapitools.client.model.Client; +import org.openapitools.client.model.FileSchemaTestClass; import org.threeten.bp.LocalDate; import org.threeten.bp.OffsetDateTime; import org.openapitools.client.model.OuterComposite; @@ -127,6 +128,22 @@ public class FakeApiTest { }); } + /** + * + * For this test, the body for this request much reference a schema named `File`. + * + * @param context Vertx test context for doing assertions + */ + @Test + public void testBodyWithFileSchemaTest(TestContext context) { + Async async = context.async(); + FileSchemaTestClass fileSchemaTestClass = null; + api.testBodyWithFileSchema(fileSchemaTestClass, result -> { + // TODO: test validations + async.complete(); + }); + } + /** * * @@ -212,6 +229,27 @@ public class FakeApiTest { }); } + /** + * Fake endpoint to test group parameters (optional) + * Fake endpoint to test group parameters (optional) + * + * @param context Vertx test context for doing assertions + */ + @Test + public void testGroupParametersTest(TestContext context) { + Async async = context.async(); + Integer requiredStringGroup = null; + Boolean requiredBooleanGroup = null; + Long requiredInt64Group = null; + Integer stringGroup = null; + Boolean booleanGroup = null; + Long int64Group = null; + api.testGroupParameters(requiredStringGroup, requiredBooleanGroup, requiredInt64Group, stringGroup, booleanGroup, int64Group, result -> { + // TODO: test validations + async.complete(); + }); + } + /** * test inline additionalProperties * diff --git a/samples/client/petstore/java/webclient/docs/FakeApi.md b/samples/client/petstore/java/webclient/docs/FakeApi.md index a29ac9987a3..62046473c1f 100644 --- a/samples/client/petstore/java/webclient/docs/FakeApi.md +++ b/samples/client/petstore/java/webclient/docs/FakeApi.md @@ -470,7 +470,7 @@ No authorization required # **testGroupParameters** -> testGroupParameters(stringGroup, booleanGroup, int64Group) +> testGroupParameters(requiredStringGroup, requiredBooleanGroup, requiredInt64Group, stringGroup, booleanGroup, int64Group) Fake endpoint to test group parameters (optional) @@ -484,11 +484,14 @@ Fake endpoint to test group parameters (optional) FakeApi apiInstance = new FakeApi(); +Integer requiredStringGroup = 56; // Integer | Required String in group parameters +Boolean requiredBooleanGroup = true; // Boolean | Required Boolean in group parameters +Long requiredInt64Group = 56L; // Long | Required Integer in group parameters Integer stringGroup = 56; // Integer | String in group parameters Boolean booleanGroup = true; // Boolean | Boolean in group parameters Long int64Group = 56L; // Long | Integer in group parameters try { - apiInstance.testGroupParameters(stringGroup, booleanGroup, int64Group); + apiInstance.testGroupParameters(requiredStringGroup, requiredBooleanGroup, requiredInt64Group, stringGroup, booleanGroup, int64Group); } catch (ApiException e) { System.err.println("Exception when calling FakeApi#testGroupParameters"); e.printStackTrace(); @@ -499,6 +502,9 @@ try { Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- + **requiredStringGroup** | **Integer**| Required String in group parameters | + **requiredBooleanGroup** | **Boolean**| Required Boolean in group parameters | + **requiredInt64Group** | **Long**| Required Integer in group parameters | **stringGroup** | **Integer**| String in group parameters | [optional] **booleanGroup** | **Boolean**| Boolean in group parameters | [optional] **int64Group** | **Long**| Integer in group parameters | [optional] diff --git a/samples/client/petstore/java/webclient/src/main/java/org/openapitools/client/api/FakeApi.java b/samples/client/petstore/java/webclient/src/main/java/org/openapitools/client/api/FakeApi.java index 091f59ea27c..a1356800406 100644 --- a/samples/client/petstore/java/webclient/src/main/java/org/openapitools/client/api/FakeApi.java +++ b/samples/client/petstore/java/webclient/src/main/java/org/openapitools/client/api/FakeApi.java @@ -424,23 +424,45 @@ public class FakeApi { * Fake endpoint to test group parameters (optional) * Fake endpoint to test group parameters (optional) *

400 - Someting wrong + * @param requiredStringGroup Required String in group parameters + * @param requiredBooleanGroup Required Boolean in group parameters + * @param requiredInt64Group Required Integer in group parameters * @param stringGroup String in group parameters * @param booleanGroup Boolean in group parameters * @param int64Group Integer in group parameters * @throws RestClientException if an error occurs while attempting to invoke the API */ - public Mono testGroupParameters(Integer stringGroup, Boolean booleanGroup, Long int64Group) throws RestClientException { + public Mono testGroupParameters(Integer requiredStringGroup, Boolean requiredBooleanGroup, Long requiredInt64Group, Integer stringGroup, Boolean booleanGroup, Long int64Group) throws RestClientException { Object postBody = null; + // verify the required parameter 'requiredStringGroup' is set + if (requiredStringGroup == null) { + throw new HttpClientErrorException(HttpStatus.BAD_REQUEST, "Missing the required parameter 'requiredStringGroup' when calling testGroupParameters"); + } + + // verify the required parameter 'requiredBooleanGroup' is set + if (requiredBooleanGroup == null) { + throw new HttpClientErrorException(HttpStatus.BAD_REQUEST, "Missing the required parameter 'requiredBooleanGroup' when calling testGroupParameters"); + } + + // verify the required parameter 'requiredInt64Group' is set + if (requiredInt64Group == null) { + throw new HttpClientErrorException(HttpStatus.BAD_REQUEST, "Missing the required parameter 'requiredInt64Group' when calling testGroupParameters"); + } + String path = UriComponentsBuilder.fromPath("/fake").build().toUriString(); final MultiValueMap queryParams = new LinkedMultiValueMap(); final HttpHeaders headerParams = new HttpHeaders(); final MultiValueMap formParams = new LinkedMultiValueMap(); + queryParams.putAll(apiClient.parameterToMultiValueMap(null, "required_string_group", requiredStringGroup)); + queryParams.putAll(apiClient.parameterToMultiValueMap(null, "required_int64_group", requiredInt64Group)); queryParams.putAll(apiClient.parameterToMultiValueMap(null, "string_group", stringGroup)); queryParams.putAll(apiClient.parameterToMultiValueMap(null, "int64_group", int64Group)); + if (requiredBooleanGroup != null) + headerParams.add("required_boolean_group", apiClient.parameterToString(requiredBooleanGroup)); if (booleanGroup != null) headerParams.add("boolean_group", apiClient.parameterToString(booleanGroup)); diff --git a/samples/client/petstore/java/webclient/src/test/java/org/openapitools/client/api/FakeApiTest.java b/samples/client/petstore/java/webclient/src/test/java/org/openapitools/client/api/FakeApiTest.java index 9c1ca7fdc04..aeb8379aee7 100644 --- a/samples/client/petstore/java/webclient/src/test/java/org/openapitools/client/api/FakeApiTest.java +++ b/samples/client/petstore/java/webclient/src/test/java/org/openapitools/client/api/FakeApiTest.java @@ -176,6 +176,24 @@ public class FakeApiTest { // TODO: test validations } + /** + * Fake endpoint to test group parameters (optional) + * + * Fake endpoint to test group parameters (optional) + */ + @Test + public void testGroupParametersTest() { + Integer requiredStringGroup = null; + Boolean requiredBooleanGroup = null; + Long requiredInt64Group = null; + Integer stringGroup = null; + Boolean booleanGroup = null; + Long int64Group = null; + api.testGroupParameters(requiredStringGroup, requiredBooleanGroup, requiredInt64Group, stringGroup, booleanGroup, int64Group).block(); + + // TODO: test validations + } + /** * test inline additionalProperties * diff --git a/samples/client/petstore/php/OpenAPIClient-php/docs/Api/FakeApi.md b/samples/client/petstore/php/OpenAPIClient-php/docs/Api/FakeApi.md index c7c1a117fd8..c1ea9868ecc 100644 --- a/samples/client/petstore/php/OpenAPIClient-php/docs/Api/FakeApi.md +++ b/samples/client/petstore/php/OpenAPIClient-php/docs/Api/FakeApi.md @@ -502,7 +502,7 @@ No authorization required [[Back to top]](#) [[Back to API list]](../../README.md#documentation-for-api-endpoints) [[Back to Model list]](../../README.md#documentation-for-models) [[Back to README]](../../README.md) # **testGroupParameters** -> testGroupParameters($string_group, $boolean_group, $int64_group) +> testGroupParameters($required_string_group, $required_boolean_group, $required_int64_group, $string_group, $boolean_group, $int64_group) Fake endpoint to test group parameters (optional) @@ -518,6 +518,9 @@ $apiInstance = new OpenAPI\Client\Api\FakeApi( // This is optional, `GuzzleHttp\Client` will be used as default. new GuzzleHttp\Client() ); +$associate_array['required_string_group'] = 56; // int | Required String in group parameters +$associate_array['required_boolean_group'] = True; // bool | Required Boolean in group parameters +$associate_array['required_int64_group'] = 56; // int | Required Integer in group parameters $associate_array['string_group'] = 56; // int | String in group parameters $associate_array['boolean_group'] = True; // bool | Boolean in group parameters $associate_array['int64_group'] = 56; // int | Integer in group parameters @@ -536,6 +539,9 @@ Note: the input parameter is an associative array with the keys listed as the pa Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- + **required_string_group** | **int**| Required String in group parameters | + **required_boolean_group** | **bool**| Required Boolean in group parameters | + **required_int64_group** | **int**| Required Integer in group parameters | **string_group** | **int**| String in group parameters | [optional] **boolean_group** | **bool**| Boolean in group parameters | [optional] **int64_group** | **int**| Integer in group parameters | [optional] diff --git a/samples/client/petstore/php/OpenAPIClient-php/lib/Api/FakeApi.php b/samples/client/petstore/php/OpenAPIClient-php/lib/Api/FakeApi.php index 11d71a69378..f3f1404bd2d 100644 --- a/samples/client/petstore/php/OpenAPIClient-php/lib/Api/FakeApi.php +++ b/samples/client/petstore/php/OpenAPIClient-php/lib/Api/FakeApi.php @@ -2524,6 +2524,9 @@ class FakeApi * * Note: the input parameter is an associative array with the keys listed as the parameter name below * + * @param int $required_string_group Required String in group parameters (required) + * @param bool $required_boolean_group Required Boolean in group parameters (required) + * @param int $required_int64_group Required Integer in group parameters (required) * @param int $string_group String in group parameters (optional) * @param bool $boolean_group Boolean in group parameters (optional) * @param int $int64_group Integer in group parameters (optional) @@ -2544,6 +2547,9 @@ class FakeApi * * Note: the inpput parameter is an associative array with the keys listed as the parameter name below * + * @param int $required_string_group Required String in group parameters (required) + * @param bool $required_boolean_group Required Boolean in group parameters (required) + * @param int $required_int64_group Required Integer in group parameters (required) * @param int $string_group String in group parameters (optional) * @param bool $boolean_group Boolean in group parameters (optional) * @param int $int64_group Integer in group parameters (optional) @@ -2554,7 +2560,7 @@ class FakeApi */ public function testGroupParametersWithHttpInfo($associative_array) { - $request = $this->testGroupParametersRequest($associative_array['string_group'], $associative_array['boolean_group'], $associative_array['int64_group']); + $request = $this->testGroupParametersRequest($associative_array['required_string_group'], $associative_array['required_boolean_group'], $associative_array['required_int64_group'], $associative_array['string_group'], $associative_array['boolean_group'], $associative_array['int64_group']); try { $options = $this->createHttpClientOption(); @@ -2600,6 +2606,9 @@ class FakeApi * * Note: the inpput parameter is an associative array with the keys listed as the parameter name below * + * @param int $required_string_group Required String in group parameters (required) + * @param bool $required_boolean_group Required Boolean in group parameters (required) + * @param int $required_int64_group Required Integer in group parameters (required) * @param int $string_group String in group parameters (optional) * @param bool $boolean_group Boolean in group parameters (optional) * @param int $int64_group Integer in group parameters (optional) @@ -2624,6 +2633,9 @@ class FakeApi * * Note: the inpput parameter is an associative array with the keys listed as the parameter name below * + * @param int $required_string_group Required String in group parameters (required) + * @param bool $required_boolean_group Required Boolean in group parameters (required) + * @param int $required_int64_group Required Integer in group parameters (required) * @param int $string_group String in group parameters (optional) * @param bool $boolean_group Boolean in group parameters (optional) * @param int $int64_group Integer in group parameters (optional) @@ -2664,6 +2676,9 @@ class FakeApi * * Note: the input parameter is an associative array with the keys listed as the parameter name below * + * @param int $required_string_group Required String in group parameters (required) + * @param bool $required_boolean_group Required Boolean in group parameters (required) + * @param int $required_int64_group Required Integer in group parameters (required) * @param int $string_group String in group parameters (optional) * @param bool $boolean_group Boolean in group parameters (optional) * @param int $int64_group Integer in group parameters (optional) @@ -2674,10 +2689,31 @@ class FakeApi protected function testGroupParametersRequest($associative_array) { // unbox the parameters from the associative array + $required_string_group = array_key_exists('required_string_group', $associative_array) ? $associative_array['required_string_group'] : null; + $required_boolean_group = array_key_exists('required_boolean_group', $associative_array) ? $associative_array['required_boolean_group'] : null; + $required_int64_group = array_key_exists('required_int64_group', $associative_array) ? $associative_array['required_int64_group'] : null; $string_group = array_key_exists('string_group', $associative_array) ? $associative_array['string_group'] : null; $boolean_group = array_key_exists('boolean_group', $associative_array) ? $associative_array['boolean_group'] : null; $int64_group = array_key_exists('int64_group', $associative_array) ? $associative_array['int64_group'] : null; + // verify the required parameter 'required_string_group' is set + if ($required_string_group === null || (is_array($required_string_group) && count($required_string_group) === 0)) { + throw new \InvalidArgumentException( + 'Missing the required parameter $required_string_group when calling testGroupParameters' + ); + } + // verify the required parameter 'required_boolean_group' is set + if ($required_boolean_group === null || (is_array($required_boolean_group) && count($required_boolean_group) === 0)) { + throw new \InvalidArgumentException( + 'Missing the required parameter $required_boolean_group when calling testGroupParameters' + ); + } + // verify the required parameter 'required_int64_group' is set + if ($required_int64_group === null || (is_array($required_int64_group) && count($required_int64_group) === 0)) { + throw new \InvalidArgumentException( + 'Missing the required parameter $required_int64_group when calling testGroupParameters' + ); + } $resourcePath = '/fake'; $formParams = []; @@ -2686,6 +2722,14 @@ class FakeApi $httpBody = ''; $multipart = false; + // query params + if ($required_string_group !== null) { + $queryParams['required_string_group'] = ObjectSerializer::toQueryValue($required_string_group); + } + // query params + if ($required_int64_group !== null) { + $queryParams['required_int64_group'] = ObjectSerializer::toQueryValue($required_int64_group); + } // query params if ($string_group !== null) { $queryParams['string_group'] = ObjectSerializer::toQueryValue($string_group); @@ -2695,6 +2739,10 @@ class FakeApi $queryParams['int64_group'] = ObjectSerializer::toQueryValue($int64_group); } // header params + if ($required_boolean_group !== null) { + $headerParams['required_boolean_group'] = ObjectSerializer::toHeaderValue($required_boolean_group); + } + // header params if ($boolean_group !== null) { $headerParams['boolean_group'] = ObjectSerializer::toHeaderValue($boolean_group); } diff --git a/samples/client/petstore/ruby/docs/FakeApi.md b/samples/client/petstore/ruby/docs/FakeApi.md index 59edb6114f8..3a26c4926c1 100644 --- a/samples/client/petstore/ruby/docs/FakeApi.md +++ b/samples/client/petstore/ruby/docs/FakeApi.md @@ -472,7 +472,7 @@ No authorization required # **test_group_parameters** -> test_group_parameters(opts) +> test_group_parameters(required_string_group, required_boolean_group, required_int64_group, opts) Fake endpoint to test group parameters (optional) @@ -484,6 +484,9 @@ Fake endpoint to test group parameters (optional) require 'petstore' api_instance = Petstore::FakeApi.new +required_string_group = 56 # Integer | Required String in group parameters +required_boolean_group = true # BOOLEAN | Required Boolean in group parameters +required_int64_group = 56 # Integer | Required Integer in group parameters opts = { string_group: 56, # Integer | String in group parameters boolean_group: true, # BOOLEAN | Boolean in group parameters @@ -492,7 +495,7 @@ opts = { begin #Fake endpoint to test group parameters (optional) - api_instance.test_group_parameters(opts) + api_instance.test_group_parameters(required_string_group, required_boolean_group, required_int64_group, opts) rescue Petstore::ApiError => e puts "Exception when calling FakeApi->test_group_parameters: #{e}" end @@ -502,6 +505,9 @@ end Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- + **required_string_group** | **Integer**| Required String in group parameters | + **required_boolean_group** | **BOOLEAN**| Required Boolean in group parameters | + **required_int64_group** | **Integer**| Required Integer in group parameters | **string_group** | **Integer**| String in group parameters | [optional] **boolean_group** | **BOOLEAN**| Boolean in group parameters | [optional] **int64_group** | **Integer**| Integer in group parameters | [optional] diff --git a/samples/client/petstore/ruby/lib/petstore/api/fake_api.rb b/samples/client/petstore/ruby/lib/petstore/api/fake_api.rb index 05843a31952..dd13c6540fe 100644 --- a/samples/client/petstore/ruby/lib/petstore/api/fake_api.rb +++ b/samples/client/petstore/ruby/lib/petstore/api/fake_api.rb @@ -627,37 +627,58 @@ module Petstore # Fake endpoint to test group parameters (optional) # Fake endpoint to test group parameters (optional) + # @param required_string_group Required String in group parameters + # @param required_boolean_group Required Boolean in group parameters + # @param required_int64_group Required Integer in group parameters # @param [Hash] opts the optional parameters # @option opts [Integer] :string_group String in group parameters # @option opts [BOOLEAN] :boolean_group Boolean in group parameters # @option opts [Integer] :int64_group Integer in group parameters # @return [nil] - def test_group_parameters(opts = {}) - test_group_parameters_with_http_info(opts) + def test_group_parameters(required_string_group, required_boolean_group, required_int64_group, opts = {}) + test_group_parameters_with_http_info(required_string_group, required_boolean_group, required_int64_group, opts) nil end # Fake endpoint to test group parameters (optional) # Fake endpoint to test group parameters (optional) + # @param required_string_group Required String in group parameters + # @param required_boolean_group Required Boolean in group parameters + # @param required_int64_group Required Integer in group parameters # @param [Hash] opts the optional parameters # @option opts [Integer] :string_group String in group parameters # @option opts [BOOLEAN] :boolean_group Boolean in group parameters # @option opts [Integer] :int64_group Integer in group parameters # @return [Array<(nil, Fixnum, Hash)>] nil, response status code and response headers - def test_group_parameters_with_http_info(opts = {}) + def test_group_parameters_with_http_info(required_string_group, required_boolean_group, required_int64_group, opts = {}) if @api_client.config.debugging @api_client.config.logger.debug 'Calling API: FakeApi.test_group_parameters ...' end + # verify the required parameter 'required_string_group' is set + if @api_client.config.client_side_validation && required_string_group.nil? + fail ArgumentError, "Missing the required parameter 'required_string_group' when calling FakeApi.test_group_parameters" + end + # verify the required parameter 'required_boolean_group' is set + if @api_client.config.client_side_validation && required_boolean_group.nil? + fail ArgumentError, "Missing the required parameter 'required_boolean_group' when calling FakeApi.test_group_parameters" + end + # verify the required parameter 'required_int64_group' is set + if @api_client.config.client_side_validation && required_int64_group.nil? + fail ArgumentError, "Missing the required parameter 'required_int64_group' when calling FakeApi.test_group_parameters" + end # resource path local_var_path = '/fake' # query parameters query_params = {} + query_params[:'required_string_group'] = required_string_group + query_params[:'required_int64_group'] = required_int64_group query_params[:'string_group'] = opts[:'string_group'] if !opts[:'string_group'].nil? query_params[:'int64_group'] = opts[:'int64_group'] if !opts[:'int64_group'].nil? # header parameters header_params = {} + header_params[:'required_boolean_group'] = required_boolean_group header_params[:'boolean_group'] = opts[:'boolean_group'] if !opts[:'boolean_group'].nil? # form parameters diff --git a/samples/openapi3/client/petstore/php/OpenAPIClient-php/docs/Api/FakeApi.md b/samples/openapi3/client/petstore/php/OpenAPIClient-php/docs/Api/FakeApi.md index e3d7f5e2051..d428bf33f0b 100644 --- a/samples/openapi3/client/petstore/php/OpenAPIClient-php/docs/Api/FakeApi.md +++ b/samples/openapi3/client/petstore/php/OpenAPIClient-php/docs/Api/FakeApi.md @@ -502,7 +502,7 @@ No authorization required [[Back to top]](#) [[Back to API list]](../../README.md#documentation-for-api-endpoints) [[Back to Model list]](../../README.md#documentation-for-models) [[Back to README]](../../README.md) # **testGroupParameters** -> testGroupParameters($string_group, $boolean_group, $int64_group) +> testGroupParameters($required_string_group, $required_boolean_group, $required_int64_group, $string_group, $boolean_group, $int64_group) Fake endpoint to test group parameters (optional) @@ -518,6 +518,9 @@ $apiInstance = new OpenAPI\Client\Api\FakeApi( // This is optional, `GuzzleHttp\Client` will be used as default. new GuzzleHttp\Client() ); +$associate_array['required_string_group'] = 56; // int | Required String in group parameters +$associate_array['required_boolean_group'] = True; // bool | Required Boolean in group parameters +$associate_array['required_int64_group'] = 56; // int | Required Integer in group parameters $associate_array['string_group'] = 56; // int | String in group parameters $associate_array['boolean_group'] = True; // bool | Boolean in group parameters $associate_array['int64_group'] = 56; // int | Integer in group parameters @@ -536,6 +539,9 @@ Note: the input parameter is an associative array with the keys listed as the pa Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- + **required_string_group** | **int**| Required String in group parameters | + **required_boolean_group** | **bool**| Required Boolean in group parameters | + **required_int64_group** | **int**| Required Integer in group parameters | **string_group** | **int**| String in group parameters | [optional] **boolean_group** | **bool**| Boolean in group parameters | [optional] **int64_group** | **int**| Integer in group parameters | [optional] diff --git a/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Api/FakeApi.php b/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Api/FakeApi.php index fe2920a3c0c..3b2a198a771 100644 --- a/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Api/FakeApi.php +++ b/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Api/FakeApi.php @@ -2524,6 +2524,9 @@ class FakeApi * * Note: the input parameter is an associative array with the keys listed as the parameter name below * + * @param int $required_string_group Required String in group parameters (required) + * @param bool $required_boolean_group Required Boolean in group parameters (required) + * @param int $required_int64_group Required Integer in group parameters (required) * @param int $string_group String in group parameters (optional) * @param bool $boolean_group Boolean in group parameters (optional) * @param int $int64_group Integer in group parameters (optional) @@ -2544,6 +2547,9 @@ class FakeApi * * Note: the inpput parameter is an associative array with the keys listed as the parameter name below * + * @param int $required_string_group Required String in group parameters (required) + * @param bool $required_boolean_group Required Boolean in group parameters (required) + * @param int $required_int64_group Required Integer in group parameters (required) * @param int $string_group String in group parameters (optional) * @param bool $boolean_group Boolean in group parameters (optional) * @param int $int64_group Integer in group parameters (optional) @@ -2554,7 +2560,7 @@ class FakeApi */ public function testGroupParametersWithHttpInfo($associative_array) { - $request = $this->testGroupParametersRequest($associative_array['string_group'], $associative_array['boolean_group'], $associative_array['int64_group']); + $request = $this->testGroupParametersRequest($associative_array['required_string_group'], $associative_array['required_boolean_group'], $associative_array['required_int64_group'], $associative_array['string_group'], $associative_array['boolean_group'], $associative_array['int64_group']); try { $options = $this->createHttpClientOption(); @@ -2600,6 +2606,9 @@ class FakeApi * * Note: the inpput parameter is an associative array with the keys listed as the parameter name below * + * @param int $required_string_group Required String in group parameters (required) + * @param bool $required_boolean_group Required Boolean in group parameters (required) + * @param int $required_int64_group Required Integer in group parameters (required) * @param int $string_group String in group parameters (optional) * @param bool $boolean_group Boolean in group parameters (optional) * @param int $int64_group Integer in group parameters (optional) @@ -2624,6 +2633,9 @@ class FakeApi * * Note: the inpput parameter is an associative array with the keys listed as the parameter name below * + * @param int $required_string_group Required String in group parameters (required) + * @param bool $required_boolean_group Required Boolean in group parameters (required) + * @param int $required_int64_group Required Integer in group parameters (required) * @param int $string_group String in group parameters (optional) * @param bool $boolean_group Boolean in group parameters (optional) * @param int $int64_group Integer in group parameters (optional) @@ -2664,6 +2676,9 @@ class FakeApi * * Note: the input parameter is an associative array with the keys listed as the parameter name below * + * @param int $required_string_group Required String in group parameters (required) + * @param bool $required_boolean_group Required Boolean in group parameters (required) + * @param int $required_int64_group Required Integer in group parameters (required) * @param int $string_group String in group parameters (optional) * @param bool $boolean_group Boolean in group parameters (optional) * @param int $int64_group Integer in group parameters (optional) @@ -2674,10 +2689,31 @@ class FakeApi protected function testGroupParametersRequest($associative_array) { // unbox the parameters from the associative array + $required_string_group = array_key_exists('required_string_group', $associative_array) ? $associative_array['required_string_group'] : null; + $required_boolean_group = array_key_exists('required_boolean_group', $associative_array) ? $associative_array['required_boolean_group'] : null; + $required_int64_group = array_key_exists('required_int64_group', $associative_array) ? $associative_array['required_int64_group'] : null; $string_group = array_key_exists('string_group', $associative_array) ? $associative_array['string_group'] : null; $boolean_group = array_key_exists('boolean_group', $associative_array) ? $associative_array['boolean_group'] : null; $int64_group = array_key_exists('int64_group', $associative_array) ? $associative_array['int64_group'] : null; + // verify the required parameter 'required_string_group' is set + if ($required_string_group === null || (is_array($required_string_group) && count($required_string_group) === 0)) { + throw new \InvalidArgumentException( + 'Missing the required parameter $required_string_group when calling testGroupParameters' + ); + } + // verify the required parameter 'required_boolean_group' is set + if ($required_boolean_group === null || (is_array($required_boolean_group) && count($required_boolean_group) === 0)) { + throw new \InvalidArgumentException( + 'Missing the required parameter $required_boolean_group when calling testGroupParameters' + ); + } + // verify the required parameter 'required_int64_group' is set + if ($required_int64_group === null || (is_array($required_int64_group) && count($required_int64_group) === 0)) { + throw new \InvalidArgumentException( + 'Missing the required parameter $required_int64_group when calling testGroupParameters' + ); + } $resourcePath = '/fake'; $formParams = []; @@ -2686,6 +2722,14 @@ class FakeApi $httpBody = ''; $multipart = false; + // query params + if ($required_string_group !== null) { + $queryParams['required_string_group'] = ObjectSerializer::toQueryValue($required_string_group); + } + // query params + if ($required_int64_group !== null) { + $queryParams['required_int64_group'] = ObjectSerializer::toQueryValue($required_int64_group); + } // query params if ($string_group !== null) { $queryParams['string_group'] = ObjectSerializer::toQueryValue($string_group); @@ -2695,6 +2739,10 @@ class FakeApi $queryParams['int64_group'] = ObjectSerializer::toQueryValue($int64_group); } // header params + if ($required_boolean_group !== null) { + $headerParams['required_boolean_group'] = ObjectSerializer::toHeaderValue($required_boolean_group); + } + // header params if ($boolean_group !== null) { $headerParams['boolean_group'] = ObjectSerializer::toHeaderValue($boolean_group); } diff --git a/samples/server/petstore/jaxrs-cxf/src/gen/java/org/openapitools/api/FakeApi.java b/samples/server/petstore/jaxrs-cxf/src/gen/java/org/openapitools/api/FakeApi.java index b212f1c67d1..0bd54724ded 100644 --- a/samples/server/petstore/jaxrs-cxf/src/gen/java/org/openapitools/api/FakeApi.java +++ b/samples/server/petstore/jaxrs-cxf/src/gen/java/org/openapitools/api/FakeApi.java @@ -141,7 +141,7 @@ public interface FakeApi { @ApiOperation(value = "Fake endpoint to test group parameters (optional)", tags={ "fake", }) @ApiResponses(value = { @ApiResponse(code = 400, message = "Someting wrong") }) - public void testGroupParameters(@QueryParam("string_group") Integer stringGroup, @HeaderParam("boolean_group") Boolean booleanGroup, @QueryParam("int64_group") Long int64Group); + public void testGroupParameters(@QueryParam("required_string_group") @NotNull Integer requiredStringGroup, @HeaderParam("required_boolean_group") Boolean requiredBooleanGroup, @QueryParam("required_int64_group") @NotNull Long requiredInt64Group, @QueryParam("string_group") Integer stringGroup, @HeaderParam("boolean_group") Boolean booleanGroup, @QueryParam("int64_group") Long int64Group); /** * test inline additionalProperties diff --git a/samples/server/petstore/jaxrs-cxf/src/main/java/org/openapitools/api/impl/FakeApiServiceImpl.java b/samples/server/petstore/jaxrs-cxf/src/main/java/org/openapitools/api/impl/FakeApiServiceImpl.java index 812581c5b14..061e7112d55 100644 --- a/samples/server/petstore/jaxrs-cxf/src/main/java/org/openapitools/api/impl/FakeApiServiceImpl.java +++ b/samples/server/petstore/jaxrs-cxf/src/main/java/org/openapitools/api/impl/FakeApiServiceImpl.java @@ -109,7 +109,7 @@ public class FakeApiServiceImpl implements FakeApi { * Fake endpoint to test group parameters (optional) * */ - public void testGroupParameters(Integer stringGroup, Boolean booleanGroup, Long int64Group) { + public void testGroupParameters(Integer requiredStringGroup, Boolean requiredBooleanGroup, Long requiredInt64Group, Integer stringGroup, Boolean booleanGroup, Long int64Group) { // TODO: Implement... diff --git a/samples/server/petstore/jaxrs-cxf/src/test/java/org/openapitools/api/FakeApiTest.java b/samples/server/petstore/jaxrs-cxf/src/test/java/org/openapitools/api/FakeApiTest.java index b476e5528d0..5816222f1e7 100644 --- a/samples/server/petstore/jaxrs-cxf/src/test/java/org/openapitools/api/FakeApiTest.java +++ b/samples/server/petstore/jaxrs-cxf/src/test/java/org/openapitools/api/FakeApiTest.java @@ -248,10 +248,13 @@ public class FakeApiTest { */ @Test public void testGroupParametersTest() { + Integer requiredStringGroup = null; + Boolean requiredBooleanGroup = null; + Long requiredInt64Group = null; Integer stringGroup = null; Boolean booleanGroup = null; Long int64Group = null; - //api.testGroupParameters(stringGroup, booleanGroup, int64Group); + //api.testGroupParameters(requiredStringGroup, requiredBooleanGroup, requiredInt64Group, stringGroup, booleanGroup, int64Group); // TODO: test validations diff --git a/samples/server/petstore/jaxrs-datelib-j8/src/gen/java/org/openapitools/api/FakeApi.java b/samples/server/petstore/jaxrs-datelib-j8/src/gen/java/org/openapitools/api/FakeApi.java index a8db12b2afc..a872ff17f4e 100644 --- a/samples/server/petstore/jaxrs-datelib-j8/src/gen/java/org/openapitools/api/FakeApi.java +++ b/samples/server/petstore/jaxrs-datelib-j8/src/gen/java/org/openapitools/api/FakeApi.java @@ -208,12 +208,15 @@ public class FakeApi { @io.swagger.annotations.ApiOperation(value = "Fake endpoint to test group parameters (optional)", notes = "Fake endpoint to test group parameters (optional)", response = Void.class, tags={ "fake", }) @io.swagger.annotations.ApiResponses(value = { @io.swagger.annotations.ApiResponse(code = 400, message = "Someting wrong", response = Void.class) }) - public Response testGroupParameters(@ApiParam(value = "String in group parameters") @QueryParam("string_group") Integer stringGroup + public Response testGroupParameters(@ApiParam(value = "Required String in group parameters",required=true) @QueryParam("required_string_group") Integer requiredStringGroup +,@ApiParam(value = "Required Boolean in group parameters" ,required=true)@HeaderParam("required_boolean_group") Boolean requiredBooleanGroup +,@ApiParam(value = "Required Integer in group parameters",required=true) @QueryParam("required_int64_group") Long requiredInt64Group +,@ApiParam(value = "String in group parameters") @QueryParam("string_group") Integer stringGroup ,@ApiParam(value = "Boolean in group parameters" )@HeaderParam("boolean_group") Boolean booleanGroup ,@ApiParam(value = "Integer in group parameters") @QueryParam("int64_group") Long int64Group ,@Context SecurityContext securityContext) throws NotFoundException { - return delegate.testGroupParameters(stringGroup,booleanGroup,int64Group,securityContext); + return delegate.testGroupParameters(requiredStringGroup,requiredBooleanGroup,requiredInt64Group,stringGroup,booleanGroup,int64Group,securityContext); } @POST @Path("/inline-additionalProperties") diff --git a/samples/server/petstore/jaxrs-datelib-j8/src/gen/java/org/openapitools/api/FakeApiService.java b/samples/server/petstore/jaxrs-datelib-j8/src/gen/java/org/openapitools/api/FakeApiService.java index fbf3fc75bc5..fc90d3b8e1a 100644 --- a/samples/server/petstore/jaxrs-datelib-j8/src/gen/java/org/openapitools/api/FakeApiService.java +++ b/samples/server/petstore/jaxrs-datelib-j8/src/gen/java/org/openapitools/api/FakeApiService.java @@ -35,7 +35,7 @@ public abstract class FakeApiService { public abstract Response testClientModel(Client client,SecurityContext securityContext) throws NotFoundException; public abstract Response testEndpointParameters(BigDecimal number,Double _double,String patternWithoutDelimiter,byte[] _byte,Integer integer,Integer int32,Long int64,Float _float,String string,InputStream binaryInputStream, FormDataContentDisposition binaryDetail,LocalDate date,OffsetDateTime dateTime,String password,String paramCallback,SecurityContext securityContext) throws NotFoundException; public abstract Response testEnumParameters(List enumHeaderStringArray,String enumHeaderString, List enumQueryStringArray, String enumQueryString, Integer enumQueryInteger, Double enumQueryDouble,List enumFormStringArray,String enumFormString,SecurityContext securityContext) throws NotFoundException; - public abstract Response testGroupParameters( Integer stringGroup,Boolean booleanGroup, Long int64Group,SecurityContext securityContext) throws NotFoundException; + public abstract Response testGroupParameters( @NotNull Integer requiredStringGroup,Boolean requiredBooleanGroup, @NotNull Long requiredInt64Group, Integer stringGroup,Boolean booleanGroup, Long int64Group,SecurityContext securityContext) throws NotFoundException; public abstract Response testInlineAdditionalProperties(Map requestBody,SecurityContext securityContext) throws NotFoundException; public abstract Response testJsonFormData(String param,String param2,SecurityContext securityContext) throws NotFoundException; public abstract Response uploadFileWithRequiredFile(Long petId,InputStream requiredFileInputStream, FormDataContentDisposition requiredFileDetail,String additionalMetadata,SecurityContext securityContext) throws NotFoundException; diff --git a/samples/server/petstore/jaxrs-datelib-j8/src/main/java/org/openapitools/api/impl/FakeApiServiceImpl.java b/samples/server/petstore/jaxrs-datelib-j8/src/main/java/org/openapitools/api/impl/FakeApiServiceImpl.java index 52d6b276ae4..b608ee79159 100644 --- a/samples/server/petstore/jaxrs-datelib-j8/src/main/java/org/openapitools/api/impl/FakeApiServiceImpl.java +++ b/samples/server/petstore/jaxrs-datelib-j8/src/main/java/org/openapitools/api/impl/FakeApiServiceImpl.java @@ -72,7 +72,7 @@ public class FakeApiServiceImpl extends FakeApiService { return Response.ok().entity(new ApiResponseMessage(ApiResponseMessage.OK, "magic!")).build(); } @Override - public Response testGroupParameters( Integer stringGroup, Boolean booleanGroup, Long int64Group, SecurityContext securityContext) throws NotFoundException { + public Response testGroupParameters( @NotNull Integer requiredStringGroup, Boolean requiredBooleanGroup, @NotNull Long requiredInt64Group, Integer stringGroup, Boolean booleanGroup, Long int64Group, SecurityContext securityContext) throws NotFoundException { // do some magic! return Response.ok().entity(new ApiResponseMessage(ApiResponseMessage.OK, "magic!")).build(); } diff --git a/samples/server/petstore/jaxrs-jersey/src/gen/java/org/openapitools/api/FakeApi.java b/samples/server/petstore/jaxrs-jersey/src/gen/java/org/openapitools/api/FakeApi.java index 304ddc3d28c..c47f03f0462 100644 --- a/samples/server/petstore/jaxrs-jersey/src/gen/java/org/openapitools/api/FakeApi.java +++ b/samples/server/petstore/jaxrs-jersey/src/gen/java/org/openapitools/api/FakeApi.java @@ -207,12 +207,15 @@ public class FakeApi { @io.swagger.annotations.ApiOperation(value = "Fake endpoint to test group parameters (optional)", notes = "Fake endpoint to test group parameters (optional)", response = Void.class, tags={ "fake", }) @io.swagger.annotations.ApiResponses(value = { @io.swagger.annotations.ApiResponse(code = 400, message = "Someting wrong", response = Void.class) }) - public Response testGroupParameters(@ApiParam(value = "String in group parameters") @QueryParam("string_group") Integer stringGroup + public Response testGroupParameters(@ApiParam(value = "Required String in group parameters",required=true) @QueryParam("required_string_group") Integer requiredStringGroup +,@ApiParam(value = "Required Boolean in group parameters" ,required=true)@HeaderParam("required_boolean_group") Boolean requiredBooleanGroup +,@ApiParam(value = "Required Integer in group parameters",required=true) @QueryParam("required_int64_group") Long requiredInt64Group +,@ApiParam(value = "String in group parameters") @QueryParam("string_group") Integer stringGroup ,@ApiParam(value = "Boolean in group parameters" )@HeaderParam("boolean_group") Boolean booleanGroup ,@ApiParam(value = "Integer in group parameters") @QueryParam("int64_group") Long int64Group ,@Context SecurityContext securityContext) throws NotFoundException { - return delegate.testGroupParameters(stringGroup,booleanGroup,int64Group,securityContext); + return delegate.testGroupParameters(requiredStringGroup,requiredBooleanGroup,requiredInt64Group,stringGroup,booleanGroup,int64Group,securityContext); } @POST @Path("/inline-additionalProperties") diff --git a/samples/server/petstore/jaxrs-jersey/src/gen/java/org/openapitools/api/FakeApiService.java b/samples/server/petstore/jaxrs-jersey/src/gen/java/org/openapitools/api/FakeApiService.java index 8ea44f5923d..9319d058951 100644 --- a/samples/server/petstore/jaxrs-jersey/src/gen/java/org/openapitools/api/FakeApiService.java +++ b/samples/server/petstore/jaxrs-jersey/src/gen/java/org/openapitools/api/FakeApiService.java @@ -34,7 +34,7 @@ public abstract class FakeApiService { public abstract Response testClientModel(Client client,SecurityContext securityContext) throws NotFoundException; public abstract Response testEndpointParameters(BigDecimal number,Double _double,String patternWithoutDelimiter,byte[] _byte,Integer integer,Integer int32,Long int64,Float _float,String string,InputStream binaryInputStream, FormDataContentDisposition binaryDetail,Date date,Date dateTime,String password,String paramCallback,SecurityContext securityContext) throws NotFoundException; public abstract Response testEnumParameters(List enumHeaderStringArray,String enumHeaderString, List enumQueryStringArray, String enumQueryString, Integer enumQueryInteger, Double enumQueryDouble,List enumFormStringArray,String enumFormString,SecurityContext securityContext) throws NotFoundException; - public abstract Response testGroupParameters( Integer stringGroup,Boolean booleanGroup, Long int64Group,SecurityContext securityContext) throws NotFoundException; + public abstract Response testGroupParameters( @NotNull Integer requiredStringGroup,Boolean requiredBooleanGroup, @NotNull Long requiredInt64Group, Integer stringGroup,Boolean booleanGroup, Long int64Group,SecurityContext securityContext) throws NotFoundException; public abstract Response testInlineAdditionalProperties(Map requestBody,SecurityContext securityContext) throws NotFoundException; public abstract Response testJsonFormData(String param,String param2,SecurityContext securityContext) throws NotFoundException; public abstract Response uploadFileWithRequiredFile(Long petId,InputStream requiredFileInputStream, FormDataContentDisposition requiredFileDetail,String additionalMetadata,SecurityContext securityContext) throws NotFoundException; diff --git a/samples/server/petstore/jaxrs-jersey/src/main/java/org/openapitools/api/impl/FakeApiServiceImpl.java b/samples/server/petstore/jaxrs-jersey/src/main/java/org/openapitools/api/impl/FakeApiServiceImpl.java index 37288374e7f..d771656bb35 100644 --- a/samples/server/petstore/jaxrs-jersey/src/main/java/org/openapitools/api/impl/FakeApiServiceImpl.java +++ b/samples/server/petstore/jaxrs-jersey/src/main/java/org/openapitools/api/impl/FakeApiServiceImpl.java @@ -71,7 +71,7 @@ public class FakeApiServiceImpl extends FakeApiService { return Response.ok().entity(new ApiResponseMessage(ApiResponseMessage.OK, "magic!")).build(); } @Override - public Response testGroupParameters( Integer stringGroup, Boolean booleanGroup, Long int64Group, SecurityContext securityContext) throws NotFoundException { + public Response testGroupParameters( @NotNull Integer requiredStringGroup, Boolean requiredBooleanGroup, @NotNull Long requiredInt64Group, Integer stringGroup, Boolean booleanGroup, Long int64Group, SecurityContext securityContext) throws NotFoundException { // do some magic! return Response.ok().entity(new ApiResponseMessage(ApiResponseMessage.OK, "magic!")).build(); } diff --git a/samples/server/petstore/jaxrs-spec-interface/src/gen/java/org/openapitools/api/FakeApi.java b/samples/server/petstore/jaxrs-spec-interface/src/gen/java/org/openapitools/api/FakeApi.java index b8cd7c76872..0827c2758d1 100644 --- a/samples/server/petstore/jaxrs-spec-interface/src/gen/java/org/openapitools/api/FakeApi.java +++ b/samples/server/petstore/jaxrs-spec-interface/src/gen/java/org/openapitools/api/FakeApi.java @@ -104,7 +104,7 @@ public interface FakeApi { @ApiOperation(value = "Fake endpoint to test group parameters (optional)", notes = "Fake endpoint to test group parameters (optional)", tags={ "fake", }) @ApiResponses(value = { @ApiResponse(code = 400, message = "Someting wrong", response = Void.class) }) - void testGroupParameters(@QueryParam("string_group") @ApiParam("String in group parameters") Integer stringGroup,@HeaderParam("boolean_group") @ApiParam("Boolean in group parameters") Boolean booleanGroup,@QueryParam("int64_group") @ApiParam("Integer in group parameters") Long int64Group); + void testGroupParameters(@QueryParam("required_string_group") @NotNull @ApiParam("Required String in group parameters") Integer requiredStringGroup,@HeaderParam("required_boolean_group") @NotNull @ApiParam("Required Boolean in group parameters") Boolean requiredBooleanGroup,@QueryParam("required_int64_group") @NotNull @ApiParam("Required Integer in group parameters") Long requiredInt64Group,@QueryParam("string_group") @ApiParam("String in group parameters") Integer stringGroup,@HeaderParam("boolean_group") @ApiParam("Boolean in group parameters") Boolean booleanGroup,@QueryParam("int64_group") @ApiParam("Integer in group parameters") Long int64Group); @POST @Path("/inline-additionalProperties") diff --git a/samples/server/petstore/jaxrs-spec-interface/src/main/openapi/openapi.yaml b/samples/server/petstore/jaxrs-spec-interface/src/main/openapi/openapi.yaml index 799de419314..7aaa0e0a18b 100644 --- a/samples/server/petstore/jaxrs-spec-interface/src/main/openapi/openapi.yaml +++ b/samples/server/petstore/jaxrs-spec-interface/src/main/openapi/openapi.yaml @@ -635,6 +635,25 @@ paths: description: Fake endpoint to test group parameters (optional) operationId: testGroupParameters parameters: + - description: Required String in group parameters + in: query + name: required_string_group + required: true + schema: + type: integer + - description: Required Boolean in group parameters + in: header + name: required_boolean_group + required: true + schema: + type: boolean + - description: Required Integer in group parameters + in: query + name: required_int64_group + required: true + schema: + format: int64 + type: integer - description: String in group parameters in: query name: string_group diff --git a/samples/server/petstore/jaxrs-spec/src/gen/java/org/openapitools/api/FakeApi.java b/samples/server/petstore/jaxrs-spec/src/gen/java/org/openapitools/api/FakeApi.java index 80e6cee3985..a5ed5461ef8 100644 --- a/samples/server/petstore/jaxrs-spec/src/gen/java/org/openapitools/api/FakeApi.java +++ b/samples/server/petstore/jaxrs-spec/src/gen/java/org/openapitools/api/FakeApi.java @@ -132,7 +132,7 @@ public class FakeApi { @ApiResponses(value = { @ApiResponse(code = 400, message = "Someting wrong", response = Void.class) }) - public Response testGroupParameters(@QueryParam("string_group") @ApiParam("String in group parameters") Integer stringGroup,@HeaderParam("boolean_group") @ApiParam("Boolean in group parameters") Boolean booleanGroup,@QueryParam("int64_group") @ApiParam("Integer in group parameters") Long int64Group) { + public Response testGroupParameters(@QueryParam("required_string_group") @NotNull @ApiParam("Required String in group parameters") Integer requiredStringGroup,@HeaderParam("required_boolean_group") @NotNull @ApiParam("Required Boolean in group parameters") Boolean requiredBooleanGroup,@QueryParam("required_int64_group") @NotNull @ApiParam("Required Integer in group parameters") Long requiredInt64Group,@QueryParam("string_group") @ApiParam("String in group parameters") Integer stringGroup,@HeaderParam("boolean_group") @ApiParam("Boolean in group parameters") Boolean booleanGroup,@QueryParam("int64_group") @ApiParam("Integer in group parameters") Long int64Group) { return Response.ok().entity("magic!").build(); } diff --git a/samples/server/petstore/jaxrs-spec/src/main/openapi/openapi.yaml b/samples/server/petstore/jaxrs-spec/src/main/openapi/openapi.yaml index 799de419314..7aaa0e0a18b 100644 --- a/samples/server/petstore/jaxrs-spec/src/main/openapi/openapi.yaml +++ b/samples/server/petstore/jaxrs-spec/src/main/openapi/openapi.yaml @@ -635,6 +635,25 @@ paths: description: Fake endpoint to test group parameters (optional) operationId: testGroupParameters parameters: + - description: Required String in group parameters + in: query + name: required_string_group + required: true + schema: + type: integer + - description: Required Boolean in group parameters + in: header + name: required_boolean_group + required: true + schema: + type: boolean + - description: Required Integer in group parameters + in: query + name: required_int64_group + required: true + schema: + format: int64 + type: integer - description: String in group parameters in: query name: string_group diff --git a/samples/server/petstore/jaxrs/jersey1-useTags/src/gen/java/org/openapitools/api/FakeApi.java b/samples/server/petstore/jaxrs/jersey1-useTags/src/gen/java/org/openapitools/api/FakeApi.java index 916ba073b33..a7d6b517654 100644 --- a/samples/server/petstore/jaxrs/jersey1-useTags/src/gen/java/org/openapitools/api/FakeApi.java +++ b/samples/server/petstore/jaxrs/jersey1-useTags/src/gen/java/org/openapitools/api/FakeApi.java @@ -191,12 +191,15 @@ public class FakeApi { @io.swagger.annotations.ApiResponses(value = { @io.swagger.annotations.ApiResponse(code = 400, message = "Someting wrong", response = Void.class) }) public Response testGroupParameters( + @ApiParam(value = "Required String in group parameters",required=true) @QueryParam("required_string_group") Integer requiredStringGroup, + @ApiParam(value = "Required Boolean in group parameters" ,required=true)@HeaderParam("required_boolean_group") Boolean requiredBooleanGroup, + @ApiParam(value = "Required Integer in group parameters",required=true) @QueryParam("required_int64_group") Long requiredInt64Group, @ApiParam(value = "String in group parameters") @QueryParam("string_group") Integer stringGroup, @ApiParam(value = "Boolean in group parameters" )@HeaderParam("boolean_group") Boolean booleanGroup, @ApiParam(value = "Integer in group parameters") @QueryParam("int64_group") Long int64Group, @Context SecurityContext securityContext) throws NotFoundException { - return delegate.testGroupParameters(stringGroup,booleanGroup,int64Group,securityContext); + return delegate.testGroupParameters(requiredStringGroup,requiredBooleanGroup,requiredInt64Group,stringGroup,booleanGroup,int64Group,securityContext); } @POST @Path("/inline-additionalProperties") diff --git a/samples/server/petstore/jaxrs/jersey1-useTags/src/gen/java/org/openapitools/api/FakeApiService.java b/samples/server/petstore/jaxrs/jersey1-useTags/src/gen/java/org/openapitools/api/FakeApiService.java index 55f5a5257d0..fed55467984 100644 --- a/samples/server/petstore/jaxrs/jersey1-useTags/src/gen/java/org/openapitools/api/FakeApiService.java +++ b/samples/server/petstore/jaxrs/jersey1-useTags/src/gen/java/org/openapitools/api/FakeApiService.java @@ -45,7 +45,7 @@ public abstract class FakeApiService { throws NotFoundException; public abstract Response testEnumParameters(List enumHeaderStringArray,String enumHeaderString, List enumQueryStringArray, String enumQueryString, Integer enumQueryInteger, Double enumQueryDouble,List enumFormStringArray,String enumFormString,SecurityContext securityContext) throws NotFoundException; - public abstract Response testGroupParameters( Integer stringGroup,Boolean booleanGroup, Long int64Group,SecurityContext securityContext) + public abstract Response testGroupParameters( @NotNull Integer requiredStringGroup,Boolean requiredBooleanGroup, @NotNull Long requiredInt64Group, Integer stringGroup,Boolean booleanGroup, Long int64Group,SecurityContext securityContext) throws NotFoundException; public abstract Response testInlineAdditionalProperties(Map requestBody,SecurityContext securityContext) throws NotFoundException; diff --git a/samples/server/petstore/jaxrs/jersey1-useTags/src/main/java/org/openapitools/api/impl/FakeApiServiceImpl.java b/samples/server/petstore/jaxrs/jersey1-useTags/src/main/java/org/openapitools/api/impl/FakeApiServiceImpl.java index ae4238f4d82..6c0a98ec53a 100644 --- a/samples/server/petstore/jaxrs/jersey1-useTags/src/main/java/org/openapitools/api/impl/FakeApiServiceImpl.java +++ b/samples/server/petstore/jaxrs/jersey1-useTags/src/main/java/org/openapitools/api/impl/FakeApiServiceImpl.java @@ -82,7 +82,7 @@ public class FakeApiServiceImpl extends FakeApiService { return Response.ok().entity(new ApiResponseMessage(ApiResponseMessage.OK, "magic!")).build(); } @Override - public Response testGroupParameters( Integer stringGroup, Boolean booleanGroup, Long int64Group, SecurityContext securityContext) + public Response testGroupParameters( @NotNull Integer requiredStringGroup, Boolean requiredBooleanGroup, @NotNull Long requiredInt64Group, Integer stringGroup, Boolean booleanGroup, Long int64Group, SecurityContext securityContext) throws NotFoundException { // do some magic! return Response.ok().entity(new ApiResponseMessage(ApiResponseMessage.OK, "magic!")).build(); diff --git a/samples/server/petstore/jaxrs/jersey1/src/gen/java/org/openapitools/api/FakeApi.java b/samples/server/petstore/jaxrs/jersey1/src/gen/java/org/openapitools/api/FakeApi.java index 80d3018bcad..192e2fdc1c8 100644 --- a/samples/server/petstore/jaxrs/jersey1/src/gen/java/org/openapitools/api/FakeApi.java +++ b/samples/server/petstore/jaxrs/jersey1/src/gen/java/org/openapitools/api/FakeApi.java @@ -192,12 +192,15 @@ public class FakeApi { @io.swagger.annotations.ApiResponses(value = { @io.swagger.annotations.ApiResponse(code = 400, message = "Someting wrong", response = Void.class) }) public Response testGroupParameters( + @ApiParam(value = "Required String in group parameters",required=true) @QueryParam("required_string_group") Integer requiredStringGroup, + @ApiParam(value = "Required Boolean in group parameters" ,required=true)@HeaderParam("required_boolean_group") Boolean requiredBooleanGroup, + @ApiParam(value = "Required Integer in group parameters",required=true) @QueryParam("required_int64_group") Long requiredInt64Group, @ApiParam(value = "String in group parameters") @QueryParam("string_group") Integer stringGroup, @ApiParam(value = "Boolean in group parameters" )@HeaderParam("boolean_group") Boolean booleanGroup, @ApiParam(value = "Integer in group parameters") @QueryParam("int64_group") Long int64Group, @Context SecurityContext securityContext) throws NotFoundException { - return delegate.testGroupParameters(stringGroup,booleanGroup,int64Group,securityContext); + return delegate.testGroupParameters(requiredStringGroup,requiredBooleanGroup,requiredInt64Group,stringGroup,booleanGroup,int64Group,securityContext); } @POST @Path("/inline-additionalProperties") diff --git a/samples/server/petstore/jaxrs/jersey1/src/gen/java/org/openapitools/api/FakeApiService.java b/samples/server/petstore/jaxrs/jersey1/src/gen/java/org/openapitools/api/FakeApiService.java index 20f05383f60..143287741bd 100644 --- a/samples/server/petstore/jaxrs/jersey1/src/gen/java/org/openapitools/api/FakeApiService.java +++ b/samples/server/petstore/jaxrs/jersey1/src/gen/java/org/openapitools/api/FakeApiService.java @@ -46,7 +46,7 @@ public abstract class FakeApiService { throws NotFoundException; public abstract Response testEnumParameters(List enumHeaderStringArray,String enumHeaderString, List enumQueryStringArray, String enumQueryString, Integer enumQueryInteger, Double enumQueryDouble,List enumFormStringArray,String enumFormString,SecurityContext securityContext) throws NotFoundException; - public abstract Response testGroupParameters( Integer stringGroup,Boolean booleanGroup, Long int64Group,SecurityContext securityContext) + public abstract Response testGroupParameters( @NotNull Integer requiredStringGroup,Boolean requiredBooleanGroup, @NotNull Long requiredInt64Group, Integer stringGroup,Boolean booleanGroup, Long int64Group,SecurityContext securityContext) throws NotFoundException; public abstract Response testInlineAdditionalProperties(Map requestBody,SecurityContext securityContext) throws NotFoundException; diff --git a/samples/server/petstore/jaxrs/jersey1/src/main/java/org/openapitools/api/impl/FakeApiServiceImpl.java b/samples/server/petstore/jaxrs/jersey1/src/main/java/org/openapitools/api/impl/FakeApiServiceImpl.java index 6861c8607aa..e2c2e189cac 100644 --- a/samples/server/petstore/jaxrs/jersey1/src/main/java/org/openapitools/api/impl/FakeApiServiceImpl.java +++ b/samples/server/petstore/jaxrs/jersey1/src/main/java/org/openapitools/api/impl/FakeApiServiceImpl.java @@ -83,7 +83,7 @@ public class FakeApiServiceImpl extends FakeApiService { return Response.ok().entity(new ApiResponseMessage(ApiResponseMessage.OK, "magic!")).build(); } @Override - public Response testGroupParameters( Integer stringGroup, Boolean booleanGroup, Long int64Group, SecurityContext securityContext) + public Response testGroupParameters( @NotNull Integer requiredStringGroup, Boolean requiredBooleanGroup, @NotNull Long requiredInt64Group, Integer stringGroup, Boolean booleanGroup, Long int64Group, SecurityContext securityContext) throws NotFoundException { // do some magic! return Response.ok().entity(new ApiResponseMessage(ApiResponseMessage.OK, "magic!")).build(); diff --git a/samples/server/petstore/jaxrs/jersey2-useTags/src/gen/java/org/openapitools/api/FakeApi.java b/samples/server/petstore/jaxrs/jersey2-useTags/src/gen/java/org/openapitools/api/FakeApi.java index 57b8c57a76b..0dc93668755 100644 --- a/samples/server/petstore/jaxrs/jersey2-useTags/src/gen/java/org/openapitools/api/FakeApi.java +++ b/samples/server/petstore/jaxrs/jersey2-useTags/src/gen/java/org/openapitools/api/FakeApi.java @@ -206,12 +206,15 @@ public class FakeApi { @io.swagger.annotations.ApiOperation(value = "Fake endpoint to test group parameters (optional)", notes = "Fake endpoint to test group parameters (optional)", response = Void.class, tags={ "fake", }) @io.swagger.annotations.ApiResponses(value = { @io.swagger.annotations.ApiResponse(code = 400, message = "Someting wrong", response = Void.class) }) - public Response testGroupParameters(@ApiParam(value = "String in group parameters") @QueryParam("string_group") Integer stringGroup + public Response testGroupParameters(@ApiParam(value = "Required String in group parameters",required=true) @QueryParam("required_string_group") Integer requiredStringGroup +,@ApiParam(value = "Required Boolean in group parameters" ,required=true)@HeaderParam("required_boolean_group") Boolean requiredBooleanGroup +,@ApiParam(value = "Required Integer in group parameters",required=true) @QueryParam("required_int64_group") Long requiredInt64Group +,@ApiParam(value = "String in group parameters") @QueryParam("string_group") Integer stringGroup ,@ApiParam(value = "Boolean in group parameters" )@HeaderParam("boolean_group") Boolean booleanGroup ,@ApiParam(value = "Integer in group parameters") @QueryParam("int64_group") Long int64Group ,@Context SecurityContext securityContext) throws NotFoundException { - return delegate.testGroupParameters(stringGroup,booleanGroup,int64Group,securityContext); + return delegate.testGroupParameters(requiredStringGroup,requiredBooleanGroup,requiredInt64Group,stringGroup,booleanGroup,int64Group,securityContext); } @POST @Path("/inline-additionalProperties") diff --git a/samples/server/petstore/jaxrs/jersey2-useTags/src/gen/java/org/openapitools/api/FakeApiService.java b/samples/server/petstore/jaxrs/jersey2-useTags/src/gen/java/org/openapitools/api/FakeApiService.java index d7e2031b5b5..febdb0d1a6d 100644 --- a/samples/server/petstore/jaxrs/jersey2-useTags/src/gen/java/org/openapitools/api/FakeApiService.java +++ b/samples/server/petstore/jaxrs/jersey2-useTags/src/gen/java/org/openapitools/api/FakeApiService.java @@ -33,7 +33,7 @@ public abstract class FakeApiService { public abstract Response testClientModel(Client client,SecurityContext securityContext) throws NotFoundException; public abstract Response testEndpointParameters(BigDecimal number,Double _double,String patternWithoutDelimiter,byte[] _byte,Integer integer,Integer int32,Long int64,Float _float,String string,InputStream binaryInputStream, FormDataContentDisposition binaryDetail,Date date,Date dateTime,String password,String paramCallback,SecurityContext securityContext) throws NotFoundException; public abstract Response testEnumParameters(List enumHeaderStringArray,String enumHeaderString, List enumQueryStringArray, String enumQueryString, Integer enumQueryInteger, Double enumQueryDouble,List enumFormStringArray,String enumFormString,SecurityContext securityContext) throws NotFoundException; - public abstract Response testGroupParameters( Integer stringGroup,Boolean booleanGroup, Long int64Group,SecurityContext securityContext) throws NotFoundException; + public abstract Response testGroupParameters( @NotNull Integer requiredStringGroup,Boolean requiredBooleanGroup, @NotNull Long requiredInt64Group, Integer stringGroup,Boolean booleanGroup, Long int64Group,SecurityContext securityContext) throws NotFoundException; public abstract Response testInlineAdditionalProperties(Map requestBody,SecurityContext securityContext) throws NotFoundException; public abstract Response testJsonFormData(String param,String param2,SecurityContext securityContext) throws NotFoundException; } diff --git a/samples/server/petstore/jaxrs/jersey2-useTags/src/main/java/org/openapitools/api/impl/FakeApiServiceImpl.java b/samples/server/petstore/jaxrs/jersey2-useTags/src/main/java/org/openapitools/api/impl/FakeApiServiceImpl.java index fa4bb591ee6..862ccc6b7d0 100644 --- a/samples/server/petstore/jaxrs/jersey2-useTags/src/main/java/org/openapitools/api/impl/FakeApiServiceImpl.java +++ b/samples/server/petstore/jaxrs/jersey2-useTags/src/main/java/org/openapitools/api/impl/FakeApiServiceImpl.java @@ -70,7 +70,7 @@ public class FakeApiServiceImpl extends FakeApiService { return Response.ok().entity(new ApiResponseMessage(ApiResponseMessage.OK, "magic!")).build(); } @Override - public Response testGroupParameters( Integer stringGroup, Boolean booleanGroup, Long int64Group, SecurityContext securityContext) throws NotFoundException { + public Response testGroupParameters( @NotNull Integer requiredStringGroup, Boolean requiredBooleanGroup, @NotNull Long requiredInt64Group, Integer stringGroup, Boolean booleanGroup, Long int64Group, SecurityContext securityContext) throws NotFoundException { // do some magic! return Response.ok().entity(new ApiResponseMessage(ApiResponseMessage.OK, "magic!")).build(); } diff --git a/samples/server/petstore/jaxrs/jersey2/src/gen/java/org/openapitools/api/FakeApi.java b/samples/server/petstore/jaxrs/jersey2/src/gen/java/org/openapitools/api/FakeApi.java index 16131c7596c..986a66be5a2 100644 --- a/samples/server/petstore/jaxrs/jersey2/src/gen/java/org/openapitools/api/FakeApi.java +++ b/samples/server/petstore/jaxrs/jersey2/src/gen/java/org/openapitools/api/FakeApi.java @@ -207,12 +207,15 @@ public class FakeApi { @io.swagger.annotations.ApiOperation(value = "Fake endpoint to test group parameters (optional)", notes = "Fake endpoint to test group parameters (optional)", response = Void.class, tags={ "fake", }) @io.swagger.annotations.ApiResponses(value = { @io.swagger.annotations.ApiResponse(code = 400, message = "Someting wrong", response = Void.class) }) - public Response testGroupParameters(@ApiParam(value = "String in group parameters") @QueryParam("string_group") Integer stringGroup + public Response testGroupParameters(@ApiParam(value = "Required String in group parameters",required=true) @QueryParam("required_string_group") Integer requiredStringGroup +,@ApiParam(value = "Required Boolean in group parameters" ,required=true)@HeaderParam("required_boolean_group") Boolean requiredBooleanGroup +,@ApiParam(value = "Required Integer in group parameters",required=true) @QueryParam("required_int64_group") Long requiredInt64Group +,@ApiParam(value = "String in group parameters") @QueryParam("string_group") Integer stringGroup ,@ApiParam(value = "Boolean in group parameters" )@HeaderParam("boolean_group") Boolean booleanGroup ,@ApiParam(value = "Integer in group parameters") @QueryParam("int64_group") Long int64Group ,@Context SecurityContext securityContext) throws NotFoundException { - return delegate.testGroupParameters(stringGroup,booleanGroup,int64Group,securityContext); + return delegate.testGroupParameters(requiredStringGroup,requiredBooleanGroup,requiredInt64Group,stringGroup,booleanGroup,int64Group,securityContext); } @POST @Path("/inline-additionalProperties") diff --git a/samples/server/petstore/jaxrs/jersey2/src/gen/java/org/openapitools/api/FakeApiService.java b/samples/server/petstore/jaxrs/jersey2/src/gen/java/org/openapitools/api/FakeApiService.java index 8ea44f5923d..9319d058951 100644 --- a/samples/server/petstore/jaxrs/jersey2/src/gen/java/org/openapitools/api/FakeApiService.java +++ b/samples/server/petstore/jaxrs/jersey2/src/gen/java/org/openapitools/api/FakeApiService.java @@ -34,7 +34,7 @@ public abstract class FakeApiService { public abstract Response testClientModel(Client client,SecurityContext securityContext) throws NotFoundException; public abstract Response testEndpointParameters(BigDecimal number,Double _double,String patternWithoutDelimiter,byte[] _byte,Integer integer,Integer int32,Long int64,Float _float,String string,InputStream binaryInputStream, FormDataContentDisposition binaryDetail,Date date,Date dateTime,String password,String paramCallback,SecurityContext securityContext) throws NotFoundException; public abstract Response testEnumParameters(List enumHeaderStringArray,String enumHeaderString, List enumQueryStringArray, String enumQueryString, Integer enumQueryInteger, Double enumQueryDouble,List enumFormStringArray,String enumFormString,SecurityContext securityContext) throws NotFoundException; - public abstract Response testGroupParameters( Integer stringGroup,Boolean booleanGroup, Long int64Group,SecurityContext securityContext) throws NotFoundException; + public abstract Response testGroupParameters( @NotNull Integer requiredStringGroup,Boolean requiredBooleanGroup, @NotNull Long requiredInt64Group, Integer stringGroup,Boolean booleanGroup, Long int64Group,SecurityContext securityContext) throws NotFoundException; public abstract Response testInlineAdditionalProperties(Map requestBody,SecurityContext securityContext) throws NotFoundException; public abstract Response testJsonFormData(String param,String param2,SecurityContext securityContext) throws NotFoundException; public abstract Response uploadFileWithRequiredFile(Long petId,InputStream requiredFileInputStream, FormDataContentDisposition requiredFileDetail,String additionalMetadata,SecurityContext securityContext) throws NotFoundException; diff --git a/samples/server/petstore/jaxrs/jersey2/src/main/java/org/openapitools/api/impl/FakeApiServiceImpl.java b/samples/server/petstore/jaxrs/jersey2/src/main/java/org/openapitools/api/impl/FakeApiServiceImpl.java index 37288374e7f..d771656bb35 100644 --- a/samples/server/petstore/jaxrs/jersey2/src/main/java/org/openapitools/api/impl/FakeApiServiceImpl.java +++ b/samples/server/petstore/jaxrs/jersey2/src/main/java/org/openapitools/api/impl/FakeApiServiceImpl.java @@ -71,7 +71,7 @@ public class FakeApiServiceImpl extends FakeApiService { return Response.ok().entity(new ApiResponseMessage(ApiResponseMessage.OK, "magic!")).build(); } @Override - public Response testGroupParameters( Integer stringGroup, Boolean booleanGroup, Long int64Group, SecurityContext securityContext) throws NotFoundException { + public Response testGroupParameters( @NotNull Integer requiredStringGroup, Boolean requiredBooleanGroup, @NotNull Long requiredInt64Group, Integer stringGroup, Boolean booleanGroup, Long int64Group, SecurityContext securityContext) throws NotFoundException { // do some magic! return Response.ok().entity(new ApiResponseMessage(ApiResponseMessage.OK, "magic!")).build(); } diff --git a/samples/server/petstore/php-lumen/lib/app/Http/Controllers/FakeApi.php b/samples/server/petstore/php-lumen/lib/app/Http/Controllers/FakeApi.php index decfebfb5f7..fd3261ab546 100644 --- a/samples/server/petstore/php-lumen/lib/app/Http/Controllers/FakeApi.php +++ b/samples/server/petstore/php-lumen/lib/app/Http/Controllers/FakeApi.php @@ -199,6 +199,21 @@ class FakeApi extends Controller //not path params validation + if (!isset($input['required_string_group'])) { + throw new \InvalidArgumentException('Missing the required parameter $required_string_group when calling testGroupParameters'); + } + $required_string_group = $input['required_string_group']; + + if (!isset($input['required_boolean_group'])) { + throw new \InvalidArgumentException('Missing the required parameter $required_boolean_group when calling testGroupParameters'); + } + $required_boolean_group = $input['required_boolean_group']; + + if (!isset($input['required_int64_group'])) { + throw new \InvalidArgumentException('Missing the required parameter $required_int64_group when calling testGroupParameters'); + } + $required_int64_group = $input['required_int64_group']; + $string_group = $input['string_group']; $boolean_group = $input['boolean_group']; diff --git a/samples/server/petstore/php-slim/lib/Api/FakeApi.php b/samples/server/petstore/php-slim/lib/Api/FakeApi.php index 5934463100a..d6dd7958c8f 100644 --- a/samples/server/petstore/php-slim/lib/Api/FakeApi.php +++ b/samples/server/petstore/php-slim/lib/Api/FakeApi.php @@ -218,8 +218,11 @@ class FakeApi extends AbstractApiController public function testGroupParameters($request, $response, $args) { $headers = $request->getHeaders(); + $requiredBooleanGroup = $request->hasHeader('required_boolean_group') ? $headers['required_boolean_group'] : null; $booleanGroup = $request->hasHeader('boolean_group') ? $headers['boolean_group'] : null; $queryParams = $request->getQueryParams(); + $requiredStringGroup = $request->getQueryParam('required_string_group'); + $requiredInt64Group = $request->getQueryParam('required_int64_group'); $stringGroup = $request->getQueryParam('string_group'); $int64Group = $request->getQueryParam('int64_group'); $response->write('How about implementing testGroupParameters as a DELETE method ?'); diff --git a/samples/server/petstore/spring-mvc-j8-async/src/main/java/org/openapitools/api/FakeApi.java b/samples/server/petstore/spring-mvc-j8-async/src/main/java/org/openapitools/api/FakeApi.java index 740684c9c49..3d2219c1a40 100644 --- a/samples/server/petstore/spring-mvc-j8-async/src/main/java/org/openapitools/api/FakeApi.java +++ b/samples/server/petstore/spring-mvc-j8-async/src/main/java/org/openapitools/api/FakeApi.java @@ -183,7 +183,7 @@ public interface FakeApi { @ApiResponse(code = 400, message = "Someting wrong") }) @RequestMapping(value = "/fake", method = RequestMethod.DELETE) - default CompletableFuture> testGroupParameters(@ApiParam(value = "String in group parameters") @Valid @RequestParam(value = "string_group", required = false) Integer stringGroup,@ApiParam(value = "Boolean in group parameters" ) @RequestHeader(value="boolean_group", required=false) Boolean booleanGroup,@ApiParam(value = "Integer in group parameters") @Valid @RequestParam(value = "int64_group", required = false) Long int64Group) { + default CompletableFuture> testGroupParameters(@NotNull @ApiParam(value = "Required String in group parameters", required = true) @Valid @RequestParam(value = "required_string_group", required = true) Integer requiredStringGroup,@ApiParam(value = "Required Boolean in group parameters" ,required=true) @RequestHeader(value="required_boolean_group", required=true) Boolean requiredBooleanGroup,@NotNull @ApiParam(value = "Required Integer in group parameters", required = true) @Valid @RequestParam(value = "required_int64_group", required = true) Long requiredInt64Group,@ApiParam(value = "String in group parameters") @Valid @RequestParam(value = "string_group", required = false) Integer stringGroup,@ApiParam(value = "Boolean in group parameters" ) @RequestHeader(value="boolean_group", required=false) Boolean booleanGroup,@ApiParam(value = "Integer in group parameters") @Valid @RequestParam(value = "int64_group", required = false) Long int64Group) { return CompletableFuture.completedFuture(new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED)); } diff --git a/samples/server/petstore/spring-mvc-j8-localdatetime/src/main/java/org/openapitools/api/FakeApi.java b/samples/server/petstore/spring-mvc-j8-localdatetime/src/main/java/org/openapitools/api/FakeApi.java index 34474fb2f7e..73d426743f9 100644 --- a/samples/server/petstore/spring-mvc-j8-localdatetime/src/main/java/org/openapitools/api/FakeApi.java +++ b/samples/server/petstore/spring-mvc-j8-localdatetime/src/main/java/org/openapitools/api/FakeApi.java @@ -178,7 +178,7 @@ public interface FakeApi { @ApiResponse(code = 400, message = "Someting wrong") }) @RequestMapping(value = "/fake", method = RequestMethod.DELETE) - default ResponseEntity testGroupParameters(@ApiParam(value = "String in group parameters") @Valid @RequestParam(value = "string_group", required = false) Integer stringGroup,@ApiParam(value = "Boolean in group parameters" ) @RequestHeader(value="boolean_group", required=false) Boolean booleanGroup,@ApiParam(value = "Integer in group parameters") @Valid @RequestParam(value = "int64_group", required = false) Long int64Group) { + default ResponseEntity testGroupParameters(@NotNull @ApiParam(value = "Required String in group parameters", required = true) @Valid @RequestParam(value = "required_string_group", required = true) Integer requiredStringGroup,@ApiParam(value = "Required Boolean in group parameters" ,required=true) @RequestHeader(value="required_boolean_group", required=true) Boolean requiredBooleanGroup,@NotNull @ApiParam(value = "Required Integer in group parameters", required = true) @Valid @RequestParam(value = "required_int64_group", required = true) Long requiredInt64Group,@ApiParam(value = "String in group parameters") @Valid @RequestParam(value = "string_group", required = false) Integer stringGroup,@ApiParam(value = "Boolean in group parameters" ) @RequestHeader(value="boolean_group", required=false) Boolean booleanGroup,@ApiParam(value = "Integer in group parameters") @Valid @RequestParam(value = "int64_group", required = false) Long int64Group) { return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); } diff --git a/samples/server/petstore/spring-mvc/src/main/java/org/openapitools/api/FakeApi.java b/samples/server/petstore/spring-mvc/src/main/java/org/openapitools/api/FakeApi.java index 80d658308bb..c24a3440068 100644 --- a/samples/server/petstore/spring-mvc/src/main/java/org/openapitools/api/FakeApi.java +++ b/samples/server/petstore/spring-mvc/src/main/java/org/openapitools/api/FakeApi.java @@ -127,7 +127,7 @@ public interface FakeApi { @ApiResponse(code = 400, message = "Someting wrong") }) @RequestMapping(value = "/fake", method = RequestMethod.DELETE) - ResponseEntity testGroupParameters(@ApiParam(value = "String in group parameters") @Valid @RequestParam(value = "string_group", required = false) Integer stringGroup,@ApiParam(value = "Boolean in group parameters" ) @RequestHeader(value="boolean_group", required=false) Boolean booleanGroup,@ApiParam(value = "Integer in group parameters") @Valid @RequestParam(value = "int64_group", required = false) Long int64Group); + ResponseEntity testGroupParameters(@NotNull @ApiParam(value = "Required String in group parameters", required = true) @Valid @RequestParam(value = "required_string_group", required = true) Integer requiredStringGroup,@ApiParam(value = "Required Boolean in group parameters" ,required=true) @RequestHeader(value="required_boolean_group", required=true) Boolean requiredBooleanGroup,@NotNull @ApiParam(value = "Required Integer in group parameters", required = true) @Valid @RequestParam(value = "required_int64_group", required = true) Long requiredInt64Group,@ApiParam(value = "String in group parameters") @Valid @RequestParam(value = "string_group", required = false) Integer stringGroup,@ApiParam(value = "Boolean in group parameters" ) @RequestHeader(value="boolean_group", required=false) Boolean booleanGroup,@ApiParam(value = "Integer in group parameters") @Valid @RequestParam(value = "int64_group", required = false) Long int64Group); @ApiOperation(value = "test inline additionalProperties", nickname = "testInlineAdditionalProperties", notes = "", tags={ "fake", }) diff --git a/samples/server/petstore/spring-mvc/src/main/java/org/openapitools/api/FakeApiController.java b/samples/server/petstore/spring-mvc/src/main/java/org/openapitools/api/FakeApiController.java index 98b54389e3a..a4991d3e5f1 100644 --- a/samples/server/petstore/spring-mvc/src/main/java/org/openapitools/api/FakeApiController.java +++ b/samples/server/petstore/spring-mvc/src/main/java/org/openapitools/api/FakeApiController.java @@ -97,7 +97,7 @@ public class FakeApiController implements FakeApi { } - public ResponseEntity testGroupParameters(@ApiParam(value = "String in group parameters") @Valid @RequestParam(value = "string_group", required = false) Integer stringGroup,@ApiParam(value = "Boolean in group parameters" ) @RequestHeader(value="boolean_group", required=false) Boolean booleanGroup,@ApiParam(value = "Integer in group parameters") @Valid @RequestParam(value = "int64_group", required = false) Long int64Group) { + public ResponseEntity testGroupParameters(@NotNull @ApiParam(value = "Required String in group parameters", required = true) @Valid @RequestParam(value = "required_string_group", required = true) Integer requiredStringGroup,@ApiParam(value = "Required Boolean in group parameters" ,required=true) @RequestHeader(value="required_boolean_group", required=true) Boolean requiredBooleanGroup,@NotNull @ApiParam(value = "Required Integer in group parameters", required = true) @Valid @RequestParam(value = "required_int64_group", required = true) Long requiredInt64Group,@ApiParam(value = "String in group parameters") @Valid @RequestParam(value = "string_group", required = false) Integer stringGroup,@ApiParam(value = "Boolean in group parameters" ) @RequestHeader(value="boolean_group", required=false) Boolean booleanGroup,@ApiParam(value = "Integer in group parameters") @Valid @RequestParam(value = "int64_group", required = false) Long int64Group) { return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); } diff --git a/samples/server/petstore/springboot-beanvalidation/src/main/java/org/openapitools/api/FakeApi.java b/samples/server/petstore/springboot-beanvalidation/src/main/java/org/openapitools/api/FakeApi.java index 80d658308bb..c24a3440068 100644 --- a/samples/server/petstore/springboot-beanvalidation/src/main/java/org/openapitools/api/FakeApi.java +++ b/samples/server/petstore/springboot-beanvalidation/src/main/java/org/openapitools/api/FakeApi.java @@ -127,7 +127,7 @@ public interface FakeApi { @ApiResponse(code = 400, message = "Someting wrong") }) @RequestMapping(value = "/fake", method = RequestMethod.DELETE) - ResponseEntity testGroupParameters(@ApiParam(value = "String in group parameters") @Valid @RequestParam(value = "string_group", required = false) Integer stringGroup,@ApiParam(value = "Boolean in group parameters" ) @RequestHeader(value="boolean_group", required=false) Boolean booleanGroup,@ApiParam(value = "Integer in group parameters") @Valid @RequestParam(value = "int64_group", required = false) Long int64Group); + ResponseEntity testGroupParameters(@NotNull @ApiParam(value = "Required String in group parameters", required = true) @Valid @RequestParam(value = "required_string_group", required = true) Integer requiredStringGroup,@ApiParam(value = "Required Boolean in group parameters" ,required=true) @RequestHeader(value="required_boolean_group", required=true) Boolean requiredBooleanGroup,@NotNull @ApiParam(value = "Required Integer in group parameters", required = true) @Valid @RequestParam(value = "required_int64_group", required = true) Long requiredInt64Group,@ApiParam(value = "String in group parameters") @Valid @RequestParam(value = "string_group", required = false) Integer stringGroup,@ApiParam(value = "Boolean in group parameters" ) @RequestHeader(value="boolean_group", required=false) Boolean booleanGroup,@ApiParam(value = "Integer in group parameters") @Valid @RequestParam(value = "int64_group", required = false) Long int64Group); @ApiOperation(value = "test inline additionalProperties", nickname = "testInlineAdditionalProperties", notes = "", tags={ "fake", }) diff --git a/samples/server/petstore/springboot-beanvalidation/src/main/java/org/openapitools/api/FakeApiController.java b/samples/server/petstore/springboot-beanvalidation/src/main/java/org/openapitools/api/FakeApiController.java index 7981d705578..c3369289623 100644 --- a/samples/server/petstore/springboot-beanvalidation/src/main/java/org/openapitools/api/FakeApiController.java +++ b/samples/server/petstore/springboot-beanvalidation/src/main/java/org/openapitools/api/FakeApiController.java @@ -97,7 +97,7 @@ public class FakeApiController implements FakeApi { } - public ResponseEntity testGroupParameters(@ApiParam(value = "String in group parameters") @Valid @RequestParam(value = "string_group", required = false) Integer stringGroup,@ApiParam(value = "Boolean in group parameters" ) @RequestHeader(value="boolean_group", required=false) Boolean booleanGroup,@ApiParam(value = "Integer in group parameters") @Valid @RequestParam(value = "int64_group", required = false) Long int64Group) { + public ResponseEntity testGroupParameters(@NotNull @ApiParam(value = "Required String in group parameters", required = true) @Valid @RequestParam(value = "required_string_group", required = true) Integer requiredStringGroup,@ApiParam(value = "Required Boolean in group parameters" ,required=true) @RequestHeader(value="required_boolean_group", required=true) Boolean requiredBooleanGroup,@NotNull @ApiParam(value = "Required Integer in group parameters", required = true) @Valid @RequestParam(value = "required_int64_group", required = true) Long requiredInt64Group,@ApiParam(value = "String in group parameters") @Valid @RequestParam(value = "string_group", required = false) Integer stringGroup,@ApiParam(value = "Boolean in group parameters" ) @RequestHeader(value="boolean_group", required=false) Boolean booleanGroup,@ApiParam(value = "Integer in group parameters") @Valid @RequestParam(value = "int64_group", required = false) Long int64Group) { return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); } diff --git a/samples/server/petstore/springboot-delegate-j8/src/main/java/org/openapitools/api/FakeApi.java b/samples/server/petstore/springboot-delegate-j8/src/main/java/org/openapitools/api/FakeApi.java index 1cfd6cdbdf5..0dbb0526a53 100644 --- a/samples/server/petstore/springboot-delegate-j8/src/main/java/org/openapitools/api/FakeApi.java +++ b/samples/server/petstore/springboot-delegate-j8/src/main/java/org/openapitools/api/FakeApi.java @@ -149,8 +149,8 @@ public interface FakeApi { @ApiResponse(code = 400, message = "Someting wrong") }) @RequestMapping(value = "/fake", method = RequestMethod.DELETE) - default ResponseEntity testGroupParameters(@ApiParam(value = "String in group parameters") @Valid @RequestParam(value = "string_group", required = false) Integer stringGroup,@ApiParam(value = "Boolean in group parameters" ) @RequestHeader(value="boolean_group", required=false) Boolean booleanGroup,@ApiParam(value = "Integer in group parameters") @Valid @RequestParam(value = "int64_group", required = false) Long int64Group) { - return getDelegate().testGroupParameters(stringGroup, booleanGroup, int64Group); + default ResponseEntity testGroupParameters(@NotNull @ApiParam(value = "Required String in group parameters", required = true) @Valid @RequestParam(value = "required_string_group", required = true) Integer requiredStringGroup,@ApiParam(value = "Required Boolean in group parameters" ,required=true) @RequestHeader(value="required_boolean_group", required=true) Boolean requiredBooleanGroup,@NotNull @ApiParam(value = "Required Integer in group parameters", required = true) @Valid @RequestParam(value = "required_int64_group", required = true) Long requiredInt64Group,@ApiParam(value = "String in group parameters") @Valid @RequestParam(value = "string_group", required = false) Integer stringGroup,@ApiParam(value = "Boolean in group parameters" ) @RequestHeader(value="boolean_group", required=false) Boolean booleanGroup,@ApiParam(value = "Integer in group parameters") @Valid @RequestParam(value = "int64_group", required = false) Long int64Group) { + return getDelegate().testGroupParameters(requiredStringGroup, requiredBooleanGroup, requiredInt64Group, stringGroup, booleanGroup, int64Group); } diff --git a/samples/server/petstore/springboot-delegate-j8/src/main/java/org/openapitools/api/FakeApiDelegate.java b/samples/server/petstore/springboot-delegate-j8/src/main/java/org/openapitools/api/FakeApiDelegate.java index 2694060b724..9c0f4d8375d 100644 --- a/samples/server/petstore/springboot-delegate-j8/src/main/java/org/openapitools/api/FakeApiDelegate.java +++ b/samples/server/petstore/springboot-delegate-j8/src/main/java/org/openapitools/api/FakeApiDelegate.java @@ -144,7 +144,10 @@ public interface FakeApiDelegate { /** * @see FakeApi#testGroupParameters */ - default ResponseEntity testGroupParameters(Integer stringGroup, + default ResponseEntity testGroupParameters(Integer requiredStringGroup, + Boolean requiredBooleanGroup, + Long requiredInt64Group, + Integer stringGroup, Boolean booleanGroup, Long int64Group) { return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); diff --git a/samples/server/petstore/springboot-delegate/src/main/java/org/openapitools/api/FakeApi.java b/samples/server/petstore/springboot-delegate/src/main/java/org/openapitools/api/FakeApi.java index 80d658308bb..c24a3440068 100644 --- a/samples/server/petstore/springboot-delegate/src/main/java/org/openapitools/api/FakeApi.java +++ b/samples/server/petstore/springboot-delegate/src/main/java/org/openapitools/api/FakeApi.java @@ -127,7 +127,7 @@ public interface FakeApi { @ApiResponse(code = 400, message = "Someting wrong") }) @RequestMapping(value = "/fake", method = RequestMethod.DELETE) - ResponseEntity testGroupParameters(@ApiParam(value = "String in group parameters") @Valid @RequestParam(value = "string_group", required = false) Integer stringGroup,@ApiParam(value = "Boolean in group parameters" ) @RequestHeader(value="boolean_group", required=false) Boolean booleanGroup,@ApiParam(value = "Integer in group parameters") @Valid @RequestParam(value = "int64_group", required = false) Long int64Group); + ResponseEntity testGroupParameters(@NotNull @ApiParam(value = "Required String in group parameters", required = true) @Valid @RequestParam(value = "required_string_group", required = true) Integer requiredStringGroup,@ApiParam(value = "Required Boolean in group parameters" ,required=true) @RequestHeader(value="required_boolean_group", required=true) Boolean requiredBooleanGroup,@NotNull @ApiParam(value = "Required Integer in group parameters", required = true) @Valid @RequestParam(value = "required_int64_group", required = true) Long requiredInt64Group,@ApiParam(value = "String in group parameters") @Valid @RequestParam(value = "string_group", required = false) Integer stringGroup,@ApiParam(value = "Boolean in group parameters" ) @RequestHeader(value="boolean_group", required=false) Boolean booleanGroup,@ApiParam(value = "Integer in group parameters") @Valid @RequestParam(value = "int64_group", required = false) Long int64Group); @ApiOperation(value = "test inline additionalProperties", nickname = "testInlineAdditionalProperties", notes = "", tags={ "fake", }) diff --git a/samples/server/petstore/springboot-delegate/src/main/java/org/openapitools/api/FakeApiController.java b/samples/server/petstore/springboot-delegate/src/main/java/org/openapitools/api/FakeApiController.java index 41ebeb12176..9d4ef3e8206 100644 --- a/samples/server/petstore/springboot-delegate/src/main/java/org/openapitools/api/FakeApiController.java +++ b/samples/server/petstore/springboot-delegate/src/main/java/org/openapitools/api/FakeApiController.java @@ -74,8 +74,8 @@ public class FakeApiController implements FakeApi { return delegate.testEnumParameters(enumHeaderStringArray, enumHeaderString, enumQueryStringArray, enumQueryString, enumQueryInteger, enumQueryDouble, enumFormStringArray, enumFormString); } - public ResponseEntity testGroupParameters(@ApiParam(value = "String in group parameters") @Valid @RequestParam(value = "string_group", required = false) Integer stringGroup,@ApiParam(value = "Boolean in group parameters" ) @RequestHeader(value="boolean_group", required=false) Boolean booleanGroup,@ApiParam(value = "Integer in group parameters") @Valid @RequestParam(value = "int64_group", required = false) Long int64Group) { - return delegate.testGroupParameters(stringGroup, booleanGroup, int64Group); + public ResponseEntity testGroupParameters(@NotNull @ApiParam(value = "Required String in group parameters", required = true) @Valid @RequestParam(value = "required_string_group", required = true) Integer requiredStringGroup,@ApiParam(value = "Required Boolean in group parameters" ,required=true) @RequestHeader(value="required_boolean_group", required=true) Boolean requiredBooleanGroup,@NotNull @ApiParam(value = "Required Integer in group parameters", required = true) @Valid @RequestParam(value = "required_int64_group", required = true) Long requiredInt64Group,@ApiParam(value = "String in group parameters") @Valid @RequestParam(value = "string_group", required = false) Integer stringGroup,@ApiParam(value = "Boolean in group parameters" ) @RequestHeader(value="boolean_group", required=false) Boolean booleanGroup,@ApiParam(value = "Integer in group parameters") @Valid @RequestParam(value = "int64_group", required = false) Long int64Group) { + return delegate.testGroupParameters(requiredStringGroup, requiredBooleanGroup, requiredInt64Group, stringGroup, booleanGroup, int64Group); } public ResponseEntity testInlineAdditionalProperties(@ApiParam(value = "request body" ,required=true ) @Valid @RequestBody Map requestBody) { diff --git a/samples/server/petstore/springboot-delegate/src/main/java/org/openapitools/api/FakeApiDelegate.java b/samples/server/petstore/springboot-delegate/src/main/java/org/openapitools/api/FakeApiDelegate.java index cd84bcec314..64d24f36c56 100644 --- a/samples/server/petstore/springboot-delegate/src/main/java/org/openapitools/api/FakeApiDelegate.java +++ b/samples/server/petstore/springboot-delegate/src/main/java/org/openapitools/api/FakeApiDelegate.java @@ -93,7 +93,10 @@ public interface FakeApiDelegate { /** * @see FakeApi#testGroupParameters */ - ResponseEntity testGroupParameters(Integer stringGroup, + ResponseEntity testGroupParameters(Integer requiredStringGroup, + Boolean requiredBooleanGroup, + Long requiredInt64Group, + Integer stringGroup, Boolean booleanGroup, Long int64Group); diff --git a/samples/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/api/FakeApi.java b/samples/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/api/FakeApi.java index a33bc5dbb0d..509cf98165a 100644 --- a/samples/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/api/FakeApi.java +++ b/samples/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/api/FakeApi.java @@ -197,11 +197,12 @@ public interface FakeApi { @ApiResponses(value = { @ApiResponse(code = 400, message = "Someting wrong") }) @ApiImplicitParams({ + @ApiImplicitParam(name = "requiredBooleanGroup", value = "Required Boolean in group parameters", required=true, dataType = "Boolean", paramType = "header"), @ApiImplicitParam(name = "booleanGroup", value = "Boolean in group parameters", dataType = "Boolean", paramType = "header") }) @RequestMapping(value = "/fake", method = RequestMethod.DELETE) - default ResponseEntity testGroupParameters(@ApiParam(value = "String in group parameters") @Valid @RequestParam(value = "string_group", required = false) Integer stringGroup,@ApiParam(value = "Integer in group parameters") @Valid @RequestParam(value = "int64_group", required = false) Long int64Group) { + default ResponseEntity testGroupParameters(@NotNull @ApiParam(value = "Required String in group parameters", required = true) @Valid @RequestParam(value = "required_string_group", required = true) Integer requiredStringGroup,@NotNull @ApiParam(value = "Required Integer in group parameters", required = true) @Valid @RequestParam(value = "required_int64_group", required = true) Long requiredInt64Group,@ApiParam(value = "String in group parameters") @Valid @RequestParam(value = "string_group", required = false) Integer stringGroup,@ApiParam(value = "Integer in group parameters") @Valid @RequestParam(value = "int64_group", required = false) Long int64Group) { return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); } diff --git a/samples/server/petstore/springboot-reactive/src/main/java/org/openapitools/api/FakeApi.java b/samples/server/petstore/springboot-reactive/src/main/java/org/openapitools/api/FakeApi.java index 2111513f467..a027b932a3c 100644 --- a/samples/server/petstore/springboot-reactive/src/main/java/org/openapitools/api/FakeApi.java +++ b/samples/server/petstore/springboot-reactive/src/main/java/org/openapitools/api/FakeApi.java @@ -152,8 +152,8 @@ public interface FakeApi { @ApiResponse(code = 400, message = "Someting wrong") }) @RequestMapping(value = "/fake", method = RequestMethod.DELETE) - default Mono> testGroupParameters(@ApiParam(value = "String in group parameters") @Valid @RequestParam(value = "string_group", required = false) Integer stringGroup,@ApiParam(value = "Boolean in group parameters" ) @RequestHeader(value="boolean_group", required=false) Boolean booleanGroup,@ApiParam(value = "Integer in group parameters") @Valid @RequestParam(value = "int64_group", required = false) Long int64Group, ServerWebExchange exchange) { - return getDelegate().testGroupParameters(stringGroup, booleanGroup, int64Group, exchange); + default Mono> testGroupParameters(@NotNull @ApiParam(value = "Required String in group parameters", required = true) @Valid @RequestParam(value = "required_string_group", required = true) Integer requiredStringGroup,@ApiParam(value = "Required Boolean in group parameters" ,required=true) @RequestHeader(value="required_boolean_group", required=true) Boolean requiredBooleanGroup,@NotNull @ApiParam(value = "Required Integer in group parameters", required = true) @Valid @RequestParam(value = "required_int64_group", required = true) Long requiredInt64Group,@ApiParam(value = "String in group parameters") @Valid @RequestParam(value = "string_group", required = false) Integer stringGroup,@ApiParam(value = "Boolean in group parameters" ) @RequestHeader(value="boolean_group", required=false) Boolean booleanGroup,@ApiParam(value = "Integer in group parameters") @Valid @RequestParam(value = "int64_group", required = false) Long int64Group, ServerWebExchange exchange) { + return getDelegate().testGroupParameters(requiredStringGroup, requiredBooleanGroup, requiredInt64Group, stringGroup, booleanGroup, int64Group, exchange); } diff --git a/samples/server/petstore/springboot-reactive/src/main/java/org/openapitools/api/FakeApiDelegate.java b/samples/server/petstore/springboot-reactive/src/main/java/org/openapitools/api/FakeApiDelegate.java index 117a233a8e0..3b3f23ccece 100644 --- a/samples/server/petstore/springboot-reactive/src/main/java/org/openapitools/api/FakeApiDelegate.java +++ b/samples/server/petstore/springboot-reactive/src/main/java/org/openapitools/api/FakeApiDelegate.java @@ -170,7 +170,10 @@ public interface FakeApiDelegate { /** * @see FakeApi#testGroupParameters */ - default Mono> testGroupParameters(Integer stringGroup, + default Mono> testGroupParameters(Integer requiredStringGroup, + Boolean requiredBooleanGroup, + Long requiredInt64Group, + Integer stringGroup, Boolean booleanGroup, Long int64Group, ServerWebExchange exchange) { diff --git a/samples/server/petstore/springboot-reactive/src/main/resources/openapi.yaml b/samples/server/petstore/springboot-reactive/src/main/resources/openapi.yaml index ad445e88402..f3f7ba18010 100644 --- a/samples/server/petstore/springboot-reactive/src/main/resources/openapi.yaml +++ b/samples/server/petstore/springboot-reactive/src/main/resources/openapi.yaml @@ -666,6 +666,25 @@ paths: description: Fake endpoint to test group parameters (optional) operationId: testGroupParameters parameters: + - description: Required String in group parameters + in: query + name: required_string_group + required: true + schema: + type: integer + - description: Required Boolean in group parameters + in: header + name: required_boolean_group + required: true + schema: + type: boolean + - description: Required Integer in group parameters + in: query + name: required_int64_group + required: true + schema: + format: int64 + type: integer - description: String in group parameters in: query name: string_group diff --git a/samples/server/petstore/springboot-useoptional/src/main/java/org/openapitools/api/FakeApi.java b/samples/server/petstore/springboot-useoptional/src/main/java/org/openapitools/api/FakeApi.java index 4805c6d10a6..5885a85911f 100644 --- a/samples/server/petstore/springboot-useoptional/src/main/java/org/openapitools/api/FakeApi.java +++ b/samples/server/petstore/springboot-useoptional/src/main/java/org/openapitools/api/FakeApi.java @@ -178,7 +178,7 @@ public interface FakeApi { @ApiResponse(code = 400, message = "Someting wrong") }) @RequestMapping(value = "/fake", method = RequestMethod.DELETE) - default ResponseEntity testGroupParameters(@ApiParam(value = "String in group parameters") @Valid @RequestParam(value = "string_group", required = false) Optional stringGroup,@ApiParam(value = "Boolean in group parameters" ) @RequestHeader(value="boolean_group", required=false) Optional booleanGroup,@ApiParam(value = "Integer in group parameters") @Valid @RequestParam(value = "int64_group", required = false) Optional int64Group) { + default ResponseEntity testGroupParameters(@NotNull @ApiParam(value = "Required String in group parameters", required = true) @Valid @RequestParam(value = "required_string_group", required = true) Integer requiredStringGroup,@ApiParam(value = "Required Boolean in group parameters" ,required=true) @RequestHeader(value="required_boolean_group", required=true) Boolean requiredBooleanGroup,@NotNull @ApiParam(value = "Required Integer in group parameters", required = true) @Valid @RequestParam(value = "required_int64_group", required = true) Long requiredInt64Group,@ApiParam(value = "String in group parameters") @Valid @RequestParam(value = "string_group", required = false) Optional stringGroup,@ApiParam(value = "Boolean in group parameters" ) @RequestHeader(value="boolean_group", required=false) Optional booleanGroup,@ApiParam(value = "Integer in group parameters") @Valid @RequestParam(value = "int64_group", required = false) Optional int64Group) { return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); } diff --git a/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/api/FakeApi.java b/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/api/FakeApi.java index e54182d3ae6..d6095b486e5 100644 --- a/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/api/FakeApi.java +++ b/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/api/FakeApi.java @@ -191,7 +191,7 @@ public interface FakeApi { @ApiResponse(code = 400, message = "Someting wrong") }) @RequestMapping(value = "/fake", method = RequestMethod.DELETE) - default ResponseEntity testGroupParameters(@ApiParam(value = "String in group parameters") @Valid @RequestParam(value = "string_group", required = false) Integer stringGroup,@ApiParam(value = "Boolean in group parameters" ) @RequestHeader(value="boolean_group", required=false) Boolean booleanGroup,@ApiParam(value = "Integer in group parameters") @Valid @RequestParam(value = "int64_group", required = false) Long int64Group) { + default ResponseEntity testGroupParameters(@NotNull @ApiParam(value = "Required String in group parameters", required = true) @Valid @RequestParam(value = "required_string_group", required = true) Integer requiredStringGroup,@ApiParam(value = "Required Boolean in group parameters" ,required=true) @RequestHeader(value="required_boolean_group", required=true) Boolean requiredBooleanGroup,@NotNull @ApiParam(value = "Required Integer in group parameters", required = true) @Valid @RequestParam(value = "required_int64_group", required = true) Long requiredInt64Group,@ApiParam(value = "String in group parameters") @Valid @RequestParam(value = "string_group", required = false) Integer stringGroup,@ApiParam(value = "Boolean in group parameters" ) @RequestHeader(value="boolean_group", required=false) Boolean booleanGroup,@ApiParam(value = "Integer in group parameters") @Valid @RequestParam(value = "int64_group", required = false) Long int64Group) { return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); } diff --git a/samples/server/petstore/springboot/src/main/java/org/openapitools/api/FakeApi.java b/samples/server/petstore/springboot/src/main/java/org/openapitools/api/FakeApi.java index a3a21d4172b..5ec7e4c7052 100644 --- a/samples/server/petstore/springboot/src/main/java/org/openapitools/api/FakeApi.java +++ b/samples/server/petstore/springboot/src/main/java/org/openapitools/api/FakeApi.java @@ -178,7 +178,7 @@ public interface FakeApi { @ApiResponse(code = 400, message = "Someting wrong") }) @RequestMapping(value = "/fake", method = RequestMethod.DELETE) - default ResponseEntity testGroupParameters(@ApiParam(value = "String in group parameters") @Valid @RequestParam(value = "string_group", required = false) Integer stringGroup,@ApiParam(value = "Boolean in group parameters" ) @RequestHeader(value="boolean_group", required=false) Boolean booleanGroup,@ApiParam(value = "Integer in group parameters") @Valid @RequestParam(value = "int64_group", required = false) Long int64Group) { + default ResponseEntity testGroupParameters(@NotNull @ApiParam(value = "Required String in group parameters", required = true) @Valid @RequestParam(value = "required_string_group", required = true) Integer requiredStringGroup,@ApiParam(value = "Required Boolean in group parameters" ,required=true) @RequestHeader(value="required_boolean_group", required=true) Boolean requiredBooleanGroup,@NotNull @ApiParam(value = "Required Integer in group parameters", required = true) @Valid @RequestParam(value = "required_int64_group", required = true) Long requiredInt64Group,@ApiParam(value = "String in group parameters") @Valid @RequestParam(value = "string_group", required = false) Integer stringGroup,@ApiParam(value = "Boolean in group parameters" ) @RequestHeader(value="boolean_group", required=false) Boolean booleanGroup,@ApiParam(value = "Integer in group parameters") @Valid @RequestParam(value = "int64_group", required = false) Long int64Group) { return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); } From 9db62f459a9a9950db5ef83dccc77f4261b06d61 Mon Sep 17 00:00:00 2001 From: meganemura Date: Mon, 12 Nov 2018 15:26:05 +0900 Subject: [PATCH 13/27] Fix return_type parameter examples in ruby-client (#1399) * Fix return_type parameter examples * $ bin/openapi3/ruby-client-petstore.sh --- .../src/main/resources/ruby-client/api_client.mustache | 2 +- samples/client/petstore/ruby/lib/petstore/api_client.rb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/openapi-generator/src/main/resources/ruby-client/api_client.mustache b/modules/openapi-generator/src/main/resources/ruby-client/api_client.mustache index 31ed22373a5..03b8ca31f92 100644 --- a/modules/openapi-generator/src/main/resources/ruby-client/api_client.mustache +++ b/modules/openapi-generator/src/main/resources/ruby-client/api_client.mustache @@ -137,7 +137,7 @@ module {{moduleName}} # Deserialize the response to the given return type. # # @param [Response] response HTTP response - # @param [String] return_type some examples: "User", "Array[User]", "Hash[String,Integer]" + # @param [String] return_type some examples: "User", "Array", "Hash" def deserialize(response, return_type) body = response.body diff --git a/samples/client/petstore/ruby/lib/petstore/api_client.rb b/samples/client/petstore/ruby/lib/petstore/api_client.rb index 390afbc9de0..36d559cdd03 100644 --- a/samples/client/petstore/ruby/lib/petstore/api_client.rb +++ b/samples/client/petstore/ruby/lib/petstore/api_client.rb @@ -143,7 +143,7 @@ module Petstore # Deserialize the response to the given return type. # # @param [Response] response HTTP response - # @param [String] return_type some examples: "User", "Array[User]", "Hash[String,Integer]" + # @param [String] return_type some examples: "User", "Array", "Hash" def deserialize(response, return_type) body = response.body From 7e3149e675d023c47b53c5727b5d0baebf200892 Mon Sep 17 00:00:00 2001 From: William Cheng Date: Mon, 12 Nov 2018 22:06:58 +0800 Subject: [PATCH 14/27] fix npe when paramName is null (#1416) --- .../main/java/org/openapitools/codegen/DefaultCodegen.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultCodegen.java index b1adc8ffa84..dd47986cec1 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultCodegen.java @@ -2985,6 +2985,12 @@ public class DefaultCodegen implements CodegenConfig { LOGGER.warn("Unknown parameter type: " + parameter.getName()); } + // default to UNKNOWN_PARAMETER_NAME if paramName is null + if (codegenParameter.paramName == null) { + LOGGER.warn("Parameter name not defined properly. Default to UNKNOWN_PARAMETER_NAME"); + codegenParameter.paramName = "UNKNOWN_PARAMETER_NAME"; + } + // set the parameter excample value // should be overridden by lang codegen setParameterExampleValue(codegenParameter, parameter); From 7c3a2a5c0730d8aa059bdfa1fb680d27ccece5b8 Mon Sep 17 00:00:00 2001 From: William Cheng Date: Mon, 12 Nov 2018 22:07:46 +0800 Subject: [PATCH 15/27] Fix run-in-docker by disabling useSystemClassLoader (#1418) * test run-in-docker in travis * fix command path * correct batch mode arg * disable useSystemClassLoader --- .travis.yml | 4 ++-- pom.xml | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index af7d9a2d910..efb305c8c55 100644 --- a/.travis.yml +++ b/.travis.yml @@ -122,8 +122,8 @@ script: # fail if generators contain tab '\t' - /bin/bash ./bin/utils/detect_tab_in_java_class.sh # run integration tests defined in maven pom.xml - - mvn --quiet clean install - - mvn --quiet verify -Psamples + - ./run-in-docker.sh mvn --quiet --batch-mode clean install + - mvn --quiet --batch-mode verify -Psamples after_success: # push to maven repo - if [ $SONATYPE_USERNAME ] && [ -z $TRAVIS_TAG ] && [ "$TRAVIS_PULL_REQUEST" == "false" ]; then diff --git a/pom.xml b/pom.xml index 12adf445566..589afaf479f 100644 --- a/pom.xml +++ b/pom.xml @@ -156,6 +156,7 @@ maven-surefire-plugin ${surefire-version} + false none:none -XX:+StartAttachListener -javaagent:${settings.localRepository}/org/jmockit/jmockit/${jmockit-version}/jmockit-${jmockit-version}.jar From c8837ea414e133164c8dbeb90d447630fa7e340f Mon Sep 17 00:00:00 2001 From: Akihito Nakano Date: Tue, 13 Nov 2018 17:24:04 +0900 Subject: [PATCH 16/27] Change entrypoint to docker-entrypoint.sh (#1413) Run entrypoint script --- .travis.yml | 2 +- modules/openapi-generator-cli/Dockerfile | 10 +++++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/.travis.yml b/.travis.yml index efb305c8c55..7c52b26d12e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -148,7 +148,7 @@ after_success: ## docker: build and push openapi-generator-online to DockerHub - if [ $DOCKER_HUB_USERNAME ]; then echo "$DOCKER_HUB_PASSWORD" | docker login --username=$DOCKER_HUB_USERNAME --password-stdin && docker build -t $DOCKER_GENERATOR_IMAGE_NAME ./modules/openapi-generator-online && if [ ! -z "$TRAVIS_TAG" ]; then docker tag $DOCKER_GENERATOR_IMAGE_NAME:latest $DOCKER_GENERATOR_IMAGE_NAME:$TRAVIS_TAG; fi && if [ ! -z "$TRAVIS_TAG" ] || [ "$TRAVIS_BRANCH" = "master" ]; then docker push $DOCKER_GENERATOR_IMAGE_NAME && echo "Pushed to $DOCKER_GENERATOR_IMAGE_NAME"; fi; fi ## docker: build cli image and push to Docker Hub - - if [ $DOCKER_HUB_USERNAME ]; then echo "$DOCKER_HUB_PASSWORD" | docker login --username=$DOCKER_HUB_USERNAME --password-stdin && docker build -t $DOCKER_CODEGEN_CLI_IMAGE_NAME ./modules/openapi-generator-cli && if [ ! -z "$TRAVIS_TAG" ]; then docker tag $DOCKER_CODEGEN_CLI_IMAGE_NAME:latest $DOCKER_CODEGEN_CLI_IMAGE_NAME:$TRAVIS_TAG; fi && if [ ! -z "$TRAVIS_TAG" ] || [ "$TRAVIS_BRANCH" = "master" ]; then docker push $DOCKER_CODEGEN_CLI_IMAGE_NAME && echo "Pushed to $DOCKER_CODEGEN_CLI_IMAGE_NAME"; fi; fi + - if [ $DOCKER_HUB_USERNAME ]; then echo "$DOCKER_HUB_PASSWORD" | docker login --username=$DOCKER_HUB_USERNAME --password-stdin && cp docker-entrypoint.sh ./modules/openapi-generator-cli && docker build -t $DOCKER_CODEGEN_CLI_IMAGE_NAME ./modules/openapi-generator-cli && if [ ! -z "$TRAVIS_TAG" ]; then docker tag $DOCKER_CODEGEN_CLI_IMAGE_NAME:latest $DOCKER_CODEGEN_CLI_IMAGE_NAME:$TRAVIS_TAG; fi && if [ ! -z "$TRAVIS_TAG" ] || [ "$TRAVIS_BRANCH" = "master" ]; then docker push $DOCKER_CODEGEN_CLI_IMAGE_NAME && echo "Pushed to $DOCKER_CODEGEN_CLI_IMAGE_NAME"; fi; fi env: - DOCKER_GENERATOR_IMAGE_NAME=openapitools/openapi-generator-online DOCKER_CODEGEN_CLI_IMAGE_NAME=openapitools/openapi-generator-cli NODE_ENV=test CC=gcc-5 CXX=g++-5 diff --git a/modules/openapi-generator-cli/Dockerfile b/modules/openapi-generator-cli/Dockerfile index 7f4402178de..e9c64a54619 100644 --- a/modules/openapi-generator-cli/Dockerfile +++ b/modules/openapi-generator-cli/Dockerfile @@ -1,7 +1,11 @@ FROM java:8-jre-alpine -ADD target/openapi-generator-cli.jar /opt/openapi-generator-cli/openapi-generator-cli.jar +RUN apk add --no-cache bash -ENTRYPOINT ["java", "-jar", "/opt/openapi-generator-cli/openapi-generator-cli.jar"] +ADD target/openapi-generator-cli.jar /opt/openapi-generator/modules/openapi-generator-cli/target/openapi-generator-cli.jar -CMD ["help"] \ No newline at end of file +COPY docker-entrypoint.sh /usr/local/bin/ + +ENTRYPOINT ["docker-entrypoint.sh"] + +CMD ["help"] From efde4a8eb8cc1fa67b941344e917b06c98a92da6 Mon Sep 17 00:00:00 2001 From: William Cheng Date: Wed, 14 Nov 2018 09:43:31 +0800 Subject: [PATCH 17/27] Fix issue with C# generator when the model name is "File" (#1428) * fix get schema type in abstract c# class * update c# petstore sample --- .../languages/AbstractCSharpCodegen.java | 17 +- .../OpenAPIClient/docs/FileSchemaTestClass.md | 4 +- .../Model/FileSchemaTestClass.cs | 6 +- .../.openapi-generator/VERSION | 2 +- .../csharp/OpenAPIClientNet35/README.md | 1 + .../csharp/OpenAPIClientNet35/docs/FakeApi.md | 71 ++++++ .../docs/FileSchemaTestClass.md | 4 +- .../src/Org.OpenAPITools/Api/FakeApi.cs | 116 +++++++++ .../Model/FileSchemaTestClass.cs | 6 +- .../.openapi-generator/VERSION | 2 +- .../csharp/OpenAPIClientNet40/README.md | 1 + .../csharp/OpenAPIClientNet40/docs/FakeApi.md | 71 ++++++ .../docs/FileSchemaTestClass.md | 4 +- .../src/Org.OpenAPITools/Api/FakeApi.cs | 116 +++++++++ .../Model/FileSchemaTestClass.cs | 6 +- .../.openapi-generator/VERSION | 2 +- .../csharp/OpenAPIClientNetStandard/README.md | 1 + .../OpenAPIClientNetStandard/docs/FakeApi.md | 71 ++++++ .../docs/FileSchemaTestClass.md | 4 +- .../src/Org.OpenAPITools/Api/FakeApi.cs | 233 ++++++++++++++++++ .../Model/FileSchemaTestClass.cs | 6 +- .../.openapi-generator/VERSION | 2 +- .../README.md | 1 + .../docs/FakeApi.md | 71 ++++++ .../docs/FileSchemaTestClass.md | 4 +- .../src/Org.OpenAPITools/Api/FakeApi.cs | 233 ++++++++++++++++++ .../Model/FileSchemaTestClass.cs | 6 +- 27 files changed, 1023 insertions(+), 38 deletions(-) diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractCSharpCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractCSharpCodegen.java index 305453319c3..bf9ef8322eb 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractCSharpCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractCSharpCodegen.java @@ -160,21 +160,21 @@ public abstract class AbstractCSharpCodegen extends DefaultCodegen implements Co typeMapping = new HashMap(); typeMapping.put("string", "string"); typeMapping.put("binary", "byte[]"); - typeMapping.put("bytearray", "byte[]"); + typeMapping.put("ByteArray", "byte[]"); typeMapping.put("boolean", "bool?"); typeMapping.put("integer", "int?"); typeMapping.put("float", "float?"); typeMapping.put("long", "long?"); typeMapping.put("double", "double?"); typeMapping.put("number", "decimal?"); - typeMapping.put("datetime", "DateTime?"); + typeMapping.put("DateTime", "DateTime?"); typeMapping.put("date", "DateTime?"); typeMapping.put("file", "System.IO.Stream"); typeMapping.put("array", "List"); typeMapping.put("list", "List"); typeMapping.put("map", "Dictionary"); typeMapping.put("object", "Object"); - typeMapping.put("uuid", "Guid?"); + typeMapping.put("UUID", "Guid?"); } public void setReturnICollection(boolean returnICollection) { @@ -766,20 +766,19 @@ public abstract class AbstractCSharpCodegen extends DefaultCodegen implements Co String type; if (openAPIType == null) { - openAPIType = ""; // set swagger type to empty string if null + LOGGER.error("OpenAPI Type for {} is null. Default to UNKNOWN_OPENAPI_TYPE instead.", p.getName()); + openAPIType = "UNKNOWN_OPENAPI_TYPE"; } - // NOTE: typeMapping here supports things like string/String, long/Long, datetime/DateTime as lowercase keys. - // Should we require explicit casing here (values are not insensitive). - // TODO avoid using toLowerCase as typeMapping should be case-sensitive - if (typeMapping.containsKey(openAPIType.toLowerCase(Locale.ROOT))) { - type = typeMapping.get(openAPIType.toLowerCase(Locale.ROOT)); + if (typeMapping.containsKey(openAPIType)) { + type = typeMapping.get(openAPIType); if (languageSpecificPrimitives.contains(type)) { return type; } } else { type = openAPIType; } + return toModelName(type); } diff --git a/samples/client/petstore/csharp/OpenAPIClient/docs/FileSchemaTestClass.md b/samples/client/petstore/csharp/OpenAPIClient/docs/FileSchemaTestClass.md index e0820fa4e65..244164accbe 100644 --- a/samples/client/petstore/csharp/OpenAPIClient/docs/FileSchemaTestClass.md +++ b/samples/client/petstore/csharp/OpenAPIClient/docs/FileSchemaTestClass.md @@ -3,8 +3,8 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**File** | **System.IO.Stream** | | [optional] -**Files** | **List<System.IO.Stream>** | | [optional] +**File** | [**File**](File.md) | | [optional] +**Files** | [**List<File>**](File.md) | | [optional] [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/samples/client/petstore/csharp/OpenAPIClient/src/Org.OpenAPITools/Model/FileSchemaTestClass.cs b/samples/client/petstore/csharp/OpenAPIClient/src/Org.OpenAPITools/Model/FileSchemaTestClass.cs index 1505ab9c4b1..7853ca2a0de 100644 --- a/samples/client/petstore/csharp/OpenAPIClient/src/Org.OpenAPITools/Model/FileSchemaTestClass.cs +++ b/samples/client/petstore/csharp/OpenAPIClient/src/Org.OpenAPITools/Model/FileSchemaTestClass.cs @@ -35,7 +35,7 @@ namespace Org.OpenAPITools.Model /// /// file. /// files. - public FileSchemaTestClass(System.IO.Stream file = default(System.IO.Stream), List files = default(List)) + public FileSchemaTestClass(File file = default(File), List files = default(List)) { this.File = file; this.Files = files; @@ -45,13 +45,13 @@ namespace Org.OpenAPITools.Model /// Gets or Sets File /// [DataMember(Name="file", EmitDefaultValue=false)] - public System.IO.Stream File { get; set; } + public File File { get; set; } ///

/// Gets or Sets Files /// [DataMember(Name="files", EmitDefaultValue=false)] - public List Files { get; set; } + public List Files { get; set; } /// /// Returns the string presentation of the object diff --git a/samples/client/petstore/csharp/OpenAPIClientNet35/.openapi-generator/VERSION b/samples/client/petstore/csharp/OpenAPIClientNet35/.openapi-generator/VERSION index 319a3673c11..e24c1f857e0 100644 --- a/samples/client/petstore/csharp/OpenAPIClientNet35/.openapi-generator/VERSION +++ b/samples/client/petstore/csharp/OpenAPIClientNet35/.openapi-generator/VERSION @@ -1 +1 @@ -3.3.2-SNAPSHOT +3.3.3-SNAPSHOT \ No newline at end of file diff --git a/samples/client/petstore/csharp/OpenAPIClientNet35/README.md b/samples/client/petstore/csharp/OpenAPIClientNet35/README.md index a2b8a9b17a0..aabf26b7899 100644 --- a/samples/client/petstore/csharp/OpenAPIClientNet35/README.md +++ b/samples/client/petstore/csharp/OpenAPIClientNet35/README.md @@ -106,6 +106,7 @@ Class | Method | HTTP request | Description *FakeApi* | [**TestClientModel**](docs/FakeApi.md#testclientmodel) | **PATCH** /fake | To test \"client\" model *FakeApi* | [**TestEndpointParameters**](docs/FakeApi.md#testendpointparameters) | **POST** /fake | Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트 *FakeApi* | [**TestEnumParameters**](docs/FakeApi.md#testenumparameters) | **GET** /fake | To test enum parameters +*FakeApi* | [**TestGroupParameters**](docs/FakeApi.md#testgroupparameters) | **DELETE** /fake | Fake endpoint to test group parameters (optional) *FakeApi* | [**TestInlineAdditionalProperties**](docs/FakeApi.md#testinlineadditionalproperties) | **POST** /fake/inline-additionalProperties | test inline additionalProperties *FakeApi* | [**TestJsonFormData**](docs/FakeApi.md#testjsonformdata) | **GET** /fake/jsonFormData | test json serialization of form data *FakeClassnameTags123Api* | [**TestClassname**](docs/FakeClassnameTags123Api.md#testclassname) | **PATCH** /fake_classname_test | To test class name in snake case diff --git a/samples/client/petstore/csharp/OpenAPIClientNet35/docs/FakeApi.md b/samples/client/petstore/csharp/OpenAPIClientNet35/docs/FakeApi.md index d51d29c09a6..5be422501cd 100644 --- a/samples/client/petstore/csharp/OpenAPIClientNet35/docs/FakeApi.md +++ b/samples/client/petstore/csharp/OpenAPIClientNet35/docs/FakeApi.md @@ -13,6 +13,7 @@ Method | HTTP request | Description [**TestClientModel**](FakeApi.md#testclientmodel) | **PATCH** /fake | To test \"client\" model [**TestEndpointParameters**](FakeApi.md#testendpointparameters) | **POST** /fake | Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트 [**TestEnumParameters**](FakeApi.md#testenumparameters) | **GET** /fake | To test enum parameters +[**TestGroupParameters**](FakeApi.md#testgroupparameters) | **DELETE** /fake | Fake endpoint to test group parameters (optional) [**TestInlineAdditionalProperties**](FakeApi.md#testinlineadditionalproperties) | **POST** /fake/inline-additionalProperties | test inline additionalProperties [**TestJsonFormData**](FakeApi.md#testjsonformdata) | **GET** /fake/jsonFormData | test json serialization of form data @@ -600,6 +601,76 @@ No authorization required [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **TestGroupParameters** +> void TestGroupParameters (int? requiredStringGroup, bool? requiredBooleanGroup, long? requiredInt64Group, int? stringGroup = null, bool? booleanGroup = null, long? int64Group = null) + +Fake endpoint to test group parameters (optional) + +Fake endpoint to test group parameters (optional) + +### Example +```csharp +using System; +using System.Diagnostics; +using Org.OpenAPITools.Api; +using Org.OpenAPITools.Client; +using Org.OpenAPITools.Model; + +namespace Example +{ + public class TestGroupParametersExample + { + public void main() + { + var apiInstance = new FakeApi(); + var requiredStringGroup = 56; // int? | Required String in group parameters + var requiredBooleanGroup = true; // bool? | Required Boolean in group parameters + var requiredInt64Group = 789; // long? | Required Integer in group parameters + var stringGroup = 56; // int? | String in group parameters (optional) + var booleanGroup = true; // bool? | Boolean in group parameters (optional) + var int64Group = 789; // long? | Integer in group parameters (optional) + + try + { + // Fake endpoint to test group parameters (optional) + apiInstance.TestGroupParameters(requiredStringGroup, requiredBooleanGroup, requiredInt64Group, stringGroup, booleanGroup, int64Group); + } + catch (Exception e) + { + Debug.Print("Exception when calling FakeApi.TestGroupParameters: " + e.Message ); + } + } + } +} +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **requiredStringGroup** | **int?**| Required String in group parameters | + **requiredBooleanGroup** | **bool?**| Required Boolean in group parameters | + **requiredInt64Group** | **long?**| Required Integer in group parameters | + **stringGroup** | **int?**| String in group parameters | [optional] + **booleanGroup** | **bool?**| Boolean in group parameters | [optional] + **int64Group** | **long?**| Integer in group parameters | [optional] + +### Return type + +void (empty response body) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + # **TestInlineAdditionalProperties** > void TestInlineAdditionalProperties (Dictionary requestBody) diff --git a/samples/client/petstore/csharp/OpenAPIClientNet35/docs/FileSchemaTestClass.md b/samples/client/petstore/csharp/OpenAPIClientNet35/docs/FileSchemaTestClass.md index e0820fa4e65..244164accbe 100644 --- a/samples/client/petstore/csharp/OpenAPIClientNet35/docs/FileSchemaTestClass.md +++ b/samples/client/petstore/csharp/OpenAPIClientNet35/docs/FileSchemaTestClass.md @@ -3,8 +3,8 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**File** | **System.IO.Stream** | | [optional] -**Files** | **List<System.IO.Stream>** | | [optional] +**File** | [**File**](File.md) | | [optional] +**Files** | [**List<File>**](File.md) | | [optional] [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/samples/client/petstore/csharp/OpenAPIClientNet35/src/Org.OpenAPITools/Api/FakeApi.cs b/samples/client/petstore/csharp/OpenAPIClientNet35/src/Org.OpenAPITools/Api/FakeApi.cs index ed151e1bc20..9549caf3f23 100644 --- a/samples/client/petstore/csharp/OpenAPIClientNet35/src/Org.OpenAPITools/Api/FakeApi.cs +++ b/samples/client/petstore/csharp/OpenAPIClientNet35/src/Org.OpenAPITools/Api/FakeApi.cs @@ -256,6 +256,37 @@ namespace Org.OpenAPITools.Api /// ApiResponse of Object(void) ApiResponse TestEnumParametersWithHttpInfo (List enumHeaderStringArray = null, string enumHeaderString = null, List enumQueryStringArray = null, string enumQueryString = null, int? enumQueryInteger = null, double? enumQueryDouble = null, List enumFormStringArray = null, string enumFormString = null); /// + /// Fake endpoint to test group parameters (optional) + /// + /// + /// Fake endpoint to test group parameters (optional) + /// + /// Thrown when fails to make API call + /// Required String in group parameters + /// Required Boolean in group parameters + /// Required Integer in group parameters + /// String in group parameters (optional) + /// Boolean in group parameters (optional) + /// Integer in group parameters (optional) + /// + void TestGroupParameters (int? requiredStringGroup, bool? requiredBooleanGroup, long? requiredInt64Group, int? stringGroup = null, bool? booleanGroup = null, long? int64Group = null); + + /// + /// Fake endpoint to test group parameters (optional) + /// + /// + /// Fake endpoint to test group parameters (optional) + /// + /// Thrown when fails to make API call + /// Required String in group parameters + /// Required Boolean in group parameters + /// Required Integer in group parameters + /// String in group parameters (optional) + /// Boolean in group parameters (optional) + /// Integer in group parameters (optional) + /// ApiResponse of Object(void) + ApiResponse TestGroupParametersWithHttpInfo (int? requiredStringGroup, bool? requiredBooleanGroup, long? requiredInt64Group, int? stringGroup = null, bool? booleanGroup = null, long? int64Group = null); + /// /// test inline additionalProperties /// /// @@ -1116,6 +1147,91 @@ namespace Org.OpenAPITools.Api null); } + /// + /// Fake endpoint to test group parameters (optional) Fake endpoint to test group parameters (optional) + /// + /// Thrown when fails to make API call + /// Required String in group parameters + /// Required Boolean in group parameters + /// Required Integer in group parameters + /// String in group parameters (optional) + /// Boolean in group parameters (optional) + /// Integer in group parameters (optional) + /// + public void TestGroupParameters (int? requiredStringGroup, bool? requiredBooleanGroup, long? requiredInt64Group, int? stringGroup = null, bool? booleanGroup = null, long? int64Group = null) + { + TestGroupParametersWithHttpInfo(requiredStringGroup, requiredBooleanGroup, requiredInt64Group, stringGroup, booleanGroup, int64Group); + } + + /// + /// Fake endpoint to test group parameters (optional) Fake endpoint to test group parameters (optional) + /// + /// Thrown when fails to make API call + /// Required String in group parameters + /// Required Boolean in group parameters + /// Required Integer in group parameters + /// String in group parameters (optional) + /// Boolean in group parameters (optional) + /// Integer in group parameters (optional) + /// ApiResponse of Object(void) + public ApiResponse TestGroupParametersWithHttpInfo (int? requiredStringGroup, bool? requiredBooleanGroup, long? requiredInt64Group, int? stringGroup = null, bool? booleanGroup = null, long? int64Group = null) + { + // verify the required parameter 'requiredStringGroup' is set + if (requiredStringGroup == null) + throw new ApiException(400, "Missing required parameter 'requiredStringGroup' when calling FakeApi->TestGroupParameters"); + // verify the required parameter 'requiredBooleanGroup' is set + if (requiredBooleanGroup == null) + throw new ApiException(400, "Missing required parameter 'requiredBooleanGroup' when calling FakeApi->TestGroupParameters"); + // verify the required parameter 'requiredInt64Group' is set + if (requiredInt64Group == null) + throw new ApiException(400, "Missing required parameter 'requiredInt64Group' when calling FakeApi->TestGroupParameters"); + + var localVarPath = "/fake"; + var localVarPathParams = new Dictionary(); + var localVarQueryParams = new List>(); + var localVarHeaderParams = new Dictionary(this.Configuration.DefaultHeader); + var localVarFormParams = new Dictionary(); + var localVarFileParams = new Dictionary(); + Object localVarPostBody = null; + + // to determine the Content-Type header + String[] localVarHttpContentTypes = new String[] { + }; + String localVarHttpContentType = this.Configuration.ApiClient.SelectHeaderContentType(localVarHttpContentTypes); + + // to determine the Accept header + String[] localVarHttpHeaderAccepts = new String[] { + }; + String localVarHttpHeaderAccept = this.Configuration.ApiClient.SelectHeaderAccept(localVarHttpHeaderAccepts); + if (localVarHttpHeaderAccept != null) + localVarHeaderParams.Add("Accept", localVarHttpHeaderAccept); + + if (requiredStringGroup != null) localVarQueryParams.AddRange(this.Configuration.ApiClient.ParameterToKeyValuePairs("", "required_string_group", requiredStringGroup)); // query parameter + if (requiredInt64Group != null) localVarQueryParams.AddRange(this.Configuration.ApiClient.ParameterToKeyValuePairs("", "required_int64_group", requiredInt64Group)); // query parameter + if (stringGroup != null) localVarQueryParams.AddRange(this.Configuration.ApiClient.ParameterToKeyValuePairs("", "string_group", stringGroup)); // query parameter + if (int64Group != null) localVarQueryParams.AddRange(this.Configuration.ApiClient.ParameterToKeyValuePairs("", "int64_group", int64Group)); // query parameter + if (requiredBooleanGroup != null) localVarHeaderParams.Add("required_boolean_group", this.Configuration.ApiClient.ParameterToString(requiredBooleanGroup)); // header parameter + if (booleanGroup != null) localVarHeaderParams.Add("boolean_group", this.Configuration.ApiClient.ParameterToString(booleanGroup)); // header parameter + + + // make the HTTP request + IRestResponse localVarResponse = (IRestResponse) this.Configuration.ApiClient.CallApi(localVarPath, + Method.DELETE, localVarQueryParams, localVarPostBody, localVarHeaderParams, localVarFormParams, localVarFileParams, + localVarPathParams, localVarHttpContentType); + + int localVarStatusCode = (int) localVarResponse.StatusCode; + + if (ExceptionFactory != null) + { + Exception exception = ExceptionFactory("TestGroupParameters", localVarResponse); + if (exception != null) throw exception; + } + + return new ApiResponse(localVarStatusCode, + localVarResponse.Headers.ToDictionary(x => x.Name, x => x.Value.ToString()), + null); + } + /// /// test inline additionalProperties /// diff --git a/samples/client/petstore/csharp/OpenAPIClientNet35/src/Org.OpenAPITools/Model/FileSchemaTestClass.cs b/samples/client/petstore/csharp/OpenAPIClientNet35/src/Org.OpenAPITools/Model/FileSchemaTestClass.cs index 4e3d772816f..990c96b80b5 100644 --- a/samples/client/petstore/csharp/OpenAPIClientNet35/src/Org.OpenAPITools/Model/FileSchemaTestClass.cs +++ b/samples/client/petstore/csharp/OpenAPIClientNet35/src/Org.OpenAPITools/Model/FileSchemaTestClass.cs @@ -35,7 +35,7 @@ namespace Org.OpenAPITools.Model /// /// file. /// files. - public FileSchemaTestClass(System.IO.Stream file = default(System.IO.Stream), List files = default(List)) + public FileSchemaTestClass(File file = default(File), List files = default(List)) { this.File = file; this.Files = files; @@ -45,13 +45,13 @@ namespace Org.OpenAPITools.Model /// Gets or Sets File /// [DataMember(Name="file", EmitDefaultValue=false)] - public System.IO.Stream File { get; set; } + public File File { get; set; } /// /// Gets or Sets Files /// [DataMember(Name="files", EmitDefaultValue=false)] - public List Files { get; set; } + public List Files { get; set; } /// /// Returns the string presentation of the object diff --git a/samples/client/petstore/csharp/OpenAPIClientNet40/.openapi-generator/VERSION b/samples/client/petstore/csharp/OpenAPIClientNet40/.openapi-generator/VERSION index 319a3673c11..e24c1f857e0 100644 --- a/samples/client/petstore/csharp/OpenAPIClientNet40/.openapi-generator/VERSION +++ b/samples/client/petstore/csharp/OpenAPIClientNet40/.openapi-generator/VERSION @@ -1 +1 @@ -3.3.2-SNAPSHOT +3.3.3-SNAPSHOT \ No newline at end of file diff --git a/samples/client/petstore/csharp/OpenAPIClientNet40/README.md b/samples/client/petstore/csharp/OpenAPIClientNet40/README.md index a2b8a9b17a0..aabf26b7899 100644 --- a/samples/client/petstore/csharp/OpenAPIClientNet40/README.md +++ b/samples/client/petstore/csharp/OpenAPIClientNet40/README.md @@ -106,6 +106,7 @@ Class | Method | HTTP request | Description *FakeApi* | [**TestClientModel**](docs/FakeApi.md#testclientmodel) | **PATCH** /fake | To test \"client\" model *FakeApi* | [**TestEndpointParameters**](docs/FakeApi.md#testendpointparameters) | **POST** /fake | Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트 *FakeApi* | [**TestEnumParameters**](docs/FakeApi.md#testenumparameters) | **GET** /fake | To test enum parameters +*FakeApi* | [**TestGroupParameters**](docs/FakeApi.md#testgroupparameters) | **DELETE** /fake | Fake endpoint to test group parameters (optional) *FakeApi* | [**TestInlineAdditionalProperties**](docs/FakeApi.md#testinlineadditionalproperties) | **POST** /fake/inline-additionalProperties | test inline additionalProperties *FakeApi* | [**TestJsonFormData**](docs/FakeApi.md#testjsonformdata) | **GET** /fake/jsonFormData | test json serialization of form data *FakeClassnameTags123Api* | [**TestClassname**](docs/FakeClassnameTags123Api.md#testclassname) | **PATCH** /fake_classname_test | To test class name in snake case diff --git a/samples/client/petstore/csharp/OpenAPIClientNet40/docs/FakeApi.md b/samples/client/petstore/csharp/OpenAPIClientNet40/docs/FakeApi.md index d51d29c09a6..5be422501cd 100644 --- a/samples/client/petstore/csharp/OpenAPIClientNet40/docs/FakeApi.md +++ b/samples/client/petstore/csharp/OpenAPIClientNet40/docs/FakeApi.md @@ -13,6 +13,7 @@ Method | HTTP request | Description [**TestClientModel**](FakeApi.md#testclientmodel) | **PATCH** /fake | To test \"client\" model [**TestEndpointParameters**](FakeApi.md#testendpointparameters) | **POST** /fake | Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트 [**TestEnumParameters**](FakeApi.md#testenumparameters) | **GET** /fake | To test enum parameters +[**TestGroupParameters**](FakeApi.md#testgroupparameters) | **DELETE** /fake | Fake endpoint to test group parameters (optional) [**TestInlineAdditionalProperties**](FakeApi.md#testinlineadditionalproperties) | **POST** /fake/inline-additionalProperties | test inline additionalProperties [**TestJsonFormData**](FakeApi.md#testjsonformdata) | **GET** /fake/jsonFormData | test json serialization of form data @@ -600,6 +601,76 @@ No authorization required [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **TestGroupParameters** +> void TestGroupParameters (int? requiredStringGroup, bool? requiredBooleanGroup, long? requiredInt64Group, int? stringGroup = null, bool? booleanGroup = null, long? int64Group = null) + +Fake endpoint to test group parameters (optional) + +Fake endpoint to test group parameters (optional) + +### Example +```csharp +using System; +using System.Diagnostics; +using Org.OpenAPITools.Api; +using Org.OpenAPITools.Client; +using Org.OpenAPITools.Model; + +namespace Example +{ + public class TestGroupParametersExample + { + public void main() + { + var apiInstance = new FakeApi(); + var requiredStringGroup = 56; // int? | Required String in group parameters + var requiredBooleanGroup = true; // bool? | Required Boolean in group parameters + var requiredInt64Group = 789; // long? | Required Integer in group parameters + var stringGroup = 56; // int? | String in group parameters (optional) + var booleanGroup = true; // bool? | Boolean in group parameters (optional) + var int64Group = 789; // long? | Integer in group parameters (optional) + + try + { + // Fake endpoint to test group parameters (optional) + apiInstance.TestGroupParameters(requiredStringGroup, requiredBooleanGroup, requiredInt64Group, stringGroup, booleanGroup, int64Group); + } + catch (Exception e) + { + Debug.Print("Exception when calling FakeApi.TestGroupParameters: " + e.Message ); + } + } + } +} +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **requiredStringGroup** | **int?**| Required String in group parameters | + **requiredBooleanGroup** | **bool?**| Required Boolean in group parameters | + **requiredInt64Group** | **long?**| Required Integer in group parameters | + **stringGroup** | **int?**| String in group parameters | [optional] + **booleanGroup** | **bool?**| Boolean in group parameters | [optional] + **int64Group** | **long?**| Integer in group parameters | [optional] + +### Return type + +void (empty response body) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + # **TestInlineAdditionalProperties** > void TestInlineAdditionalProperties (Dictionary requestBody) diff --git a/samples/client/petstore/csharp/OpenAPIClientNet40/docs/FileSchemaTestClass.md b/samples/client/petstore/csharp/OpenAPIClientNet40/docs/FileSchemaTestClass.md index e0820fa4e65..244164accbe 100644 --- a/samples/client/petstore/csharp/OpenAPIClientNet40/docs/FileSchemaTestClass.md +++ b/samples/client/petstore/csharp/OpenAPIClientNet40/docs/FileSchemaTestClass.md @@ -3,8 +3,8 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**File** | **System.IO.Stream** | | [optional] -**Files** | **List<System.IO.Stream>** | | [optional] +**File** | [**File**](File.md) | | [optional] +**Files** | [**List<File>**](File.md) | | [optional] [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/samples/client/petstore/csharp/OpenAPIClientNet40/src/Org.OpenAPITools/Api/FakeApi.cs b/samples/client/petstore/csharp/OpenAPIClientNet40/src/Org.OpenAPITools/Api/FakeApi.cs index 765a1444172..511622b8fd3 100644 --- a/samples/client/petstore/csharp/OpenAPIClientNet40/src/Org.OpenAPITools/Api/FakeApi.cs +++ b/samples/client/petstore/csharp/OpenAPIClientNet40/src/Org.OpenAPITools/Api/FakeApi.cs @@ -256,6 +256,37 @@ namespace Org.OpenAPITools.Api /// ApiResponse of Object(void) ApiResponse TestEnumParametersWithHttpInfo (List enumHeaderStringArray = null, string enumHeaderString = null, List enumQueryStringArray = null, string enumQueryString = null, int? enumQueryInteger = null, double? enumQueryDouble = null, List enumFormStringArray = null, string enumFormString = null); /// + /// Fake endpoint to test group parameters (optional) + /// + /// + /// Fake endpoint to test group parameters (optional) + /// + /// Thrown when fails to make API call + /// Required String in group parameters + /// Required Boolean in group parameters + /// Required Integer in group parameters + /// String in group parameters (optional) + /// Boolean in group parameters (optional) + /// Integer in group parameters (optional) + /// + void TestGroupParameters (int? requiredStringGroup, bool? requiredBooleanGroup, long? requiredInt64Group, int? stringGroup = null, bool? booleanGroup = null, long? int64Group = null); + + /// + /// Fake endpoint to test group parameters (optional) + /// + /// + /// Fake endpoint to test group parameters (optional) + /// + /// Thrown when fails to make API call + /// Required String in group parameters + /// Required Boolean in group parameters + /// Required Integer in group parameters + /// String in group parameters (optional) + /// Boolean in group parameters (optional) + /// Integer in group parameters (optional) + /// ApiResponse of Object(void) + ApiResponse TestGroupParametersWithHttpInfo (int? requiredStringGroup, bool? requiredBooleanGroup, long? requiredInt64Group, int? stringGroup = null, bool? booleanGroup = null, long? int64Group = null); + /// /// test inline additionalProperties /// /// @@ -1116,6 +1147,91 @@ namespace Org.OpenAPITools.Api null); } + /// + /// Fake endpoint to test group parameters (optional) Fake endpoint to test group parameters (optional) + /// + /// Thrown when fails to make API call + /// Required String in group parameters + /// Required Boolean in group parameters + /// Required Integer in group parameters + /// String in group parameters (optional) + /// Boolean in group parameters (optional) + /// Integer in group parameters (optional) + /// + public void TestGroupParameters (int? requiredStringGroup, bool? requiredBooleanGroup, long? requiredInt64Group, int? stringGroup = null, bool? booleanGroup = null, long? int64Group = null) + { + TestGroupParametersWithHttpInfo(requiredStringGroup, requiredBooleanGroup, requiredInt64Group, stringGroup, booleanGroup, int64Group); + } + + /// + /// Fake endpoint to test group parameters (optional) Fake endpoint to test group parameters (optional) + /// + /// Thrown when fails to make API call + /// Required String in group parameters + /// Required Boolean in group parameters + /// Required Integer in group parameters + /// String in group parameters (optional) + /// Boolean in group parameters (optional) + /// Integer in group parameters (optional) + /// ApiResponse of Object(void) + public ApiResponse TestGroupParametersWithHttpInfo (int? requiredStringGroup, bool? requiredBooleanGroup, long? requiredInt64Group, int? stringGroup = null, bool? booleanGroup = null, long? int64Group = null) + { + // verify the required parameter 'requiredStringGroup' is set + if (requiredStringGroup == null) + throw new ApiException(400, "Missing required parameter 'requiredStringGroup' when calling FakeApi->TestGroupParameters"); + // verify the required parameter 'requiredBooleanGroup' is set + if (requiredBooleanGroup == null) + throw new ApiException(400, "Missing required parameter 'requiredBooleanGroup' when calling FakeApi->TestGroupParameters"); + // verify the required parameter 'requiredInt64Group' is set + if (requiredInt64Group == null) + throw new ApiException(400, "Missing required parameter 'requiredInt64Group' when calling FakeApi->TestGroupParameters"); + + var localVarPath = "/fake"; + var localVarPathParams = new Dictionary(); + var localVarQueryParams = new List>(); + var localVarHeaderParams = new Dictionary(this.Configuration.DefaultHeader); + var localVarFormParams = new Dictionary(); + var localVarFileParams = new Dictionary(); + Object localVarPostBody = null; + + // to determine the Content-Type header + String[] localVarHttpContentTypes = new String[] { + }; + String localVarHttpContentType = this.Configuration.ApiClient.SelectHeaderContentType(localVarHttpContentTypes); + + // to determine the Accept header + String[] localVarHttpHeaderAccepts = new String[] { + }; + String localVarHttpHeaderAccept = this.Configuration.ApiClient.SelectHeaderAccept(localVarHttpHeaderAccepts); + if (localVarHttpHeaderAccept != null) + localVarHeaderParams.Add("Accept", localVarHttpHeaderAccept); + + if (requiredStringGroup != null) localVarQueryParams.AddRange(this.Configuration.ApiClient.ParameterToKeyValuePairs("", "required_string_group", requiredStringGroup)); // query parameter + if (requiredInt64Group != null) localVarQueryParams.AddRange(this.Configuration.ApiClient.ParameterToKeyValuePairs("", "required_int64_group", requiredInt64Group)); // query parameter + if (stringGroup != null) localVarQueryParams.AddRange(this.Configuration.ApiClient.ParameterToKeyValuePairs("", "string_group", stringGroup)); // query parameter + if (int64Group != null) localVarQueryParams.AddRange(this.Configuration.ApiClient.ParameterToKeyValuePairs("", "int64_group", int64Group)); // query parameter + if (requiredBooleanGroup != null) localVarHeaderParams.Add("required_boolean_group", this.Configuration.ApiClient.ParameterToString(requiredBooleanGroup)); // header parameter + if (booleanGroup != null) localVarHeaderParams.Add("boolean_group", this.Configuration.ApiClient.ParameterToString(booleanGroup)); // header parameter + + + // make the HTTP request + IRestResponse localVarResponse = (IRestResponse) this.Configuration.ApiClient.CallApi(localVarPath, + Method.DELETE, localVarQueryParams, localVarPostBody, localVarHeaderParams, localVarFormParams, localVarFileParams, + localVarPathParams, localVarHttpContentType); + + int localVarStatusCode = (int) localVarResponse.StatusCode; + + if (ExceptionFactory != null) + { + Exception exception = ExceptionFactory("TestGroupParameters", localVarResponse); + if (exception != null) throw exception; + } + + return new ApiResponse(localVarStatusCode, + localVarResponse.Headers.ToDictionary(x => x.Name, x => x.Value.ToString()), + null); + } + /// /// test inline additionalProperties /// diff --git a/samples/client/petstore/csharp/OpenAPIClientNet40/src/Org.OpenAPITools/Model/FileSchemaTestClass.cs b/samples/client/petstore/csharp/OpenAPIClientNet40/src/Org.OpenAPITools/Model/FileSchemaTestClass.cs index 1505ab9c4b1..7853ca2a0de 100644 --- a/samples/client/petstore/csharp/OpenAPIClientNet40/src/Org.OpenAPITools/Model/FileSchemaTestClass.cs +++ b/samples/client/petstore/csharp/OpenAPIClientNet40/src/Org.OpenAPITools/Model/FileSchemaTestClass.cs @@ -35,7 +35,7 @@ namespace Org.OpenAPITools.Model /// /// file. /// files. - public FileSchemaTestClass(System.IO.Stream file = default(System.IO.Stream), List files = default(List)) + public FileSchemaTestClass(File file = default(File), List files = default(List)) { this.File = file; this.Files = files; @@ -45,13 +45,13 @@ namespace Org.OpenAPITools.Model /// Gets or Sets File /// [DataMember(Name="file", EmitDefaultValue=false)] - public System.IO.Stream File { get; set; } + public File File { get; set; } /// /// Gets or Sets Files /// [DataMember(Name="files", EmitDefaultValue=false)] - public List Files { get; set; } + public List Files { get; set; } /// /// Returns the string presentation of the object diff --git a/samples/client/petstore/csharp/OpenAPIClientNetStandard/.openapi-generator/VERSION b/samples/client/petstore/csharp/OpenAPIClientNetStandard/.openapi-generator/VERSION index 319a3673c11..e24c1f857e0 100644 --- a/samples/client/petstore/csharp/OpenAPIClientNetStandard/.openapi-generator/VERSION +++ b/samples/client/petstore/csharp/OpenAPIClientNetStandard/.openapi-generator/VERSION @@ -1 +1 @@ -3.3.2-SNAPSHOT +3.3.3-SNAPSHOT \ No newline at end of file diff --git a/samples/client/petstore/csharp/OpenAPIClientNetStandard/README.md b/samples/client/petstore/csharp/OpenAPIClientNetStandard/README.md index e5a4fcea2ec..f6e48e27a2b 100644 --- a/samples/client/petstore/csharp/OpenAPIClientNetStandard/README.md +++ b/samples/client/petstore/csharp/OpenAPIClientNetStandard/README.md @@ -84,6 +84,7 @@ Class | Method | HTTP request | Description *FakeApi* | [**TestClientModel**](docs/FakeApi.md#testclientmodel) | **PATCH** /fake | To test \"client\" model *FakeApi* | [**TestEndpointParameters**](docs/FakeApi.md#testendpointparameters) | **POST** /fake | Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트 *FakeApi* | [**TestEnumParameters**](docs/FakeApi.md#testenumparameters) | **GET** /fake | To test enum parameters +*FakeApi* | [**TestGroupParameters**](docs/FakeApi.md#testgroupparameters) | **DELETE** /fake | Fake endpoint to test group parameters (optional) *FakeApi* | [**TestInlineAdditionalProperties**](docs/FakeApi.md#testinlineadditionalproperties) | **POST** /fake/inline-additionalProperties | test inline additionalProperties *FakeApi* | [**TestJsonFormData**](docs/FakeApi.md#testjsonformdata) | **GET** /fake/jsonFormData | test json serialization of form data *FakeClassnameTags123Api* | [**TestClassname**](docs/FakeClassnameTags123Api.md#testclassname) | **PATCH** /fake_classname_test | To test class name in snake case diff --git a/samples/client/petstore/csharp/OpenAPIClientNetStandard/docs/FakeApi.md b/samples/client/petstore/csharp/OpenAPIClientNetStandard/docs/FakeApi.md index d51d29c09a6..5be422501cd 100644 --- a/samples/client/petstore/csharp/OpenAPIClientNetStandard/docs/FakeApi.md +++ b/samples/client/petstore/csharp/OpenAPIClientNetStandard/docs/FakeApi.md @@ -13,6 +13,7 @@ Method | HTTP request | Description [**TestClientModel**](FakeApi.md#testclientmodel) | **PATCH** /fake | To test \"client\" model [**TestEndpointParameters**](FakeApi.md#testendpointparameters) | **POST** /fake | Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트 [**TestEnumParameters**](FakeApi.md#testenumparameters) | **GET** /fake | To test enum parameters +[**TestGroupParameters**](FakeApi.md#testgroupparameters) | **DELETE** /fake | Fake endpoint to test group parameters (optional) [**TestInlineAdditionalProperties**](FakeApi.md#testinlineadditionalproperties) | **POST** /fake/inline-additionalProperties | test inline additionalProperties [**TestJsonFormData**](FakeApi.md#testjsonformdata) | **GET** /fake/jsonFormData | test json serialization of form data @@ -600,6 +601,76 @@ No authorization required [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **TestGroupParameters** +> void TestGroupParameters (int? requiredStringGroup, bool? requiredBooleanGroup, long? requiredInt64Group, int? stringGroup = null, bool? booleanGroup = null, long? int64Group = null) + +Fake endpoint to test group parameters (optional) + +Fake endpoint to test group parameters (optional) + +### Example +```csharp +using System; +using System.Diagnostics; +using Org.OpenAPITools.Api; +using Org.OpenAPITools.Client; +using Org.OpenAPITools.Model; + +namespace Example +{ + public class TestGroupParametersExample + { + public void main() + { + var apiInstance = new FakeApi(); + var requiredStringGroup = 56; // int? | Required String in group parameters + var requiredBooleanGroup = true; // bool? | Required Boolean in group parameters + var requiredInt64Group = 789; // long? | Required Integer in group parameters + var stringGroup = 56; // int? | String in group parameters (optional) + var booleanGroup = true; // bool? | Boolean in group parameters (optional) + var int64Group = 789; // long? | Integer in group parameters (optional) + + try + { + // Fake endpoint to test group parameters (optional) + apiInstance.TestGroupParameters(requiredStringGroup, requiredBooleanGroup, requiredInt64Group, stringGroup, booleanGroup, int64Group); + } + catch (Exception e) + { + Debug.Print("Exception when calling FakeApi.TestGroupParameters: " + e.Message ); + } + } + } +} +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **requiredStringGroup** | **int?**| Required String in group parameters | + **requiredBooleanGroup** | **bool?**| Required Boolean in group parameters | + **requiredInt64Group** | **long?**| Required Integer in group parameters | + **stringGroup** | **int?**| String in group parameters | [optional] + **booleanGroup** | **bool?**| Boolean in group parameters | [optional] + **int64Group** | **long?**| Integer in group parameters | [optional] + +### Return type + +void (empty response body) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + # **TestInlineAdditionalProperties** > void TestInlineAdditionalProperties (Dictionary requestBody) diff --git a/samples/client/petstore/csharp/OpenAPIClientNetStandard/docs/FileSchemaTestClass.md b/samples/client/petstore/csharp/OpenAPIClientNetStandard/docs/FileSchemaTestClass.md index e0820fa4e65..244164accbe 100644 --- a/samples/client/petstore/csharp/OpenAPIClientNetStandard/docs/FileSchemaTestClass.md +++ b/samples/client/petstore/csharp/OpenAPIClientNetStandard/docs/FileSchemaTestClass.md @@ -3,8 +3,8 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**File** | **System.IO.Stream** | | [optional] -**Files** | **List<System.IO.Stream>** | | [optional] +**File** | [**File**](File.md) | | [optional] +**Files** | [**List<File>**](File.md) | | [optional] [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/samples/client/petstore/csharp/OpenAPIClientNetStandard/src/Org.OpenAPITools/Api/FakeApi.cs b/samples/client/petstore/csharp/OpenAPIClientNetStandard/src/Org.OpenAPITools/Api/FakeApi.cs index 95cb32fd782..f2eaa0b5682 100644 --- a/samples/client/petstore/csharp/OpenAPIClientNetStandard/src/Org.OpenAPITools/Api/FakeApi.cs +++ b/samples/client/petstore/csharp/OpenAPIClientNetStandard/src/Org.OpenAPITools/Api/FakeApi.cs @@ -256,6 +256,37 @@ namespace Org.OpenAPITools.Api /// ApiResponse of Object(void) ApiResponse TestEnumParametersWithHttpInfo (List enumHeaderStringArray = null, string enumHeaderString = null, List enumQueryStringArray = null, string enumQueryString = null, int? enumQueryInteger = null, double? enumQueryDouble = null, List enumFormStringArray = null, string enumFormString = null); /// + /// Fake endpoint to test group parameters (optional) + /// + /// + /// Fake endpoint to test group parameters (optional) + /// + /// Thrown when fails to make API call + /// Required String in group parameters + /// Required Boolean in group parameters + /// Required Integer in group parameters + /// String in group parameters (optional) + /// Boolean in group parameters (optional) + /// Integer in group parameters (optional) + /// + void TestGroupParameters (int? requiredStringGroup, bool? requiredBooleanGroup, long? requiredInt64Group, int? stringGroup = null, bool? booleanGroup = null, long? int64Group = null); + + /// + /// Fake endpoint to test group parameters (optional) + /// + /// + /// Fake endpoint to test group parameters (optional) + /// + /// Thrown when fails to make API call + /// Required String in group parameters + /// Required Boolean in group parameters + /// Required Integer in group parameters + /// String in group parameters (optional) + /// Boolean in group parameters (optional) + /// Integer in group parameters (optional) + /// ApiResponse of Object(void) + ApiResponse TestGroupParametersWithHttpInfo (int? requiredStringGroup, bool? requiredBooleanGroup, long? requiredInt64Group, int? stringGroup = null, bool? booleanGroup = null, long? int64Group = null); + /// /// test inline additionalProperties /// /// @@ -533,6 +564,37 @@ namespace Org.OpenAPITools.Api /// Task of ApiResponse System.Threading.Tasks.Task> TestEnumParametersAsyncWithHttpInfo (List enumHeaderStringArray = null, string enumHeaderString = null, List enumQueryStringArray = null, string enumQueryString = null, int? enumQueryInteger = null, double? enumQueryDouble = null, List enumFormStringArray = null, string enumFormString = null); /// + /// Fake endpoint to test group parameters (optional) + /// + /// + /// Fake endpoint to test group parameters (optional) + /// + /// Thrown when fails to make API call + /// Required String in group parameters + /// Required Boolean in group parameters + /// Required Integer in group parameters + /// String in group parameters (optional) + /// Boolean in group parameters (optional) + /// Integer in group parameters (optional) + /// Task of void + System.Threading.Tasks.Task TestGroupParametersAsync (int? requiredStringGroup, bool? requiredBooleanGroup, long? requiredInt64Group, int? stringGroup = null, bool? booleanGroup = null, long? int64Group = null); + + /// + /// Fake endpoint to test group parameters (optional) + /// + /// + /// Fake endpoint to test group parameters (optional) + /// + /// Thrown when fails to make API call + /// Required String in group parameters + /// Required Boolean in group parameters + /// Required Integer in group parameters + /// String in group parameters (optional) + /// Boolean in group parameters (optional) + /// Integer in group parameters (optional) + /// Task of ApiResponse + System.Threading.Tasks.Task> TestGroupParametersAsyncWithHttpInfo (int? requiredStringGroup, bool? requiredBooleanGroup, long? requiredInt64Group, int? stringGroup = null, bool? booleanGroup = null, long? int64Group = null); + /// /// test inline additionalProperties /// /// @@ -2108,6 +2170,177 @@ namespace Org.OpenAPITools.Api null); } + /// + /// Fake endpoint to test group parameters (optional) Fake endpoint to test group parameters (optional) + /// + /// Thrown when fails to make API call + /// Required String in group parameters + /// Required Boolean in group parameters + /// Required Integer in group parameters + /// String in group parameters (optional) + /// Boolean in group parameters (optional) + /// Integer in group parameters (optional) + /// + public void TestGroupParameters (int? requiredStringGroup, bool? requiredBooleanGroup, long? requiredInt64Group, int? stringGroup = null, bool? booleanGroup = null, long? int64Group = null) + { + TestGroupParametersWithHttpInfo(requiredStringGroup, requiredBooleanGroup, requiredInt64Group, stringGroup, booleanGroup, int64Group); + } + + /// + /// Fake endpoint to test group parameters (optional) Fake endpoint to test group parameters (optional) + /// + /// Thrown when fails to make API call + /// Required String in group parameters + /// Required Boolean in group parameters + /// Required Integer in group parameters + /// String in group parameters (optional) + /// Boolean in group parameters (optional) + /// Integer in group parameters (optional) + /// ApiResponse of Object(void) + public ApiResponse TestGroupParametersWithHttpInfo (int? requiredStringGroup, bool? requiredBooleanGroup, long? requiredInt64Group, int? stringGroup = null, bool? booleanGroup = null, long? int64Group = null) + { + // verify the required parameter 'requiredStringGroup' is set + if (requiredStringGroup == null) + throw new ApiException(400, "Missing required parameter 'requiredStringGroup' when calling FakeApi->TestGroupParameters"); + // verify the required parameter 'requiredBooleanGroup' is set + if (requiredBooleanGroup == null) + throw new ApiException(400, "Missing required parameter 'requiredBooleanGroup' when calling FakeApi->TestGroupParameters"); + // verify the required parameter 'requiredInt64Group' is set + if (requiredInt64Group == null) + throw new ApiException(400, "Missing required parameter 'requiredInt64Group' when calling FakeApi->TestGroupParameters"); + + var localVarPath = "./fake"; + var localVarPathParams = new Dictionary(); + var localVarQueryParams = new List>(); + var localVarHeaderParams = new Dictionary(this.Configuration.DefaultHeader); + var localVarFormParams = new Dictionary(); + var localVarFileParams = new Dictionary(); + Object localVarPostBody = null; + + // to determine the Content-Type header + String[] localVarHttpContentTypes = new String[] { + }; + String localVarHttpContentType = this.Configuration.ApiClient.SelectHeaderContentType(localVarHttpContentTypes); + + // to determine the Accept header + String[] localVarHttpHeaderAccepts = new String[] { + }; + String localVarHttpHeaderAccept = this.Configuration.ApiClient.SelectHeaderAccept(localVarHttpHeaderAccepts); + if (localVarHttpHeaderAccept != null) + localVarHeaderParams.Add("Accept", localVarHttpHeaderAccept); + + if (requiredStringGroup != null) localVarQueryParams.AddRange(this.Configuration.ApiClient.ParameterToKeyValuePairs("", "required_string_group", requiredStringGroup)); // query parameter + if (requiredInt64Group != null) localVarQueryParams.AddRange(this.Configuration.ApiClient.ParameterToKeyValuePairs("", "required_int64_group", requiredInt64Group)); // query parameter + if (stringGroup != null) localVarQueryParams.AddRange(this.Configuration.ApiClient.ParameterToKeyValuePairs("", "string_group", stringGroup)); // query parameter + if (int64Group != null) localVarQueryParams.AddRange(this.Configuration.ApiClient.ParameterToKeyValuePairs("", "int64_group", int64Group)); // query parameter + if (requiredBooleanGroup != null) localVarHeaderParams.Add("required_boolean_group", this.Configuration.ApiClient.ParameterToString(requiredBooleanGroup)); // header parameter + if (booleanGroup != null) localVarHeaderParams.Add("boolean_group", this.Configuration.ApiClient.ParameterToString(booleanGroup)); // header parameter + + + // make the HTTP request + IRestResponse localVarResponse = (IRestResponse) this.Configuration.ApiClient.CallApi(localVarPath, + Method.DELETE, localVarQueryParams, localVarPostBody, localVarHeaderParams, localVarFormParams, localVarFileParams, + localVarPathParams, localVarHttpContentType); + + int localVarStatusCode = (int) localVarResponse.StatusCode; + + if (ExceptionFactory != null) + { + Exception exception = ExceptionFactory("TestGroupParameters", localVarResponse); + if (exception != null) throw exception; + } + + return new ApiResponse(localVarStatusCode, + localVarResponse.Headers.ToDictionary(x => x.Key, x => x.Value.ToString()), + null); + } + + /// + /// Fake endpoint to test group parameters (optional) Fake endpoint to test group parameters (optional) + /// + /// Thrown when fails to make API call + /// Required String in group parameters + /// Required Boolean in group parameters + /// Required Integer in group parameters + /// String in group parameters (optional) + /// Boolean in group parameters (optional) + /// Integer in group parameters (optional) + /// Task of void + public async System.Threading.Tasks.Task TestGroupParametersAsync (int? requiredStringGroup, bool? requiredBooleanGroup, long? requiredInt64Group, int? stringGroup = null, bool? booleanGroup = null, long? int64Group = null) + { + await TestGroupParametersAsyncWithHttpInfo(requiredStringGroup, requiredBooleanGroup, requiredInt64Group, stringGroup, booleanGroup, int64Group); + + } + + /// + /// Fake endpoint to test group parameters (optional) Fake endpoint to test group parameters (optional) + /// + /// Thrown when fails to make API call + /// Required String in group parameters + /// Required Boolean in group parameters + /// Required Integer in group parameters + /// String in group parameters (optional) + /// Boolean in group parameters (optional) + /// Integer in group parameters (optional) + /// Task of ApiResponse + public async System.Threading.Tasks.Task> TestGroupParametersAsyncWithHttpInfo (int? requiredStringGroup, bool? requiredBooleanGroup, long? requiredInt64Group, int? stringGroup = null, bool? booleanGroup = null, long? int64Group = null) + { + // verify the required parameter 'requiredStringGroup' is set + if (requiredStringGroup == null) + throw new ApiException(400, "Missing required parameter 'requiredStringGroup' when calling FakeApi->TestGroupParameters"); + // verify the required parameter 'requiredBooleanGroup' is set + if (requiredBooleanGroup == null) + throw new ApiException(400, "Missing required parameter 'requiredBooleanGroup' when calling FakeApi->TestGroupParameters"); + // verify the required parameter 'requiredInt64Group' is set + if (requiredInt64Group == null) + throw new ApiException(400, "Missing required parameter 'requiredInt64Group' when calling FakeApi->TestGroupParameters"); + + var localVarPath = "./fake"; + var localVarPathParams = new Dictionary(); + var localVarQueryParams = new List>(); + var localVarHeaderParams = new Dictionary(this.Configuration.DefaultHeader); + var localVarFormParams = new Dictionary(); + var localVarFileParams = new Dictionary(); + Object localVarPostBody = null; + + // to determine the Content-Type header + String[] localVarHttpContentTypes = new String[] { + }; + String localVarHttpContentType = this.Configuration.ApiClient.SelectHeaderContentType(localVarHttpContentTypes); + + // to determine the Accept header + String[] localVarHttpHeaderAccepts = new String[] { + }; + String localVarHttpHeaderAccept = this.Configuration.ApiClient.SelectHeaderAccept(localVarHttpHeaderAccepts); + if (localVarHttpHeaderAccept != null) + localVarHeaderParams.Add("Accept", localVarHttpHeaderAccept); + + if (requiredStringGroup != null) localVarQueryParams.AddRange(this.Configuration.ApiClient.ParameterToKeyValuePairs("", "required_string_group", requiredStringGroup)); // query parameter + if (requiredInt64Group != null) localVarQueryParams.AddRange(this.Configuration.ApiClient.ParameterToKeyValuePairs("", "required_int64_group", requiredInt64Group)); // query parameter + if (stringGroup != null) localVarQueryParams.AddRange(this.Configuration.ApiClient.ParameterToKeyValuePairs("", "string_group", stringGroup)); // query parameter + if (int64Group != null) localVarQueryParams.AddRange(this.Configuration.ApiClient.ParameterToKeyValuePairs("", "int64_group", int64Group)); // query parameter + if (requiredBooleanGroup != null) localVarHeaderParams.Add("required_boolean_group", this.Configuration.ApiClient.ParameterToString(requiredBooleanGroup)); // header parameter + if (booleanGroup != null) localVarHeaderParams.Add("boolean_group", this.Configuration.ApiClient.ParameterToString(booleanGroup)); // header parameter + + + // make the HTTP request + IRestResponse localVarResponse = (IRestResponse) await this.Configuration.ApiClient.CallApiAsync(localVarPath, + Method.DELETE, localVarQueryParams, localVarPostBody, localVarHeaderParams, localVarFormParams, localVarFileParams, + localVarPathParams, localVarHttpContentType); + + int localVarStatusCode = (int) localVarResponse.StatusCode; + + if (ExceptionFactory != null) + { + Exception exception = ExceptionFactory("TestGroupParameters", localVarResponse); + if (exception != null) throw exception; + } + + return new ApiResponse(localVarStatusCode, + localVarResponse.Headers.ToDictionary(x => x.Key, x => x.Value.ToString()), + null); + } + /// /// test inline additionalProperties /// diff --git a/samples/client/petstore/csharp/OpenAPIClientNetStandard/src/Org.OpenAPITools/Model/FileSchemaTestClass.cs b/samples/client/petstore/csharp/OpenAPIClientNetStandard/src/Org.OpenAPITools/Model/FileSchemaTestClass.cs index 543cf492626..1203ce22c0c 100644 --- a/samples/client/petstore/csharp/OpenAPIClientNetStandard/src/Org.OpenAPITools/Model/FileSchemaTestClass.cs +++ b/samples/client/petstore/csharp/OpenAPIClientNetStandard/src/Org.OpenAPITools/Model/FileSchemaTestClass.cs @@ -33,7 +33,7 @@ namespace Org.OpenAPITools.Model /// /// file. /// files. - public FileSchemaTestClass(System.IO.Stream file = default(System.IO.Stream), List files = default(List)) + public FileSchemaTestClass(File file = default(File), List files = default(List)) { this.File = file; this.Files = files; @@ -43,13 +43,13 @@ namespace Org.OpenAPITools.Model /// Gets or Sets File /// [DataMember(Name="file", EmitDefaultValue=false)] - public System.IO.Stream File { get; set; } + public File File { get; set; } /// /// Gets or Sets Files /// [DataMember(Name="files", EmitDefaultValue=false)] - public List Files { get; set; } + public List Files { get; set; } /// /// Returns the string presentation of the object diff --git a/samples/client/petstore/csharp/OpenAPIClientWithPropertyChanged/.openapi-generator/VERSION b/samples/client/petstore/csharp/OpenAPIClientWithPropertyChanged/.openapi-generator/VERSION index 319a3673c11..e24c1f857e0 100644 --- a/samples/client/petstore/csharp/OpenAPIClientWithPropertyChanged/.openapi-generator/VERSION +++ b/samples/client/petstore/csharp/OpenAPIClientWithPropertyChanged/.openapi-generator/VERSION @@ -1 +1 @@ -3.3.2-SNAPSHOT +3.3.3-SNAPSHOT \ No newline at end of file diff --git a/samples/client/petstore/csharp/OpenAPIClientWithPropertyChanged/README.md b/samples/client/petstore/csharp/OpenAPIClientWithPropertyChanged/README.md index a2b8a9b17a0..aabf26b7899 100644 --- a/samples/client/petstore/csharp/OpenAPIClientWithPropertyChanged/README.md +++ b/samples/client/petstore/csharp/OpenAPIClientWithPropertyChanged/README.md @@ -106,6 +106,7 @@ Class | Method | HTTP request | Description *FakeApi* | [**TestClientModel**](docs/FakeApi.md#testclientmodel) | **PATCH** /fake | To test \"client\" model *FakeApi* | [**TestEndpointParameters**](docs/FakeApi.md#testendpointparameters) | **POST** /fake | Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트 *FakeApi* | [**TestEnumParameters**](docs/FakeApi.md#testenumparameters) | **GET** /fake | To test enum parameters +*FakeApi* | [**TestGroupParameters**](docs/FakeApi.md#testgroupparameters) | **DELETE** /fake | Fake endpoint to test group parameters (optional) *FakeApi* | [**TestInlineAdditionalProperties**](docs/FakeApi.md#testinlineadditionalproperties) | **POST** /fake/inline-additionalProperties | test inline additionalProperties *FakeApi* | [**TestJsonFormData**](docs/FakeApi.md#testjsonformdata) | **GET** /fake/jsonFormData | test json serialization of form data *FakeClassnameTags123Api* | [**TestClassname**](docs/FakeClassnameTags123Api.md#testclassname) | **PATCH** /fake_classname_test | To test class name in snake case diff --git a/samples/client/petstore/csharp/OpenAPIClientWithPropertyChanged/docs/FakeApi.md b/samples/client/petstore/csharp/OpenAPIClientWithPropertyChanged/docs/FakeApi.md index d51d29c09a6..5be422501cd 100644 --- a/samples/client/petstore/csharp/OpenAPIClientWithPropertyChanged/docs/FakeApi.md +++ b/samples/client/petstore/csharp/OpenAPIClientWithPropertyChanged/docs/FakeApi.md @@ -13,6 +13,7 @@ Method | HTTP request | Description [**TestClientModel**](FakeApi.md#testclientmodel) | **PATCH** /fake | To test \"client\" model [**TestEndpointParameters**](FakeApi.md#testendpointparameters) | **POST** /fake | Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트 [**TestEnumParameters**](FakeApi.md#testenumparameters) | **GET** /fake | To test enum parameters +[**TestGroupParameters**](FakeApi.md#testgroupparameters) | **DELETE** /fake | Fake endpoint to test group parameters (optional) [**TestInlineAdditionalProperties**](FakeApi.md#testinlineadditionalproperties) | **POST** /fake/inline-additionalProperties | test inline additionalProperties [**TestJsonFormData**](FakeApi.md#testjsonformdata) | **GET** /fake/jsonFormData | test json serialization of form data @@ -600,6 +601,76 @@ No authorization required [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **TestGroupParameters** +> void TestGroupParameters (int? requiredStringGroup, bool? requiredBooleanGroup, long? requiredInt64Group, int? stringGroup = null, bool? booleanGroup = null, long? int64Group = null) + +Fake endpoint to test group parameters (optional) + +Fake endpoint to test group parameters (optional) + +### Example +```csharp +using System; +using System.Diagnostics; +using Org.OpenAPITools.Api; +using Org.OpenAPITools.Client; +using Org.OpenAPITools.Model; + +namespace Example +{ + public class TestGroupParametersExample + { + public void main() + { + var apiInstance = new FakeApi(); + var requiredStringGroup = 56; // int? | Required String in group parameters + var requiredBooleanGroup = true; // bool? | Required Boolean in group parameters + var requiredInt64Group = 789; // long? | Required Integer in group parameters + var stringGroup = 56; // int? | String in group parameters (optional) + var booleanGroup = true; // bool? | Boolean in group parameters (optional) + var int64Group = 789; // long? | Integer in group parameters (optional) + + try + { + // Fake endpoint to test group parameters (optional) + apiInstance.TestGroupParameters(requiredStringGroup, requiredBooleanGroup, requiredInt64Group, stringGroup, booleanGroup, int64Group); + } + catch (Exception e) + { + Debug.Print("Exception when calling FakeApi.TestGroupParameters: " + e.Message ); + } + } + } +} +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **requiredStringGroup** | **int?**| Required String in group parameters | + **requiredBooleanGroup** | **bool?**| Required Boolean in group parameters | + **requiredInt64Group** | **long?**| Required Integer in group parameters | + **stringGroup** | **int?**| String in group parameters | [optional] + **booleanGroup** | **bool?**| Boolean in group parameters | [optional] + **int64Group** | **long?**| Integer in group parameters | [optional] + +### Return type + +void (empty response body) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + # **TestInlineAdditionalProperties** > void TestInlineAdditionalProperties (Dictionary requestBody) diff --git a/samples/client/petstore/csharp/OpenAPIClientWithPropertyChanged/docs/FileSchemaTestClass.md b/samples/client/petstore/csharp/OpenAPIClientWithPropertyChanged/docs/FileSchemaTestClass.md index e0820fa4e65..244164accbe 100644 --- a/samples/client/petstore/csharp/OpenAPIClientWithPropertyChanged/docs/FileSchemaTestClass.md +++ b/samples/client/petstore/csharp/OpenAPIClientWithPropertyChanged/docs/FileSchemaTestClass.md @@ -3,8 +3,8 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**File** | **System.IO.Stream** | | [optional] -**Files** | **List<System.IO.Stream>** | | [optional] +**File** | [**File**](File.md) | | [optional] +**Files** | [**List<File>**](File.md) | | [optional] [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/samples/client/petstore/csharp/OpenAPIClientWithPropertyChanged/src/Org.OpenAPITools/Api/FakeApi.cs b/samples/client/petstore/csharp/OpenAPIClientWithPropertyChanged/src/Org.OpenAPITools/Api/FakeApi.cs index 6d0928a226a..5de355ea7db 100644 --- a/samples/client/petstore/csharp/OpenAPIClientWithPropertyChanged/src/Org.OpenAPITools/Api/FakeApi.cs +++ b/samples/client/petstore/csharp/OpenAPIClientWithPropertyChanged/src/Org.OpenAPITools/Api/FakeApi.cs @@ -256,6 +256,37 @@ namespace Org.OpenAPITools.Api /// ApiResponse of Object(void) ApiResponse TestEnumParametersWithHttpInfo (List enumHeaderStringArray = null, string enumHeaderString = null, List enumQueryStringArray = null, string enumQueryString = null, int? enumQueryInteger = null, double? enumQueryDouble = null, List enumFormStringArray = null, string enumFormString = null); /// + /// Fake endpoint to test group parameters (optional) + /// + /// + /// Fake endpoint to test group parameters (optional) + /// + /// Thrown when fails to make API call + /// Required String in group parameters + /// Required Boolean in group parameters + /// Required Integer in group parameters + /// String in group parameters (optional) + /// Boolean in group parameters (optional) + /// Integer in group parameters (optional) + /// + void TestGroupParameters (int? requiredStringGroup, bool? requiredBooleanGroup, long? requiredInt64Group, int? stringGroup = null, bool? booleanGroup = null, long? int64Group = null); + + /// + /// Fake endpoint to test group parameters (optional) + /// + /// + /// Fake endpoint to test group parameters (optional) + /// + /// Thrown when fails to make API call + /// Required String in group parameters + /// Required Boolean in group parameters + /// Required Integer in group parameters + /// String in group parameters (optional) + /// Boolean in group parameters (optional) + /// Integer in group parameters (optional) + /// ApiResponse of Object(void) + ApiResponse TestGroupParametersWithHttpInfo (int? requiredStringGroup, bool? requiredBooleanGroup, long? requiredInt64Group, int? stringGroup = null, bool? booleanGroup = null, long? int64Group = null); + /// /// test inline additionalProperties /// /// @@ -533,6 +564,37 @@ namespace Org.OpenAPITools.Api /// Task of ApiResponse System.Threading.Tasks.Task> TestEnumParametersAsyncWithHttpInfo (List enumHeaderStringArray = null, string enumHeaderString = null, List enumQueryStringArray = null, string enumQueryString = null, int? enumQueryInteger = null, double? enumQueryDouble = null, List enumFormStringArray = null, string enumFormString = null); /// + /// Fake endpoint to test group parameters (optional) + /// + /// + /// Fake endpoint to test group parameters (optional) + /// + /// Thrown when fails to make API call + /// Required String in group parameters + /// Required Boolean in group parameters + /// Required Integer in group parameters + /// String in group parameters (optional) + /// Boolean in group parameters (optional) + /// Integer in group parameters (optional) + /// Task of void + System.Threading.Tasks.Task TestGroupParametersAsync (int? requiredStringGroup, bool? requiredBooleanGroup, long? requiredInt64Group, int? stringGroup = null, bool? booleanGroup = null, long? int64Group = null); + + /// + /// Fake endpoint to test group parameters (optional) + /// + /// + /// Fake endpoint to test group parameters (optional) + /// + /// Thrown when fails to make API call + /// Required String in group parameters + /// Required Boolean in group parameters + /// Required Integer in group parameters + /// String in group parameters (optional) + /// Boolean in group parameters (optional) + /// Integer in group parameters (optional) + /// Task of ApiResponse + System.Threading.Tasks.Task> TestGroupParametersAsyncWithHttpInfo (int? requiredStringGroup, bool? requiredBooleanGroup, long? requiredInt64Group, int? stringGroup = null, bool? booleanGroup = null, long? int64Group = null); + /// /// test inline additionalProperties /// /// @@ -2108,6 +2170,177 @@ namespace Org.OpenAPITools.Api null); } + /// + /// Fake endpoint to test group parameters (optional) Fake endpoint to test group parameters (optional) + /// + /// Thrown when fails to make API call + /// Required String in group parameters + /// Required Boolean in group parameters + /// Required Integer in group parameters + /// String in group parameters (optional) + /// Boolean in group parameters (optional) + /// Integer in group parameters (optional) + /// + public void TestGroupParameters (int? requiredStringGroup, bool? requiredBooleanGroup, long? requiredInt64Group, int? stringGroup = null, bool? booleanGroup = null, long? int64Group = null) + { + TestGroupParametersWithHttpInfo(requiredStringGroup, requiredBooleanGroup, requiredInt64Group, stringGroup, booleanGroup, int64Group); + } + + /// + /// Fake endpoint to test group parameters (optional) Fake endpoint to test group parameters (optional) + /// + /// Thrown when fails to make API call + /// Required String in group parameters + /// Required Boolean in group parameters + /// Required Integer in group parameters + /// String in group parameters (optional) + /// Boolean in group parameters (optional) + /// Integer in group parameters (optional) + /// ApiResponse of Object(void) + public ApiResponse TestGroupParametersWithHttpInfo (int? requiredStringGroup, bool? requiredBooleanGroup, long? requiredInt64Group, int? stringGroup = null, bool? booleanGroup = null, long? int64Group = null) + { + // verify the required parameter 'requiredStringGroup' is set + if (requiredStringGroup == null) + throw new ApiException(400, "Missing required parameter 'requiredStringGroup' when calling FakeApi->TestGroupParameters"); + // verify the required parameter 'requiredBooleanGroup' is set + if (requiredBooleanGroup == null) + throw new ApiException(400, "Missing required parameter 'requiredBooleanGroup' when calling FakeApi->TestGroupParameters"); + // verify the required parameter 'requiredInt64Group' is set + if (requiredInt64Group == null) + throw new ApiException(400, "Missing required parameter 'requiredInt64Group' when calling FakeApi->TestGroupParameters"); + + var localVarPath = "/fake"; + var localVarPathParams = new Dictionary(); + var localVarQueryParams = new List>(); + var localVarHeaderParams = new Dictionary(this.Configuration.DefaultHeader); + var localVarFormParams = new Dictionary(); + var localVarFileParams = new Dictionary(); + Object localVarPostBody = null; + + // to determine the Content-Type header + String[] localVarHttpContentTypes = new String[] { + }; + String localVarHttpContentType = this.Configuration.ApiClient.SelectHeaderContentType(localVarHttpContentTypes); + + // to determine the Accept header + String[] localVarHttpHeaderAccepts = new String[] { + }; + String localVarHttpHeaderAccept = this.Configuration.ApiClient.SelectHeaderAccept(localVarHttpHeaderAccepts); + if (localVarHttpHeaderAccept != null) + localVarHeaderParams.Add("Accept", localVarHttpHeaderAccept); + + if (requiredStringGroup != null) localVarQueryParams.AddRange(this.Configuration.ApiClient.ParameterToKeyValuePairs("", "required_string_group", requiredStringGroup)); // query parameter + if (requiredInt64Group != null) localVarQueryParams.AddRange(this.Configuration.ApiClient.ParameterToKeyValuePairs("", "required_int64_group", requiredInt64Group)); // query parameter + if (stringGroup != null) localVarQueryParams.AddRange(this.Configuration.ApiClient.ParameterToKeyValuePairs("", "string_group", stringGroup)); // query parameter + if (int64Group != null) localVarQueryParams.AddRange(this.Configuration.ApiClient.ParameterToKeyValuePairs("", "int64_group", int64Group)); // query parameter + if (requiredBooleanGroup != null) localVarHeaderParams.Add("required_boolean_group", this.Configuration.ApiClient.ParameterToString(requiredBooleanGroup)); // header parameter + if (booleanGroup != null) localVarHeaderParams.Add("boolean_group", this.Configuration.ApiClient.ParameterToString(booleanGroup)); // header parameter + + + // make the HTTP request + IRestResponse localVarResponse = (IRestResponse) this.Configuration.ApiClient.CallApi(localVarPath, + Method.DELETE, localVarQueryParams, localVarPostBody, localVarHeaderParams, localVarFormParams, localVarFileParams, + localVarPathParams, localVarHttpContentType); + + int localVarStatusCode = (int) localVarResponse.StatusCode; + + if (ExceptionFactory != null) + { + Exception exception = ExceptionFactory("TestGroupParameters", localVarResponse); + if (exception != null) throw exception; + } + + return new ApiResponse(localVarStatusCode, + localVarResponse.Headers.ToDictionary(x => x.Name, x => x.Value.ToString()), + null); + } + + /// + /// Fake endpoint to test group parameters (optional) Fake endpoint to test group parameters (optional) + /// + /// Thrown when fails to make API call + /// Required String in group parameters + /// Required Boolean in group parameters + /// Required Integer in group parameters + /// String in group parameters (optional) + /// Boolean in group parameters (optional) + /// Integer in group parameters (optional) + /// Task of void + public async System.Threading.Tasks.Task TestGroupParametersAsync (int? requiredStringGroup, bool? requiredBooleanGroup, long? requiredInt64Group, int? stringGroup = null, bool? booleanGroup = null, long? int64Group = null) + { + await TestGroupParametersAsyncWithHttpInfo(requiredStringGroup, requiredBooleanGroup, requiredInt64Group, stringGroup, booleanGroup, int64Group); + + } + + /// + /// Fake endpoint to test group parameters (optional) Fake endpoint to test group parameters (optional) + /// + /// Thrown when fails to make API call + /// Required String in group parameters + /// Required Boolean in group parameters + /// Required Integer in group parameters + /// String in group parameters (optional) + /// Boolean in group parameters (optional) + /// Integer in group parameters (optional) + /// Task of ApiResponse + public async System.Threading.Tasks.Task> TestGroupParametersAsyncWithHttpInfo (int? requiredStringGroup, bool? requiredBooleanGroup, long? requiredInt64Group, int? stringGroup = null, bool? booleanGroup = null, long? int64Group = null) + { + // verify the required parameter 'requiredStringGroup' is set + if (requiredStringGroup == null) + throw new ApiException(400, "Missing required parameter 'requiredStringGroup' when calling FakeApi->TestGroupParameters"); + // verify the required parameter 'requiredBooleanGroup' is set + if (requiredBooleanGroup == null) + throw new ApiException(400, "Missing required parameter 'requiredBooleanGroup' when calling FakeApi->TestGroupParameters"); + // verify the required parameter 'requiredInt64Group' is set + if (requiredInt64Group == null) + throw new ApiException(400, "Missing required parameter 'requiredInt64Group' when calling FakeApi->TestGroupParameters"); + + var localVarPath = "/fake"; + var localVarPathParams = new Dictionary(); + var localVarQueryParams = new List>(); + var localVarHeaderParams = new Dictionary(this.Configuration.DefaultHeader); + var localVarFormParams = new Dictionary(); + var localVarFileParams = new Dictionary(); + Object localVarPostBody = null; + + // to determine the Content-Type header + String[] localVarHttpContentTypes = new String[] { + }; + String localVarHttpContentType = this.Configuration.ApiClient.SelectHeaderContentType(localVarHttpContentTypes); + + // to determine the Accept header + String[] localVarHttpHeaderAccepts = new String[] { + }; + String localVarHttpHeaderAccept = this.Configuration.ApiClient.SelectHeaderAccept(localVarHttpHeaderAccepts); + if (localVarHttpHeaderAccept != null) + localVarHeaderParams.Add("Accept", localVarHttpHeaderAccept); + + if (requiredStringGroup != null) localVarQueryParams.AddRange(this.Configuration.ApiClient.ParameterToKeyValuePairs("", "required_string_group", requiredStringGroup)); // query parameter + if (requiredInt64Group != null) localVarQueryParams.AddRange(this.Configuration.ApiClient.ParameterToKeyValuePairs("", "required_int64_group", requiredInt64Group)); // query parameter + if (stringGroup != null) localVarQueryParams.AddRange(this.Configuration.ApiClient.ParameterToKeyValuePairs("", "string_group", stringGroup)); // query parameter + if (int64Group != null) localVarQueryParams.AddRange(this.Configuration.ApiClient.ParameterToKeyValuePairs("", "int64_group", int64Group)); // query parameter + if (requiredBooleanGroup != null) localVarHeaderParams.Add("required_boolean_group", this.Configuration.ApiClient.ParameterToString(requiredBooleanGroup)); // header parameter + if (booleanGroup != null) localVarHeaderParams.Add("boolean_group", this.Configuration.ApiClient.ParameterToString(booleanGroup)); // header parameter + + + // make the HTTP request + IRestResponse localVarResponse = (IRestResponse) await this.Configuration.ApiClient.CallApiAsync(localVarPath, + Method.DELETE, localVarQueryParams, localVarPostBody, localVarHeaderParams, localVarFormParams, localVarFileParams, + localVarPathParams, localVarHttpContentType); + + int localVarStatusCode = (int) localVarResponse.StatusCode; + + if (ExceptionFactory != null) + { + Exception exception = ExceptionFactory("TestGroupParameters", localVarResponse); + if (exception != null) throw exception; + } + + return new ApiResponse(localVarStatusCode, + localVarResponse.Headers.ToDictionary(x => x.Name, x => x.Value.ToString()), + null); + } + /// /// test inline additionalProperties /// diff --git a/samples/client/petstore/csharp/OpenAPIClientWithPropertyChanged/src/Org.OpenAPITools/Model/FileSchemaTestClass.cs b/samples/client/petstore/csharp/OpenAPIClientWithPropertyChanged/src/Org.OpenAPITools/Model/FileSchemaTestClass.cs index dc29a2ba878..ab04abfef1e 100644 --- a/samples/client/petstore/csharp/OpenAPIClientWithPropertyChanged/src/Org.OpenAPITools/Model/FileSchemaTestClass.cs +++ b/samples/client/petstore/csharp/OpenAPIClientWithPropertyChanged/src/Org.OpenAPITools/Model/FileSchemaTestClass.cs @@ -38,7 +38,7 @@ namespace Org.OpenAPITools.Model /// /// file. /// files. - public FileSchemaTestClass(System.IO.Stream file = default(System.IO.Stream), List files = default(List)) + public FileSchemaTestClass(File file = default(File), List files = default(List)) { this.File = file; this.Files = files; @@ -48,13 +48,13 @@ namespace Org.OpenAPITools.Model /// Gets or Sets File /// [DataMember(Name="file", EmitDefaultValue=false)] - public System.IO.Stream File { get; set; } + public File File { get; set; } /// /// Gets or Sets Files /// [DataMember(Name="files", EmitDefaultValue=false)] - public List Files { get; set; } + public List Files { get; set; } /// /// Returns the string presentation of the object From 22902e72a1eae0e3797aad00aa1d23a05c725d29 Mon Sep 17 00:00:00 2001 From: TNM Technologies Date: Wed, 14 Nov 2018 03:18:53 +0100 Subject: [PATCH 18/27] fix(#1423): [JAVA] generating Map with jaxrs-reasteasy does not import (#1426) * fix(#1423): [JAVA] generating Map with jaxrs-reasteasy does not import the hashmap https://github.com/OpenAPITools/openapi-generator/issues/1423 * fix(#1423): fix ensure-up-to-date issues for jaxrs-resteasy joda samples https://github.com/OpenAPITools/openapi-generator/issues/1423 --- .../languages/JavaResteasyServerCodegen.java | 1 + ...vaJaxrsResteasyServerCodegenModelTest.java | 30 +++++++++++++++++++ .../java/org/openapitools/model/Category.java | 1 + .../openapitools/model/ModelApiResponse.java | 1 + .../java/org/openapitools/model/Order.java | 1 + .../gen/java/org/openapitools/model/Pet.java | 2 ++ .../gen/java/org/openapitools/model/Tag.java | 1 + .../gen/java/org/openapitools/model/User.java | 1 + .../java/org/openapitools/model/Category.java | 1 + .../openapitools/model/ModelApiResponse.java | 1 + .../java/org/openapitools/model/Order.java | 1 + .../gen/java/org/openapitools/model/Pet.java | 2 ++ .../gen/java/org/openapitools/model/Tag.java | 1 + .../gen/java/org/openapitools/model/User.java | 1 + 14 files changed, 45 insertions(+) create mode 100644 modules/openapi-generator/src/test/java/org/openapitools/codegen/java/jaxrs/JavaJaxrsResteasyServerCodegenModelTest.java diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaResteasyServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaResteasyServerCodegen.java index 1db4e3b0a71..3d8c800aed2 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaResteasyServerCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaResteasyServerCodegen.java @@ -152,6 +152,7 @@ public class JavaResteasyServerCodegen extends AbstractJavaJAXRSServerCodegen im @Override public void postProcessModelProperty(CodegenModel model, CodegenProperty property) { + super.postProcessModelProperty(model, property); //Add imports for Jackson if (!BooleanUtils.toBoolean(model.isEnum)) { model.imports.add("JsonProperty"); diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/jaxrs/JavaJaxrsResteasyServerCodegenModelTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/jaxrs/JavaJaxrsResteasyServerCodegenModelTest.java new file mode 100644 index 00000000000..baaf2a12d3a --- /dev/null +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/jaxrs/JavaJaxrsResteasyServerCodegenModelTest.java @@ -0,0 +1,30 @@ +package org.openapitools.codegen.java.jaxrs; + +import static org.testng.Assert.assertEquals; +import static org.testng.Assert.assertTrue; + +import java.util.Collections; + +import org.openapitools.codegen.CodegenModel; +import org.openapitools.codegen.languages.JavaResteasyServerCodegen; +import org.testng.annotations.Test; + +import io.swagger.v3.oas.models.media.MapSchema; +import io.swagger.v3.oas.models.media.Schema; + +public class JavaJaxrsResteasyServerCodegenModelTest { + + @Test(description = "convert a simple java model with java8 types") + public void mapModelTest() { + final Schema model = new Schema() + .description("A model with a map") + .addProperties("map", new MapSchema()); + + final JavaResteasyServerCodegen codegen = new JavaResteasyServerCodegen(); + final CodegenModel cm = codegen.fromModel("sample", model, Collections.singletonMap("sample", model)); + + assertEquals(cm.vars.get(0).baseType, "Map"); + assertTrue(cm.imports.contains("HashMap")); + } + +} diff --git a/samples/server/petstore/jaxrs-resteasy/default/src/gen/java/org/openapitools/model/Category.java b/samples/server/petstore/jaxrs-resteasy/default/src/gen/java/org/openapitools/model/Category.java index e998196f201..25b7bfbcb86 100644 --- a/samples/server/petstore/jaxrs-resteasy/default/src/gen/java/org/openapitools/model/Category.java +++ b/samples/server/petstore/jaxrs-resteasy/default/src/gen/java/org/openapitools/model/Category.java @@ -5,6 +5,7 @@ import java.util.ArrayList; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; import javax.validation.constraints.*; import io.swagger.annotations.*; diff --git a/samples/server/petstore/jaxrs-resteasy/default/src/gen/java/org/openapitools/model/ModelApiResponse.java b/samples/server/petstore/jaxrs-resteasy/default/src/gen/java/org/openapitools/model/ModelApiResponse.java index 9b695e3abf8..e4425ad7fa2 100644 --- a/samples/server/petstore/jaxrs-resteasy/default/src/gen/java/org/openapitools/model/ModelApiResponse.java +++ b/samples/server/petstore/jaxrs-resteasy/default/src/gen/java/org/openapitools/model/ModelApiResponse.java @@ -5,6 +5,7 @@ import java.util.ArrayList; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; import javax.validation.constraints.*; import io.swagger.annotations.*; diff --git a/samples/server/petstore/jaxrs-resteasy/default/src/gen/java/org/openapitools/model/Order.java b/samples/server/petstore/jaxrs-resteasy/default/src/gen/java/org/openapitools/model/Order.java index b44d7a4005f..bb85e1540b1 100644 --- a/samples/server/petstore/jaxrs-resteasy/default/src/gen/java/org/openapitools/model/Order.java +++ b/samples/server/petstore/jaxrs-resteasy/default/src/gen/java/org/openapitools/model/Order.java @@ -6,6 +6,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; import java.util.Date; import javax.validation.constraints.*; import io.swagger.annotations.*; diff --git a/samples/server/petstore/jaxrs-resteasy/default/src/gen/java/org/openapitools/model/Pet.java b/samples/server/petstore/jaxrs-resteasy/default/src/gen/java/org/openapitools/model/Pet.java index 2205c845da7..cc4dba7c517 100644 --- a/samples/server/petstore/jaxrs-resteasy/default/src/gen/java/org/openapitools/model/Pet.java +++ b/samples/server/petstore/jaxrs-resteasy/default/src/gen/java/org/openapitools/model/Pet.java @@ -6,6 +6,8 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.util.ArrayList; import java.util.List; import org.openapitools.model.Category; import org.openapitools.model.Tag; diff --git a/samples/server/petstore/jaxrs-resteasy/default/src/gen/java/org/openapitools/model/Tag.java b/samples/server/petstore/jaxrs-resteasy/default/src/gen/java/org/openapitools/model/Tag.java index d28cc50ac9a..6f313ae5b96 100644 --- a/samples/server/petstore/jaxrs-resteasy/default/src/gen/java/org/openapitools/model/Tag.java +++ b/samples/server/petstore/jaxrs-resteasy/default/src/gen/java/org/openapitools/model/Tag.java @@ -5,6 +5,7 @@ import java.util.ArrayList; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; import javax.validation.constraints.*; import io.swagger.annotations.*; diff --git a/samples/server/petstore/jaxrs-resteasy/default/src/gen/java/org/openapitools/model/User.java b/samples/server/petstore/jaxrs-resteasy/default/src/gen/java/org/openapitools/model/User.java index e44d59a722d..55499fbdda0 100644 --- a/samples/server/petstore/jaxrs-resteasy/default/src/gen/java/org/openapitools/model/User.java +++ b/samples/server/petstore/jaxrs-resteasy/default/src/gen/java/org/openapitools/model/User.java @@ -5,6 +5,7 @@ import java.util.ArrayList; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; import javax.validation.constraints.*; import io.swagger.annotations.*; diff --git a/samples/server/petstore/jaxrs-resteasy/joda/src/gen/java/org/openapitools/model/Category.java b/samples/server/petstore/jaxrs-resteasy/joda/src/gen/java/org/openapitools/model/Category.java index e998196f201..25b7bfbcb86 100644 --- a/samples/server/petstore/jaxrs-resteasy/joda/src/gen/java/org/openapitools/model/Category.java +++ b/samples/server/petstore/jaxrs-resteasy/joda/src/gen/java/org/openapitools/model/Category.java @@ -5,6 +5,7 @@ import java.util.ArrayList; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; import javax.validation.constraints.*; import io.swagger.annotations.*; diff --git a/samples/server/petstore/jaxrs-resteasy/joda/src/gen/java/org/openapitools/model/ModelApiResponse.java b/samples/server/petstore/jaxrs-resteasy/joda/src/gen/java/org/openapitools/model/ModelApiResponse.java index 9b695e3abf8..e4425ad7fa2 100644 --- a/samples/server/petstore/jaxrs-resteasy/joda/src/gen/java/org/openapitools/model/ModelApiResponse.java +++ b/samples/server/petstore/jaxrs-resteasy/joda/src/gen/java/org/openapitools/model/ModelApiResponse.java @@ -5,6 +5,7 @@ import java.util.ArrayList; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; import javax.validation.constraints.*; import io.swagger.annotations.*; diff --git a/samples/server/petstore/jaxrs-resteasy/joda/src/gen/java/org/openapitools/model/Order.java b/samples/server/petstore/jaxrs-resteasy/joda/src/gen/java/org/openapitools/model/Order.java index 2f2fe290ece..d7480fc9e3e 100644 --- a/samples/server/petstore/jaxrs-resteasy/joda/src/gen/java/org/openapitools/model/Order.java +++ b/samples/server/petstore/jaxrs-resteasy/joda/src/gen/java/org/openapitools/model/Order.java @@ -6,6 +6,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; import org.joda.time.DateTime; import javax.validation.constraints.*; import io.swagger.annotations.*; diff --git a/samples/server/petstore/jaxrs-resteasy/joda/src/gen/java/org/openapitools/model/Pet.java b/samples/server/petstore/jaxrs-resteasy/joda/src/gen/java/org/openapitools/model/Pet.java index 2205c845da7..cc4dba7c517 100644 --- a/samples/server/petstore/jaxrs-resteasy/joda/src/gen/java/org/openapitools/model/Pet.java +++ b/samples/server/petstore/jaxrs-resteasy/joda/src/gen/java/org/openapitools/model/Pet.java @@ -6,6 +6,8 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.util.ArrayList; import java.util.List; import org.openapitools.model.Category; import org.openapitools.model.Tag; diff --git a/samples/server/petstore/jaxrs-resteasy/joda/src/gen/java/org/openapitools/model/Tag.java b/samples/server/petstore/jaxrs-resteasy/joda/src/gen/java/org/openapitools/model/Tag.java index d28cc50ac9a..6f313ae5b96 100644 --- a/samples/server/petstore/jaxrs-resteasy/joda/src/gen/java/org/openapitools/model/Tag.java +++ b/samples/server/petstore/jaxrs-resteasy/joda/src/gen/java/org/openapitools/model/Tag.java @@ -5,6 +5,7 @@ import java.util.ArrayList; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; import javax.validation.constraints.*; import io.swagger.annotations.*; diff --git a/samples/server/petstore/jaxrs-resteasy/joda/src/gen/java/org/openapitools/model/User.java b/samples/server/petstore/jaxrs-resteasy/joda/src/gen/java/org/openapitools/model/User.java index e44d59a722d..55499fbdda0 100644 --- a/samples/server/petstore/jaxrs-resteasy/joda/src/gen/java/org/openapitools/model/User.java +++ b/samples/server/petstore/jaxrs-resteasy/joda/src/gen/java/org/openapitools/model/User.java @@ -5,6 +5,7 @@ import java.util.ArrayList; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; import javax.validation.constraints.*; import io.swagger.annotations.*; From 3c28946f1e3e5c038a2e9927561452c5b53052bc Mon Sep 17 00:00:00 2001 From: William Cheng Date: Wed, 14 Nov 2018 14:02:05 +0800 Subject: [PATCH 19/27] [Android] Fix compilation errors when there's no model defined (#1438) * remove model import when there is no model * fix android http client no model issu due to import --- .../codegen/DefaultGenerator.java | 6 ++++ .../src/main/resources/android/api.mustache | 2 ++ .../main/resources/android/jsonUtil.mustache | 2 ++ .../android/libraries/volley/api.mustache | 2 ++ .../libraries/volley/jsonUtil.mustache | 2 ++ .../httpclient/.openapi-generator/VERSION | 2 +- .../android/httpclient/docs/PetApi.md | 36 +++++++++---------- .../android/httpclient/docs/StoreApi.md | 8 ++--- .../android/httpclient/docs/UserApi.md | 20 +++++------ .../org/openapitools/client/JsonUtil.java | 1 - .../android/volley/.openapi-generator/VERSION | 2 +- .../petstore/android/volley/docs/PetApi.md | 36 +++++++++---------- .../petstore/android/volley/docs/StoreApi.md | 8 ++--- .../petstore/android/volley/docs/UserApi.md | 20 +++++------ 14 files changed, 80 insertions(+), 67 deletions(-) diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultGenerator.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultGenerator.java index 4128fb71b3d..d97fac919b7 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultGenerator.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultGenerator.java @@ -523,6 +523,12 @@ public class DefaultGenerator extends AbstractGenerator implements Generator { operation.put("importPath", config.toApiImport(tag)); operation.put("classFilename", config.toApiFilename(tag)); + if (allModels == null || allModels.isEmpty()) { + operation.put("hasModel", false); + } else { + operation.put("hasModel", true); + } + if (!config.vendorExtensions().isEmpty()) { operation.put("vendorExtensions", config.vendorExtensions()); } diff --git a/modules/openapi-generator/src/main/resources/android/api.mustache b/modules/openapi-generator/src/main/resources/android/api.mustache index cf7d57ab4db..a54a31dd616 100644 --- a/modules/openapi-generator/src/main/resources/android/api.mustache +++ b/modules/openapi-generator/src/main/resources/android/api.mustache @@ -5,7 +5,9 @@ import {{invokerPackage}}.ApiException; import {{invokerPackage}}.ApiInvoker; import {{invokerPackage}}.Pair; +{{#hasModel}} import {{modelPackage}}.*; +{{/hasModel}} import java.util.*; diff --git a/modules/openapi-generator/src/main/resources/android/jsonUtil.mustache b/modules/openapi-generator/src/main/resources/android/jsonUtil.mustache index ae8d18d3731..5995c0150f0 100644 --- a/modules/openapi-generator/src/main/resources/android/jsonUtil.mustache +++ b/modules/openapi-generator/src/main/resources/android/jsonUtil.mustache @@ -5,7 +5,9 @@ import com.google.gson.GsonBuilder; import com.google.gson.reflect.TypeToken; import java.lang.reflect.Type; import java.util.List; +{{#hasModel}} import {{modelPackage}}.*; +{{/hasModel}} public class JsonUtil { public static GsonBuilder gsonBuilder; diff --git a/modules/openapi-generator/src/main/resources/android/libraries/volley/api.mustache b/modules/openapi-generator/src/main/resources/android/libraries/volley/api.mustache index b1441e7cd65..041886be174 100644 --- a/modules/openapi-generator/src/main/resources/android/libraries/volley/api.mustache +++ b/modules/openapi-generator/src/main/resources/android/libraries/volley/api.mustache @@ -5,7 +5,9 @@ import {{invokerPackage}}.ApiInvoker; import {{invokerPackage}}.ApiException; import {{invokerPackage}}.Pair; +{{#hasModel}} import {{modelPackage}}.*; +{{/hasModel}} import java.util.*; diff --git a/modules/openapi-generator/src/main/resources/android/libraries/volley/jsonUtil.mustache b/modules/openapi-generator/src/main/resources/android/libraries/volley/jsonUtil.mustache index 0460feef71b..8835ae35db8 100644 --- a/modules/openapi-generator/src/main/resources/android/libraries/volley/jsonUtil.mustache +++ b/modules/openapi-generator/src/main/resources/android/libraries/volley/jsonUtil.mustache @@ -11,7 +11,9 @@ import com.google.gson.reflect.TypeToken; import java.lang.reflect.Type; import java.util.List; import java.util.Date; +{{#models.0}} import {{modelPackage}}.*; +{{/models.0}} public class JsonUtil { public static GsonBuilder gsonBuilder; diff --git a/samples/client/petstore/android/httpclient/.openapi-generator/VERSION b/samples/client/petstore/android/httpclient/.openapi-generator/VERSION index 096bf47efe3..e24c1f857e0 100644 --- a/samples/client/petstore/android/httpclient/.openapi-generator/VERSION +++ b/samples/client/petstore/android/httpclient/.openapi-generator/VERSION @@ -1 +1 @@ -3.0.0-SNAPSHOT \ No newline at end of file +3.3.3-SNAPSHOT \ No newline at end of file diff --git a/samples/client/petstore/android/httpclient/docs/PetApi.md b/samples/client/petstore/android/httpclient/docs/PetApi.md index adadfaab9b7..7cf076f29c5 100644 --- a/samples/client/petstore/android/httpclient/docs/PetApi.md +++ b/samples/client/petstore/android/httpclient/docs/PetApi.md @@ -66,8 +66,8 @@ Deletes a pet //import org.openapitools.client.api.PetApi; PetApi apiInstance = new PetApi(); -Long petId = 56L; // Long | Pet id to delete -String apiKey = "apiKey_example"; // String | +Long petId = null; // Long | Pet id to delete +String apiKey = null; // String | try { apiInstance.deletePet(petId, apiKey); } catch (ApiException e) { @@ -80,8 +80,8 @@ try { Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **petId** | **Long**| Pet id to delete | - **apiKey** | **String**| | [optional] + **petId** | **Long**| Pet id to delete | [default to null] + **apiKey** | **String**| | [optional] [default to null] ### Return type @@ -110,7 +110,7 @@ Multiple status values can be provided with comma separated strings //import org.openapitools.client.api.PetApi; PetApi apiInstance = new PetApi(); -List status = Arrays.asList("status_example"); // List | Status values that need to be considered for filter +List status = null; // List | Status values that need to be considered for filter try { List result = apiInstance.findPetsByStatus(status); System.out.println(result); @@ -124,7 +124,7 @@ try { Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **status** | [**List<String>**](String.md)| Status values that need to be considered for filter | [enum: available, pending, sold] + **status** | [**List<String>**](String.md)| Status values that need to be considered for filter | [default to null] [enum: available, pending, sold] ### Return type @@ -153,7 +153,7 @@ Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 //import org.openapitools.client.api.PetApi; PetApi apiInstance = new PetApi(); -List tags = Arrays.asList("tags_example"); // List | Tags to filter by +List tags = null; // List | Tags to filter by try { List result = apiInstance.findPetsByTags(tags); System.out.println(result); @@ -167,7 +167,7 @@ try { Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **tags** | [**List<String>**](String.md)| Tags to filter by | + **tags** | [**List<String>**](String.md)| Tags to filter by | [default to null] ### Return type @@ -196,7 +196,7 @@ Returns a single pet //import org.openapitools.client.api.PetApi; PetApi apiInstance = new PetApi(); -Long petId = 56L; // Long | ID of pet to return +Long petId = null; // Long | ID of pet to return try { Pet result = apiInstance.getPetById(petId); System.out.println(result); @@ -210,7 +210,7 @@ try { Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **petId** | **Long**| ID of pet to return | + **petId** | **Long**| ID of pet to return | [default to null] ### Return type @@ -277,9 +277,9 @@ Updates a pet in the store with form data //import org.openapitools.client.api.PetApi; PetApi apiInstance = new PetApi(); -Long petId = 56L; // Long | ID of pet that needs to be updated -String name = "null"; // String | Updated name of the pet -String status = "null"; // String | Updated status of the pet +Long petId = null; // Long | ID of pet that needs to be updated +String name = null; // String | Updated name of the pet +String status = null; // String | Updated status of the pet try { apiInstance.updatePetWithForm(petId, name, status); } catch (ApiException e) { @@ -292,7 +292,7 @@ try { Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **petId** | **Long**| ID of pet that needs to be updated | + **petId** | **Long**| ID of pet that needs to be updated | [default to null] **name** | **String**| Updated name of the pet | [optional] [default to null] **status** | **String**| Updated status of the pet | [optional] [default to null] @@ -321,9 +321,9 @@ uploads an image //import org.openapitools.client.api.PetApi; PetApi apiInstance = new PetApi(); -Long petId = 56L; // Long | ID of pet to update -String additionalMetadata = "null"; // String | Additional data to pass to server -File file = new File("null"); // File | file to upload +Long petId = null; // Long | ID of pet to update +String additionalMetadata = null; // String | Additional data to pass to server +File file = null; // File | file to upload try { ApiResponse result = apiInstance.uploadFile(petId, additionalMetadata, file); System.out.println(result); @@ -337,7 +337,7 @@ try { Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **petId** | **Long**| ID of pet to update | + **petId** | **Long**| ID of pet to update | [default to null] **additionalMetadata** | **String**| Additional data to pass to server | [optional] [default to null] **file** | **File**| file to upload | [optional] [default to null] diff --git a/samples/client/petstore/android/httpclient/docs/StoreApi.md b/samples/client/petstore/android/httpclient/docs/StoreApi.md index 7f2289550f3..b768ad5ba98 100644 --- a/samples/client/petstore/android/httpclient/docs/StoreApi.md +++ b/samples/client/petstore/android/httpclient/docs/StoreApi.md @@ -24,7 +24,7 @@ For valid response try integer IDs with value < 1000. Anything above 1000 or //import org.openapitools.client.api.StoreApi; StoreApi apiInstance = new StoreApi(); -String orderId = "orderId_example"; // String | ID of the order that needs to be deleted +String orderId = null; // String | ID of the order that needs to be deleted try { apiInstance.deleteOrder(orderId); } catch (ApiException e) { @@ -37,7 +37,7 @@ try { Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **orderId** | **String**| ID of the order that needs to be deleted | + **orderId** | **String**| ID of the order that needs to be deleted | [default to null] ### Return type @@ -105,7 +105,7 @@ For valid response try integer IDs with value <= 5 or > 10. Other val //import org.openapitools.client.api.StoreApi; StoreApi apiInstance = new StoreApi(); -Long orderId = 56L; // Long | ID of pet that needs to be fetched +Long orderId = null; // Long | ID of pet that needs to be fetched try { Order result = apiInstance.getOrderById(orderId); System.out.println(result); @@ -119,7 +119,7 @@ try { Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **orderId** | **Long**| ID of pet that needs to be fetched | + **orderId** | **Long**| ID of pet that needs to be fetched | [default to null] ### Return type diff --git a/samples/client/petstore/android/httpclient/docs/UserApi.md b/samples/client/petstore/android/httpclient/docs/UserApi.md index ba0aacfb385..e5a16428112 100644 --- a/samples/client/petstore/android/httpclient/docs/UserApi.md +++ b/samples/client/petstore/android/httpclient/docs/UserApi.md @@ -150,7 +150,7 @@ This can only be done by the logged in user. //import org.openapitools.client.api.UserApi; UserApi apiInstance = new UserApi(); -String username = "username_example"; // String | The name that needs to be deleted +String username = null; // String | The name that needs to be deleted try { apiInstance.deleteUser(username); } catch (ApiException e) { @@ -163,7 +163,7 @@ try { Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **username** | **String**| The name that needs to be deleted | + **username** | **String**| The name that needs to be deleted | [default to null] ### Return type @@ -190,7 +190,7 @@ Get user by user name //import org.openapitools.client.api.UserApi; UserApi apiInstance = new UserApi(); -String username = "username_example"; // String | The name that needs to be fetched. Use user1 for testing. +String username = null; // String | The name that needs to be fetched. Use user1 for testing. try { User result = apiInstance.getUserByName(username); System.out.println(result); @@ -204,7 +204,7 @@ try { Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **username** | **String**| The name that needs to be fetched. Use user1 for testing. | + **username** | **String**| The name that needs to be fetched. Use user1 for testing. | [default to null] ### Return type @@ -231,8 +231,8 @@ Logs user into the system //import org.openapitools.client.api.UserApi; UserApi apiInstance = new UserApi(); -String username = "username_example"; // String | The user name for login -String password = "password_example"; // String | The password for login in clear text +String username = null; // String | The user name for login +String password = null; // String | The password for login in clear text try { String result = apiInstance.loginUser(username, password); System.out.println(result); @@ -246,8 +246,8 @@ try { Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **username** | **String**| The user name for login | - **password** | **String**| The password for login in clear text | + **username** | **String**| The user name for login | [default to null] + **password** | **String**| The password for login in clear text | [default to null] ### Return type @@ -312,7 +312,7 @@ This can only be done by the logged in user. //import org.openapitools.client.api.UserApi; UserApi apiInstance = new UserApi(); -String username = "username_example"; // String | name that need to be deleted +String username = null; // String | name that need to be deleted User user = new User(); // User | Updated user object try { apiInstance.updateUser(username, user); @@ -326,7 +326,7 @@ try { Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **username** | **String**| name that need to be deleted | + **username** | **String**| name that need to be deleted | [default to null] **user** | [**User**](User.md)| Updated user object | ### Return type diff --git a/samples/client/petstore/android/httpclient/src/main/java/org/openapitools/client/JsonUtil.java b/samples/client/petstore/android/httpclient/src/main/java/org/openapitools/client/JsonUtil.java index b603422c4e3..624c820ebce 100644 --- a/samples/client/petstore/android/httpclient/src/main/java/org/openapitools/client/JsonUtil.java +++ b/samples/client/petstore/android/httpclient/src/main/java/org/openapitools/client/JsonUtil.java @@ -5,7 +5,6 @@ import com.google.gson.GsonBuilder; import com.google.gson.reflect.TypeToken; import java.lang.reflect.Type; import java.util.List; -import org.openapitools.client.model.*; public class JsonUtil { public static GsonBuilder gsonBuilder; diff --git a/samples/client/petstore/android/volley/.openapi-generator/VERSION b/samples/client/petstore/android/volley/.openapi-generator/VERSION index 096bf47efe3..e24c1f857e0 100644 --- a/samples/client/petstore/android/volley/.openapi-generator/VERSION +++ b/samples/client/petstore/android/volley/.openapi-generator/VERSION @@ -1 +1 @@ -3.0.0-SNAPSHOT \ No newline at end of file +3.3.3-SNAPSHOT \ No newline at end of file diff --git a/samples/client/petstore/android/volley/docs/PetApi.md b/samples/client/petstore/android/volley/docs/PetApi.md index adadfaab9b7..7cf076f29c5 100644 --- a/samples/client/petstore/android/volley/docs/PetApi.md +++ b/samples/client/petstore/android/volley/docs/PetApi.md @@ -66,8 +66,8 @@ Deletes a pet //import org.openapitools.client.api.PetApi; PetApi apiInstance = new PetApi(); -Long petId = 56L; // Long | Pet id to delete -String apiKey = "apiKey_example"; // String | +Long petId = null; // Long | Pet id to delete +String apiKey = null; // String | try { apiInstance.deletePet(petId, apiKey); } catch (ApiException e) { @@ -80,8 +80,8 @@ try { Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **petId** | **Long**| Pet id to delete | - **apiKey** | **String**| | [optional] + **petId** | **Long**| Pet id to delete | [default to null] + **apiKey** | **String**| | [optional] [default to null] ### Return type @@ -110,7 +110,7 @@ Multiple status values can be provided with comma separated strings //import org.openapitools.client.api.PetApi; PetApi apiInstance = new PetApi(); -List status = Arrays.asList("status_example"); // List | Status values that need to be considered for filter +List status = null; // List | Status values that need to be considered for filter try { List result = apiInstance.findPetsByStatus(status); System.out.println(result); @@ -124,7 +124,7 @@ try { Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **status** | [**List<String>**](String.md)| Status values that need to be considered for filter | [enum: available, pending, sold] + **status** | [**List<String>**](String.md)| Status values that need to be considered for filter | [default to null] [enum: available, pending, sold] ### Return type @@ -153,7 +153,7 @@ Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 //import org.openapitools.client.api.PetApi; PetApi apiInstance = new PetApi(); -List tags = Arrays.asList("tags_example"); // List | Tags to filter by +List tags = null; // List | Tags to filter by try { List result = apiInstance.findPetsByTags(tags); System.out.println(result); @@ -167,7 +167,7 @@ try { Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **tags** | [**List<String>**](String.md)| Tags to filter by | + **tags** | [**List<String>**](String.md)| Tags to filter by | [default to null] ### Return type @@ -196,7 +196,7 @@ Returns a single pet //import org.openapitools.client.api.PetApi; PetApi apiInstance = new PetApi(); -Long petId = 56L; // Long | ID of pet to return +Long petId = null; // Long | ID of pet to return try { Pet result = apiInstance.getPetById(petId); System.out.println(result); @@ -210,7 +210,7 @@ try { Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **petId** | **Long**| ID of pet to return | + **petId** | **Long**| ID of pet to return | [default to null] ### Return type @@ -277,9 +277,9 @@ Updates a pet in the store with form data //import org.openapitools.client.api.PetApi; PetApi apiInstance = new PetApi(); -Long petId = 56L; // Long | ID of pet that needs to be updated -String name = "null"; // String | Updated name of the pet -String status = "null"; // String | Updated status of the pet +Long petId = null; // Long | ID of pet that needs to be updated +String name = null; // String | Updated name of the pet +String status = null; // String | Updated status of the pet try { apiInstance.updatePetWithForm(petId, name, status); } catch (ApiException e) { @@ -292,7 +292,7 @@ try { Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **petId** | **Long**| ID of pet that needs to be updated | + **petId** | **Long**| ID of pet that needs to be updated | [default to null] **name** | **String**| Updated name of the pet | [optional] [default to null] **status** | **String**| Updated status of the pet | [optional] [default to null] @@ -321,9 +321,9 @@ uploads an image //import org.openapitools.client.api.PetApi; PetApi apiInstance = new PetApi(); -Long petId = 56L; // Long | ID of pet to update -String additionalMetadata = "null"; // String | Additional data to pass to server -File file = new File("null"); // File | file to upload +Long petId = null; // Long | ID of pet to update +String additionalMetadata = null; // String | Additional data to pass to server +File file = null; // File | file to upload try { ApiResponse result = apiInstance.uploadFile(petId, additionalMetadata, file); System.out.println(result); @@ -337,7 +337,7 @@ try { Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **petId** | **Long**| ID of pet to update | + **petId** | **Long**| ID of pet to update | [default to null] **additionalMetadata** | **String**| Additional data to pass to server | [optional] [default to null] **file** | **File**| file to upload | [optional] [default to null] diff --git a/samples/client/petstore/android/volley/docs/StoreApi.md b/samples/client/petstore/android/volley/docs/StoreApi.md index 7f2289550f3..b768ad5ba98 100644 --- a/samples/client/petstore/android/volley/docs/StoreApi.md +++ b/samples/client/petstore/android/volley/docs/StoreApi.md @@ -24,7 +24,7 @@ For valid response try integer IDs with value < 1000. Anything above 1000 or //import org.openapitools.client.api.StoreApi; StoreApi apiInstance = new StoreApi(); -String orderId = "orderId_example"; // String | ID of the order that needs to be deleted +String orderId = null; // String | ID of the order that needs to be deleted try { apiInstance.deleteOrder(orderId); } catch (ApiException e) { @@ -37,7 +37,7 @@ try { Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **orderId** | **String**| ID of the order that needs to be deleted | + **orderId** | **String**| ID of the order that needs to be deleted | [default to null] ### Return type @@ -105,7 +105,7 @@ For valid response try integer IDs with value <= 5 or > 10. Other val //import org.openapitools.client.api.StoreApi; StoreApi apiInstance = new StoreApi(); -Long orderId = 56L; // Long | ID of pet that needs to be fetched +Long orderId = null; // Long | ID of pet that needs to be fetched try { Order result = apiInstance.getOrderById(orderId); System.out.println(result); @@ -119,7 +119,7 @@ try { Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **orderId** | **Long**| ID of pet that needs to be fetched | + **orderId** | **Long**| ID of pet that needs to be fetched | [default to null] ### Return type diff --git a/samples/client/petstore/android/volley/docs/UserApi.md b/samples/client/petstore/android/volley/docs/UserApi.md index ba0aacfb385..e5a16428112 100644 --- a/samples/client/petstore/android/volley/docs/UserApi.md +++ b/samples/client/petstore/android/volley/docs/UserApi.md @@ -150,7 +150,7 @@ This can only be done by the logged in user. //import org.openapitools.client.api.UserApi; UserApi apiInstance = new UserApi(); -String username = "username_example"; // String | The name that needs to be deleted +String username = null; // String | The name that needs to be deleted try { apiInstance.deleteUser(username); } catch (ApiException e) { @@ -163,7 +163,7 @@ try { Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **username** | **String**| The name that needs to be deleted | + **username** | **String**| The name that needs to be deleted | [default to null] ### Return type @@ -190,7 +190,7 @@ Get user by user name //import org.openapitools.client.api.UserApi; UserApi apiInstance = new UserApi(); -String username = "username_example"; // String | The name that needs to be fetched. Use user1 for testing. +String username = null; // String | The name that needs to be fetched. Use user1 for testing. try { User result = apiInstance.getUserByName(username); System.out.println(result); @@ -204,7 +204,7 @@ try { Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **username** | **String**| The name that needs to be fetched. Use user1 for testing. | + **username** | **String**| The name that needs to be fetched. Use user1 for testing. | [default to null] ### Return type @@ -231,8 +231,8 @@ Logs user into the system //import org.openapitools.client.api.UserApi; UserApi apiInstance = new UserApi(); -String username = "username_example"; // String | The user name for login -String password = "password_example"; // String | The password for login in clear text +String username = null; // String | The user name for login +String password = null; // String | The password for login in clear text try { String result = apiInstance.loginUser(username, password); System.out.println(result); @@ -246,8 +246,8 @@ try { Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **username** | **String**| The user name for login | - **password** | **String**| The password for login in clear text | + **username** | **String**| The user name for login | [default to null] + **password** | **String**| The password for login in clear text | [default to null] ### Return type @@ -312,7 +312,7 @@ This can only be done by the logged in user. //import org.openapitools.client.api.UserApi; UserApi apiInstance = new UserApi(); -String username = "username_example"; // String | name that need to be deleted +String username = null; // String | name that need to be deleted User user = new User(); // User | Updated user object try { apiInstance.updateUser(username, user); @@ -326,7 +326,7 @@ try { Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **username** | **String**| name that need to be deleted | + **username** | **String**| name that need to be deleted | [default to null] **user** | [**User**](User.md)| Updated user object | ### Return type From df1819daa91d207edba11967fe67b8d8d94049e5 Mon Sep 17 00:00:00 2001 From: Jim Schubert Date: Wed, 14 Nov 2018 01:41:42 -0500 Subject: [PATCH 20/27] C# template refactor (#737) * [csharp] Refactor to support third-party customization more easily * [csharp] Regenerate OpenAPIClient sample * create new csharp-refactor client gen * update samples * fix Locale.ROOT * fix import * remove outdated files, update samples --- bin/csharp-refactor-petstore-all.sh | 17 + bin/csharp-refactor-petstore.sh | 37 + .../CSharpRefactorClientCodegen.java | 850 ++++++ .../org.openapitools.codegen.CodegenConfig | 1 + .../csharp-refactor/ApiClient.mustache | 555 ++++ .../csharp-refactor/ApiException.mustache | 52 + .../csharp-refactor/ApiResponse.mustache | 128 + .../csharp-refactor/AssemblyInfo.mustache | 40 + .../csharp-refactor/ClientUtils.mustache | 193 ++ .../csharp-refactor/Configuration.mustache | 395 +++ .../csharp-refactor/ExceptionFactory.mustache | 14 + .../resources/csharp-refactor/FodyWeavers.xml | 5 + .../GlobalConfiguration.mustache | 59 + .../csharp-refactor/HttpMethod.mustache | 18 + .../csharp-refactor/IApiAccessor.mustache | 29 + .../IAsynchronousClient.mustache | 87 + .../IReadableConfiguration.mustache | 85 + .../ISynchronousClient.mustache | 85 + .../JsonSubTypesTests.mustache | 125 + .../csharp-refactor/Multimap.mustache | 214 ++ .../OpenAPIDateConverter.mustache | 21 + .../csharp-refactor/Project.mustache | 119 + .../resources/csharp-refactor/README.mustache | 206 ++ .../ReadOnlyDictionary.mustache | 137 + .../csharp-refactor/RequestOptions.mustache | 66 + .../csharp-refactor/Solution.mustache | 27 + .../csharp-refactor/TestProject.mustache | 101 + .../resources/csharp-refactor/api.mustache | 480 +++ .../csharp-refactor/api_doc.mustache | 105 + .../csharp-refactor/api_test.mustache | 75 + .../csharp-refactor/compile-mono.sh.mustache | 78 + .../csharp-refactor/compile.mustache | 27 + .../csharp-refactor/enumClass.mustache | 20 + .../csharp-refactor/git_push.sh.mustache | 52 + .../csharp-refactor/gitignore.mustache | 186 ++ .../resources/csharp-refactor/model.mustache | 39 + .../csharp-refactor/modelEnum.mustache | 24 + .../csharp-refactor/modelGeneric.mustache | 306 ++ .../csharp-refactor/modelInnerEnum.mustache | 26 + .../csharp-refactor/model_doc.mustache | 19 + .../csharp-refactor/model_test.mustache | 90 + .../csharp-refactor/mono_nunit_test.mustache | 22 + .../csharp-refactor/netcore_project.mustache | 46 + .../netcore_testproject.mustache | 49 + .../resources/csharp-refactor/nuspec.mustache | 53 + .../csharp-refactor/packages.config.mustache | 10 + .../packages_test.config.mustache | 7 + .../csharp-refactor/partial_header.mustache | 13 + .../csharp-refactor/project.json.mustache | 12 + .../resources/csharp-refactor/travis.mustache | 9 + .../csharp-refactor/visibility.mustache | 1 + .../csharp-refactor/OpenAPIClient/.gitignore | 186 ++ .../OpenAPIClient/.openapi-generator-ignore | 23 + .../OpenAPIClient/.openapi-generator/VERSION | 1 + .../csharp-refactor/OpenAPIClient/.travis.yml | 9 + .../.vs/Org.OpenAPITools/xs/UserPrefs.xml | 10 + .../.vs/Org.OpenAPITools/xs/sqlite3/db.lock | 0 .../Org.OpenAPITools/xs/sqlite3/storage.ide | Bin 0 -> 421888 bytes .../xs/sqlite3/storage.ide-shm | Bin 0 -> 32768 bytes .../xs/sqlite3/storage.ide-wal | Bin 0 -> 4136512 bytes .../OpenAPIClient/Org.OpenAPITools.sln | 27 + .../csharp-refactor/OpenAPIClient/README.md | 208 ++ .../csharp-refactor/OpenAPIClient/build.bat | 17 + .../csharp-refactor/OpenAPIClient/build.sh | 68 + .../docs/AdditionalPropertiesClass.md | 10 + .../OpenAPIClient/docs/Animal.md | 10 + .../OpenAPIClient/docs/AnimalFarm.md | 8 + .../OpenAPIClient/docs/AnotherFakeApi.md | 70 + .../OpenAPIClient/docs/ApiResponse.md | 11 + .../docs/ArrayOfArrayOfNumberOnly.md | 9 + .../OpenAPIClient/docs/ArrayOfNumberOnly.md | 9 + .../OpenAPIClient/docs/ArrayTest.md | 11 + .../OpenAPIClient/docs/Capitalization.md | 14 + .../csharp-refactor/OpenAPIClient/docs/Cat.md | 11 + .../OpenAPIClient/docs/Category.md | 10 + .../OpenAPIClient/docs/ClassModel.md | 9 + .../csharp-refactor/OpenAPIClient/docs/Dog.md | 11 + .../OpenAPIClient/docs/EnumArrays.md | 10 + .../OpenAPIClient/docs/EnumClass.md | 8 + .../OpenAPIClient/docs/EnumTest.md | 13 + .../OpenAPIClient/docs/FakeApi.md | 791 +++++ .../docs/FakeClassnameTags123Api.md | 75 + .../OpenAPIClient/docs/File.md | 9 + .../OpenAPIClient/docs/FileSchemaTestClass.md | 10 + .../OpenAPIClient/docs/FormatTest.md | 21 + .../OpenAPIClient/docs/HasOnlyReadOnly.md | 10 + .../OpenAPIClient/docs/List.md | 9 + .../OpenAPIClient/docs/MapTest.md | 12 + ...dPropertiesAndAdditionalPropertiesClass.md | 11 + .../OpenAPIClient/docs/Model200Response.md | 10 + .../OpenAPIClient/docs/ModelClient.md | 9 + .../OpenAPIClient/docs/Name.md | 12 + .../OpenAPIClient/docs/NumberOnly.md | 9 + .../OpenAPIClient/docs/Order.md | 14 + .../OpenAPIClient/docs/OuterComposite.md | 11 + .../OpenAPIClient/docs/OuterEnum.md | 8 + .../csharp-refactor/OpenAPIClient/docs/Pet.md | 14 + .../OpenAPIClient/docs/PetApi.md | 593 ++++ .../OpenAPIClient/docs/ReadOnlyFirst.md | 10 + .../OpenAPIClient/docs/Return.md | 9 + .../OpenAPIClient/docs/SpecialModelName.md | 9 + .../OpenAPIClient/docs/StoreApi.md | 254 ++ .../OpenAPIClient/docs/StringBooleanMap.md | 8 + .../csharp-refactor/OpenAPIClient/docs/Tag.md | 10 + .../OpenAPIClient/docs/User.md | 16 + .../OpenAPIClient/docs/UserApi.md | 488 ++++ .../csharp-refactor/OpenAPIClient/git_push.sh | 52 + .../OpenAPIClient/mono_nunit_test.sh | 22 + .../Api/AnotherFakeApiTests.cs | 81 + .../Org.OpenAPITools.Test/Api/FakeApiTests.cs | 223 ++ .../Api/FakeClassnameTags123ApiTests.cs | 81 + .../Org.OpenAPITools.Test/Api/PetApiTests.cs | 184 ++ .../Api/StoreApiTests.cs | 116 + .../Org.OpenAPITools.Test/Api/UserApiTests.cs | 166 ++ .../Model/AdditionalPropertiesClassTests.cs | 88 + .../Model/AnimalFarmTests.cs | 72 + .../Model/AnimalTests.cs | 106 + .../Model/ApiResponseTests.cs | 96 + .../Model/ArrayOfArrayOfNumberOnlyTests.cs | 80 + .../Model/ArrayOfNumberOnlyTests.cs | 80 + .../Model/ArrayTestTests.cs | 96 + .../Model/CapitalizationTests.cs | 120 + .../Org.OpenAPITools.Test/Model/CatTests.cs | 80 + .../Model/CategoryTests.cs | 88 + .../Model/ClassModelTests.cs | 80 + .../Org.OpenAPITools.Test/Model/DogTests.cs | 80 + .../Model/EnumArraysTests.cs | 88 + .../Model/EnumClassTests.cs | 72 + .../Model/EnumTestTests.cs | 112 + .../Model/FileSchemaTestClassTests.cs | 88 + .../Org.OpenAPITools.Test/Model/FileTests.cs | 80 + .../Model/FormatTestTests.cs | 176 ++ .../Model/HasOnlyReadOnlyTests.cs | 88 + .../Org.OpenAPITools.Test/Model/ListTests.cs | 80 + .../Model/MapTestTests.cs | 104 + ...ertiesAndAdditionalPropertiesClassTests.cs | 96 + .../Model/Model200ResponseTests.cs | 88 + .../Model/ModelClientTests.cs | 80 + .../Org.OpenAPITools.Test/Model/NameTests.cs | 104 + .../Model/NumberOnlyTests.cs | 80 + .../Org.OpenAPITools.Test/Model/OrderTests.cs | 120 + .../Model/OuterCompositeTests.cs | 96 + .../Model/OuterEnumTests.cs | 72 + .../Org.OpenAPITools.Test/Model/PetTests.cs | 120 + .../Model/ReadOnlyFirstTests.cs | 88 + .../Model/ReturnTests.cs | 80 + .../Model/SpecialModelNameTests.cs | 80 + .../Model/StringBooleanMapTests.cs | 72 + .../Org.OpenAPITools.Test/Model/TagTests.cs | 88 + .../Org.OpenAPITools.Test/Model/UserTests.cs | 136 + .../Org.OpenAPITools.Test.csproj | 89 + .../src/Org.OpenAPITools.Test/packages.config | 7 + .../Org.OpenAPITools/Api/AnotherFakeApi.cs | 314 ++ .../src/Org.OpenAPITools/Api/FakeApi.cs | 2575 +++++++++++++++++ .../Api/FakeClassnameTags123Api.cs | 336 +++ .../src/Org.OpenAPITools/Api/PetApi.cs | 1822 ++++++++++++ .../src/Org.OpenAPITools/Api/StoreApi.cs | 775 +++++ .../src/Org.OpenAPITools/Api/UserApi.cs | 1435 +++++++++ .../src/Org.OpenAPITools/Client/ApiClient.cs | 503 ++++ .../Org.OpenAPITools/Client/ApiException.cs | 61 + .../Org.OpenAPITools/Client/ApiResponse.cs | 137 + .../Org.OpenAPITools/Client/ClientUtils.cs | 197 ++ .../Org.OpenAPITools/Client/Configuration.cs | 395 +++ .../Client/ExceptionFactory.cs | 23 + .../Client/GlobalConfiguration.cs | 68 + .../src/Org.OpenAPITools/Client/HttpMethod.cs | 27 + .../Org.OpenAPITools/Client/IApiAccessor.cs | 38 + .../Client/IAsynchronousClient.cs | 96 + .../Client/IReadableConfiguration.cs | 94 + .../Client/ISynchronousClient.cs | 94 + .../src/Org.OpenAPITools/Client/Multimap.cs | 196 ++ .../Client/OpenAPIDateConverter.cs | 30 + .../Org.OpenAPITools/Client/RequestOptions.cs | 75 + .../Model/AdditionalPropertiesClass.cs | 141 + .../src/Org.OpenAPITools/Model/Animal.cs | 176 ++ .../src/Org.OpenAPITools/Model/AnimalFarm.cs | 111 + .../src/Org.OpenAPITools/Model/ApiResponse.cs | 157 + .../Model/ArrayOfArrayOfNumberOnly.cs | 125 + .../Model/ArrayOfNumberOnly.cs | 125 + .../src/Org.OpenAPITools/Model/ArrayTest.cs | 157 + .../Org.OpenAPITools/Model/Capitalization.cs | 206 ++ .../src/Org.OpenAPITools/Model/Cat.cs | 132 + .../src/Org.OpenAPITools/Model/Category.cs | 154 + .../src/Org.OpenAPITools/Model/ClassModel.cs | 125 + .../src/Org.OpenAPITools/Model/Dog.cs | 132 + .../src/Org.OpenAPITools/Model/EnumArrays.cs | 182 ++ .../src/Org.OpenAPITools/Model/EnumClass.cs | 56 + .../src/Org.OpenAPITools/Model/EnumTest.cs | 291 ++ .../src/Org.OpenAPITools/Model/File.cs | 126 + .../Model/FileSchemaTestClass.cs | 141 + .../src/Org.OpenAPITools/Model/FormatTest.cs | 434 +++ .../Org.OpenAPITools/Model/HasOnlyReadOnly.cs | 138 + .../src/Org.OpenAPITools/Model/List.cs | 125 + .../src/Org.OpenAPITools/Model/MapTest.cs | 194 ++ ...dPropertiesAndAdditionalPropertiesClass.cs | 157 + .../Model/Model200Response.cs | 141 + .../src/Org.OpenAPITools/Model/ModelClient.cs | 125 + .../src/Org.OpenAPITools/Model/Name.cs | 182 ++ .../src/Org.OpenAPITools/Model/NumberOnly.cs | 125 + .../src/Org.OpenAPITools/Model/Order.cs | 241 ++ .../Org.OpenAPITools/Model/OuterComposite.cs | 157 + .../src/Org.OpenAPITools/Model/OuterEnum.cs | 56 + .../src/Org.OpenAPITools/Model/Pet.cs | 254 ++ .../Org.OpenAPITools/Model/ReadOnlyFirst.cs | 139 + .../src/Org.OpenAPITools/Model/Return.cs | 125 + .../Model/SpecialModelName.cs | 125 + .../Model/StringBooleanMap.cs | 111 + .../src/Org.OpenAPITools/Model/Tag.cs | 141 + .../src/Org.OpenAPITools/Model/User.cs | 238 ++ .../Org.OpenAPITools/Org.OpenAPITools.csproj | 78 + .../Org.OpenAPITools/Org.OpenAPITools.nuspec | 41 + .../Properties/AssemblyInfo.cs | 33 + .../src/Org.OpenAPITools/packages.config | 6 + 213 files changed, 28189 insertions(+) create mode 100755 bin/csharp-refactor-petstore-all.sh create mode 100755 bin/csharp-refactor-petstore.sh create mode 100644 modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CSharpRefactorClientCodegen.java create mode 100644 modules/openapi-generator/src/main/resources/csharp-refactor/ApiClient.mustache create mode 100644 modules/openapi-generator/src/main/resources/csharp-refactor/ApiException.mustache create mode 100644 modules/openapi-generator/src/main/resources/csharp-refactor/ApiResponse.mustache create mode 100644 modules/openapi-generator/src/main/resources/csharp-refactor/AssemblyInfo.mustache create mode 100755 modules/openapi-generator/src/main/resources/csharp-refactor/ClientUtils.mustache create mode 100644 modules/openapi-generator/src/main/resources/csharp-refactor/Configuration.mustache create mode 100644 modules/openapi-generator/src/main/resources/csharp-refactor/ExceptionFactory.mustache create mode 100644 modules/openapi-generator/src/main/resources/csharp-refactor/FodyWeavers.xml create mode 100644 modules/openapi-generator/src/main/resources/csharp-refactor/GlobalConfiguration.mustache create mode 100755 modules/openapi-generator/src/main/resources/csharp-refactor/HttpMethod.mustache create mode 100644 modules/openapi-generator/src/main/resources/csharp-refactor/IApiAccessor.mustache create mode 100755 modules/openapi-generator/src/main/resources/csharp-refactor/IAsynchronousClient.mustache create mode 100644 modules/openapi-generator/src/main/resources/csharp-refactor/IReadableConfiguration.mustache create mode 100755 modules/openapi-generator/src/main/resources/csharp-refactor/ISynchronousClient.mustache create mode 100644 modules/openapi-generator/src/main/resources/csharp-refactor/JsonSubTypesTests.mustache create mode 100755 modules/openapi-generator/src/main/resources/csharp-refactor/Multimap.mustache create mode 100644 modules/openapi-generator/src/main/resources/csharp-refactor/OpenAPIDateConverter.mustache create mode 100644 modules/openapi-generator/src/main/resources/csharp-refactor/Project.mustache create mode 100644 modules/openapi-generator/src/main/resources/csharp-refactor/README.mustache create mode 100644 modules/openapi-generator/src/main/resources/csharp-refactor/ReadOnlyDictionary.mustache create mode 100755 modules/openapi-generator/src/main/resources/csharp-refactor/RequestOptions.mustache create mode 100644 modules/openapi-generator/src/main/resources/csharp-refactor/Solution.mustache create mode 100644 modules/openapi-generator/src/main/resources/csharp-refactor/TestProject.mustache create mode 100644 modules/openapi-generator/src/main/resources/csharp-refactor/api.mustache create mode 100644 modules/openapi-generator/src/main/resources/csharp-refactor/api_doc.mustache create mode 100644 modules/openapi-generator/src/main/resources/csharp-refactor/api_test.mustache create mode 100644 modules/openapi-generator/src/main/resources/csharp-refactor/compile-mono.sh.mustache create mode 100644 modules/openapi-generator/src/main/resources/csharp-refactor/compile.mustache create mode 100644 modules/openapi-generator/src/main/resources/csharp-refactor/enumClass.mustache create mode 100755 modules/openapi-generator/src/main/resources/csharp-refactor/git_push.sh.mustache create mode 100644 modules/openapi-generator/src/main/resources/csharp-refactor/gitignore.mustache create mode 100644 modules/openapi-generator/src/main/resources/csharp-refactor/model.mustache create mode 100644 modules/openapi-generator/src/main/resources/csharp-refactor/modelEnum.mustache create mode 100644 modules/openapi-generator/src/main/resources/csharp-refactor/modelGeneric.mustache create mode 100644 modules/openapi-generator/src/main/resources/csharp-refactor/modelInnerEnum.mustache create mode 100644 modules/openapi-generator/src/main/resources/csharp-refactor/model_doc.mustache create mode 100644 modules/openapi-generator/src/main/resources/csharp-refactor/model_test.mustache create mode 100644 modules/openapi-generator/src/main/resources/csharp-refactor/mono_nunit_test.mustache create mode 100644 modules/openapi-generator/src/main/resources/csharp-refactor/netcore_project.mustache create mode 100644 modules/openapi-generator/src/main/resources/csharp-refactor/netcore_testproject.mustache create mode 100644 modules/openapi-generator/src/main/resources/csharp-refactor/nuspec.mustache create mode 100644 modules/openapi-generator/src/main/resources/csharp-refactor/packages.config.mustache create mode 100644 modules/openapi-generator/src/main/resources/csharp-refactor/packages_test.config.mustache create mode 100644 modules/openapi-generator/src/main/resources/csharp-refactor/partial_header.mustache create mode 100644 modules/openapi-generator/src/main/resources/csharp-refactor/project.json.mustache create mode 100644 modules/openapi-generator/src/main/resources/csharp-refactor/travis.mustache create mode 100644 modules/openapi-generator/src/main/resources/csharp-refactor/visibility.mustache create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/.gitignore create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/.openapi-generator-ignore create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/.openapi-generator/VERSION create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/.travis.yml create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/.vs/Org.OpenAPITools/xs/UserPrefs.xml create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/.vs/Org.OpenAPITools/xs/sqlite3/db.lock create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/.vs/Org.OpenAPITools/xs/sqlite3/storage.ide create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/.vs/Org.OpenAPITools/xs/sqlite3/storage.ide-shm create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/.vs/Org.OpenAPITools/xs/sqlite3/storage.ide-wal create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/Org.OpenAPITools.sln create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/README.md create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/build.bat create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/build.sh create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/docs/AdditionalPropertiesClass.md create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/docs/Animal.md create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/docs/AnimalFarm.md create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/docs/AnotherFakeApi.md create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/docs/ApiResponse.md create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/docs/ArrayOfArrayOfNumberOnly.md create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/docs/ArrayOfNumberOnly.md create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/docs/ArrayTest.md create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/docs/Capitalization.md create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/docs/Cat.md create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/docs/Category.md create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/docs/ClassModel.md create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/docs/Dog.md create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/docs/EnumArrays.md create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/docs/EnumClass.md create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/docs/EnumTest.md create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/docs/FakeApi.md create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/docs/FakeClassnameTags123Api.md create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/docs/File.md create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/docs/FileSchemaTestClass.md create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/docs/FormatTest.md create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/docs/HasOnlyReadOnly.md create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/docs/List.md create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/docs/MapTest.md create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/docs/MixedPropertiesAndAdditionalPropertiesClass.md create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/docs/Model200Response.md create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/docs/ModelClient.md create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/docs/Name.md create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/docs/NumberOnly.md create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/docs/Order.md create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/docs/OuterComposite.md create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/docs/OuterEnum.md create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/docs/Pet.md create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/docs/PetApi.md create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/docs/ReadOnlyFirst.md create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/docs/Return.md create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/docs/SpecialModelName.md create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/docs/StoreApi.md create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/docs/StringBooleanMap.md create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/docs/Tag.md create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/docs/User.md create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/docs/UserApi.md create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/git_push.sh create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/mono_nunit_test.sh create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Api/AnotherFakeApiTests.cs create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Api/FakeApiTests.cs create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Api/FakeClassnameTags123ApiTests.cs create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Api/PetApiTests.cs create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Api/StoreApiTests.cs create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Api/UserApiTests.cs create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/AdditionalPropertiesClassTests.cs create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/AnimalFarmTests.cs create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/AnimalTests.cs create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/ApiResponseTests.cs create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/ArrayOfArrayOfNumberOnlyTests.cs create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/ArrayOfNumberOnlyTests.cs create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/ArrayTestTests.cs create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/CapitalizationTests.cs create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/CatTests.cs create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/CategoryTests.cs create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/ClassModelTests.cs create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/DogTests.cs create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/EnumArraysTests.cs create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/EnumClassTests.cs create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/EnumTestTests.cs create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/FileSchemaTestClassTests.cs create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/FileTests.cs create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/FormatTestTests.cs create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/HasOnlyReadOnlyTests.cs create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/ListTests.cs create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/MapTestTests.cs create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/MixedPropertiesAndAdditionalPropertiesClassTests.cs create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/Model200ResponseTests.cs create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/ModelClientTests.cs create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/NameTests.cs create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/NumberOnlyTests.cs create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/OrderTests.cs create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/OuterCompositeTests.cs create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/OuterEnumTests.cs create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/PetTests.cs create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/ReadOnlyFirstTests.cs create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/ReturnTests.cs create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/SpecialModelNameTests.cs create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/StringBooleanMapTests.cs create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/TagTests.cs create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/UserTests.cs create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Org.OpenAPITools.Test.csproj create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/packages.config create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Api/AnotherFakeApi.cs create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Api/FakeApi.cs create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Api/FakeClassnameTags123Api.cs create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Api/PetApi.cs create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Api/StoreApi.cs create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Api/UserApi.cs create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Client/ApiClient.cs create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Client/ApiException.cs create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Client/ApiResponse.cs create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Client/ClientUtils.cs create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Client/Configuration.cs create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Client/ExceptionFactory.cs create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Client/GlobalConfiguration.cs create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Client/HttpMethod.cs create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Client/IApiAccessor.cs create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Client/IAsynchronousClient.cs create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Client/IReadableConfiguration.cs create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Client/ISynchronousClient.cs create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Client/Multimap.cs create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Client/OpenAPIDateConverter.cs create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Client/RequestOptions.cs create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/AdditionalPropertiesClass.cs create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/Animal.cs create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/AnimalFarm.cs create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/ApiResponse.cs create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/ArrayOfArrayOfNumberOnly.cs create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/ArrayOfNumberOnly.cs create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/ArrayTest.cs create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/Capitalization.cs create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/Cat.cs create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/Category.cs create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/ClassModel.cs create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/Dog.cs create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/EnumArrays.cs create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/EnumClass.cs create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/EnumTest.cs create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/File.cs create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/FileSchemaTestClass.cs create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/FormatTest.cs create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/HasOnlyReadOnly.cs create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/List.cs create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/MapTest.cs create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/MixedPropertiesAndAdditionalPropertiesClass.cs create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/Model200Response.cs create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/ModelClient.cs create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/Name.cs create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/NumberOnly.cs create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/Order.cs create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/OuterComposite.cs create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/OuterEnum.cs create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/Pet.cs create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/ReadOnlyFirst.cs create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/Return.cs create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/SpecialModelName.cs create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/StringBooleanMap.cs create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/Tag.cs create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/User.cs create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Org.OpenAPITools.csproj create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Org.OpenAPITools.nuspec create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Properties/AssemblyInfo.cs create mode 100644 samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/packages.config diff --git a/bin/csharp-refactor-petstore-all.sh b/bin/csharp-refactor-petstore-all.sh new file mode 100755 index 00000000000..635a8d7220b --- /dev/null +++ b/bin/csharp-refactor-petstore-all.sh @@ -0,0 +1,17 @@ +#!/bin/sh + +# C# Petstore API client (.NET 3.5) +./bin/csharp-refactor-petstore.sh + +# C# Petstore API client with PropertyChanged +./bin/csharp-refactor-property-changed-petstore.sh + +# C# Petstore API client (v5.0 for .net standarnd 1.3+) +./bin/csharp-refactor-petstore-net-standard.sh + +# C# Petstore API client (.NET 4.0) +./bin/csharp-refactor-petstore-net-40.sh + +# C# Petstore API client (.NET 3.5) +./bin/csharp-refactor-petstore-net-35.sh + diff --git a/bin/csharp-refactor-petstore.sh b/bin/csharp-refactor-petstore.sh new file mode 100755 index 00000000000..e27a9414315 --- /dev/null +++ b/bin/csharp-refactor-petstore.sh @@ -0,0 +1,37 @@ +#!/bin/sh + +SCRIPT="$0" +echo "# START SCRIPT: $SCRIPT" + +while [ -h "$SCRIPT" ] ; do + ls=`ls -ld "$SCRIPT"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + SCRIPT="$link" + else + SCRIPT=`dirname "$SCRIPT"`/"$link" + fi +done + +if [ ! -d "${APP_DIR}" ]; then + APP_DIR=`dirname "$SCRIPT"`/.. + APP_DIR=`cd "${APP_DIR}"; pwd` +fi + +executable="./modules/openapi-generator-cli/target/openapi-generator-cli.jar" + +if [ ! -f "$executable" ] +then + mvn -B clean package +fi + +# if you've executed sbt assembly previously it will use that instead. +export JAVA_OPTS="${JAVA_OPTS} -XX:MaxPermSize=256M -Xmx1024M -DloggerPath=conf/log4j.properties" +ags="generate -i modules/openapi-generator/src/test/resources/2_0/petstore-with-fake-endpoints-models-for-testing.yaml -g csharp-refactor -o samples/client/petstore/csharp-refactor/OpenAPIClient --additional-properties packageGuid={321C8C3F-0156-40C1-AE42-D59761FB9B6C} $@" + +java $JAVA_OPTS -jar $executable $ags + +# restore csproj file +#echo "restore csproject file: CI/samples/client/petstore/csharp/OpenAPIClient/src/Org.OpenAPITools.Test/Org.OpenAPITools.Test.csproj" +#cp ./CI/samples.ci/client/petstore/csharp/OpenAPIClient/src/Org.OpenAPITools.Test/Org.OpenAPITools.Test.csproj ./samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/ + diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CSharpRefactorClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CSharpRefactorClientCodegen.java new file mode 100644 index 00000000000..71d6bb7bf43 --- /dev/null +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CSharpRefactorClientCodegen.java @@ -0,0 +1,850 @@ +/* + * Copyright 2018 OpenAPI-Generator Contributors (https://openapi-generator.tech) + * Copyright 2018 SmartBear Software + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.openapitools.codegen.languages; + +import static org.apache.commons.lang3.StringUtils.isEmpty; + +import com.google.common.collect.ImmutableMap; +import com.samskivert.mustache.Mustache; + +import io.swagger.v3.oas.models.media.Schema; + +import org.openapitools.codegen.CliOption; +import org.openapitools.codegen.CodegenConstants; +import org.openapitools.codegen.CodegenModel; +import org.openapitools.codegen.CodegenOperation; +import org.openapitools.codegen.CodegenParameter; +import org.openapitools.codegen.CodegenProperty; +import org.openapitools.codegen.CodegenType; +import org.openapitools.codegen.SupportingFile; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.io.File; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Locale; +import java.util.Map; + +public class CSharpRefactorClientCodegen extends AbstractCSharpCodegen { + @SuppressWarnings({"hiding"}) + private static final Logger LOGGER = LoggerFactory.getLogger(CSharpClientCodegen.class); + private static final String NET45 = "v4.5"; + private static final String NET40 = "v4.0"; + private static final String NET35 = "v3.5"; + // TODO: v5.0 is PCL, not netstandard version 1.3, and not a specific .NET Framework. This needs to be updated, + // especially because it will conflict with .NET Framework 5.0 when released, and PCL 5 refers to Framework 4.0. + // We should support either NETSTANDARD, PCL, or Both… but the concepts shouldn't be mixed. + private static final String NETSTANDARD = "v5.0"; + private static final String UWP = "uwp"; + + // Defines the sdk option for targeted frameworks, which differs from targetFramework and targetFrameworkNuget + private static final String MCS_NET_VERSION_KEY = "x-mcs-sdk"; + + protected String packageGuid = "{" + java.util.UUID.randomUUID().toString().toUpperCase(Locale.ROOT) + "}"; + protected String clientPackage = "Org.OpenAPITools.Client"; + protected String localVariablePrefix = ""; + protected String apiDocPath = "docs/"; + protected String modelDocPath = "docs/"; + + // Defines TargetFrameworkVersion in csproj files + protected String targetFramework = NET45; + + // Defines nuget identifiers for target framework + protected String targetFrameworkNuget = "net45"; + protected boolean supportsAsync = Boolean.TRUE; + protected boolean supportsUWP = Boolean.FALSE; + protected boolean netStandard = Boolean.FALSE; + protected boolean generatePropertyChanged = Boolean.FALSE; + + protected boolean validatable = Boolean.TRUE; + protected Map regexModifiers; + protected final Map frameworks; + + // By default, generated code is considered public + protected boolean nonPublicApi = Boolean.FALSE; + + public CSharpRefactorClientCodegen() { + super(); + supportsInheritance = true; + modelTemplateFiles.put("model.mustache", ".cs"); + apiTemplateFiles.put("api.mustache", ".cs"); + + modelDocTemplateFiles.put("model_doc.mustache", ".md"); + apiDocTemplateFiles.put("api_doc.mustache", ".md"); + + embeddedTemplateDir = templateDir = "csharp-refactor"; + + hideGenerationTimestamp = Boolean.TRUE; + + cliOptions.clear(); + + // CLI options + addOption(CodegenConstants.PACKAGE_NAME, + "C# package name (convention: Title.Case).", + this.packageName); + + addOption(CodegenConstants.PACKAGE_VERSION, + "C# package version.", + this.packageVersion); + + addOption(CodegenConstants.SOURCE_FOLDER, + CodegenConstants.SOURCE_FOLDER_DESC, + sourceFolder); + + addOption(CodegenConstants.OPTIONAL_PROJECT_GUID, + CodegenConstants.OPTIONAL_PROJECT_GUID_DESC, + null); + + addOption(CodegenConstants.INTERFACE_PREFIX, + CodegenConstants.INTERFACE_PREFIX_DESC, + interfacePrefix); + + CliOption framework = new CliOption( + CodegenConstants.DOTNET_FRAMEWORK, + CodegenConstants.DOTNET_FRAMEWORK_DESC + ); + frameworks = new ImmutableMap.Builder() + .put(NET35, ".NET Framework 3.5 compatible") + .put(NET40, ".NET Framework 4.0 compatible") + .put(NET45, ".NET Framework 4.5+ compatible") + .put(NETSTANDARD, ".NET Standard 1.3 compatible") + .put(UWP, "Universal Windows Platform (IMPORTANT: this will be decommissioned and replaced by v5.0)") + .build(); + framework.defaultValue(this.targetFramework); + framework.setEnum(frameworks); + cliOptions.add(framework); + + CliOption modelPropertyNaming = new CliOption(CodegenConstants.MODEL_PROPERTY_NAMING, CodegenConstants.MODEL_PROPERTY_NAMING_DESC); + cliOptions.add(modelPropertyNaming.defaultValue("PascalCase")); + + // CLI Switches + addSwitch(CodegenConstants.HIDE_GENERATION_TIMESTAMP, + CodegenConstants.HIDE_GENERATION_TIMESTAMP_DESC, + this.hideGenerationTimestamp); + + addSwitch(CodegenConstants.SORT_PARAMS_BY_REQUIRED_FLAG, + CodegenConstants.SORT_PARAMS_BY_REQUIRED_FLAG_DESC, + this.sortParamsByRequiredFlag); + + addSwitch(CodegenConstants.USE_DATETIME_OFFSET, + CodegenConstants.USE_DATETIME_OFFSET_DESC, + this.useDateTimeOffsetFlag); + + addSwitch(CodegenConstants.USE_COLLECTION, + CodegenConstants.USE_COLLECTION_DESC, + this.useCollection); + + addSwitch(CodegenConstants.RETURN_ICOLLECTION, + CodegenConstants.RETURN_ICOLLECTION_DESC, + this.returnICollection); + + addSwitch(CodegenConstants.OPTIONAL_METHOD_ARGUMENT, + "C# Optional method argument, e.g. void square(int x=10) (.net 4.0+ only).", + this.optionalMethodArgumentFlag); + + addSwitch(CodegenConstants.OPTIONAL_ASSEMBLY_INFO, + CodegenConstants.OPTIONAL_ASSEMBLY_INFO_DESC, + this.optionalAssemblyInfoFlag); + + addSwitch(CodegenConstants.OPTIONAL_PROJECT_FILE, + CodegenConstants.OPTIONAL_PROJECT_FILE_DESC, + this.optionalProjectFileFlag); + + addSwitch(CodegenConstants.OPTIONAL_EMIT_DEFAULT_VALUES, + CodegenConstants.OPTIONAL_EMIT_DEFAULT_VALUES_DESC, + this.optionalEmitDefaultValue); + + addSwitch(CodegenConstants.GENERATE_PROPERTY_CHANGED, + CodegenConstants.PACKAGE_DESCRIPTION_DESC, + this.generatePropertyChanged); + + // NOTE: This will reduce visibility of all public members in templates. Users can use InternalsVisibleTo + // https://msdn.microsoft.com/en-us/library/system.runtime.compilerservices.internalsvisibletoattribute(v=vs.110).aspx + // to expose to shared code if the generated code is not embedded into another project. Otherwise, users of codegen + // should rely on default public visibility. + addSwitch(CodegenConstants.NON_PUBLIC_API, + CodegenConstants.NON_PUBLIC_API_DESC, + this.nonPublicApi); + + addSwitch(CodegenConstants.ALLOW_UNICODE_IDENTIFIERS, + CodegenConstants.ALLOW_UNICODE_IDENTIFIERS_DESC, + this.allowUnicodeIdentifiers); + + addSwitch(CodegenConstants.NETCORE_PROJECT_FILE, + CodegenConstants.NETCORE_PROJECT_FILE_DESC, + this.netCoreProjectFileFlag); + + addSwitch(CodegenConstants.VALIDATABLE, + CodegenConstants.VALIDATABLE_DESC, + this.validatable); + + regexModifiers = new HashMap(); + regexModifiers.put('i', "IgnoreCase"); + regexModifiers.put('m', "Multiline"); + regexModifiers.put('s', "Singleline"); + regexModifiers.put('x', "IgnorePatternWhitespace"); + } + + @Override + public void processOpts() { + super.processOpts(); + + /* + * NOTE: When supporting boolean additionalProperties, you should read the value and write it back as a boolean. + * This avoids oddities where additionalProperties contains "false" rather than false, which will cause the + * templating engine to behave unexpectedly. + * + * Use the pattern: + * if (additionalProperties.containsKey(prop)) convertPropertyToBooleanAndWriteBack(prop); + */ + + if (additionalProperties.containsKey(CodegenConstants.MODEL_PROPERTY_NAMING)) { + setModelPropertyNaming((String) additionalProperties.get(CodegenConstants.MODEL_PROPERTY_NAMING)); + } + + + if (isEmpty(apiPackage)) { + setApiPackage("Api"); + } + if (isEmpty(modelPackage)) { + setModelPackage("Model"); + } + clientPackage = "Client"; + + Boolean excludeTests = false; + if (additionalProperties.containsKey(CodegenConstants.EXCLUDE_TESTS)) { + excludeTests = convertPropertyToBooleanAndWriteBack(CodegenConstants.EXCLUDE_TESTS); + } + + if (additionalProperties.containsKey(CodegenConstants.VALIDATABLE)) { + setValidatable(convertPropertyToBooleanAndWriteBack(CodegenConstants.VALIDATABLE)); + } else { + additionalProperties.put(CodegenConstants.VALIDATABLE, validatable); + } + + if (additionalProperties.containsKey(CodegenConstants.DOTNET_FRAMEWORK)) { + setTargetFramework((String) additionalProperties.get(CodegenConstants.DOTNET_FRAMEWORK)); + } else { + // Ensure default is set. + setTargetFramework(NET45); + additionalProperties.put(CodegenConstants.DOTNET_FRAMEWORK, this.targetFramework); + } + + if (NET35.equals(this.targetFramework)) { + // This is correct, mono will require you build .NET 3.5 sources using 4.0 SDK + additionalProperties.put(MCS_NET_VERSION_KEY, "4"); + additionalProperties.put("net35", true); + if (additionalProperties.containsKey(CodegenConstants.SUPPORTS_ASYNC)) { + LOGGER.warn(".NET 3.5 generator does not support async."); + additionalProperties.remove(CodegenConstants.SUPPORTS_ASYNC); + } + + setTargetFrameworkNuget("net35"); + setValidatable(Boolean.FALSE); + setSupportsAsync(Boolean.FALSE); + } else if (NETSTANDARD.equals(this.targetFramework)) { + // TODO: NETSTANDARD here is misrepresenting a PCL v5.0 which supports .NET Framework 4.6+, .NET Core 1.0, and Windows Universal 10.0 + additionalProperties.put(MCS_NET_VERSION_KEY, "4.6-api"); + if (additionalProperties.containsKey("supportsUWP")) { + LOGGER.warn(".NET " + NETSTANDARD + " generator does not support UWP."); + additionalProperties.remove("supportsUWP"); + } + + // TODO: NETSTANDARD=v5.0 and targetFrameworkNuget=netstandard1.3. These need to sync. + setTargetFrameworkNuget("netstandard1.3"); + setSupportsAsync(Boolean.TRUE); + setSupportsUWP(Boolean.FALSE); + setNetStandard(Boolean.TRUE); + + //Tests not yet implemented for .NET Standard codegen + //Todo implement it + excludeTests = true; + } else if (UWP.equals(this.targetFramework)) { + setTargetFrameworkNuget("uwp"); + setSupportsAsync(Boolean.TRUE); + setSupportsUWP(Boolean.TRUE); + } else if (NET40.equals(this.targetFramework)) { + additionalProperties.put(MCS_NET_VERSION_KEY, "4"); + additionalProperties.put("isNet40", true); + + if (additionalProperties.containsKey(CodegenConstants.SUPPORTS_ASYNC)) { + LOGGER.warn(".NET " + NET40 + " generator does not support async."); + additionalProperties.remove(CodegenConstants.SUPPORTS_ASYNC); + } + + setTargetFrameworkNuget("net40"); + setSupportsAsync(Boolean.FALSE); + } else { + additionalProperties.put(MCS_NET_VERSION_KEY, "4.5.2-api"); + setTargetFrameworkNuget("net45"); + setSupportsAsync(Boolean.TRUE); + } + + if (additionalProperties.containsKey(CodegenConstants.GENERATE_PROPERTY_CHANGED)) { + if (NET35.equals(targetFramework)) { + LOGGER.warn(CodegenConstants.GENERATE_PROPERTY_CHANGED + " is only supported by generated code for .NET 4+."); + additionalProperties.remove(CodegenConstants.GENERATE_PROPERTY_CHANGED); + } else if (NETSTANDARD.equals(targetFramework)) { + LOGGER.warn(CodegenConstants.GENERATE_PROPERTY_CHANGED + " is not supported in .NET Standard generated code."); + additionalProperties.remove(CodegenConstants.GENERATE_PROPERTY_CHANGED); + } else if (Boolean.TRUE.equals(netCoreProjectFileFlag)) { + LOGGER.warn(CodegenConstants.GENERATE_PROPERTY_CHANGED + " is not supported in .NET Core csproj project format."); + additionalProperties.remove(CodegenConstants.GENERATE_PROPERTY_CHANGED); + } else { + setGeneratePropertyChanged(convertPropertyToBooleanAndWriteBack(CodegenConstants.GENERATE_PROPERTY_CHANGED)); + } + } + + additionalProperties.put(CodegenConstants.API_PACKAGE, apiPackage); + additionalProperties.put(CodegenConstants.MODEL_PACKAGE, modelPackage); + additionalProperties.put("clientPackage", clientPackage); + + additionalProperties.put(CodegenConstants.EXCLUDE_TESTS, excludeTests); + additionalProperties.put(CodegenConstants.VALIDATABLE, this.validatable); + additionalProperties.put(CodegenConstants.SUPPORTS_ASYNC, this.supportsAsync); + additionalProperties.put("supportsUWP", this.supportsUWP); + additionalProperties.put("netStandard", this.netStandard); + additionalProperties.put("targetFrameworkNuget", this.targetFrameworkNuget); + + // TODO: either remove this and update templates to match the "optionalEmitDefaultValues" property, or rename that property. + additionalProperties.put("emitDefaultValue", optionalEmitDefaultValue); + + if (additionalProperties.containsKey(CodegenConstants.OPTIONAL_PROJECT_FILE)) { + setOptionalProjectFileFlag(convertPropertyToBooleanAndWriteBack(CodegenConstants.OPTIONAL_PROJECT_FILE)); + } else { + additionalProperties.put(CodegenConstants.OPTIONAL_PROJECT_FILE, optionalProjectFileFlag); + } + + if (additionalProperties.containsKey(CodegenConstants.OPTIONAL_PROJECT_GUID)) { + setPackageGuid((String) additionalProperties.get(CodegenConstants.OPTIONAL_PROJECT_GUID)); + } else { + additionalProperties.put(CodegenConstants.OPTIONAL_PROJECT_GUID, packageGuid); + } + + if (additionalProperties.containsKey(CodegenConstants.OPTIONAL_METHOD_ARGUMENT)) { + setOptionalMethodArgumentFlag(convertPropertyToBooleanAndWriteBack(CodegenConstants.OPTIONAL_METHOD_ARGUMENT)); + } else { + additionalProperties.put(CodegenConstants.OPTIONAL_METHOD_ARGUMENT, optionalMethodArgumentFlag); + } + + if (additionalProperties.containsKey(CodegenConstants.OPTIONAL_ASSEMBLY_INFO)) { + setOptionalAssemblyInfoFlag(convertPropertyToBooleanAndWriteBack(CodegenConstants.OPTIONAL_ASSEMBLY_INFO)); + } else { + additionalProperties.put(CodegenConstants.OPTIONAL_ASSEMBLY_INFO, optionalAssemblyInfoFlag); + } + + if (additionalProperties.containsKey(CodegenConstants.NON_PUBLIC_API)) { + setNonPublicApi(convertPropertyToBooleanAndWriteBack(CodegenConstants.NON_PUBLIC_API)); + } else { + additionalProperties.put(CodegenConstants.NON_PUBLIC_API, isNonPublicApi()); + } + + final String testPackageName = testPackageName(); + String packageFolder = sourceFolder + File.separator + packageName; + String clientPackageDir = packageFolder + File.separator + clientPackage; + String testPackageFolder = testFolder + File.separator + testPackageName; + + additionalProperties.put("testPackageName", testPackageName); + + //Compute the relative path to the bin directory where the external assemblies live + //This is necessary to properly generate the project file + int packageDepth = packageFolder.length() - packageFolder.replace(java.io.File.separator, "").length(); + String binRelativePath = "..\\"; + for (int i = 0; i < packageDepth; i = i + 1) + binRelativePath += "..\\"; + binRelativePath += "vendor"; + additionalProperties.put("binRelativePath", binRelativePath); + + supportingFiles.add(new SupportingFile("IApiAccessor.mustache", + clientPackageDir, "IApiAccessor.cs")); + supportingFiles.add(new SupportingFile("Configuration.mustache", + clientPackageDir, "Configuration.cs")); + supportingFiles.add(new SupportingFile("ApiClient.mustache", + clientPackageDir, "ApiClient.cs")); + supportingFiles.add(new SupportingFile("ApiException.mustache", + clientPackageDir, "ApiException.cs")); + supportingFiles.add(new SupportingFile("ApiResponse.mustache", + clientPackageDir, "ApiResponse.cs")); + supportingFiles.add(new SupportingFile("ExceptionFactory.mustache", + clientPackageDir, "ExceptionFactory.cs")); + supportingFiles.add(new SupportingFile("OpenAPIDateConverter.mustache", + clientPackageDir, "OpenAPIDateConverter.cs")); + + supportingFiles.add(new SupportingFile("ClientUtils.mustache", + clientPackageDir, "ClientUtils.cs")); + supportingFiles.add(new SupportingFile("HttpMethod.mustache", + clientPackageDir, "HttpMethod.cs")); + supportingFiles.add(new SupportingFile("IAsynchronousClient.mustache", + clientPackageDir, "IAsynchronousClient.cs")); + supportingFiles.add(new SupportingFile("ISynchronousClient.mustache", + clientPackageDir, "ISynchronousClient.cs")); + supportingFiles.add(new SupportingFile("RequestOptions.mustache", + clientPackageDir, "RequestOptions.cs")); + supportingFiles.add(new SupportingFile("Multimap.mustache", + clientPackageDir, "Multimap.cs")); + + if (Boolean.FALSE.equals(this.netStandard) && Boolean.FALSE.equals(this.netCoreProjectFileFlag)) { + supportingFiles.add(new SupportingFile("compile.mustache", "", "build.bat")); + supportingFiles.add(new SupportingFile("compile-mono.sh.mustache", "", "build.sh")); + + // copy package.config to nuget's standard location for project-level installs + supportingFiles.add(new SupportingFile("packages.config.mustache", packageFolder + File.separator, "packages.config")); + // .travis.yml for travis-ci.org CI + supportingFiles.add(new SupportingFile("travis.mustache", "", ".travis.yml")); + } else if (Boolean.FALSE.equals(this.netCoreProjectFileFlag)) { + supportingFiles.add(new SupportingFile("project.json.mustache", packageFolder + File.separator, "project.json")); + } + + supportingFiles.add(new SupportingFile("IReadableConfiguration.mustache", + clientPackageDir, "IReadableConfiguration.cs")); + supportingFiles.add(new SupportingFile("GlobalConfiguration.mustache", + clientPackageDir, "GlobalConfiguration.cs")); + + // Only write out test related files if excludeTests is unset or explicitly set to false (see start of this method) + if (Boolean.FALSE.equals(excludeTests)) { + // shell script to run the nunit test + supportingFiles.add(new SupportingFile("mono_nunit_test.mustache", "", "mono_nunit_test.sh")); + + modelTestTemplateFiles.put("model_test.mustache", ".cs"); + apiTestTemplateFiles.put("api_test.mustache", ".cs"); + + if (Boolean.FALSE.equals(this.netCoreProjectFileFlag)) { + supportingFiles.add(new SupportingFile("packages_test.config.mustache", testPackageFolder + File.separator, "packages.config")); + } + + if (NET40.equals(this.targetFramework)) { + // Include minimal tests for modifications made to JsonSubTypes, since code is quite different for .net 4.0 from original implementation + supportingFiles.add(new SupportingFile("JsonSubTypesTests.mustache", + testPackageFolder + File.separator + "Client", + "JsonSubTypesTests.cs")); + } + } + + if (Boolean.TRUE.equals(generatePropertyChanged)) { + supportingFiles.add(new SupportingFile("FodyWeavers.xml", packageFolder, "FodyWeavers.xml")); + } + + supportingFiles.add(new SupportingFile("README.mustache", "", "README.md")); + supportingFiles.add(new SupportingFile("git_push.sh.mustache", "", "git_push.sh")); + supportingFiles.add(new SupportingFile("gitignore.mustache", "", ".gitignore")); + + if (optionalAssemblyInfoFlag && Boolean.FALSE.equals(this.netCoreProjectFileFlag)) { + supportingFiles.add(new SupportingFile("AssemblyInfo.mustache", packageFolder + File.separator + "Properties", "AssemblyInfo.cs")); + } + if (optionalProjectFileFlag) { + supportingFiles.add(new SupportingFile("Solution.mustache", "", packageName + ".sln")); + + if (Boolean.TRUE.equals(this.netCoreProjectFileFlag)) { + supportingFiles.add(new SupportingFile("netcore_project.mustache", packageFolder, packageName + ".csproj")); + } else { + supportingFiles.add(new SupportingFile("Project.mustache", packageFolder, packageName + ".csproj")); + if (Boolean.FALSE.equals(this.netStandard)) { + supportingFiles.add(new SupportingFile("nuspec.mustache", packageFolder, packageName + ".nuspec")); + } + } + + if (Boolean.FALSE.equals(excludeTests)) { + // NOTE: This exists here rather than previous excludeTests block because the test project is considered an optional project file. + if (Boolean.TRUE.equals(this.netCoreProjectFileFlag)) { + supportingFiles.add(new SupportingFile("netcore_testproject.mustache", testPackageFolder, testPackageName + ".csproj")); + } else { + supportingFiles.add(new SupportingFile("TestProject.mustache", testPackageFolder, testPackageName + ".csproj")); + } + } + } + + additionalProperties.put("apiDocPath", apiDocPath); + additionalProperties.put("modelDocPath", modelDocPath); + } + + public void setModelPropertyNaming(String naming) { + if ("original".equals(naming) || "camelCase".equals(naming) || + "PascalCase".equals(naming) || "snake_case".equals(naming)) { + this.modelPropertyNaming = naming; + } else { + throw new IllegalArgumentException("Invalid model property naming '" + + naming + "'. Must be 'original', 'camelCase', " + + "'PascalCase' or 'snake_case'"); + } + } + + public String getModelPropertyNaming() { + return this.modelPropertyNaming; + } + + @Override + public Map postProcessOperationsWithModels(Map objs, List allModels) { + super.postProcessOperationsWithModels(objs, allModels); + if (objs != null) { + Map operations = (Map) objs.get("operations"); + if (operations != null) { + List ops = (List) operations.get("operation"); + for (CodegenOperation operation : ops) { + if (operation.returnType != null) { + operation.returnContainer = operation.returnType; + if (this.returnICollection && ( + operation.returnType.startsWith("List") || + operation.returnType.startsWith("Collection"))) { + // NOTE: ICollection works for both List and Collection + int genericStart = operation.returnType.indexOf("<"); + if (genericStart > 0) { + operation.returnType = "ICollection" + operation.returnType.substring(genericStart); + } + } + } + } + } + } + + return objs; + } + + @Override + public CodegenType getTag() { + return CodegenType.CLIENT; + } + + @Override + public String getName() { + return "csharp-refactor"; + } + + @Override + public String getHelp() { + return "Generates a CSharp client library."; + } + + public void setOptionalAssemblyInfoFlag(boolean flag) { + this.optionalAssemblyInfoFlag = flag; + } + + @Override + public CodegenModel fromModel(String name, Schema model, Map allDefinitions) { + CodegenModel codegenModel = super.fromModel(name, model, allDefinitions); + if (allDefinitions != null && codegenModel != null && codegenModel.parent != null) { + final Schema parentModel = allDefinitions.get(toModelName(codegenModel.parent)); + if (parentModel != null) { + final CodegenModel parentCodegenModel = super.fromModel(codegenModel.parent, parentModel, allDefinitions); + if (codegenModel.hasEnums) { + codegenModel = this.reconcileInlineEnums(codegenModel, parentCodegenModel); + } + + Map propertyHash = new HashMap<>(codegenModel.vars.size()); + for (final CodegenProperty property : codegenModel.vars) { + propertyHash.put(property.name, property); + } + + for (final CodegenProperty property : codegenModel.readWriteVars) { + if (property.defaultValue == null && property.baseName.equals(parentCodegenModel.discriminator)) { + property.defaultValue = "\"" + name + "\""; + } + } + + CodegenProperty last = null; + for (final CodegenProperty property : parentCodegenModel.vars) { + // helper list of parentVars simplifies templating + if (!propertyHash.containsKey(property.name)) { + final CodegenProperty parentVar = property.clone(); + parentVar.isInherited = true; + parentVar.hasMore = true; + last = parentVar; + LOGGER.info("adding parent variable {}", property.name); + codegenModel.parentVars.add(parentVar); + } + } + + if (last != null) { + last.hasMore = false; + } + } + } + + // Cleanup possible duplicates. Currently, readWriteVars can contain the same property twice. May or may not be isolated to C#. + if (codegenModel != null && codegenModel.readWriteVars != null && codegenModel.readWriteVars.size() > 1) { + int length = codegenModel.readWriteVars.size() - 1; + for (int i = length; i > (length / 2); i--) { + final CodegenProperty codegenProperty = codegenModel.readWriteVars.get(i); + // If the property at current index is found earlier in the list, remove this last instance. + if (codegenModel.readWriteVars.indexOf(codegenProperty) < i) { + codegenModel.readWriteVars.remove(i); + } + } + } + + return codegenModel; + } + + public void setOptionalProjectFileFlag(boolean flag) { + this.optionalProjectFileFlag = flag; + } + + public void setPackageGuid(String packageGuid) { + this.packageGuid = packageGuid; + } + + @Override + public void postProcessParameter(CodegenParameter parameter) { + postProcessPattern(parameter.pattern, parameter.vendorExtensions); + super.postProcessParameter(parameter); + } + + @Override + public void postProcessModelProperty(CodegenModel model, CodegenProperty property) { + postProcessPattern(property.pattern, property.vendorExtensions); + super.postProcessModelProperty(model, property); + } + + /* + * The pattern spec follows the Perl convention and style of modifiers. .NET + * does not support this syntax directly so we need to convert the pattern to a .NET compatible + * format and apply modifiers in a compatible way. + * See https://msdn.microsoft.com/en-us/library/yd1hzczs(v=vs.110).aspx for .NET options. + */ + public void postProcessPattern(String pattern, Map vendorExtensions) { + if (pattern != null) { + int i = pattern.lastIndexOf('/'); + + //Must follow Perl /pattern/modifiers convention + if (pattern.charAt(0) != '/' || i < 2) { + throw new IllegalArgumentException("Pattern must follow the Perl " + + "/pattern/modifiers convention. " + pattern + " is not valid."); + } + + String regex = pattern.substring(1, i).replace("'", "\'"); + List modifiers = new ArrayList(); + + // perl requires an explicit modifier to be culture specific and .NET is the reverse. + modifiers.add("CultureInvariant"); + + for (char c : pattern.substring(i).toCharArray()) { + if (regexModifiers.containsKey(c)) { + String modifier = regexModifiers.get(c); + modifiers.add(modifier); + } else if (c == 'l') { + modifiers.remove("CultureInvariant"); + } + } + + vendorExtensions.put("x-regex", regex); + vendorExtensions.put("x-modifiers", modifiers); + } + } + + public void setTargetFramework(String dotnetFramework) { + if (!frameworks.containsKey(dotnetFramework)) { + LOGGER.warn("Invalid .NET framework version, defaulting to " + this.targetFramework); + } else { + this.targetFramework = dotnetFramework; + } + LOGGER.info("Generating code for .NET Framework " + this.targetFramework); + } + + private CodegenModel reconcileInlineEnums(CodegenModel codegenModel, CodegenModel parentCodegenModel) { + // This generator uses inline classes to define enums, which breaks when + // dealing with models that have subTypes. To clean this up, we will analyze + // the parent and child models, look for enums that match, and remove + // them from the child models and leave them in the parent. + // Because the child models extend the parents, the enums will be available via the parent. + + // Only bother with reconciliation if the parent model has enums. + if (parentCodegenModel.hasEnums) { + + // Get the properties for the parent and child models + final List parentModelCodegenProperties = parentCodegenModel.vars; + List codegenProperties = codegenModel.vars; + + // Iterate over all of the parent model properties + boolean removedChildEnum = false; + for (CodegenProperty parentModelCodegenPropery : parentModelCodegenProperties) { + // Look for enums + if (parentModelCodegenPropery.isEnum) { + // Now that we have found an enum in the parent class, + // and search the child class for the same enum. + Iterator iterator = codegenProperties.iterator(); + while (iterator.hasNext()) { + CodegenProperty codegenProperty = iterator.next(); + if (codegenProperty.isEnum && codegenProperty.equals(parentModelCodegenPropery)) { + // We found an enum in the child class that is + // a duplicate of the one in the parent, so remove it. + iterator.remove(); + removedChildEnum = true; + } + } + } + } + + if (removedChildEnum) { + // If we removed an entry from this model's vars, we need to ensure hasMore is updated + int count = 0, numVars = codegenProperties.size(); + for (CodegenProperty codegenProperty : codegenProperties) { + count += 1; + codegenProperty.hasMore = count < numVars; + } + codegenModel.vars = codegenProperties; + } + } + + return codegenModel; + } + + @Override + public String toEnumVarName(String value, String datatype) { + if (value.length() == 0) { + return "Empty"; + } + + // for symbol, e.g. $, # + if (getSymbolName(value) != null) { + return camelize(getSymbolName(value)); + } + + // number + if (datatype.startsWith("int") || datatype.startsWith("long") || + datatype.startsWith("double") || datatype.startsWith("float")) { + String varName = "NUMBER_" + value; + varName = varName.replaceAll("-", "MINUS_"); + varName = varName.replaceAll("\\+", "PLUS_"); + varName = varName.replaceAll("\\.", "_DOT_"); + return varName; + } + + // string + String var = value.replaceAll("_", " "); + //var = WordUtils.capitalizeFully(var); + var = camelize(var); + var = var.replaceAll("\\W+", ""); + + if (var.matches("\\d.*")) { + return "_" + var; + } else { + return var; + } + } + + @Override + public String toVarName(String name) { + // sanitize name + name = sanitizeName(name); + + // if it's all uppper case, do nothing + if (name.matches("^[A-Z_]*$")) { + return name; + } + + name = getNameUsingModelPropertyNaming(name); + + // for reserved word or word starting with number, append _ + if (isReservedWord(name) || name.matches("^\\d.*")) { + name = escapeReservedWord(name); + } + + return name; + } + + public String getNameUsingModelPropertyNaming(String name) { + switch (CodegenConstants.MODEL_PROPERTY_NAMING_TYPE.valueOf(getModelPropertyNaming())) { + case original: + return name; + case camelCase: + return camelize(name, true); + case PascalCase: + return camelize(name); + case snake_case: + return underscore(name); + default: + throw new IllegalArgumentException("Invalid model property naming '" + + name + "'. Must be 'original', 'camelCase', " + + "'PascalCase' or 'snake_case'"); + } + } + + + public void setPackageName(String packageName) { + this.packageName = packageName; + } + + public void setPackageVersion(String packageVersion) { + this.packageVersion = packageVersion; + } + + public void setTargetFrameworkNuget(String targetFrameworkNuget) { + this.targetFrameworkNuget = targetFrameworkNuget; + } + + public void setSupportsAsync(Boolean supportsAsync) { + this.supportsAsync = supportsAsync; + } + + public void setSupportsUWP(Boolean supportsUWP) { + this.supportsUWP = supportsUWP; + } + + public void setNetStandard(Boolean netStandard) { + this.netStandard = netStandard; + } + + public void setGeneratePropertyChanged(final Boolean generatePropertyChanged) { + this.generatePropertyChanged = generatePropertyChanged; + } + + public boolean isNonPublicApi() { + return nonPublicApi; + } + + public void setNonPublicApi(final boolean nonPublicApi) { + this.nonPublicApi = nonPublicApi; + } + + public void setValidatable(boolean validatable) { + this.validatable = validatable; + } + + @Override + public String toModelDocFilename(String name) { + return toModelFilename(name); + } + + @Override + public String apiDocFileFolder() { + return (outputFolder + "/" + apiDocPath).replace('/', File.separatorChar); + } + + @Override + public String modelDocFileFolder() { + return (outputFolder + "/" + modelDocPath).replace('/', File.separatorChar); + } + + @Override + public String apiTestFileFolder() { + return outputFolder + File.separator + testFolder + File.separator + testPackageName() + File.separator + apiPackage(); + } + + @Override + public String modelTestFileFolder() { + return outputFolder + File.separator + testFolder + File.separator + testPackageName() + File.separator + modelPackage(); + } + + @Override + public Mustache.Compiler processCompiler(Mustache.Compiler compiler) { + // To avoid unexpected behaviors when options are passed programmatically such as { "supportsAsync": "" } + return super.processCompiler(compiler).emptyStringIsFalse(true); + } +} diff --git a/modules/openapi-generator/src/main/resources/META-INF/services/org.openapitools.codegen.CodegenConfig b/modules/openapi-generator/src/main/resources/META-INF/services/org.openapitools.codegen.CodegenConfig index 6bd50bc8e2a..bf2a7c73635 100644 --- a/modules/openapi-generator/src/main/resources/META-INF/services/org.openapitools.codegen.CodegenConfig +++ b/modules/openapi-generator/src/main/resources/META-INF/services/org.openapitools.codegen.CodegenConfig @@ -14,6 +14,7 @@ org.openapitools.codegen.languages.CppRestbedServerCodegen org.openapitools.codegen.languages.CppRestSdkClientCodegen org.openapitools.codegen.languages.CppTizenClientCodegen org.openapitools.codegen.languages.CSharpClientCodegen +org.openapitools.codegen.languages.CSharpRefactorClientCodegen org.openapitools.codegen.languages.CSharpDotNet2ClientCodegen org.openapitools.codegen.languages.CSharpNancyFXServerCodegen org.openapitools.codegen.languages.DartClientCodegen diff --git a/modules/openapi-generator/src/main/resources/csharp-refactor/ApiClient.mustache b/modules/openapi-generator/src/main/resources/csharp-refactor/ApiClient.mustache new file mode 100644 index 00000000000..3e222c2d96c --- /dev/null +++ b/modules/openapi-generator/src/main/resources/csharp-refactor/ApiClient.mustache @@ -0,0 +1,555 @@ +{{>partial_header}} + +using System; +using System.Collections; +using System.Collections.Generic; +using System.Globalization; +using System.Text.RegularExpressions; +using System.Threading.Tasks; +using System.IO; +{{^netStandard}} +{{^supportsUWP}} +using System.Web; +{{/supportsUWP}} +{{/netStandard}} +using System.Linq; +using System.Net; +using System.Text; +using Newtonsoft.Json; +{{#netStandard}} +using RestSharp.Portable; +using RestSharp.Portable.HttpClient; +using RestSharpMethod = RestSharp.Portable.Method; +{{/netStandard}} +{{^netStandard}} +using RestSharp; +using RestSharpMethod = RestSharp.Method; +{{/netStandard}} + +namespace {{packageName}}.Client +{ + /// + /// Allows RestSharp to Serialize/Deserialize JSON using our custom logic, but only when ContentType is JSON. + /// + internal class CustomJsonCodec : RestSharp.Serializers.ISerializer, RestSharp.Deserializers.IDeserializer + { + private readonly IReadableConfiguration _configuration; + private readonly JsonSerializer _serializer; + private string _contentType = "application/json"; + private readonly JsonSerializerSettings _serializerSettings = new JsonSerializerSettings + { + // Swagger generated types generally hide default constructors. + ConstructorHandling = ConstructorHandling.AllowNonPublicDefaultConstructor + }; + + public CustomJsonCodec(IReadableConfiguration configuration) + { + _configuration = configuration; + _serializer = JsonSerializer.Create(_serializerSettings); + } + + public CustomJsonCodec(JsonSerializerSettings serializerSettings, IReadableConfiguration configuration) + { + _serializerSettings = serializerSettings; + _serializer = JsonSerializer.Create(_serializerSettings); + _configuration = configuration; + } + + public string Serialize(object obj) + { + using (var writer = new StringWriter()) + using (var jsonWriter = new JsonTextWriter(writer) + { + Formatting = Formatting.None, + DateFormatString = _configuration.DateTimeFormat + }) + { + _serializer.Serialize(jsonWriter, obj); + return writer.ToString(); + } + } + + public T Deserialize(IRestResponse response) + { + return (T) Deserialize(response, typeof(T)); + } + + /// + /// Deserialize the JSON string into a proper object. + /// + /// The HTTP response. + /// Object type. + /// Object representation of the JSON string. + internal object Deserialize(IRestResponse response, Type type) + { + IList headers = response.Headers; + if (type == typeof(byte[])) // return byte array + { + return response.RawBytes; + } + + // TODO: ? if (type.IsAssignableFrom(typeof(Stream))) + if (type == typeof(Stream)) + { + if (headers != null) + { + var filePath = String.IsNullOrEmpty(_configuration.TempFolderPath) + ? Path.GetTempPath() + : _configuration.TempFolderPath; + var regex = new Regex(@"Content-Disposition=.*filename=['""]?([^'""\s]+)['""]?$"); + foreach (var header in headers) + { + var match = regex.Match(header.ToString()); + if (match.Success) + { + string fileName = filePath + ClientUtils.SanitizeFilename(match.Groups[1].Value.Replace("\"", "").Replace("'", "")); + File.WriteAllBytes(fileName, response.RawBytes); + return new FileStream(fileName, FileMode.Open); + } + } + } + var stream = new MemoryStream(response.RawBytes); + return stream; + } + + if (type.Name.StartsWith("System.Nullable`1[[System.DateTime")) // return a datetime object + { + return DateTime.Parse(response.Content, null, System.Globalization.DateTimeStyles.RoundtripKind); + } + + if (type == typeof(String) || type.Name.StartsWith("System.Nullable")) // return primitive type + { + return ClientUtils.ConvertType(response.Content, type); + } + + // at this point, it must be a model (json) + try + { + return JsonConvert.DeserializeObject(response.Content, type, _serializerSettings); + } + catch (Exception e) + { + throw new ApiException(500, e.Message); + } + } + + public string RootElement { get; set; } + public string Namespace { get; set; } + public string DateFormat { get; set; } + + public string ContentType + { + get { return _contentType; } + set { throw new InvalidOperationException("Not allowed to set content type."); } + } + } + {{! NOTE: Any changes related to RestSharp should be done in this class. All other client classes are for extensibility by consumers.}} + /// + /// Provides a default implementation of an Api client (both synchronous and asynchronous implementatios), + /// encapsulating general REST accessor use cases. + /// + {{>visibility}} partial class ApiClient : ISynchronousClient{{#supportsAsync}}, IAsynchronousClient{{/supportsAsync}} + { + private readonly String _baseUrl; + + /// + /// Allows for extending request processing for generated code. + /// + /// The RestSharp request object + partial void InterceptRequest(IRestRequest request); + + /// + /// Allows for extending response processing for generated code. + /// + /// The RestSharp request object + /// The RestSharp response object + partial void InterceptResponse(IRestRequest request, IRestResponse response); + + /// + /// Initializes a new instance of the , defaulting to the global configurations' base url. + /// + public ApiClient() + { + _baseUrl = {{packageName}}.Client.GlobalConfiguration.Instance.BasePath; + } + + /// + /// Initializes a new instance of the + /// + /// The target service's base path in URL format. + /// + public ApiClient(String basePath) + { + if (String.IsNullOrEmpty(basePath)) + throw new ArgumentException("basePath cannot be empty"); + + _baseUrl = basePath; + } + + /// + /// Constructs the RestSharp version of an http method + /// + /// Swagger Client Custom HttpMethod + /// RestSharp's HttpMethod instance. + /// + private RestSharpMethod Method(HttpMethod method) + { + RestSharpMethod other; + switch (method) + { + case HttpMethod.Get: + other = RestSharpMethod.GET; + break; + case HttpMethod.Post: + other = RestSharpMethod.POST; + break; + case HttpMethod.Put: + other = RestSharpMethod.PUT; + break; + case HttpMethod.Delete: + other = RestSharpMethod.DELETE; + break; + case HttpMethod.Head: + other = RestSharpMethod.HEAD; + break; + case HttpMethod.Options: + other = RestSharpMethod.OPTIONS; + break; + case HttpMethod.Patch: + other = RestSharpMethod.PATCH; + break; + default: + throw new ArgumentOutOfRangeException("method", method, null); + } + + return other; + } + + /// + /// Provides all logic for constructing a new RestSharp . + /// At this point, all information for querying the service is known. Here, it is simply + /// mapped into the RestSharp request. + /// + /// The http verb. + /// The target path (or resource). + /// The additional request options. + /// A per-request configuration object. It is assumed that any merge with + /// GlobalConfiguration has been done before calling this method. + /// [private] A new RestRequest instance. + /// + private RestRequest newRequest( + HttpMethod method, + String path, + RequestOptions options, + IReadableConfiguration configuration) + { + if (path == null) throw new ArgumentNullException("path"); + if (options == null) throw new ArgumentNullException("options"); + if (configuration == null) throw new ArgumentNullException("configuration"); + + RestRequest request = new RestRequest(path, Method(method)); + + if (options.PathParameters != null) + { + foreach (var pathParam in options.PathParameters) + { + request.AddParameter(pathParam.Key, pathParam.Value, ParameterType.UrlSegment); + } + } + + if (options.QueryParameters != null) + { + foreach (var queryParam in options.QueryParameters) + { + foreach (var value in queryParam.Value) + { + request.AddQueryParameter(queryParam.Key, value); + } + } + } + + if (options.HeaderParameters != null) + { + foreach (var headerParam in options.HeaderParameters) + { + foreach (var value in headerParam.Value) + { + request.AddHeader(headerParam.Key, value); + } + } + } + + if (options.FormParameters != null) + { + foreach (var formParam in options.FormParameters) + { + request.AddParameter(formParam.Key, formParam.Value); + } + } + + if (options.Data != null) + { + if (options.HeaderParameters != null) + { + var contentTypes = options.HeaderParameters["Content-Type"]; + if (contentTypes == null || contentTypes.Any(header => header.Contains("application/json"))) + { + request.RequestFormat = DataFormat.Json; + } + else + { + // TODO: Generated client user should add additional handlers. RestSharp only supports XML and JSON, with XML as default. + } + } + else + { + // Here, we'll assume JSON APIs are more common. XML can be forced by adding produces/consumes to openapi spec explicitly. + request.RequestFormat = DataFormat.Json; + } + + request.AddBody(options.Data); + } + + if (options.FileParameters != null) + { + foreach (var fileParam in options.FileParameters) + { + var bytes = ClientUtils.ReadAsBytes(fileParam.Value); + var fileStream = fileParam.Value as FileStream; + if (fileStream != null) + FileParameter.Create(fileParam.Key, bytes, System.IO.Path.GetFileName(fileStream.Name)); + else + FileParameter.Create(fileParam.Key, bytes, "no_file_name_provided"); + } + } + + if (options.Cookies != null && options.Cookies.Count > 0) + { + foreach (var cookie in options.Cookies) + { + request.AddCookie(cookie.Name, cookie.Value); + } + } + + return request; + } + + private ApiResponse toApiResponse({{#supportsAsync}}IRestResponse response{{/supportsAsync}}{{^supportsAsync}}IRestResponse response, CustomJsonCodec des{{/supportsAsync}}) + { + T result = {{#supportsAsync}}response.Data{{/supportsAsync}}{{^supportsAsync}}(T)des.Deserialize(response, typeof(T)){{/supportsAsync}}; + var transformed = new ApiResponse(response.StatusCode, new Multimap(), result) + { + ErrorText = response.ErrorMessage, + Cookies = new List() + }; + + if (response.Headers != null) + { + foreach (var responseHeader in response.Headers) + { + transformed.Headers.Add(responseHeader.Name, ClientUtils.ParameterToString(responseHeader.Value)); + } + } + + if (response.Cookies != null) + { + foreach (var responseCookies in response.Cookies) + { + transformed.Cookies.Add( + new Cookie( + responseCookies.Name, + responseCookies.Value, + responseCookies.Path, + responseCookies.Domain) + ); + } + } + + return transformed; + } + + private {{#supportsAsync}}async Task>{{/supportsAsync}}{{^supportsAsync}}ApiResponse{{/supportsAsync}} Exec(RestRequest req, IReadableConfiguration configuration) + { + RestClient client = new RestClient(_baseUrl); + + var codec = new CustomJsonCodec(configuration); + req.JsonSerializer = codec; + client.AddHandler(codec.ContentType, codec); + + client.Timeout = configuration.Timeout; + + if (configuration.UserAgent != null) + { + client.UserAgent = configuration.UserAgent; + } + + InterceptRequest(req); + {{#supportsAsync}} + var response = await client.ExecuteTaskAsync(req); + {{/supportsAsync}} + {{^supportsAsync}} + var response = client.Execute(req); + {{/supportsAsync}} + InterceptResponse(req, response); + + var result = toApiResponse(response{{^supportsAsync}}, codec{{/supportsAsync}}); + if (response.ErrorMessage != null) + { + result.ErrorText = response.ErrorMessage; + } + + if (response.Cookies != null && response.Cookies.Count > 0) + { + if(result.Cookies == null) result.Cookies = new List(); + foreach (var restResponseCookie in response.Cookies) + { + var cookie = new Cookie( + restResponseCookie.Name, + restResponseCookie.Value, + restResponseCookie.Path, + restResponseCookie.Domain + ) + { + Comment = restResponseCookie.Comment, + CommentUri = restResponseCookie.CommentUri, + Discard = restResponseCookie.Discard, + Expired = restResponseCookie.Expired, + Expires = restResponseCookie.Expires, + HttpOnly = restResponseCookie.HttpOnly, + Port = restResponseCookie.Port, + Secure = restResponseCookie.Secure, + Version = restResponseCookie.Version + }; + + result.Cookies.Add(cookie); + } + } + return result; + } + + {{#supportsAsync}} + #region IAsynchronousClient + public async Task> GetAsync(string path, RequestOptions options, IReadableConfiguration configuration = null) + { + var config = configuration ?? GlobalConfiguration.Instance; + return await Exec(newRequest(HttpMethod.Get, path, options, config), config); + } + + public async Task> PostAsync(string path, RequestOptions options, IReadableConfiguration configuration = null) + { + var config = configuration ?? GlobalConfiguration.Instance; + return await Exec(newRequest(HttpMethod.Post, path, options, config), config); + } + + public async Task> PutAsync(string path, RequestOptions options, IReadableConfiguration configuration = null) + { + var config = configuration ?? GlobalConfiguration.Instance; + return await Exec(newRequest(HttpMethod.Put, path, options, config), config); + } + + public async Task> DeleteAsync(string path, RequestOptions options, IReadableConfiguration configuration = null) + { + var config = configuration ?? GlobalConfiguration.Instance; + return await Exec(newRequest(HttpMethod.Delete, path, options, config), config); + } + + public async Task> HeadAsync(string path, RequestOptions options, IReadableConfiguration configuration = null) + { + var config = configuration ?? GlobalConfiguration.Instance; + return await Exec(newRequest(HttpMethod.Head, path, options, config), config); + } + + public async Task> OptionsAsync(string path, RequestOptions options, IReadableConfiguration configuration = null) + { + var config = configuration ?? GlobalConfiguration.Instance; + return await Exec(newRequest(HttpMethod.Options, path, options, config), config); + } + + public async Task> PatchAsync(string path, RequestOptions options, IReadableConfiguration configuration = null) + { + var config = configuration ?? GlobalConfiguration.Instance; + return await Exec(newRequest(HttpMethod.Patch, path, options, config), config); + } + #endregion IAsynchronousClient + {{/supportsAsync}} + + #region ISynchronousClient + public ApiResponse Get(string path, RequestOptions options, IReadableConfiguration configuration = null) + { + {{#supportsAsync}} + return GetAsync(path, options, configuration).Result; + {{/supportsAsync}} + {{^supportsAsync}} + var config = configuration ?? GlobalConfiguration.Instance; + return Exec(newRequest(HttpMethod.Get, path, options, config), config); + {{/supportsAsync}} + } + + public ApiResponse Post(string path, RequestOptions options, IReadableConfiguration configuration = null) + { + {{#supportsAsync}} + return PostAsync(path, options, configuration).Result; + {{/supportsAsync}} + {{^supportsAsync}} + var config = configuration ?? GlobalConfiguration.Instance; + return Exec(newRequest(HttpMethod.Post, path, options, config), config); + {{/supportsAsync}} + } + + public ApiResponse Put(string path, RequestOptions options, IReadableConfiguration configuration = null) + { + {{#supportsAsync}} + return PutAsync(path, options, configuration).Result; + {{/supportsAsync}} + {{^supportsAsync}} + var config = configuration ?? GlobalConfiguration.Instance; + return Exec(newRequest(HttpMethod.Put, path, options, config), config); + {{/supportsAsync}} + } + + public ApiResponse Delete(string path, RequestOptions options, IReadableConfiguration configuration = null) + { + {{#supportsAsync}} + return DeleteAsync(path, options, configuration).Result; + {{/supportsAsync}} + {{^supportsAsync}} + var config = configuration ?? GlobalConfiguration.Instance; + return Exec(newRequest(HttpMethod.Delete, path, options, config), config); + {{/supportsAsync}} + } + + public ApiResponse Head(string path, RequestOptions options, IReadableConfiguration configuration = null) + { + {{#supportsAsync}} + return HeadAsync(path, options, configuration).Result; + {{/supportsAsync}} + {{^supportsAsync}} + var config = configuration ?? GlobalConfiguration.Instance; + return Exec(newRequest(HttpMethod.Head, path, options, config), config); + {{/supportsAsync}} + } + + public ApiResponse Options(string path, RequestOptions options, IReadableConfiguration configuration = null) + { + {{#supportsAsync}} + return OptionsAsync(path, options, configuration).Result; + {{/supportsAsync}} + {{^supportsAsync}} + var config = configuration ?? GlobalConfiguration.Instance; + return Exec(newRequest(HttpMethod.Options, path, options, config), config); + {{/supportsAsync}} + } + + public ApiResponse Patch(string path, RequestOptions options, IReadableConfiguration configuration = null) + { + {{#supportsAsync}} + return PatchAsync(path, options, configuration).Result; + {{/supportsAsync}} + {{^supportsAsync}} + var config = configuration ?? GlobalConfiguration.Instance; + return Exec(newRequest(HttpMethod.Patch, path, options, config), config); + {{/supportsAsync}} + } + #endregion ISynchronousClient + } +} diff --git a/modules/openapi-generator/src/main/resources/csharp-refactor/ApiException.mustache b/modules/openapi-generator/src/main/resources/csharp-refactor/ApiException.mustache new file mode 100644 index 00000000000..138284907c6 --- /dev/null +++ b/modules/openapi-generator/src/main/resources/csharp-refactor/ApiException.mustache @@ -0,0 +1,52 @@ +{{>partial_header}} + +using System; + +namespace {{packageName}}.Client +{ + /// + /// API Exception + /// + {{>visibility}} class ApiException : Exception + { + /// + /// Gets or sets the error code (HTTP status code) + /// + /// The error code (HTTP status code). + public int ErrorCode { get; set; } + + /// + /// Gets or sets the error content (body json object) + /// + /// The error content (Http response body). + public {{#supportsAsync}}dynamic{{/supportsAsync}}{{^supportsAsync}}object{{/supportsAsync}} ErrorContent { get; private set; } + + /// + /// Initializes a new instance of the class. + /// + public ApiException() {} + + /// + /// Initializes a new instance of the class. + /// + /// HTTP status code. + /// Error message. + public ApiException(int errorCode, string message) : base(message) + { + this.ErrorCode = errorCode; + } + + /// + /// Initializes a new instance of the class. + /// + /// HTTP status code. + /// Error message. + /// Error content. + public ApiException(int errorCode, string message, {{#supportsAsync}}dynamic{{/supportsAsync}}{{^supportsAsync}}object{{/supportsAsync}} errorContent = null) : base(message) + { + this.ErrorCode = errorCode; + this.ErrorContent = errorContent; + } + } + +} diff --git a/modules/openapi-generator/src/main/resources/csharp-refactor/ApiResponse.mustache b/modules/openapi-generator/src/main/resources/csharp-refactor/ApiResponse.mustache new file mode 100644 index 00000000000..eee53bf305d --- /dev/null +++ b/modules/openapi-generator/src/main/resources/csharp-refactor/ApiResponse.mustache @@ -0,0 +1,128 @@ +{{>partial_header}} + +using System; +using System.Collections.Generic; +using System.Net; + +namespace {{packageName}}.Client +{ + /// + /// Provides a non-generic contract for the ApiResponse wrapper. + /// + public interface IApiResponse + { + /// + /// The data type of + /// + Type ResponseType { get; } + + /// + /// The content of this response + /// + Object Content { get; } + + /// + /// Gets or sets the status code (HTTP status code) + /// + /// The status code. + HttpStatusCode StatusCode { get; } + + /// + /// Gets or sets the HTTP headers + /// + /// HTTP headers + Multimap Headers { get; } + + /// + /// Gets or sets any error text defined by the calling client. + /// + String ErrorText { get; set; } + + /// + /// Gets or sets any cookies passed along on the response. + /// + List Cookies { get; set; } + } + + /// + /// API Response + /// + public class ApiResponse : IApiResponse + { + #region Properties + + /// + /// Gets or sets the status code (HTTP status code) + /// + /// The status code. + public HttpStatusCode StatusCode { get; } + + /// + /// Gets or sets the HTTP headers + /// + /// HTTP headers + public Multimap Headers { get; } + + /// + /// Gets or sets the data (parsed HTTP body) + /// + /// The data. + public T Data { get; } + + /// + /// Gets or sets any error text defined by the calling client. + /// + public String ErrorText { get; set; } + + /// + /// Gets or sets any cookies passed along on the response. + /// + public List Cookies { get; set; } + + /// + /// The content of this response + /// + public Type ResponseType + { + get { return typeof(T); } + } + + /// + /// The data type of + /// + public object Content + { + get { return Data; } + } + + #endregion Properties + + #region Constructors + + /// + /// Initializes a new instance of the class. + /// + /// HTTP status code. + /// HTTP headers. + /// Data (parsed HTTP body) + public ApiResponse(HttpStatusCode statusCode, Multimap headers, T data) + { + StatusCode = statusCode; + Headers = headers; + Data = data; + } + + /// + /// Initializes a new instance of the class. + /// + /// HTTP status code. + /// Data (parsed HTTP body) + public ApiResponse(HttpStatusCode statusCode, T data) + { + StatusCode = statusCode; + Data = data; + } + + #endregion Constructors + } +} diff --git a/modules/openapi-generator/src/main/resources/csharp-refactor/AssemblyInfo.mustache b/modules/openapi-generator/src/main/resources/csharp-refactor/AssemblyInfo.mustache new file mode 100644 index 00000000000..d5d937dc19f --- /dev/null +++ b/modules/openapi-generator/src/main/resources/csharp-refactor/AssemblyInfo.mustache @@ -0,0 +1,40 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("{{packageTitle}}")] +[assembly: AssemblyDescription("{{packageDescription}}")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("{{packageCompany}}")] +[assembly: AssemblyProduct("{{packageProductName}}")] +[assembly: AssemblyCopyright("{{packageCopyright}}")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("{{packageVersion}}")] +[assembly: AssemblyFileVersion("{{packageVersion}}")] +{{^supportsAsync}} +// Settings which don't support asynchronous operations rely on non-public constructors +// This is due to how RestSharp requires the type constraint `where T : new()` in places it probably shouldn't. +[assembly: InternalsVisibleTo("RestSharp")] +[assembly: InternalsVisibleTo("NewtonSoft.Json")] +[assembly: InternalsVisibleTo("JsonSubTypes")] +{{/supportsAsync}} diff --git a/modules/openapi-generator/src/main/resources/csharp-refactor/ClientUtils.mustache b/modules/openapi-generator/src/main/resources/csharp-refactor/ClientUtils.mustache new file mode 100755 index 00000000000..135a83aaad0 --- /dev/null +++ b/modules/openapi-generator/src/main/resources/csharp-refactor/ClientUtils.mustache @@ -0,0 +1,193 @@ +{{>partial_header}} + +using System; +using System.Collections; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Net; +using System.Text; +using System.Text.RegularExpressions; +using System.Threading.Tasks; + +namespace {{packageName}}.Client +{ + /// + /// Utility functions providing some benefit to API client consumers. + /// + public static class ClientUtils + { + /// + /// Sanitize filename by removing the path + /// + /// Filename + /// Filename + public static string SanitizeFilename(string filename) + { + Match match = Regex.Match(filename, @".*[/\\](.*)$"); + return match.Success ? match.Groups[1].Value : filename; + } + + /// + /// Convert params to key/value pairs. + /// Use collectionFormat to properly format lists and collections. + /// + /// The swagger-supported collection format, one of: csv, tsv, ssv, pipes, multi + /// Key name. + /// Value object. + /// A multimap of keys with 1..n associated values. + public static Multimap ParameterToMultiMap(string collectionFormat, string name, object value) + { + var parameters = new Multimap(); + + if (IsCollection(value) && collectionFormat == "multi") + { + var valueCollection = value as IEnumerable; + if (valueCollection != null) + { + foreach (var item in valueCollection) + { + parameters.Add(name, ParameterToString(item)); + } + } + } + else + { + parameters.Add(name, ParameterToString(value)); + } + + return parameters; + } + + /// + /// If parameter is DateTime, output in a formatted string (default ISO 8601), customizable with Configuration.DateTime. + /// If parameter is a list, join the list with ",". + /// Otherwise just return the string. + /// + /// The parameter (header, path, query, form). + /// An optional configuration instance, providing formatting options used in processing. + /// Formatted string. + public static string ParameterToString(object obj, IReadableConfiguration configuration = null) + { + if (obj is DateTime) + // Return a formatted date string - Can be customized with Configuration.DateTimeFormat + // Defaults to an ISO 8601, using the known as a Round-trip date/time pattern ("o") + // https://msdn.microsoft.com/en-us/library/az4se3k1(v=vs.110).aspx#Anchor_8 + // For example: 2009-06-15T13:45:30.0000000 + return ((DateTime)obj).ToString((configuration ?? GlobalConfiguration.Instance).DateTimeFormat); + else if (obj is DateTimeOffset) + // Return a formatted date string - Can be customized with Configuration.DateTimeFormat + // Defaults to an ISO 8601, using the known as a Round-trip date/time pattern ("o") + // https://msdn.microsoft.com/en-us/library/az4se3k1(v=vs.110).aspx#Anchor_8 + // For example: 2009-06-15T13:45:30.0000000 + return ((DateTimeOffset)obj).ToString((configuration ?? GlobalConfiguration.Instance).DateTimeFormat); + else + { + if (obj is IList) + { + var list = obj as IList; + var flattenedString = new StringBuilder(); + foreach (var param in list) + { + if (flattenedString.Length > 0) + flattenedString.Append(","); + flattenedString.Append(param); + } + return flattenedString.ToString(); + } + + return Convert.ToString (obj); + } + } + + /// + /// Check if generic object is a collection. + /// + /// + /// True if object is a collection type + private static bool IsCollection(object value) + { + return value is IList || value is ICollection; + } + + /// + /// URL encode a string + /// Credit/Ref: https://github.com/restsharp/RestSharp/blob/master/RestSharp/Extensions/StringExtensions.cs#L50 + /// + /// String to be URL encoded + /// Byte array + public static string UrlEncode(string input) + { + const int maxLength = 32766; + + if (input == null) + { + throw new ArgumentNullException("input"); + } + + if (input.Length <= maxLength) + { + return Uri.EscapeDataString(input); + } + + StringBuilder sb = new StringBuilder(input.Length * 2); + int index = 0; + + while (index < input.Length) + { + int length = Math.Min(input.Length - index, maxLength); + string subString = input.Substring(index, length); + + sb.Append(Uri.EscapeDataString(subString)); + index += subString.Length; + } + + return sb.ToString(); + } + + /// + /// Encode string in base64 format. + /// + /// String to be encoded. + /// Encoded string. + public static string Base64Encode(string text) + { + return System.Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes(text)); + } + + /// + /// Convert stream to byte array + /// + /// Input stream to be converted + /// Byte array + public static byte[] ReadAsBytes(Stream inputStream) + { + byte[] buf = new byte[16*1024]; + using (MemoryStream ms = new MemoryStream()) + { + int count; + while ((count = inputStream.Read(buf, 0, buf.Length)) > 0) + { + ms.Write(buf, 0, count); + } + return ms.ToArray(); + } + } + + /// + /// Dynamically cast the object into target type. + /// + /// Object to be casted + /// Target type + /// Casted object + {{#supportsAsync}} + public static dynamic ConvertType(dynamic fromObject, Type toObject) + {{/supportsAsync}} + {{^supportsAsync}} + public static object ConvertType(T fromObject, Type toObject) where T : class + {{/supportsAsync}} + { + return Convert.ChangeType(fromObject, toObject); +} + } +} \ No newline at end of file diff --git a/modules/openapi-generator/src/main/resources/csharp-refactor/Configuration.mustache b/modules/openapi-generator/src/main/resources/csharp-refactor/Configuration.mustache new file mode 100644 index 00000000000..15b9607912c --- /dev/null +++ b/modules/openapi-generator/src/main/resources/csharp-refactor/Configuration.mustache @@ -0,0 +1,395 @@ +{{>partial_header}} + +using System; +using System.Reflection; +{{^net35}} +using System.Collections.Concurrent; +{{/net35}} +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; + +namespace {{packageName}}.Client +{ + /// + /// Represents a set of configuration settings + /// + {{>visibility}} class Configuration : IReadableConfiguration + { + #region Constants + + /// + /// Version of the package. + /// + /// Version of the package. + public const string Version = "{{packageVersion}}"; + + /// + /// Identifier for ISO 8601 DateTime Format + /// + /// See https://msdn.microsoft.com/en-us/library/az4se3k1(v=vs.110).aspx#Anchor_8 for more information. + // ReSharper disable once InconsistentNaming + public const string ISO8601_DATETIME_FORMAT = "o"; + + #endregion Constants + + #region Static Members + + /// + /// Default creation of exceptions for a given method name and response object + /// + public static readonly ExceptionFactory DefaultExceptionFactory = (methodName, response) => + { + var status = (int)response.StatusCode; + if (status >= 400) + { + return new ApiException(status, + string.Format("Error calling {0}: {1}", methodName, response.Content), + response.Content); + } + {{^netStandard}}if (status == 0) + { + return new ApiException(status, + string.Format("Error calling {0}: {1}", methodName, response.ErrorText), response.ErrorText); + }{{/netStandard}} + return null; + }; + + #endregion Static Members + + #region Private Members + + /// + /// Defines the base path of the target API server. + /// Example: http://localhost:3000/v1/ + /// + private String _basePath; + + /// + /// Gets or sets the API key based on the authentication name. + /// This is the key and value comprising the "secret" for acessing an API. + /// + /// The API key. + private IDictionary _apiKey; + + /// + /// Gets or sets the prefix (e.g. Token) of the API key based on the authentication name. + /// + /// The prefix of the API key. + private IDictionary _apiKeyPrefix; + + private string _dateTimeFormat = ISO8601_DATETIME_FORMAT; + private string _tempFolderPath = Path.GetTempPath(); + + #endregion Private Members + + #region Constructors + + /// + /// Initializes a new instance of the class + /// + [System.Diagnostics.CodeAnalysis.SuppressMessage("ReSharper", "VirtualMemberCallInConstructor")] + public Configuration() + { + UserAgent = "{{#httpUserAgent}}{{.}}{{/httpUserAgent}}{{^httpUserAgent}}OpenAPI-Generator/{{packageVersion}}/csharp{{/httpUserAgent}}"; + BasePath = "{{{basePath}}}"; + DefaultHeader = new {{^net35}}Concurrent{{/net35}}Dictionary(); + ApiKey = new {{^net35}}Concurrent{{/net35}}Dictionary(); + ApiKeyPrefix = new {{^net35}}Concurrent{{/net35}}Dictionary(); + + // Setting Timeout has side effects (forces ApiClient creation). + Timeout = 100000; + } + + /// + /// Initializes a new instance of the class + /// + [System.Diagnostics.CodeAnalysis.SuppressMessage("ReSharper", "VirtualMemberCallInConstructor")] + public Configuration( + IDictionary defaultHeader, + IDictionary apiKey, + IDictionary apiKeyPrefix, + string basePath = "{{{basePath}}}") : this() + { + if (string.{{^net35}}IsNullOrWhiteSpace{{/net35}}{{#net35}}IsNullOrEmpty{{/net35}}(basePath)) + throw new ArgumentException("The provided basePath is invalid.", "basePath"); + if (defaultHeader == null) + throw new ArgumentNullException("defaultHeader"); + if (apiKey == null) + throw new ArgumentNullException("apiKey"); + if (apiKeyPrefix == null) + throw new ArgumentNullException("apiKeyPrefix"); + + BasePath = basePath; + + foreach (var keyValuePair in defaultHeader) + { + DefaultHeader.Add(keyValuePair); + } + + foreach (var keyValuePair in apiKey) + { + ApiKey.Add(keyValuePair); + } + + foreach (var keyValuePair in apiKeyPrefix) + { + ApiKeyPrefix.Add(keyValuePair); + } + } + + #endregion Constructors + + #region Properties + + /// + /// Gets or sets the base path for API access. + /// + public virtual string BasePath { + get { return _basePath; } + set { + _basePath = value; + } + } + + /// + /// Gets or sets the default header. + /// + public virtual IDictionary DefaultHeader { get; set; } + + /// + /// Gets or sets the HTTP timeout (milliseconds) of ApiClient. Default to 100000 milliseconds. + /// + public virtual int Timeout { get; set; } + + /// + /// Gets or sets the HTTP user agent. + /// + /// Http user agent. + public virtual string UserAgent { get; set; } + + /// + /// Gets or sets the username (HTTP basic authentication). + /// + /// The username. + public virtual string Username { get; set; } + + /// + /// Gets or sets the password (HTTP basic authentication). + /// + /// The password. + public virtual string Password { get; set; } + + /// + /// Gets the API key with prefix. + /// + /// API key identifier (authentication scheme). + /// API key with prefix. + public string GetApiKeyWithPrefix(string apiKeyIdentifier) + { + string apiKeyValue; + ApiKey.TryGetValue (apiKeyIdentifier, out apiKeyValue); + string apiKeyPrefix; + if (ApiKeyPrefix.TryGetValue(apiKeyIdentifier, out apiKeyPrefix)) + { + return apiKeyPrefix + " " + apiKeyValue; + } + + return apiKeyValue; + } + + /// + /// Gets or sets the access token for OAuth2 authentication. + /// + /// This helper property simplifies code generation. + /// + /// The access token. + public virtual string AccessToken { get; set; } + + /// + /// Gets or sets the temporary folder path to store the files downloaded from the server. + /// + /// Folder path. + public virtual string TempFolderPath + { + get { return _tempFolderPath; } + + set + { + if (string.IsNullOrEmpty(value)) + { + _tempFolderPath = Path.GetTempPath(); + return; + } + + // create the directory if it does not exist + if (!Directory.Exists(value)) + { + Directory.CreateDirectory(value); + } + + // check if the path contains directory separator at the end + if (value[value.Length - 1] == Path.DirectorySeparatorChar) + { + _tempFolderPath = value; + } + else + { + _tempFolderPath = value + Path.DirectorySeparatorChar; + } + } + } + + /// + /// Gets or sets the the date time format used when serializing in the ApiClient + /// By default, it's set to ISO 8601 - "o", for others see: + /// https://msdn.microsoft.com/en-us/library/az4se3k1(v=vs.110).aspx + /// and https://msdn.microsoft.com/en-us/library/8kb3ddd4(v=vs.110).aspx + /// No validation is done to ensure that the string you're providing is valid + /// + /// The DateTimeFormat string + public virtual string DateTimeFormat + { + get { return _dateTimeFormat; } + set + { + if (string.IsNullOrEmpty(value)) + { + // Never allow a blank or null string, go back to the default + _dateTimeFormat = ISO8601_DATETIME_FORMAT; + return; + } + + // Caution, no validation when you choose date time format other than ISO 8601 + // Take a look at the above links + _dateTimeFormat = value; + } + } + + /// + /// Gets or sets the prefix (e.g. Token) of the API key based on the authentication name. + /// + /// Whatever you set here will be prepended to the value defined in AddApiKey. + /// + /// An example invocation here might be: + /// + /// ApiKeyPrefix["Authorization"] = "Bearer"; + /// + /// … where ApiKey["Authorization"] would then be used to set the value of your bearer token. + /// + /// + /// OAuth2 workflows should set tokens via AccessToken. + /// + /// + /// The prefix of the API key. + public virtual IDictionary ApiKeyPrefix + { + get { return _apiKeyPrefix; } + set + { + if (value == null) + { + throw new InvalidOperationException("ApiKeyPrefix collection may not be null."); + } + _apiKeyPrefix = value; + } + } + + /// + /// Gets or sets the API key based on the authentication name. + /// + /// The API key. + public virtual IDictionary ApiKey + { + get { return _apiKey; } + set + { + if (value == null) + { + throw new InvalidOperationException("ApiKey collection may not be null."); + } + _apiKey = value; + } + } + + #endregion Properties + + #region Methods + + /// + /// Returns a string with essential information for debugging. + /// + public static String ToDebugReport() + { + String report = "C# SDK ({{{packageName}}}) Debug Report:\n"; + {{^netStandard}} + {{^supportsUWP}} + report += " OS: " + System.Environment.OSVersion + "\n"; + report += " .NET Framework Version: " + System.Environment.Version + "\n"; + {{/supportsUWP}} + {{/netStandard}} + {{#netStandard}} + report += " OS: " + System.Runtime.InteropServices.RuntimeInformation.OSDescription + "\n"; + {{/netStandard}} + report += " Version of the API: {{{version}}}\n"; + report += " SDK Package Version: {{{packageVersion}}}\n"; + + return report; + } + + /// + /// Add Api Key Header. + /// + /// Api Key name. + /// Api Key value. + /// + public void AddApiKey(string key, string value) + { + ApiKey[key] = value; + } + + /// + /// Sets the API key prefix. + /// + /// Api Key name. + /// Api Key value. + public void AddApiKeyPrefix(string key, string value) + { + ApiKeyPrefix[key] = value; + } + + #endregion Methods + + #region Static Members + public static IReadableConfiguration MergeConfigurations(IReadableConfiguration first, IReadableConfiguration second) + { + if (second == null) return first ?? GlobalConfiguration.Instance; + + Dictionary apiKey = first.ApiKey.ToDictionary(kvp => kvp.Key, kvp => kvp.Value); + Dictionary apiKeyPrefix = first.ApiKeyPrefix.ToDictionary(kvp => kvp.Key, kvp => kvp.Value); + Dictionary defaultHeader = first.DefaultHeader.ToDictionary(kvp => kvp.Key, kvp => kvp.Value); + + foreach (var kvp in second.ApiKey) apiKey[kvp.Key] = kvp.Value; + foreach (var kvp in second.ApiKeyPrefix) apiKeyPrefix[kvp.Key] = kvp.Value; + foreach (var kvp in second.DefaultHeader) defaultHeader[kvp.Key] = kvp.Value; + + var config = new Configuration + { + ApiKey = apiKey, + ApiKeyPrefix = apiKeyPrefix, + DefaultHeader = defaultHeader, + BasePath = second.BasePath ?? first.BasePath, + Timeout = second.Timeout, + UserAgent = second.UserAgent ?? first.UserAgent, + Username = second.Username ?? first.Username, + Password = second.Password ?? first.Password, + AccessToken = second.AccessToken ?? first.AccessToken, + TempFolderPath = second.TempFolderPath ?? first.TempFolderPath, + DateTimeFormat = second.DateTimeFormat ?? first.DateTimeFormat + }; + return config; + } + #endregion Static Members + } +} diff --git a/modules/openapi-generator/src/main/resources/csharp-refactor/ExceptionFactory.mustache b/modules/openapi-generator/src/main/resources/csharp-refactor/ExceptionFactory.mustache new file mode 100644 index 00000000000..4a141f6f1ae --- /dev/null +++ b/modules/openapi-generator/src/main/resources/csharp-refactor/ExceptionFactory.mustache @@ -0,0 +1,14 @@ +{{>partial_header}} + +using System; + +namespace {{packageName}}.Client +{ + /// + /// A delegate to ExceptionFactory method + /// + /// Method name + /// Response + /// Exceptions + {{>visibility}} delegate Exception ExceptionFactory(string methodName, IApiResponse response); +} diff --git a/modules/openapi-generator/src/main/resources/csharp-refactor/FodyWeavers.xml b/modules/openapi-generator/src/main/resources/csharp-refactor/FodyWeavers.xml new file mode 100644 index 00000000000..da017fcbf60 --- /dev/null +++ b/modules/openapi-generator/src/main/resources/csharp-refactor/FodyWeavers.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/modules/openapi-generator/src/main/resources/csharp-refactor/GlobalConfiguration.mustache b/modules/openapi-generator/src/main/resources/csharp-refactor/GlobalConfiguration.mustache new file mode 100644 index 00000000000..bdfa4b99cc1 --- /dev/null +++ b/modules/openapi-generator/src/main/resources/csharp-refactor/GlobalConfiguration.mustache @@ -0,0 +1,59 @@ +{{>partial_header}} + +using System.Collections.Generic; + +namespace {{packageName}}.Client +{ + /// + /// provides a compile-time extension point for globally configuring + /// API Clients. + /// + /// + /// A customized implementation via partial class may reside in another file and may + /// be excluded from automatic generation via a .openapi-generator-ignore file. + /// + public partial class GlobalConfiguration : Configuration + { + #region Private Members + + private static readonly object GlobalConfigSync = new { }; + private static IReadableConfiguration _globalConfiguration; + + #endregion Private Members + + #region Constructors + + /// + private GlobalConfiguration() + { + } + + /// + public GlobalConfiguration(IDictionary defaultHeader, IDictionary apiKey, IDictionary apiKeyPrefix, string basePath = "http://localhost:3000/api") : base(defaultHeader, apiKey, apiKeyPrefix, basePath) + { + } + + static GlobalConfiguration() + { + Instance = new GlobalConfiguration(); + } + + #endregion Constructors + + /// + /// Gets or sets the default Configuration. + /// + /// Configuration. + public static IReadableConfiguration Instance + { + get { return _globalConfiguration; } + set + { + lock (GlobalConfigSync) + { + _globalConfiguration = value; + } + } + } + } +} \ No newline at end of file diff --git a/modules/openapi-generator/src/main/resources/csharp-refactor/HttpMethod.mustache b/modules/openapi-generator/src/main/resources/csharp-refactor/HttpMethod.mustache new file mode 100755 index 00000000000..fe0c744817f --- /dev/null +++ b/modules/openapi-generator/src/main/resources/csharp-refactor/HttpMethod.mustache @@ -0,0 +1,18 @@ +{{>partial_header}} + +namespace {{packageName}}.Client +{ + /// + /// Http methods supported by swagger + /// + public enum HttpMethod + { + Get, + Post, + Put, + Delete, + Head, + Options, + Patch + } +} \ No newline at end of file diff --git a/modules/openapi-generator/src/main/resources/csharp-refactor/IApiAccessor.mustache b/modules/openapi-generator/src/main/resources/csharp-refactor/IApiAccessor.mustache new file mode 100644 index 00000000000..7ed972352e1 --- /dev/null +++ b/modules/openapi-generator/src/main/resources/csharp-refactor/IApiAccessor.mustache @@ -0,0 +1,29 @@ +{{>partial_header}} + +using System; + +namespace {{packageName}}.Client +{ + /// + /// Represents configuration aspects required to interact with the API endpoints. + /// + {{>visibility}} interface IApiAccessor + { + /// + /// Gets or sets the configuration object + /// + /// An instance of the Configuration + IReadableConfiguration Configuration {get; set;} + + /// + /// Gets the base path of the API client. + /// + /// The base path + String GetBasePath(); + + /// + /// Provides a factory method hook for the creation of exceptions. + /// + ExceptionFactory ExceptionFactory { get; set; } + } +} diff --git a/modules/openapi-generator/src/main/resources/csharp-refactor/IAsynchronousClient.mustache b/modules/openapi-generator/src/main/resources/csharp-refactor/IAsynchronousClient.mustache new file mode 100755 index 00000000000..0068ce5cd4d --- /dev/null +++ b/modules/openapi-generator/src/main/resources/csharp-refactor/IAsynchronousClient.mustache @@ -0,0 +1,87 @@ +{{>partial_header}} + +{{^supportsAsync}}/*{{/supportsAsync}} +using System; +using System.Threading.Tasks; + +namespace {{packageName}}.Client +{ + /// + /// Contract for Asynchronous RESTful API interactions. + /// + /// This interface allows consumers to provide a custom API accessor client. + /// + public interface IAsynchronousClient + { + /// + /// Executes a non-blocking call to some using the GET http verb. + /// + /// The relative path to invoke. + /// The request parameters to pass along to the client. + /// Per-request configurable settings. + /// The return type. + /// A task eventually representing the response data, decorated with + Task> GetAsync(String path, RequestOptions options, IReadableConfiguration configuration = null); + + /// + /// Executes a non-blocking call to some using the POST http verb. + /// + /// The relative path to invoke. + /// The request parameters to pass along to the client. + /// Per-request configurable settings. + /// The return type. + /// A task eventually representing the response data, decorated with + Task> PostAsync(String path, RequestOptions options, IReadableConfiguration configuration = null); + + /// + /// Executes a non-blocking call to some using the PUT http verb. + /// + /// The relative path to invoke. + /// The request parameters to pass along to the client. + /// Per-request configurable settings. + /// The return type. + /// A task eventually representing the response data, decorated with + Task> PutAsync(String path, RequestOptions options, IReadableConfiguration configuration = null); + + /// + /// Executes a non-blocking call to some using the DELETE http verb. + /// + /// The relative path to invoke. + /// The request parameters to pass along to the client. + /// Per-request configurable settings. + /// The return type. + /// A task eventually representing the response data, decorated with + Task> DeleteAsync(String path, RequestOptions options, IReadableConfiguration configuration = null); + + /// + /// Executes a non-blocking call to some using the HEAD http verb. + /// + /// The relative path to invoke. + /// The request parameters to pass along to the client. + /// Per-request configurable settings. + /// The return type. + /// A task eventually representing the response data, decorated with + Task> HeadAsync(String path, RequestOptions options, IReadableConfiguration configuration = null); + + /// + /// Executes a non-blocking call to some using the OPTIONS http verb. + /// + /// The relative path to invoke. + /// The request parameters to pass along to the client. + /// Per-request configurable settings. + /// The return type. + /// A task eventually representing the response data, decorated with + Task> OptionsAsync(String path, RequestOptions options, IReadableConfiguration configuration = null); + + /// + /// Executes a non-blocking call to some using the PATCH http verb. + /// + /// The relative path to invoke. + /// The request parameters to pass along to the client. + /// Per-request configurable settings. + /// The return type. + /// A task eventually representing the response data, decorated with + Task> PatchAsync(String path, RequestOptions options, IReadableConfiguration configuration = null); + } +} +{{^supportsAsync}}*/{{/supportsAsync}} diff --git a/modules/openapi-generator/src/main/resources/csharp-refactor/IReadableConfiguration.mustache b/modules/openapi-generator/src/main/resources/csharp-refactor/IReadableConfiguration.mustache new file mode 100644 index 00000000000..ce165e0c81d --- /dev/null +++ b/modules/openapi-generator/src/main/resources/csharp-refactor/IReadableConfiguration.mustache @@ -0,0 +1,85 @@ +{{>partial_header}} + +using System.Collections.Generic; + +namespace {{packageName}}.Client +{ + /// + /// Represents a readable-only configuration contract. + /// + public interface IReadableConfiguration + { + /// + /// Gets the access token. + /// + /// Access token. + string AccessToken { get; } + + /// + /// Gets the API key. + /// + /// API key. + IDictionary ApiKey { get; } + + /// + /// Gets the API key prefix. + /// + /// API key prefix. + IDictionary ApiKeyPrefix { get; } + + /// + /// Gets the base path. + /// + /// Base path. + string BasePath { get; } + + /// + /// Gets the date time format. + /// + /// Date time foramt. + string DateTimeFormat { get; } + + /// + /// Gets the default header. + /// + /// Default header. + IDictionary DefaultHeader { get; } + + /// + /// Gets the temp folder path. + /// + /// Temp folder path. + string TempFolderPath { get; } + + /// + /// Gets the HTTP connection timeout (in milliseconds) + /// + /// HTTP connection timeout. + int Timeout { get; } + + /// + /// Gets the user agent. + /// + /// User agent. + string UserAgent { get; } + + /// + /// Gets the username. + /// + /// Username. + string Username { get; } + + /// + /// Gets the password. + /// + /// Password. + string Password { get; } + + /// + /// Gets the API key with prefix. + /// + /// API key identifier (authentication scheme). + /// API key with prefix. + string GetApiKeyWithPrefix(string apiKeyIdentifier); + } +} diff --git a/modules/openapi-generator/src/main/resources/csharp-refactor/ISynchronousClient.mustache b/modules/openapi-generator/src/main/resources/csharp-refactor/ISynchronousClient.mustache new file mode 100755 index 00000000000..627c9e33619 --- /dev/null +++ b/modules/openapi-generator/src/main/resources/csharp-refactor/ISynchronousClient.mustache @@ -0,0 +1,85 @@ +{{>partial_header}} + +using System; +using System.IO; + +namespace {{packageName}}.Client +{ + /// + /// Contract for Synchronous RESTful API interactions. + /// + /// This interface allows consumers to provide a custom API accessor client. + /// + public interface ISynchronousClient + { + /// + /// Executes a blocking call to some using the GET http verb. + /// + /// The relative path to invoke. + /// The request parameters to pass along to the client. + /// Per-request configurable settings. + /// The return type. + /// The response data, decorated with + ApiResponse Get(String path, RequestOptions options, IReadableConfiguration configuration = null); + + /// + /// Executes a blocking call to some using the POST http verb. + /// + /// The relative path to invoke. + /// The request parameters to pass along to the client. + /// Per-request configurable settings. + /// The return type. + /// The response data, decorated with + ApiResponse Post(String path, RequestOptions options, IReadableConfiguration configuration = null); + + /// + /// Executes a blocking call to some using the PUT http verb. + /// + /// The relative path to invoke. + /// The request parameters to pass along to the client. + /// Per-request configurable settings. + /// The return type. + /// The response data, decorated with + ApiResponse Put(String path, RequestOptions options, IReadableConfiguration configuration = null); + + /// + /// Executes a blocking call to some using the DELETE http verb. + /// + /// The relative path to invoke. + /// The request parameters to pass along to the client. + /// Per-request configurable settings. + /// The return type. + /// The response data, decorated with + ApiResponse Delete(String path, RequestOptions options, IReadableConfiguration configuration = null); + + /// + /// Executes a blocking call to some using the HEAD http verb. + /// + /// The relative path to invoke. + /// The request parameters to pass along to the client. + /// Per-request configurable settings. + /// The return type. + /// The response data, decorated with + ApiResponse Head(String path, RequestOptions options, IReadableConfiguration configuration = null); + + /// + /// Executes a blocking call to some using the OPTIONS http verb. + /// + /// The relative path to invoke. + /// The request parameters to pass along to the client. + /// Per-request configurable settings. + /// The return type. + /// The response data, decorated with + ApiResponse Options(String path, RequestOptions options, IReadableConfiguration configuration = null); + + /// + /// Executes a blocking call to some using the PATCH http verb. + /// + /// The relative path to invoke. + /// The request parameters to pass along to the client. + /// Per-request configurable settings. + /// The return type. + /// The response data, decorated with + ApiResponse Patch(String path, RequestOptions options, IReadableConfiguration configuration = null); + } +} \ No newline at end of file diff --git a/modules/openapi-generator/src/main/resources/csharp-refactor/JsonSubTypesTests.mustache b/modules/openapi-generator/src/main/resources/csharp-refactor/JsonSubTypesTests.mustache new file mode 100644 index 00000000000..9b1f66624d7 --- /dev/null +++ b/modules/openapi-generator/src/main/resources/csharp-refactor/JsonSubTypesTests.mustache @@ -0,0 +1,125 @@ +{{>partial_header}} + +using System.Collections.Generic; +using System.Linq; +using JsonSubTypes; +using Newtonsoft.Json; +using NUnit.Framework; + +using {{packageName}}.{{apiPackage}}; +using {{packageName}}.{{modelPackage}}; +using {{packageName}}.Client; + +namespace {{packageName}}.Test.Client +{ + public class JsonSubTypesTests + { + [Test] + public void TestSimpleJsonSubTypesExample() + { + var annimal = + JsonConvert.DeserializeObject("{\"Kind\":\"Dog\",\"Breed\":\"Jack Russell Terrier\"}"); + Assert.AreEqual("Jack Russell Terrier", (annimal as Dog)?.Breed); + } + + [Test] + public void DeserializeObjectWithCustomMapping() + { + var annimal = + JsonConvert.DeserializeObject("{\"Sound\":\"Bark\",\"Breed\":\"Jack Russell Terrier\"}"); + Assert.AreEqual("Jack Russell Terrier", (annimal as Dog2)?.Breed); + } + + [Test] + public void DeserializeObjectMappingByPropertyPresence() + { + string json = + "[{\"Department\":\"Department1\",\"JobTitle\":\"JobTitle1\",\"FirstName\":\"FirstName1\",\"LastName\":\"LastName1\"}," + + "{\"Department\":\"Department1\",\"JobTitle\":\"JobTitle1\",\"FirstName\":\"FirstName1\",\"LastName\":\"LastName1\"}," + + "{\"Skill\":\"Painter\",\"FirstName\":\"FirstName1\",\"LastName\":\"LastName1\"}]"; + + + var persons = JsonConvert.DeserializeObject>(json); + Assert.AreEqual("Painter", (persons.Last() as Artist)?.Skill); + } + } + + [JsonConverter(typeof(JsonSubtypes), "Kind")] + public interface IAnimal + { + string Kind { get; } + } + + public class Dog : IAnimal + { + public Dog() + { + Kind = "Dog"; + } + + public string Kind { get; } + public string Breed { get; set; } + } + + class Cat : IAnimal + { + public Cat() + { + Kind = "Cat"; + } + + public string Kind { get; } + bool Declawed { get; set; } + } + + [JsonConverter(typeof(JsonSubtypes), "Sound")] + [JsonSubtypes.KnownSubType(typeof(Dog2), "Bark")] + [JsonSubtypes.KnownSubType(typeof(Cat2), "Meow")] + public class Animal2 + { + public virtual string Sound { get; } + public string Color { get; set; } + } + + public class Dog2 : Animal2 + { + public Dog2() + { + Sound = "Bark"; + } + + public override string Sound { get; } + public string Breed { get; set; } + } + + public class Cat2 : Animal2 + { + public Cat2() + { + Sound = "Meow"; + } + + public override string Sound { get; } + public bool Declawed { get; set; } + } + + [JsonConverter(typeof(JsonSubtypes))] + [JsonSubtypes.KnownSubTypeWithProperty(typeof(Employee), "JobTitle")] + [JsonSubtypes.KnownSubTypeWithProperty(typeof(Artist), "Skill")] + public class Person + { + public string FirstName { get; set; } + public string LastName { get; set; } + } + + public class Employee : Person + { + public string Department { get; set; } + public string JobTitle { get; set; } + } + + public class Artist : Person + { + public string Skill { get; set; } + } +} diff --git a/modules/openapi-generator/src/main/resources/csharp-refactor/Multimap.mustache b/modules/openapi-generator/src/main/resources/csharp-refactor/Multimap.mustache new file mode 100755 index 00000000000..7dd6e703547 --- /dev/null +++ b/modules/openapi-generator/src/main/resources/csharp-refactor/Multimap.mustache @@ -0,0 +1,214 @@ +{{>partial_header}} + +using System; +using System.Collections; +{{^net35}}using System.Collections.Concurrent;{{/net35}} +using System.Collections.Generic; + +namespace {{packageName}}.Client +{ + /// + /// A dictionary in which one key has many associated values. + /// + /// The type of the key + /// The type of the value associated with the key. + public class Multimap : IDictionary> + { + #region Private Fields + + private readonly {{^net35}}Concurrent{{/net35}}Dictionary> _dictionary = + new {{^net35}}Concurrent{{/net35}}Dictionary>(); + + #endregion Private Fields + + #region Enumerators + + public IEnumerator>> GetEnumerator() + { + return _dictionary.GetEnumerator(); + } + + IEnumerator IEnumerable.GetEnumerator() + { + return _dictionary.GetEnumerator(); + } + + #endregion Enumerators + + #region Public Members + + public void Add(KeyValuePair> item) + { + if (!TryAdd(item.Key, item.Value)) + throw new InvalidOperationException("Could not add values to Multimap."); + } + + public void Clear() + { + _dictionary.Clear(); + } + + public bool Contains(KeyValuePair> item) + { + throw new NotImplementedException(); + } + + public void CopyTo(KeyValuePair>[] array, int arrayIndex) + { + throw new NotImplementedException(); + } + + public bool Remove(KeyValuePair> item) + { + throw new NotImplementedException(); + } + + public int Count + { + get + { + return _dictionary.Count; + } + } + + public bool IsReadOnly + { + get + { + return false; + } + } + + public void Add(T key, IList value) + { + if (value != null && value.Count > 0) + { + IList list; + if (_dictionary.TryGetValue(key, out list)) + { + foreach (var k in value) list.Add(k); + } + else + { + list = new List(value); + if (!TryAdd(key, list)) + throw new InvalidOperationException("Could not add values to Multimap."); + } + } + } + + public bool ContainsKey(T key) + { + return _dictionary.ContainsKey(key); + } + + public bool Remove(T key) + { + IList list; + return TryRemove(key, out list); + } + + public bool TryGetValue(T key, out IList value) + { + return _dictionary.TryGetValue(key, out value); + } + + public IList this[T key] + { + get + { + return _dictionary[key]; + } + set { _dictionary[key] = value; } + } + + public ICollection Keys + { + get + { + return _dictionary.Keys; + } + } + + public ICollection> Values + { + get + { + return _dictionary.Values; + } + } + + public void CopyTo(Array array, int index) + { + ((ICollection) _dictionary).CopyTo(array, index); + } + + public void Add(T key, TValue value) + { + if (value != null) + { + IList list; + if (_dictionary.TryGetValue(key, out list)) + { + list.Add(value); + } + else + { + list = new List(); + list.Add(value); + if (!TryAdd(key, list)) + throw new InvalidOperationException("Could not add value to Multimap."); + } + } + } + + #endregion Public Members + + #region Private Members + + /** + * Helper method to encapsulate generator differences between dictioary types. + */ + private bool TryRemove(T key, out IList value) + { + {{^net35}}return _dictionary.TryRemove(key, out value);{{/net35}} + {{#net35}}try + { + _dictionary.TryGetValue(key, out value); + _dictionary.Remove(key); + } +#pragma warning disable 168 + catch (ArgumentException e) +#pragma warning restore 168 + { + value = null; + return false; + } + + return true;{{/net35}} + } + + /** + * Helper method to encapsulate generator differences between dictioary types. + */ + private bool TryAdd(T key, IList value) + { + {{^net35}}return _dictionary.TryAdd(key, value);{{/net35}} + {{#net35}} + try + { + _dictionary.Add(key, value); + } +#pragma warning disable 168 + catch (ArgumentException e) +#pragma warning restore 168 + { + return false; + } + + return true; + {{/net35}} + } + #endregion Private Members + } +} \ No newline at end of file diff --git a/modules/openapi-generator/src/main/resources/csharp-refactor/OpenAPIDateConverter.mustache b/modules/openapi-generator/src/main/resources/csharp-refactor/OpenAPIDateConverter.mustache new file mode 100644 index 00000000000..d7905102576 --- /dev/null +++ b/modules/openapi-generator/src/main/resources/csharp-refactor/OpenAPIDateConverter.mustache @@ -0,0 +1,21 @@ +{{>partial_header}} +using Newtonsoft.Json.Converters; + +namespace {{packageName}}.Client +{ + /// + /// Formatter for 'date' openapi formats ss defined by full-date - RFC3339 + /// see https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md#data-types + /// + public class OpenAPIDateConverter : IsoDateTimeConverter + { + /// + /// Initializes a new instance of the class. + /// + public OpenAPIDateConverter() + { + // full-date = date-fullyear "-" date-month "-" date-mday + DateTimeFormat = "yyyy-MM-dd"; + } + } +} diff --git a/modules/openapi-generator/src/main/resources/csharp-refactor/Project.mustache b/modules/openapi-generator/src/main/resources/csharp-refactor/Project.mustache new file mode 100644 index 00000000000..572758d41d4 --- /dev/null +++ b/modules/openapi-generator/src/main/resources/csharp-refactor/Project.mustache @@ -0,0 +1,119 @@ + + + + + {{#netStandard}}14.0{{/netStandard}} + Debug + AnyCPU + {{packageGuid}} + Library + Properties + {{packageName}} + {{packageName}} + {{#netStandard}} + {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + {{targetFramework}} + {{/netStandard}} + {{^netStandard}} + {{^supportsUWP}} + {{targetFramework}} + {{/supportsUWP}} + {{#supportsUWP}} + UAP + 10.0.10240.0 + 10.0.10240.0 + 14 + {{/supportsUWP}} + {{/netStandard}} + 512 + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + {{^netStandard}} + + + + + + + + + + + $(SolutionDir)\packages\Newtonsoft.Json.10.0.3\lib\{{targetFrameworkNuget}}\Newtonsoft.Json.dll + ..\packages\Newtonsoft.Json.10.0.3\lib\{{targetFrameworkNuget}}\Newtonsoft.Json.dll + ..\..\packages\Newtonsoft.Json.10.0.3\lib\{{targetFrameworkNuget}}\Newtonsoft.Json.dll + {{binRelativePath}}\Newtonsoft.Json.10.0.3\lib\{{targetFrameworkNuget}}\Newtonsoft.Json.dll + + + $(SolutionDir)\packages\JsonSubTypes.1.2.0\lib\{{targetFrameworkNuget}}\JsonSubTypes.dll + ..\packages\JsonSubTypes.1.2.0\lib\{{targetFrameworkNuget}}\JsonSubTypes.dll + ..\..\packages\JsonSubTypes.1.2.0\lib\{{targetFrameworkNuget}}\JsonSubTypes.dll + {{binRelativePath}}\JsonSubTypes.1.2.0\lib\{{targetFrameworkNuget}}\JsonSubTypes.dll + + + $(SolutionDir)\packages\RestSharp.105.1.0\lib\{{#isNet40}}net4{{/isNet40}}{{^isNet40}}{{targetFrameworkNuget}}{{/isNet40}}\RestSharp.dll + ..\packages\RestSharp.105.1.0\lib\{{#isNet40}}net4{{/isNet40}}{{^isNet40}}{{targetFrameworkNuget}}{{/isNet40}}\RestSharp.dll + ..\..\packages\RestSharp.105.1.0\lib\{{#isNet40}}net4{{/isNet40}}{{^isNet40}}{{targetFrameworkNuget}}{{/isNet40}}\RestSharp.dll + {{binRelativePath}}\RestSharp.105.1.0\lib\{{#isNet40}}net4{{/isNet40}}{{^isNet40}}{{targetFrameworkNuget}}{{/isNet40}}\RestSharp.dll + + {{#generatePropertyChanged}} + + ..\..\packages\PropertyChanged.Fody.1.51.3\Lib\portable-net4+sl4+wp8+win8+wpa81+MonoAndroid16+MonoTouch40\PropertyChanged.dll + + {{/generatePropertyChanged}} + {{/netStandard}} + {{#netStandard}} + + + {{/netStandard}} + + + + + {{^netStandard}} + + + {{#generatePropertyChanged}} + + {{/generatePropertyChanged}} + + + {{#generatePropertyChanged}} + + {{/generatePropertyChanged}} + {{/netStandard}} + {{#netStandard}} + + + {{/netStandard}} + + diff --git a/modules/openapi-generator/src/main/resources/csharp-refactor/README.mustache b/modules/openapi-generator/src/main/resources/csharp-refactor/README.mustache new file mode 100644 index 00000000000..ecd5a80e37a --- /dev/null +++ b/modules/openapi-generator/src/main/resources/csharp-refactor/README.mustache @@ -0,0 +1,206 @@ +# {{packageName}} - the C# library for the {{appName}} + +{{#appDescription}} +{{{appDescription}}} +{{/appDescription}} + +This C# SDK is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project: + +- API version: {{appVersion}} +- SDK version: {{packageVersion}} +{{^hideGenerationTimestamp}} +- Build date: {{generatedDate}} +{{/hideGenerationTimestamp}} +- Build package: {{generatorClass}} +{{#infoUrl}} + For more information, please visit [{{{infoUrl}}}]({{{infoUrl}}}) +{{/infoUrl}} + + +## Frameworks supported +{{#netStandard}} +- .NET Core >=1.0 +- .NET Framework >=4.6 +- Mono/Xamarin >=vNext +- UWP >=10.0 +{{/netStandard}} +{{^netStandard}} +{{^supportsUWP}} +- .NET 4.0 or later +- Windows Phone 7.1 (Mango) +{{/supportsUWP}} +{{#supportsUWP}} +- UWP +{{/supportsUWP}} +{{/netStandard}} + + +## Dependencies +{{#netStandard}} +- FubarCoder.RestSharp.Portable.Core >=4.0.7 +- FubarCoder.RestSharp.Portable.HttpClient >=4.0.7 +- Newtonsoft.Json >=10.0.3 +{{/netStandard}} +{{^netStandard}} +- [RestSharp](https://www.nuget.org/packages/RestSharp) - 105.1.0 or later +- [Json.NET](https://www.nuget.org/packages/Newtonsoft.Json/) - 7.0.0 or later +- [JsonSubTypes](https://www.nuget.org/packages/JsonSubTypes/) - 1.2.0 or later + +The DLLs included in the package may not be the latest version. We recommend using [NuGet](https://docs.nuget.org/consume/installing-nuget) to obtain the latest version of the packages: +``` +Install-Package RestSharp +Install-Package Newtonsoft.Json +Install-Package JsonSubTypes +``` + +NOTE: RestSharp versions greater than 105.1.0 have a bug which causes file uploads to fail. See [RestSharp#742](https://github.com/restsharp/RestSharp/issues/742) +{{/netStandard}} + + +## Installation +{{#netStandard}} +Generate the DLL using your preferred tool +{{/netStandard}} +{{^netStandard}} +Run the following command to generate the DLL +- [Mac/Linux] `/bin/sh build.sh` +- [Windows] `build.bat` +{{/netStandard}} + +Then include the DLL (under the `bin` folder) in the C# project, and use the namespaces: +```csharp +using {{packageName}}.{{apiPackage}}; +using {{packageName}}.Client; +using {{packageName}}.{{modelPackage}}; +``` +{{^netStandard}} + +## Packaging + +A `.nuspec` is included with the project. You can follow the Nuget quickstart to [create](https://docs.microsoft.com/en-us/nuget/quickstart/create-and-publish-a-package#create-the-package) and [publish](https://docs.microsoft.com/en-us/nuget/quickstart/create-and-publish-a-package#publish-the-package) packages. + +This `.nuspec` uses placeholders from the `.csproj`, so build the `.csproj` directly: + +``` +nuget pack -Build -OutputDirectory out {{packageName}}.csproj +``` + +Then, publish to a [local feed](https://docs.microsoft.com/en-us/nuget/hosting-packages/local-feeds) or [other host](https://docs.microsoft.com/en-us/nuget/hosting-packages/overview) and consume the new package via Nuget as usual. + +{{/netStandard}} + +## Getting Started + +```csharp +using System; +using System.Diagnostics; +using {{packageName}}.{{apiPackage}}; +using {{packageName}}.Client; +using {{packageName}}.{{modelPackage}}; + +namespace Example +{ + public class {{operationId}}Example + { + public void main() + { +{{#apiInfo}}{{#apis}}{{#-first}}{{#operations}}{{#operation}}{{#-first}} + {{#hasAuthMethods}} + {{#authMethods}} + {{#isBasic}} + // Configure HTTP basic authorization: {{{name}}} + Configuration.Default.Username = "YOUR_USERNAME"; + Configuration.Default.Password = "YOUR_PASSWORD"; + {{/isBasic}} + {{#isApiKey}} + // Configure API key authorization: {{{name}}} + Configuration.Default.ApiKey.Add("{{{keyParamName}}}", "YOUR_API_KEY"); + // Uncomment below to setup prefix (e.g. Bearer) for API key, if needed + // Configuration.Default.ApiKeyPrefix.Add("{{{keyParamName}}}", "Bearer"); + {{/isApiKey}} + {{#isOAuth}} + // Configure OAuth2 access token for authorization: {{{name}}} + Configuration.Default.AccessToken = "YOUR_ACCESS_TOKEN"; + {{/isOAuth}} + {{/authMethods}} + + {{/hasAuthMethods}} + var apiInstance = new {{classname}}(); + {{#allParams}} + {{#isPrimitiveType}} + var {{paramName}} = {{{example}}}; // {{{dataType}}} | {{{description}}}{{^required}} (optional) {{/required}}{{#defaultValue}} (default to {{{.}}}){{/defaultValue}} + {{/isPrimitiveType}} + {{^isPrimitiveType}} + var {{paramName}} = new {{{dataType}}}(); // {{{dataType}}} | {{{description}}}{{^required}} (optional) {{/required}}{{#defaultValue}} (default to {{{.}}}){{/defaultValue}} + {{/isPrimitiveType}} + {{/allParams}} + + try + { + {{#summary}} + // {{{.}}} + {{/summary}} + {{#returnType}}{{{.}}} result = {{/returnType}}apiInstance.{{{operationId}}}({{#allParams}}{{paramName}}{{#hasMore}}, {{/hasMore}}{{/allParams}});{{#returnType}} + Debug.WriteLine(result);{{/returnType}} + } + catch (Exception e) + { + Debug.Print("Exception when calling {{classname}}.{{operationId}}: " + e.Message ); + } +{{/-first}}{{/operation}}{{/operations}}{{/-first}}{{/apis}}{{/apiInfo}} + } + } +} +``` + + +## Documentation for API Endpoints + +All URIs are relative to *{{{basePath}}}* + +Class | Method | HTTP request | Description +------------ | ------------- | ------------- | ------------- +{{#apiInfo}}{{#apis}}{{#operations}}{{#operation}}*{{classname}}* | [**{{operationId}}**]({{apiDocPath}}{{classname}}.md#{{operationIdLowerCase}}) | **{{httpMethod}}** {{path}} | {{#summary}}{{{summary}}}{{/summary}} +{{/operation}}{{/operations}}{{/apis}}{{/apiInfo}} + + +## Documentation for Models + +{{#modelPackage}} +{{#models}}{{#model}} - [{{{modelPackage}}}.{{{classname}}}]({{modelDocPath}}{{{classname}}}.md) +{{/model}}{{/models}} +{{/modelPackage}} +{{^modelPackage}} +No model defined in this package +{{/modelPackage}} + + +## Documentation for Authorization + +{{^authMethods}} +All endpoints do not require authorization. +{{/authMethods}} +{{#authMethods}} +{{#last}} +Authentication schemes defined for the API: +{{/last}} +{{/authMethods}} +{{#authMethods}} + +### {{name}} + +{{#isApiKey}}- **Type**: API key +- **API key parameter name**: {{keyParamName}} +- **Location**: {{#isKeyInQuery}}URL query string{{/isKeyInQuery}}{{#isKeyInHeader}}HTTP header{{/isKeyInHeader}} +{{/isApiKey}} +{{#isBasic}}- **Type**: HTTP basic authentication +{{/isBasic}} +{{#isOAuth}}- **Type**: OAuth +- **Flow**: {{flow}} +- **Authorization URL**: {{authorizationUrl}} +- **Scopes**: {{^scopes}}N/A{{/scopes}} +{{#scopes}} - {{scope}}: {{description}} +{{/scopes}} +{{/isOAuth}} + +{{/authMethods}} diff --git a/modules/openapi-generator/src/main/resources/csharp-refactor/ReadOnlyDictionary.mustache b/modules/openapi-generator/src/main/resources/csharp-refactor/ReadOnlyDictionary.mustache new file mode 100644 index 00000000000..1299b2436be --- /dev/null +++ b/modules/openapi-generator/src/main/resources/csharp-refactor/ReadOnlyDictionary.mustache @@ -0,0 +1,137 @@ +{{>partial_header}} +using System; +using System.Collections; +using System.Collections.Generic; +using System.Runtime.Serialization; + +namespace {{packageName}}.Client +{ + public class ReadOnlyDictionary : IDictionary + { + private IDictionary _dictionaryImplementation; + public IEnumerator> GetEnumerator() + { + return _dictionaryImplementation.GetEnumerator(); + } + + public ReadOnlyDictionary() + { + _dictionaryImplementation = new Dictionary(); + } + + public ReadOnlyDictionary(IDictionary dictionaryImplementation) + { + if (dictionaryImplementation == null) throw new ArgumentNullException("dictionaryImplementation"); + _dictionaryImplementation = dictionaryImplementation; + } + + IEnumerator IEnumerable.GetEnumerator() + { + return ((IEnumerable) _dictionaryImplementation).GetEnumerator(); + } + + public void Add(KeyValuePair item) + { + throw new ReadonlyOperationException("This instance is readonly."); + } + + public void Clear() + { + throw new ReadonlyOperationException("This instance is readonly."); + } + + public bool Contains(KeyValuePair item) + { + return _dictionaryImplementation.Contains(item); + } + + public void CopyTo(KeyValuePair[] array, int arrayIndex) + { + _dictionaryImplementation.CopyTo(array, arrayIndex); + } + + public bool Remove(KeyValuePair item) + { + throw new ReadonlyOperationException("This instance is readonly."); + } + + public int Count + { + get { return _dictionaryImplementation.Count; } + } + + public bool IsReadOnly + { + get { return true; } + } + + public void Add(T key, K value) + { + throw new ReadonlyOperationException("This instance is readonly."); + } + + public bool ContainsKey(T key) + { + return _dictionaryImplementation.ContainsKey(key); + } + + public bool Remove(T key) + { + throw new ReadonlyOperationException("This instance is readonly."); + } + + public bool TryGetValue(T key, out K value) + { + return _dictionaryImplementation.TryGetValue(key, out value); + } + + public K this[T key] + { + get { return _dictionaryImplementation[key]; } + set + { + throw new ReadonlyOperationException("This instance is readonly."); + + } + } + + public ICollection Keys + { + get { return _dictionaryImplementation.Keys; } + } + + public ICollection Values + { + get { return _dictionaryImplementation.Values; } + } + } + + [Serializable] + public class ReadonlyOperationException : Exception + { + // + // For guidelines regarding the creation of new exception types, see + // http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpgenref/html/cpconerrorraisinghandlingguidelines.asp + // and + // http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dncscol/html/csharp07192001.asp + // + + public ReadonlyOperationException() + { + } + + public ReadonlyOperationException(string message) : base(message) + { + } + + public ReadonlyOperationException(string message, Exception inner) : base(message, inner) + { + } + + protected ReadonlyOperationException( + SerializationInfo info, + StreamingContext context) : base(info, context) + { + } + } +} diff --git a/modules/openapi-generator/src/main/resources/csharp-refactor/RequestOptions.mustache b/modules/openapi-generator/src/main/resources/csharp-refactor/RequestOptions.mustache new file mode 100755 index 00000000000..224eb497d28 --- /dev/null +++ b/modules/openapi-generator/src/main/resources/csharp-refactor/RequestOptions.mustache @@ -0,0 +1,66 @@ +{{>partial_header}} + +using System; +using System.Collections.Generic; +using System.IO; +using System.Net; + +namespace {{packageName}}.Client +{ + /// + /// A container for generalized request inputs. This type allows consumers to extend the request functionality + /// by abstracting away from the default (built-in) request framework (e.g. RestSharp). + /// + public class RequestOptions + { + /// + /// Parameters to be bound to path parts of the Request's URL + /// + public Dictionary PathParameters { get; set; } + + /// + /// Query parameters to be applied to the request. + /// Keys may have 1 or more values associated. + /// + public Multimap QueryParameters { get; set; } + + /// + /// Header parameters to be applied to to the request. + /// Keys may have 1 or more values associated. + /// + public Multimap HeaderParameters { get; set; } + + /// + /// Form parameters to be sent along with the request. + /// + public Dictionary FormParameters { get; set; } + + /// + /// File parameters to be sent along with the request. + /// + public Dictionary FileParameters { get; set; } + + /// + /// Cookies to be sent along with the request. + /// + public List Cookies { get; set; } + + /// + /// Any data associated with a request body. + /// + public Object Data { get; set; } + + /// + /// Constructs a new instance of + /// + public RequestOptions() + { + PathParameters = new Dictionary(); + QueryParameters = new Multimap(); + HeaderParameters = new Multimap(); + FormParameters = new Dictionary(); + FileParameters = new Dictionary(); + Cookies = new List(); + } + } +} \ No newline at end of file diff --git a/modules/openapi-generator/src/main/resources/csharp-refactor/Solution.mustache b/modules/openapi-generator/src/main/resources/csharp-refactor/Solution.mustache new file mode 100644 index 00000000000..112cc3dc405 --- /dev/null +++ b/modules/openapi-generator/src/main/resources/csharp-refactor/Solution.mustache @@ -0,0 +1,27 @@ +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio {{^netStandard}}2012{{/netStandard}}{{#netStandard}}14{{/netStandard}} +VisualStudioVersion = {{^netStandard}}12.0.0.0{{/netStandard}}{{#netStandard}}14.0.25420.1{{/netStandard}} +MinimumVisualStudioVersion = {{^netStandard}}10.0.0.1{{/netStandard}}{{#netStandard}}10.0.40219.1{{/netStandard}} +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "{{packageName}}", "src\{{packageName}}\{{packageName}}.csproj", "{{packageGuid}}" +EndProject +{{^excludeTests}}Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "{{testPackageName}}", "src\{{testPackageName}}\{{testPackageName}}.csproj", "{19F1DEBC-DE5E-4517-8062-F000CD499087}" +EndProject +{{/excludeTests}}Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {{packageGuid}}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {{packageGuid}}.Debug|Any CPU.Build.0 = Debug|Any CPU + {{packageGuid}}.Release|Any CPU.ActiveCfg = Release|Any CPU + {{packageGuid}}.Release|Any CPU.Build.0 = Release|Any CPU + {19F1DEBC-DE5E-4517-8062-F000CD499087}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {19F1DEBC-DE5E-4517-8062-F000CD499087}.Debug|Any CPU.Build.0 = Debug|Any CPU + {19F1DEBC-DE5E-4517-8062-F000CD499087}.Release|Any CPU.ActiveCfg = Release|Any CPU + {19F1DEBC-DE5E-4517-8062-F000CD499087}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal \ No newline at end of file diff --git a/modules/openapi-generator/src/main/resources/csharp-refactor/TestProject.mustache b/modules/openapi-generator/src/main/resources/csharp-refactor/TestProject.mustache new file mode 100644 index 00000000000..9dfaf22f19a --- /dev/null +++ b/modules/openapi-generator/src/main/resources/csharp-refactor/TestProject.mustache @@ -0,0 +1,101 @@ + + + + + Debug + AnyCPU + {19F1DEBC-DE5E-4517-8062-F000CD499087} + Library + Properties + {{testPackageName}} + {{testPackageName}} + {{^supportsUWP}} + {{targetFramework}} + {{/supportsUWP}} + {{#supportsUWP}} + UAP + 10.0.10240.0 + 10.0.10240.0 + 14 + {{/supportsUWP}} + 512 + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + $(SolutionDir)\packages\Newtonsoft.Json.10.0.3\lib\{{targetFrameworkNuget}}\Newtonsoft.Json.dll + ..\packages\Newtonsoft.Json.10.0.3\lib\{{targetFrameworkNuget}}\Newtonsoft.Json.dll + ..\..\packages\Newtonsoft.Json.10.0.3\lib\{{targetFrameworkNuget}}\Newtonsoft.Json.dll + {{binRelativePath}}\Newtonsoft.Json.10.0.3\lib\{{targetFrameworkNuget}}\Newtonsoft.Json.dll + + + $(SolutionDir)\packages\JsonSubTypes.1.2.0\lib\{{targetFrameworkNuget}}\JsonSubTypes.dll + ..\packages\JsonSubTypes.1.2.0\lib\{{targetFrameworkNuget}}\JsonSubTypes.dll + ..\..\packages\JsonSubTypes.1.2.0\lib\{{targetFrameworkNuget}}\JsonSubTypes.dll + {{binRelativePath}}\JsonSubTypes.1.2.0\lib\{{targetFrameworkNuget}}\JsonSubTypes.dll + + + $(SolutionDir)\packages\RestSharp.105.1.0\lib\{{#isNet40}}net4{{/isNet40}}{{^isNet40}}{{targetFrameworkNuget}}{{/isNet40}}\RestSharp.dll + ..\packages\RestSharp.105.1.0\lib\{{#isNet40}}net4{{/isNet40}}{{^isNet40}}{{targetFrameworkNuget}}{{/isNet40}}\RestSharp.dll + ..\..\packages\RestSharp.105.1.0\lib\{{#isNet40}}net4{{/isNet40}}{{^isNet40}}{{targetFrameworkNuget}}{{/isNet40}}\RestSharp.dll + {{binRelativePath}}\RestSharp.105.1.0\lib\{{#isNet40}}net4{{/isNet40}}{{^isNet40}}{{targetFrameworkNuget}}{{/isNet40}}\RestSharp.dll + + + $(SolutionDir)\packages\NUnit.2.6.4\lib\nunit.framework.dll + ..\packages\NUnit.2.6.4\lib\nunit.framework.dll + ..\..\packages\NUnit.2.6.4\lib\nunit.framework.dll + {{binRelativePath}}\NUnit.2.6.4\lib\nunit.framework.dll + + + + + + + + + + + + {{packageGuid}} + {{packageName}} + + + + diff --git a/modules/openapi-generator/src/main/resources/csharp-refactor/api.mustache b/modules/openapi-generator/src/main/resources/csharp-refactor/api.mustache new file mode 100644 index 00000000000..bf0e819dd4e --- /dev/null +++ b/modules/openapi-generator/src/main/resources/csharp-refactor/api.mustache @@ -0,0 +1,480 @@ +{{>partial_header}} + +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Linq; +using System.Net; +using System.Net.Mime; +using {{packageName}}.Client; +{{#hasImport}}using {{packageName}}.{{modelPackage}}; +{{/hasImport}} + +namespace {{packageName}}.{{apiPackage}} +{ + {{#operations}} + + /// + /// Represents a collection of functions to interact with the API endpoints + /// + {{>visibility}} interface {{interfacePrefix}}{{classname}}Sync : IApiAccessor + { + #region Synchronous Operations + {{#operation}} + /// + /// {{summary}} + /// + /// + /// {{notes}} + /// + /// Thrown when fails to make API call + {{#allParams}}/// {{description}}{{^required}} (optional{{#defaultValue}}, default to {{.}}{{/defaultValue}}){{/required}} + {{/allParams}}/// {{#returnType}}{{returnType}}{{/returnType}} + {{#returnType}}{{{returnType}}}{{/returnType}}{{^returnType}}void{{/returnType}} {{operationId}} ({{#allParams}}{{{dataType}}} {{paramName}}{{^required}}{{#optionalMethodArgument}} = null{{/optionalMethodArgument}}{{/required}}{{#hasMore}}, {{/hasMore}}{{/allParams}}); + + /// + /// {{summary}} + /// + /// + /// {{notes}} + /// + /// Thrown when fails to make API call + {{#allParams}}/// {{description}}{{^required}} (optional{{#defaultValue}}, default to {{.}}{{/defaultValue}}){{/required}} + {{/allParams}}/// ApiResponse of {{#returnType}}{{returnType}}{{/returnType}}{{^returnType}}Object(void){{/returnType}} + ApiResponse<{{#returnType}}{{{returnType}}}{{/returnType}}{{^returnType}}Object{{/returnType}}> {{operationId}}WithHttpInfo ({{#allParams}}{{{dataType}}} {{paramName}}{{^required}}{{#optionalMethodArgument}} = null{{/optionalMethodArgument}}{{/required}}{{#hasMore}}, {{/hasMore}}{{/allParams}}); + {{/operation}} + #endregion Synchronous Operations + } + + {{#supportsAsync}} + /// + /// Represents a collection of functions to interact with the API endpoints + /// + {{>visibility}} interface {{interfacePrefix}}{{classname}}Async : IApiAccessor + { + #region Asynchronous Operations + {{#operation}} + /// + /// {{summary}} + /// + /// + /// {{notes}} + /// + /// Thrown when fails to make API call + {{#allParams}}/// {{description}}{{^required}} (optional{{#defaultValue}}, default to {{.}}{{/defaultValue}}){{/required}} + {{/allParams}}/// Task of {{#returnType}}{{returnType}}{{/returnType}}{{^returnType}}void{{/returnType}} + {{#returnType}}System.Threading.Tasks.Task<{{{returnType}}}>{{/returnType}}{{^returnType}}System.Threading.Tasks.Task{{/returnType}} {{operationId}}Async ({{#allParams}}{{{dataType}}} {{paramName}}{{^required}}{{#optionalMethodArgument}} = null{{/optionalMethodArgument}}{{/required}}{{#hasMore}}, {{/hasMore}}{{/allParams}}); + + /// + /// {{summary}} + /// + /// + /// {{notes}} + /// + /// Thrown when fails to make API call + {{#allParams}}/// {{description}}{{^required}} (optional{{#defaultValue}}, default to {{.}}{{/defaultValue}}){{/required}} + {{/allParams}}/// Task of ApiResponse{{#returnType}} ({{returnType}}){{/returnType}} + System.Threading.Tasks.Task> {{operationId}}AsyncWithHttpInfo ({{#allParams}}{{{dataType}}} {{paramName}}{{^required}}{{#optionalMethodArgument}} = null{{/optionalMethodArgument}}{{/required}}{{#hasMore}}, {{/hasMore}}{{/allParams}}); + {{/operation}} + #endregion Asynchronous Operations + } + {{/supportsAsync}} + + {{>visibility}} interface {{interfacePrefix}}{{classname}} : {{interfacePrefix}}{{classname}}Sync{{#supportsAsync}}, {{interfacePrefix}}{{classname}}Async{{/supportsAsync}} + { + + } + + /// + /// Represents a collection of functions to interact with the API endpoints + /// + {{>visibility}} partial class {{classname}} : {{interfacePrefix}}{{classname}} + { + private {{packageName}}.Client.ExceptionFactory _exceptionFactory = (name, response) => null; + + /// + /// Initializes a new instance of the class. + /// + /// + public {{classname}}() : this((string) null) + { + } + + /// + /// Initializes a new instance of the class. + /// + /// + public {{classname}}(String basePath) + { + this.Configuration = {{packageName}}.Client.Configuration.MergeConfigurations( + {{packageName}}.Client.GlobalConfiguration.Instance, + new {{packageName}}.Client.Configuration { BasePath = basePath } + ); + this.Client = new {{packageName}}.Client.ApiClient(this.Configuration.BasePath); + this.AsynchronousClient = new {{packageName}}.Client.ApiClient(this.Configuration.BasePath); + this.ExceptionFactory = {{packageName}}.Client.Configuration.DefaultExceptionFactory; + } + + /// + /// Initializes a new instance of the class + /// using Configuration object + /// + /// An instance of Configuration + /// + public {{classname}}({{packageName}}.Client.Configuration configuration) + { + if (configuration == null) throw new ArgumentNullException("configuration"); + + this.Configuration = {{packageName}}.Client.Configuration.MergeConfigurations( + {{packageName}}.Client.GlobalConfiguration.Instance, + configuration + ); + this.Client = new {{packageName}}.Client.ApiClient(this.Configuration.BasePath); + this.AsynchronousClient = new {{packageName}}.Client.ApiClient(this.Configuration.BasePath); + ExceptionFactory = {{packageName}}.Client.Configuration.DefaultExceptionFactory; + } + + /// + /// Initializes a new instance of the class + /// using a Configuration object and client instance. + /// + /// The client interface for synchronous API access.{{#supportsAsync}} + /// The client interface for asynchronous API access.{{/supportsAsync}} + /// The configuration object. + public {{classname}}({{packageName}}.Client.ISynchronousClient client,{{#supportsAsync}}{{packageName}}.Client.IAsynchronousClient asyncClient,{{/supportsAsync}} {{packageName}}.Client.IReadableConfiguration configuration) + { + if(client == null) throw new ArgumentNullException("client"); + {{#supportsAsync}} + if(asyncClient == null) throw new ArgumentNullException("asyncClient"); + {{/supportsAsync}} + if(configuration == null) throw new ArgumentNullException("configuration"); + + this.Client = client; + {{#supportsAsync}} + this.AsynchronousClient = asyncClient; + {{/supportsAsync}} + this.Configuration = configuration; + this.ExceptionFactory = {{packageName}}.Client.Configuration.DefaultExceptionFactory; + } + + {{#supportsAsync}} + /// + /// The client for accessing this underlying API asynchronously. + /// + public {{packageName}}.Client.IAsynchronousClient AsynchronousClient { get; set; } + {{/supportsAsync}} + + /// + /// The client for accessing this underlying API synchronously. + /// + public {{packageName}}.Client.ISynchronousClient Client { get; set; } + + /// + /// Gets the base path of the API client. + /// + /// The base path + public String GetBasePath() + { + return this.Configuration.BasePath; + } + + /// + /// Gets or sets the configuration object + /// + /// An instance of the Configuration + public {{packageName}}.Client.IReadableConfiguration Configuration {get; set;} + + /// + /// Provides a factory method hook for the creation of exceptions. + /// + public {{packageName}}.Client.ExceptionFactory ExceptionFactory + { + get + { + if (_exceptionFactory != null && _exceptionFactory.GetInvocationList().Length > 1) + { + throw new InvalidOperationException("Multicast delegate for ExceptionFactory is unsupported."); + } + return _exceptionFactory; + } + set { _exceptionFactory = value; } + } + + {{#operation}} + /// + /// {{summary}} {{notes}} + /// + /// Thrown when fails to make API call + {{#allParams}}/// {{description}}{{^required}} (optional{{#defaultValue}}, default to {{.}}{{/defaultValue}}){{/required}} + {{/allParams}}/// {{#returnType}}{{returnType}}{{/returnType}} + public {{#returnType}}{{{returnType}}}{{/returnType}}{{^returnType}}void{{/returnType}} {{operationId}} ({{#allParams}}{{{dataType}}} {{paramName}}{{^required}}{{#optionalMethodArgument}} = null{{/optionalMethodArgument}}{{/required}}{{#hasMore}}, {{/hasMore}}{{/allParams}}) + { + {{#returnType}}{{packageName}}.Client.ApiResponse<{{{returnType}}}> localVarResponse = {{operationId}}WithHttpInfo({{#allParams}}{{paramName}}{{#hasMore}}, {{/hasMore}}{{/allParams}}); + return localVarResponse.Data;{{/returnType}}{{^returnType}}{{operationId}}WithHttpInfo({{#allParams}}{{paramName}}{{#hasMore}}, {{/hasMore}}{{/allParams}});{{/returnType}} + } + + /// + /// {{summary}} {{notes}} + /// + /// Thrown when fails to make API call + {{#allParams}}/// {{description}}{{^required}} (optional{{#defaultValue}}, default to {{.}}{{/defaultValue}}){{/required}} + {{/allParams}}/// ApiResponse of {{#returnType}}{{returnType}}{{/returnType}}{{^returnType}}Object(void){{/returnType}} + public {{packageName}}.Client.ApiResponse<{{#returnType}} {{{returnType}}} {{/returnType}}{{^returnType}}Object{{/returnType}}> {{operationId}}WithHttpInfo ({{#allParams}}{{{dataType}}} {{paramName}}{{^required}}{{#optionalMethodArgument}} = null{{/optionalMethodArgument}}{{/required}}{{#hasMore}}, {{/hasMore}}{{/allParams}}) + { + {{#allParams}} + {{#required}} + // verify the required parameter '{{paramName}}' is set + if ({{paramName}} == null) + throw new {{packageName}}.Client.ApiException(400, "Missing required parameter '{{paramName}}' when calling {{classname}}->{{operationId}}"); + {{/required}} + {{/allParams}} + + {{packageName}}.Client.RequestOptions requestOptions = new {{packageName}}.Client.RequestOptions(); + + String[] @contentTypes = new String[] { + {{#consumes}} + "{{{mediaType}}}"{{#hasMore}}, {{/hasMore}} + {{/consumes}} + }; + + // to determine the Accept header + String[] @accepts = new String[] { + {{#produces}} + "{{{mediaType}}}"{{#hasMore}},{{/hasMore}} + {{/produces}} + }; + + foreach (var contentType in @contentTypes) + requestOptions.HeaderParameters.Add("Content-Type", contentType); + + foreach (var accept in @accepts) + requestOptions.HeaderParameters.Add("Accept", accept); + + {{#pathParams}} + if ({{paramName}} != null) + requestOptions.PathParameters.Add("{{baseName}}", {{packageName}}.Client.ClientUtils.ParameterToString({{paramName}})); // path parameter + {{/pathParams}} + {{#queryParams}} + if ({{paramName}} != null) + { + foreach (var kvp in {{packageName}}.Client.ClientUtils.ParameterToMultiMap("{{#collectionFormat}}{{collectionFormat}}{{/collectionFormat}}", "{{baseName}}", {{paramName}})) + { + foreach (var value in kvp.Value) + { + requestOptions.QueryParameters.Add(kvp.Key, value); + } + } + } + {{/queryParams}} + {{#headerParams}} + if ({{paramName}} != null) + requestOptions.HeaderParameters.Add("{{baseName}}", {{packageName}}.Client.ClientUtils.ParameterToString({{paramName}})); // header parameter + {{/headerParams}} + {{#formParams}} + if ({{paramName}} != null) + { + {{#isFile}} + requestOptions.FileParameters.Add("{{baseName}}", {{paramName}}); + {{/isFile}} + {{^isFile}} + requestOptions.FormParameters.Add("{{baseName}}", {{packageName}}.Client.ClientUtils.ParameterToString({{paramName}})); // form parameter + {{/isFile}} + } + {{/formParams}} + {{#bodyParam}} + requestOptions.Data = {{paramName}}; + {{/bodyParam}} + + {{#authMethods}} + // authentication ({{name}}) required + {{#isApiKey}} + {{#isKeyInHeader}} + if (!String.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("{{keyParamName}}"))) + { + requestOptions.HeaderParameters.Add("{{keyParamName}}", this.Configuration.GetApiKeyWithPrefix("{{keyParamName}}")); + } + {{/isKeyInHeader}} + {{#isKeyInQuery}} + if (!String.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("{{keyParamName}}"))) + { + foreach (var kvp in {{packageName}}.Client.ClientUtils.ParameterToMultiMap("", "{{keyParamName}}", this.Configuration.GetApiKeyWithPrefix("{{keyParamName}}"))) + { + foreach (var value in kvp.Value) + { + requestOptions.QueryParameters.Add(kvp.Key, value); + } + } + } + {{/isKeyInQuery}} + {{/isApiKey}} + {{#isBasic}} + // http basic authentication required + if (!String.IsNullOrEmpty(this.Configuration.Username) || !String.IsNullOrEmpty(this.Configuration.Password)) + { + requestOptions.HeaderParameters.Add("Authorization", "Basic " + {{packageName}}.Client.ClientUtils.Base64Encode(this.Configuration.Username + ":" + this.Configuration.Password)); + } + {{/isBasic}} + {{#isOAuth}} + // oauth required + if (!String.IsNullOrEmpty(this.Configuration.AccessToken)) + { + requestOptions.HeaderParameters.Add("Authorization", "Bearer " + this.Configuration.AccessToken); + } + {{/isOAuth}} + {{/authMethods}} + + // make the HTTP request + + var response = this.Client.{{#lambda.titlecase}}{{#lambda.lowercase}}{{httpMethod}}{{/lambda.lowercase}}{{/lambda.titlecase}}<{{#returnType}} {{{returnType}}} {{/returnType}}{{^returnType}}Object{{/returnType}}>("{{{path}}}", requestOptions, this.Configuration); + + if (this.ExceptionFactory != null) + { + Exception exception = this.ExceptionFactory("{{operationId}}", response); + if (exception != null) throw exception; + } + + return response; + } + + {{#supportsAsync}} + /// + /// {{summary}} {{notes}} + /// + /// Thrown when fails to make API call + {{#allParams}}/// {{description}}{{^required}} (optional{{#defaultValue}}, default to {{.}}{{/defaultValue}}){{/required}} + {{/allParams}}/// Task of {{#returnType}}{{returnType}}{{/returnType}}{{^returnType}}void{{/returnType}} + {{#returnType}}public async System.Threading.Tasks.Task<{{{returnType}}}>{{/returnType}}{{^returnType}}public async System.Threading.Tasks.Task{{/returnType}} {{operationId}}Async ({{#allParams}}{{{dataType}}} {{paramName}}{{^required}}{{#optionalMethodArgument}} = null{{/optionalMethodArgument}}{{/required}}{{#hasMore}}, {{/hasMore}}{{/allParams}}) + { + {{#returnType}}{{packageName}}.Client.ApiResponse<{{{returnType}}}> localVarResponse = await {{operationId}}AsyncWithHttpInfo({{#allParams}}{{paramName}}{{#hasMore}}, {{/hasMore}}{{/allParams}}); + return localVarResponse.Data;{{/returnType}}{{^returnType}}await {{operationId}}AsyncWithHttpInfo({{#allParams}}{{paramName}}{{#hasMore}}, {{/hasMore}}{{/allParams}});{{/returnType}} + + } + + /// + /// {{summary}} {{notes}} + /// + /// Thrown when fails to make API call + {{#allParams}}/// {{description}}{{^required}} (optional{{#defaultValue}}, default to {{.}}{{/defaultValue}}){{/required}} + {{/allParams}}/// Task of ApiResponse{{#returnType}} ({{returnType}}){{/returnType}} + public async System.Threading.Tasks.Task<{{packageName}}.Client.ApiResponse<{{#returnType}}{{{returnType}}}{{/returnType}}{{^returnType}}Object{{/returnType}}>> {{operationId}}AsyncWithHttpInfo ({{#allParams}}{{{dataType}}} {{paramName}}{{^required}}{{#optionalMethodArgument}} = null{{/optionalMethodArgument}}{{/required}}{{#hasMore}}, {{/hasMore}}{{/allParams}}) + { + {{#allParams}} + {{#required}} + // verify the required parameter '{{paramName}}' is set + if ({{paramName}} == null) + throw new {{packageName}}.Client.ApiException(400, "Missing required parameter '{{paramName}}' when calling {{classname}}->{{operationId}}"); + {{/required}} + {{/allParams}} + + {{packageName}}.Client.RequestOptions requestOptions = new {{packageName}}.Client.RequestOptions(); + + String[] @contentTypes = new String[] { + {{#consumes}} + "{{{mediaType}}}"{{#hasMore}}, {{/hasMore}} + {{/consumes}} + }; + + // to determine the Accept header + String[] @accepts = new String[] { + {{#produces}} + "{{{mediaType}}}"{{#hasMore}},{{/hasMore}} + {{/produces}} + }; + + foreach (var contentType in @contentTypes) + requestOptions.HeaderParameters.Add("Content-Type", contentType); + + foreach (var accept in @accepts) + requestOptions.HeaderParameters.Add("Accept", accept); + + {{#pathParams}} + if ({{paramName}} != null) + requestOptions.PathParameters.Add("{{baseName}}", {{packageName}}.Client.ClientUtils.ParameterToString({{paramName}})); // path parameter + {{/pathParams}} + {{#queryParams}} + if ({{paramName}} != null) + { + foreach (var kvp in {{packageName}}.Client.ClientUtils.ParameterToMultiMap("{{#collectionFormat}}{{collectionFormat}}{{/collectionFormat}}", "{{baseName}}", {{paramName}})) + { + foreach (var value in kvp.Value) + { + requestOptions.QueryParameters.Add(kvp.Key, value); + } + } + } + {{/queryParams}} + {{#headerParams}} + if ({{paramName}} != null) + requestOptions.HeaderParameters.Add("{{baseName}}", {{packageName}}.Client.ClientUtils.ParameterToString({{paramName}})); // header parameter + {{/headerParams}} + {{#formParams}} + if ({{paramName}} != null) + { + {{#isFile}} + requestOptions.FileParameters.Add("{{baseName}}", {{paramName}}); + {{/isFile}} + {{^isFile}} + requestOptions.FormParameters.Add("{{baseName}}", {{packageName}}.Client.ClientUtils.ParameterToString({{paramName}})); // form parameter + {{/isFile}} + } + {{/formParams}} + {{#bodyParam}} + requestOptions.Data = {{paramName}}; + {{/bodyParam}} + + {{#authMethods}} + // authentication ({{name}}) required + {{#isApiKey}} + {{#isKeyInHeader}} + if (!String.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("{{keyParamName}}"))) + { + requestOptions.HeaderParameters.Add("{{keyParamName}}", this.Configuration.GetApiKeyWithPrefix("{{keyParamName}}")); + } + {{/isKeyInHeader}} + {{#isKeyInQuery}} + if (!String.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("{{keyParamName}}"))) + { + foreach (var kvp in {{packageName}}.Client.ClientUtils.ParameterToMultiMap("", "{{keyParamName}}", this.Configuration.GetApiKeyWithPrefix("{{keyParamName}}"))) + { + foreach (var value in kvp.Value) + { + requestOptions.QueryParameters.Add(kvp.Key, value); + } + } + } + {{/isKeyInQuery}} + {{/isApiKey}} + {{#isBasic}} + // http basic authentication required + if (!String.IsNullOrEmpty(this.Configuration.Username) || !String.IsNullOrEmpty(this.Configuration.Password)) + { + requestOptions.HeaderParameters.Add("Authorization", "Basic " + {{packageName}}.Client.ClientUtils.Base64Encode(this.Configuration.Username + ":" + this.Configuration.Password)); + } + {{/isBasic}} + {{#isOAuth}} + // oauth required + if (!String.IsNullOrEmpty(this.Configuration.AccessToken)) + { + requestOptions.HeaderParameters.Add("Authorization", "Bearer " + this.Configuration.AccessToken); + } + {{/isOAuth}} + {{/authMethods}} + + // make the HTTP request + + var response = await this.AsynchronousClient.{{#lambda.titlecase}}{{#lambda.lowercase}}{{httpMethod}}{{/lambda.lowercase}}{{/lambda.titlecase}}Async<{{#returnType}}{{{returnType}}}{{/returnType}}{{^returnType}}Object{{/returnType}}>("{{{path}}}", requestOptions, this.Configuration); + + if (this.ExceptionFactory != null) + { + Exception exception = this.ExceptionFactory("{{operationId}}", response); + if (exception != null) throw exception; + } + + return response; + } + + {{/supportsAsync}} + {{/operation}} + } + {{/operations}} +} diff --git a/modules/openapi-generator/src/main/resources/csharp-refactor/api_doc.mustache b/modules/openapi-generator/src/main/resources/csharp-refactor/api_doc.mustache new file mode 100644 index 00000000000..60bde9985e6 --- /dev/null +++ b/modules/openapi-generator/src/main/resources/csharp-refactor/api_doc.mustache @@ -0,0 +1,105 @@ +# {{packageName}}.{{apiPackage}}.{{classname}}{{#description}} +{{description}}{{/description}} + +All URIs are relative to *{{{basePath}}}* + +Method | HTTP request | Description +------------- | ------------- | ------------- +{{#operations}}{{#operation}}[**{{operationId}}**]({{classname}}.md#{{operationIdLowerCase}}) | **{{httpMethod}}** {{path}} | {{#summary}}{{summary}}{{/summary}} +{{/operation}}{{/operations}} + +{{#operations}} +{{#operation}} + +# **{{{operationId}}}** +> {{#returnType}}{{{returnType}}}{{/returnType}}{{^returnType}}void{{/returnType}} {{operationId}} ({{#allParams}}{{{dataType}}} {{paramName}}{{^required}}{{#optionalMethodArgument}} = null{{/optionalMethodArgument}}{{/required}}{{#hasMore}}, {{/hasMore}}{{/allParams}}) + +{{{summary}}}{{#notes}} + +{{{notes}}}{{/notes}} + +### Example +```csharp +using System; +using System.Diagnostics; +using {{packageName}}.{{apiPackage}}; +using {{packageName}}.Client; +using {{packageName}}.{{modelPackage}}; + +namespace Example +{ + public class {{operationId}}Example + { + public void main() + { + {{#hasAuthMethods}} + {{#authMethods}} + {{#isBasic}} + // Configure HTTP basic authorization: {{{name}}} + Configuration.Default.Username = "YOUR_USERNAME"; + Configuration.Default.Password = "YOUR_PASSWORD"; + {{/isBasic}} + {{#isApiKey}} + // Configure API key authorization: {{{name}}} + Configuration.Default.AddApiKey("{{{keyParamName}}}", "YOUR_API_KEY"); + // Uncomment below to setup prefix (e.g. Bearer) for API key, if needed + // Configuration.Default.AddApiKeyPrefix("{{{keyParamName}}}", "Bearer"); + {{/isApiKey}} + {{#isOAuth}} + // Configure OAuth2 access token for authorization: {{{name}}} + Configuration.Default.AccessToken = "YOUR_ACCESS_TOKEN"; + {{/isOAuth}} + {{/authMethods}} + + {{/hasAuthMethods}} + var apiInstance = new {{classname}}(); + {{#allParams}} + {{#isPrimitiveType}} + var {{paramName}} = {{{example}}}; // {{{dataType}}} | {{{description}}}{{^required}} (optional) {{/required}}{{#defaultValue}} (default to {{{.}}}){{/defaultValue}} + {{/isPrimitiveType}} + {{^isPrimitiveType}} + var {{paramName}} = new {{{dataType}}}(); // {{{dataType}}} | {{{description}}}{{^required}} (optional) {{/required}}{{#defaultValue}} (default to {{{.}}}){{/defaultValue}} + {{/isPrimitiveType}} + {{/allParams}} + + try + { + {{#summary}} + // {{{.}}} + {{/summary}} + {{#returnType}}{{returnType}} result = {{/returnType}}apiInstance.{{{operationId}}}({{#allParams}}{{paramName}}{{#hasMore}}, {{/hasMore}}{{/allParams}});{{#returnType}} + Debug.WriteLine(result);{{/returnType}} + } + catch (Exception e) + { + Debug.Print("Exception when calling {{classname}}.{{operationId}}: " + e.Message ); + } + } + } +} +``` + +### Parameters +{{^allParams}}This endpoint does not need any parameter.{{/allParams}}{{#allParams}}{{#-last}} +Name | Type | Description | Notes +------------- | ------------- | ------------- | -------------{{/-last}}{{/allParams}} +{{#allParams}} **{{paramName}}** | {{#isFile}}**{{dataType}}**{{/isFile}}{{#isPrimitiveType}}**{{dataType}}**{{/isPrimitiveType}}{{^isPrimitiveType}}{{^isFile}}[**{{dataType}}**]({{#isContainer}}{{baseType}}{{/isContainer}}{{^isContainer}}{{dataType}}{{/isContainer}}.md){{/isFile}}{{/isPrimitiveType}}| {{description}} | {{^required}}[optional] {{/required}}{{#defaultValue}}[default to {{defaultValue}}]{{/defaultValue}} +{{/allParams}} + +### Return type + +{{#returnType}}{{#returnTypeIsPrimitive}}**{{{returnType}}}**{{/returnTypeIsPrimitive}}{{^returnTypeIsPrimitive}}[**{{{returnType}}}**]({{returnBaseType}}.md){{/returnTypeIsPrimitive}}{{/returnType}}{{^returnType}}void (empty response body){{/returnType}} + +### Authorization + +{{^authMethods}}No authorization required{{/authMethods}}{{#authMethods}}[{{{name}}}](../README.md#{{{name}}}){{^-last}}, {{/-last}}{{/authMethods}} + +### HTTP request headers + + - **Content-Type**: {{#consumes}}{{{mediaType}}}{{#hasMore}}, {{/hasMore}}{{/consumes}}{{^consumes}}Not defined{{/consumes}} + - **Accept**: {{#produces}}{{{mediaType}}}{{#hasMore}}, {{/hasMore}}{{/produces}}{{^produces}}Not defined{{/produces}} + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +{{/operation}} +{{/operations}} diff --git a/modules/openapi-generator/src/main/resources/csharp-refactor/api_test.mustache b/modules/openapi-generator/src/main/resources/csharp-refactor/api_test.mustache new file mode 100644 index 00000000000..4b58b5b49f7 --- /dev/null +++ b/modules/openapi-generator/src/main/resources/csharp-refactor/api_test.mustache @@ -0,0 +1,75 @@ +{{>partial_header}} +using System; +using System.IO; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Linq; +using System.Reflection; +using RestSharp; +using NUnit.Framework; + +using {{packageName}}.Client; +using {{packageName}}.{{apiPackage}}; +{{#hasImport}}using {{packageName}}.{{modelPackage}}; +{{/hasImport}} + +namespace {{packageName}}.Test +{ + /// + /// Class for testing {{classname}} + /// + /// + /// This file is automatically generated by OpenAPI Generator (https://openapi-generator.tech). + /// Please update the test case below to test the API endpoint. + /// + [TestFixture] + public class {{classname}}Tests + { + private {{classname}} instance; + + /// + /// Setup before each unit test + /// + [SetUp] + public void Init() + { + instance = new {{classname}}(); + } + + /// + /// Clean up after each unit test + /// + [TearDown] + public void Cleanup() + { + + } + + /// + /// Test an instance of {{classname}} + /// + [Test] + public void {{operationId}}InstanceTest() + { + // TODO uncomment below to test 'IsInstanceOfType' {{classname}} + //Assert.IsInstanceOfType(typeof({{classname}}), instance, "instance is a {{classname}}"); + } + + {{#operations}}{{#operation}} + /// + /// Test {{operationId}} + /// + [Test] + public void {{operationId}}Test() + { + // TODO uncomment below to test the method and replace null with proper value + {{#allParams}} + //{{{dataType}}} {{paramName}} = null; + {{/allParams}} + //{{#returnType}}var response = {{/returnType}}instance.{{operationId}}({{#allParams}}{{paramName}}{{#hasMore}}, {{/hasMore}}{{/allParams}}); + {{#returnType}}//Assert.IsInstanceOf<{{{returnType}}}> (response, "response is {{{returnType}}}");{{/returnType}} + } + {{/operation}}{{/operations}} + } + +} diff --git a/modules/openapi-generator/src/main/resources/csharp-refactor/compile-mono.sh.mustache b/modules/openapi-generator/src/main/resources/csharp-refactor/compile-mono.sh.mustache new file mode 100644 index 00000000000..ce3fbe0b8ac --- /dev/null +++ b/modules/openapi-generator/src/main/resources/csharp-refactor/compile-mono.sh.mustache @@ -0,0 +1,78 @@ +#!/usr/bin/env bash +# +# Generated by: https://github.com/openapitools/openapi-generator.git +# + +frameworkVersion={{targetFrameworkNuget}} + +# sdk must match installed framworks under PREFIX/lib/mono/[value] +sdk={{x-mcs-sdk}} + +# langversion refers to C# language features. see man mcs for details. +langversion=${sdk} +nuget_cmd=nuget + +# Match against our known SDK possibilities +case "${sdk}" in + 4) + langversion=4 + ;; + 4.5*) + langversion=5 + ;; + 4.6*) + langversion=6 + ;; + 4.7*) + langversion=7 # ignoring 7.1 for now. + ;; + *) + langversion=6 + ;; +esac + +echo "[INFO] Target framework: ${frameworkVersion}" + +if ! type nuget &>/dev/null; then + echo "[INFO] Download nuget and packages" + wget -nc https://dist.nuget.org/win-x86-commandline/latest/nuget.exe; + nuget_cmd="mono nuget.exe" +fi + +mozroots --import --sync +${nuget_cmd} install src/{{packageName}}/packages.config -o packages; + +echo "[INFO] Copy DLLs to the 'bin' folder" +mkdir -p bin; +cp packages/Newtonsoft.Json.10.0.3/lib/{{targetFrameworkNuget}}/Newtonsoft.Json.dll bin/Newtonsoft.Json.dll; +cp packages/RestSharp.105.1.0/lib/{{#isNet40}}net4{{/isNet40}}{{^isNet40}}{{targetFrameworkNuget}}{{/isNet40}}/RestSharp.dll bin/RestSharp.dll; +cp packages/JsonSubTypes.1.2.0/lib/{{targetFrameworkNuget}}/JsonSubTypes.dll bin/JsonSubTypes.dll +{{#generatePropertyChanged}} +cp packages/Fody.1.29.4/Fody.dll bin/Fody.dll +cp packages/PropertyChanged.Fody.1.51.3/PropertyChanged.Fody.dll bin/PropertyChanged.Fody.dll +cp packages/PropertyChanged.Fody.1.51.3/Lib/dotnet/PropertyChanged.dll bin/PropertyChanged.dll +{{/generatePropertyChanged}} + +echo "[INFO] Run 'mcs' to build bin/{{{packageName}}}.dll" +mcs -langversion:${langversion} -sdk:${sdk} -r:bin/Newtonsoft.Json.dll,bin/JsonSubTypes.dll,\ +{{#generatePropertyChanged}} +bin/Fody.dll,\ +bin/PropertyChanged.Fody.dll,\ +bin/PropertyChanged.dll,\ +{{/generatePropertyChanged}} +bin/RestSharp.dll,\ +System.ComponentModel.DataAnnotations.dll,\ +System.Runtime.Serialization.dll \ +-target:library \ +-out:bin/{{packageName}}.dll \ +-recurse:'src/{{packageName}}/*.cs' \ +-doc:bin/{{packageName}}.xml \ +-platform:anycpu + +if [ $? -ne 0 ] +then + echo "[ERROR] Compilation failed with exit code $?" + exit 1 +else + echo "[INFO] bin/{{{packageName}}}.dll was created successfully" +fi diff --git a/modules/openapi-generator/src/main/resources/csharp-refactor/compile.mustache b/modules/openapi-generator/src/main/resources/csharp-refactor/compile.mustache new file mode 100644 index 00000000000..a0c9c0aaa4c --- /dev/null +++ b/modules/openapi-generator/src/main/resources/csharp-refactor/compile.mustache @@ -0,0 +1,27 @@ +:: Generated by: https://github.com/openapitools/openapi-generator.git +:: + +@echo off + +{{#supportsAsync}} +SET CSCPATH=%SYSTEMROOT%\Microsoft.NET\Framework\v4.0.30319 +{{/supportsAsync}} +{{^supportsAsync}} +SET CSCPATH=%SYSTEMROOT%\Microsoft.NET\Framework\v3.5 +{{/supportsAsync}} + +if not exist ".\nuget.exe" powershell -Command "(new-object System.Net.WebClient).DownloadFile('https://dist.nuget.org/win-x86-commandline/latest/nuget.exe', '.\nuget.exe')" +.\nuget.exe install src\{{packageName}}\packages.config -o packages + +if not exist ".\bin" mkdir bin + +copy packages\Newtonsoft.Json.10.0.3\lib\{{targetFrameworkNuget}}\Newtonsoft.Json.dll bin\Newtonsoft.Json.dll +copy packages\JsonSubTypes.1.2.0\lib\{{targetFrameworkNuget}}\JsonSubTypes.dll bin\JsonSubTypes.dll +copy packages\RestSharp.105.1.0\lib\{{#isNet40}}net4{{/isNet40}}{{^isNet40}}{{targetFrameworkNuget}}{{/isNet40}}\RestSharp.dll bin\RestSharp.dll +{{#generatePropertyChanged}} +copy packages\Fody.1.29.4\Fody.dll bin\Fody.dll +copy packages\PropertyChanged.Fody.1.51.3\PropertyChanged.Fody.dll bin\PropertyChanged.Fody.dll +copy packages\PropertyChanged.Fody.1.51.3\Lib\dotnet\PropertyChanged.dll bin\PropertyChanged.dll +{{/generatePropertyChanged}} +%CSCPATH%\csc /reference:bin\Newtonsoft.Json.dll;bin\JsonSubTypes.dll;bin\RestSharp.dll;System.ComponentModel.DataAnnotations.dll {{#generatePropertyChanged}}/r:bin\Fody.dll;bin\PropertyChanged.Fody.dll;bin\PropertyChanged.dll{{/generatePropertyChanged}} /target:library /out:bin\{{packageName}}.dll /recurse:src\{{packageName}}\*.cs /doc:bin\{{packageName}}.xml + diff --git a/modules/openapi-generator/src/main/resources/csharp-refactor/enumClass.mustache b/modules/openapi-generator/src/main/resources/csharp-refactor/enumClass.mustache new file mode 100644 index 00000000000..de8c602a14d --- /dev/null +++ b/modules/openapi-generator/src/main/resources/csharp-refactor/enumClass.mustache @@ -0,0 +1,20 @@ + /// + /// {{^description}}Gets or Sets {{{name}}}{{/description}}{{#description}}{{description}}{{/description}} + /// + {{#description}} + /// {{description}} + {{/description}} + [JsonConverter(typeof(StringEnumConverter))] + {{>visibility}} enum {{#datatypeWithEnum}}{{.}}{{/datatypeWithEnum}}{{^datatypeWithEnum}}{{classname}}{{/datatypeWithEnum}} + { + {{#allowableValues}} + {{#enumVars}} + /// + /// Enum {{name}} for {{{value}}} + /// + [EnumMember(Value = {{#isLong}}"{{/isLong}}{{#isInteger}}"{{/isInteger}}{{#isFloat}}"{{/isFloat}}{{#isDouble}}"{{/isDouble}}{{{value}}}{{#isLong}}"{{/isLong}}{{#isInteger}}"{{/isInteger}}{{#isDouble}}"{{/isDouble}}{{#isFloat}}"{{/isFloat}})] + {{name}}{{#isLong}} = {{{value}}}{{/isLong}}{{#isInteger}} = {{{value}}}{{/isInteger}}{{^isInteger}} = {{-index}}{{/isInteger}}{{^-last}},{{/-last}} + + {{/enumVars}} + {{/allowableValues}} + } diff --git a/modules/openapi-generator/src/main/resources/csharp-refactor/git_push.sh.mustache b/modules/openapi-generator/src/main/resources/csharp-refactor/git_push.sh.mustache new file mode 100755 index 00000000000..e9c7bdb802b --- /dev/null +++ b/modules/openapi-generator/src/main/resources/csharp-refactor/git_push.sh.mustache @@ -0,0 +1,52 @@ +#!/bin/sh +# ref: https://help.github.com/articles/adding-an-existing-project-to-github-using-the-command-line/ +# +# Usage example: /bin/sh ./git_push.sh wing328 openapi-petstore-perl "minor update" + +git_user_id=$1 +git_repo_id=$2 +release_note=$3 + +if [ "$git_user_id" = "" ]; then + git_user_id="{{{gitUserId}}}" + echo "[INFO] No command line input provided. Set \$git_user_id to $git_user_id" +fi + +if [ "$git_repo_id" = "" ]; then + git_repo_id="{{{gitRepoId}}}" + echo "[INFO] No command line input provided. Set \$git_repo_id to $git_repo_id" +fi + +if [ "$release_note" = "" ]; then + release_note="{{{releaseNote}}}" + echo "[INFO] No command line input provided. Set \$release_note to $release_note" +fi + +# Initialize the local directory as a Git repository +git init + +# Adds the files in the local repository and stages them for commit. +git add . + +# Commits the tracked changes and prepares them to be pushed to a remote repository. +git commit -m "$release_note" + +# Sets the new remote +git_remote=`git remote` +if [ "$git_remote" = "" ]; then # git remote not defined + + if [ "$GIT_TOKEN" = "" ]; then + echo "[INFO] \$GIT_TOKEN (environment variable) is not set. Using the git credential in your environment." + git remote add origin https://github.com/${git_user_id}/${git_repo_id}.git + else + git remote add origin https://${git_user_id}:${GIT_TOKEN}@github.com/${git_user_id}/${git_repo_id}.git + fi + +fi + +git pull origin master + +# Pushes (Forces) the changes in the local repository up to the remote repository +echo "Git pushing to https://github.com/${git_user_id}/${git_repo_id}.git" +git push origin master 2>&1 | grep -v 'To https' + diff --git a/modules/openapi-generator/src/main/resources/csharp-refactor/gitignore.mustache b/modules/openapi-generator/src/main/resources/csharp-refactor/gitignore.mustache new file mode 100644 index 00000000000..17302c93bf0 --- /dev/null +++ b/modules/openapi-generator/src/main/resources/csharp-refactor/gitignore.mustache @@ -0,0 +1,186 @@ +# Ref: https://gist.github.com/kmorcinek/2710267 +# Download this file using PowerShell v3 under Windows with the following comand +# Invoke-WebRequest https://gist.githubusercontent.com/kmorcinek/2710267/raw/ -OutFile .gitignore + +# User-specific files +*.suo +*.user +*.sln.docstates +./nuget + +# Build results + +[Dd]ebug/ +[Rr]elease/ +x64/ +build/ +[Bb]in/ +[Oo]bj/ + +# NuGet Packages +*.nupkg +# The packages folder can be ignored because of Package Restore +**/packages/* +# except build/, which is used as an MSBuild target. +!**/packages/build/ +# Uncomment if necessary however generally it will be regenerated when needed +#!**/packages/repositories.config + +# MSTest test Results +[Tt]est[Rr]esult*/ +[Bb]uild[Ll]og.* + +*_i.c +*_p.c +*.ilk +*.meta +*.obj +*.pch +*.pdb +*.pgc +*.pgd +*.rsp +*.sbr +*.tlb +*.tli +*.tlh +*.tmp +*.tmp_proj +*.log +*.vspscc +*.vssscc +.builds +*.pidb +*.log +*.scc + +# OS generated files # +.DS_Store* +ehthumbs.db +Icon? +Thumbs.db + +# Visual C++ cache files +ipch/ +*.aps +*.ncb +*.opensdf +*.sdf +*.cachefile + +# Visual Studio profiler +*.psess +*.vsp +*.vspx + +# Guidance Automation Toolkit +*.gpState + +# ReSharper is a .NET coding add-in +_ReSharper*/ +*.[Rr]e[Ss]harper + +# TeamCity is a build add-in +_TeamCity* + +# DotCover is a Code Coverage Tool +*.dotCover + +# NCrunch +*.ncrunch* +.*crunch*.local.xml + +# Installshield output folder +[Ee]xpress/ + +# DocProject is a documentation generator add-in +DocProject/buildhelp/ +DocProject/Help/*.HxT +DocProject/Help/*.HxC +DocProject/Help/*.hhc +DocProject/Help/*.hhk +DocProject/Help/*.hhp +DocProject/Help/Html2 +DocProject/Help/html + +# Click-Once directory +publish/ + +# Publish Web Output +*.Publish.xml + +# Windows Azure Build Output +csx +*.build.csdef + +# Windows Store app package directory +AppPackages/ + +# Others +sql/ +*.Cache +ClientBin/ +[Ss]tyle[Cc]op.* +~$* +*~ +*.dbmdl +*.[Pp]ublish.xml +*.pfx +*.publishsettings +modulesbin/ +tempbin/ + +# EPiServer Site file (VPP) +AppData/ + +# RIA/Silverlight projects +Generated_Code/ + +# Backup & report files from converting an old project file to a newer +# Visual Studio version. Backup files are not needed, because we have git ;-) +_UpgradeReport_Files/ +Backup*/ +UpgradeLog*.XML +UpgradeLog*.htm + +# vim +*.txt~ +*.swp +*.swo + +# svn +.svn + +# SQL Server files +**/App_Data/*.mdf +**/App_Data/*.ldf +**/App_Data/*.sdf + + +#LightSwitch generated files +GeneratedArtifacts/ +_Pvt_Extensions/ +ModelManifest.xml + +# ========================= +# Windows detritus +# ========================= + +# Windows image file caches +Thumbs.db +ehthumbs.db + +# Folder config file +Desktop.ini + +# Recycle Bin used on file shares +$RECYCLE.BIN/ + +# Mac desktop service store files +.DS_Store + +# SASS Compiler cache +.sass-cache + +# Visual Studio 2014 CTP +**/*.sln.ide diff --git a/modules/openapi-generator/src/main/resources/csharp-refactor/model.mustache b/modules/openapi-generator/src/main/resources/csharp-refactor/model.mustache new file mode 100644 index 00000000000..99011ebc621 --- /dev/null +++ b/modules/openapi-generator/src/main/resources/csharp-refactor/model.mustache @@ -0,0 +1,39 @@ +{{>partial_header}} + +using System; +using System.Linq; +using System.IO; +using System.Text; +{{^netStandard}} +using System.Text.RegularExpressions; +{{/netStandard}} +using System.Collections; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Runtime.Serialization; +using Newtonsoft.Json; +using Newtonsoft.Json.Converters; +{{#models}} +{{#model}} +{{#discriminator}} +using JsonSubTypes; +{{/discriminator}} +{{/model}} +{{/models}} +{{^netStandard}} +{{#generatePropertyChanged}} +using PropertyChanged; +using System.ComponentModel; +{{/generatePropertyChanged}} +using System.ComponentModel.DataAnnotations; +{{/netStandard}} +using OpenAPIDateConverter = {{packageName}}.Client.OpenAPIDateConverter; + +{{#models}} +{{#model}} +namespace {{packageName}}.{{modelPackage}} +{ +{{#isEnum}}{{>modelEnum}}{{/isEnum}}{{^isEnum}}{{>modelGeneric}}{{/isEnum}} +{{/model}} +{{/models}} +} diff --git a/modules/openapi-generator/src/main/resources/csharp-refactor/modelEnum.mustache b/modules/openapi-generator/src/main/resources/csharp-refactor/modelEnum.mustache new file mode 100644 index 00000000000..c1a70a37f2d --- /dev/null +++ b/modules/openapi-generator/src/main/resources/csharp-refactor/modelEnum.mustache @@ -0,0 +1,24 @@ + /// + /// {{^description}}Defines {{{name}}}{{/description}}{{#description}}{{description}}{{/description}} + /// + {{#description}} + /// {{description}} + {{/description}} + {{#allowableValues}}{{#enumVars}}{{#-first}}{{#isString}} + [JsonConverter(typeof(StringEnumConverter))] + {{/isString}}{{/-first}}{{/enumVars}}{{/allowableValues}} + {{>visibility}} enum {{#datatypeWithEnum}}{{.}}{{/datatypeWithEnum}}{{^datatypeWithEnum}}{{classname}}{{/datatypeWithEnum}}{{#vendorExtensions.x-enum-byte}}: byte{{/vendorExtensions.x-enum-byte}} + { + {{#allowableValues}} + {{#enumVars}} + /// + /// Enum {{name}} for value: {{{value}}} + /// + {{#isString}} + [EnumMember(Value = "{{{value}}}")] + {{/isString}} + {{name}}{{^isString}} = {{{value}}}{{/isString}}{{#isString}} = {{-index}}{{/isString}}{{^-last}},{{/-last}} + + {{/enumVars}} + {{/allowableValues}} + }{{! NOTE: This model's enumVars is modified to look like CodegenProperty}} diff --git a/modules/openapi-generator/src/main/resources/csharp-refactor/modelGeneric.mustache b/modules/openapi-generator/src/main/resources/csharp-refactor/modelGeneric.mustache new file mode 100644 index 00000000000..89d35b73ec0 --- /dev/null +++ b/modules/openapi-generator/src/main/resources/csharp-refactor/modelGeneric.mustache @@ -0,0 +1,306 @@ + /// + /// {{#description}}{{.}}{{/description}}{{^description}}{{classname}}{{/description}} + /// + [DataContract] + {{#discriminator}} + [JsonConverter(typeof(JsonSubtypes), "{{{discriminatorName}}}")]{{#children}} + [JsonSubtypes.KnownSubType(typeof({{classname}}), "{{^vendorExtensions.x-discriminator-value}}{{name}}{{/vendorExtensions.x-discriminator-value}}{{#vendorExtensions.x-discriminator-value}}{{{vendorExtensions.x-discriminator-value}}}{{/vendorExtensions.x-discriminator-value}}")]{{/children}} + {{/discriminator}} + {{#generatePropertyChanged}} + [ImplementPropertyChanged] + {{/generatePropertyChanged}} + {{>visibility}} partial class {{classname}} : {{#parent}}{{{parent}}}, {{/parent}} IEquatable<{{classname}}>{{^netStandard}}{{#validatable}}, IValidatableObject{{/validatable}}{{/netStandard}} + { + {{#vars}} + {{#items.isEnum}} + {{#items}} + {{^complexType}} +{{>modelInnerEnum}} + {{/complexType}} + {{/items}} + {{/items.isEnum}} + {{#isEnum}} + {{^complexType}} +{{>modelInnerEnum}} + {{/complexType}} + {{/isEnum}} + {{#isEnum}} + /// + /// {{^description}}Gets or Sets {{{name}}}{{/description}}{{#description}}{{description}}{{/description}} + /// + {{#description}} + /// {{description}} + {{/description}} + [DataMember(Name="{{baseName}}", EmitDefaultValue={{emitDefaultValue}})] + public {{#complexType}}{{{complexType}}}{{/complexType}}{{^complexType}}{{{datatypeWithEnum}}}{{/complexType}}{{^isContainer}}{{^required}}?{{/required}}{{/isContainer}} {{name}} { get; set; } + {{/isEnum}} + {{/vars}} + {{#hasRequired}} + {{^hasOnlyReadOnly}} + /// + /// Initializes a new instance of the class. + /// + [JsonConstructorAttribute] + protected {{classname}}() { } + {{/hasOnlyReadOnly}} + {{/hasRequired}} + /// + /// Initializes a new instance of the class. + /// + {{#vars}} + {{^isReadOnly}} + /// {{#description}}{{description}}{{/description}}{{^description}}{{#lambda.camelcase_param}}{{name}}{{/lambda.camelcase_param}}{{/description}}{{#required}} (required){{/required}}{{#defaultValue}} (default to {{defaultValue}}){{/defaultValue}}. + {{/isReadOnly}} + {{/vars}} + {{#hasOnlyReadOnly}} + [JsonConstructorAttribute] + {{/hasOnlyReadOnly}} + public {{classname}}({{#readWriteVars}}{{{datatypeWithEnum}}}{{#isEnum}}{{^isContainer}}{{^required}}?{{/required}}{{/isContainer}}{{/isEnum}} {{#lambda.camelcase_param}}{{name}}{{/lambda.camelcase_param}} = {{#defaultValue}}{{{defaultValue}}}{{/defaultValue}}{{^defaultValue}}default({{{datatypeWithEnum}}}{{#isEnum}}{{^isContainer}}{{^required}}?{{/required}}{{/isContainer}}{{/isEnum}}){{/defaultValue}}{{^-last}}, {{/-last}}{{/readWriteVars}}){{#parent}} : base({{#parentVars}}{{#lambda.camelcase_param}}{{name}}{{/lambda.camelcase_param}}{{#hasMore}}, {{/hasMore}}{{/parentVars}}){{/parent}} + { + {{#vars}} + {{^isInherited}} + {{^isReadOnly}} + {{#required}} + // to ensure "{{#lambda.camelcase_param}}{{name}}{{/lambda.camelcase_param}}" is required (not null) + if ({{#lambda.camelcase_param}}{{name}}{{/lambda.camelcase_param}} == null) + { + throw new InvalidDataException("{{#lambda.camelcase_param}}{{name}}{{/lambda.camelcase_param}} is a required property for {{classname}} and cannot be null"); + } + else + { + this.{{name}} = {{#lambda.camelcase_param}}{{name}}{{/lambda.camelcase_param}}; + } + {{/required}} + {{/isReadOnly}} + {{/isInherited}} + {{/vars}} + {{#vars}} + {{^isInherited}} + {{^isReadOnly}} + {{^required}} + {{#defaultValue}}// use default value if no "{{#lambda.camelcase_param}}{{name}}{{/lambda.camelcase_param}}" provided + if ({{#lambda.camelcase_param}}{{name}}{{/lambda.camelcase_param}} == null) + { + this.{{name}} = {{{defaultValue}}}; + } + else + { + this.{{name}} = {{#lambda.camelcase_param}}{{name}}{{/lambda.camelcase_param}}; + } + {{/defaultValue}} + {{^defaultValue}} +this.{{name}} = {{#lambda.camelcase_param}}{{name}}{{/lambda.camelcase_param}}; + {{/defaultValue}} + {{/required}} + {{/isReadOnly}} + {{/isInherited}} + {{/vars}} + } + + {{#vars}} + {{^isInherited}} + {{^isEnum}} + /// + /// {{^description}}Gets or Sets {{{name}}}{{/description}}{{#description}}{{description}}{{/description}} + /// {{#description}} + /// {{description}}{{/description}} + [DataMember(Name="{{baseName}}", EmitDefaultValue={{emitDefaultValue}})]{{#isDate}} + [JsonConverter(typeof(OpenAPIDateConverter))]{{/isDate}} + public {{{dataType}}} {{name}} { get; {{#isReadOnly}}private {{/isReadOnly}}set; } + {{/isEnum}} + {{/isInherited}} + + {{/vars}} + /// + /// Returns the string presentation of the object + /// + /// String presentation of the object + public override string ToString() + { + var sb = new StringBuilder(); + sb.Append("class {{classname}} {\n"); + {{#parent}} + sb.Append(" ").Append(base.ToString().Replace("\n", "\n ")).Append("\n"); + {{/parent}} + {{#vars}} + sb.Append(" {{name}}: ").Append({{name}}).Append("\n"); + {{/vars}} + sb.Append("}\n"); + return sb.ToString(); + } + + /// + /// Returns the JSON string presentation of the object + /// + /// JSON string presentation of the object + public {{#parent}}{{^isArrayModel}}{{^isMapModel}}override {{/isMapModel}}{{/isArrayModel}}{{/parent}}{{^parent}}virtual {{/parent}}string ToJson() + { + return JsonConvert.SerializeObject(this, Formatting.Indented); + } + + /// + /// Returns true if objects are equal + /// + /// Object to be compared + /// Boolean + public override bool Equals(object input) + { + return this.Equals(input as {{classname}}); + } + + /// + /// Returns true if {{classname}} instances are equal + /// + /// Instance of {{classname}} to be compared + /// Boolean + public bool Equals({{classname}} input) + { + if (input == null) + return false; + + return {{#vars}}{{#parent}}base.Equals(input) && {{/parent}}{{#isNotContainer}} + ( + this.{{name}} == input.{{name}} || + (this.{{name}} != null && + this.{{name}}.Equals(input.{{name}})) + ){{#hasMore}} && {{/hasMore}}{{/isNotContainer}}{{^isNotContainer}} + ( + this.{{name}} == input.{{name}} || + this.{{name}} != null && + this.{{name}}.SequenceEqual(input.{{name}}) + ){{#hasMore}} && {{/hasMore}}{{/isNotContainer}}{{/vars}}{{^vars}}{{#parent}}base.Equals(input){{/parent}}{{^parent}}false{{/parent}}{{/vars}}; + } + + /// + /// Gets the hash code + /// + /// Hash code + public override int GetHashCode() + { + unchecked // Overflow is fine, just wrap + { + {{#parent}} + int hashCode = base.GetHashCode(); + {{/parent}} + {{^parent}} + int hashCode = 41; + {{/parent}} + {{#vars}} + if (this.{{name}} != null) + hashCode = hashCode * 59 + this.{{name}}.GetHashCode(); + {{/vars}} + return hashCode; + } + } +{{^netStandard}} + +{{#generatePropertyChanged}} + /// + /// Property changed event handler + /// + public event PropertyChangedEventHandler PropertyChanged; + + /// + /// Trigger when a property changed + /// + /// Property Name + public virtual void OnPropertyChanged(string propertyName) + { + // NOTE: property changed is handled via "code weaving" using Fody. + // Properties with setters are modified at compile time to notify of changes. + var propertyChanged = PropertyChanged; + if (propertyChanged != null) + { + propertyChanged(this, new PropertyChangedEventArgs(propertyName)); + } + } + +{{/generatePropertyChanged}} +{{#validatable}} +{{#discriminator}} + /// + /// To validate all properties of the instance + /// + /// Validation context + /// Validation Result + IEnumerable IValidatableObject.Validate(ValidationContext validationContext) + { + return this.BaseValidate(validationContext); + } + + /// + /// To validate all properties of the instance + /// + /// Validation context + /// Validation Result + protected IEnumerable BaseValidate(ValidationContext validationContext) + { +{{/discriminator}} +{{^discriminator}} + /// + /// To validate all properties of the instance + /// + /// Validation context + /// Validation Result + IEnumerable IValidatableObject.Validate(ValidationContext validationContext) + { +{{/discriminator}} + {{#parent}} + {{^isArrayModel}} + {{^isMapModel}} + foreach(var x in BaseValidate(validationContext)) yield return x; + {{/isMapModel}} + {{/isArrayModel}} + {{/parent}} + {{#vars}} + {{#hasValidation}} + {{#maxLength}} + // {{{name}}} ({{{dataType}}}) maxLength + if(this.{{{name}}} != null && this.{{{name}}}.Length > {{maxLength}}) + { + yield return new System.ComponentModel.DataAnnotations.ValidationResult("Invalid value for {{{name}}}, length must be less than {{maxLength}}.", new [] { "{{{name}}}" }); + } + + {{/maxLength}} + {{#minLength}} + // {{{name}}} ({{{dataType}}}) minLength + if(this.{{{name}}} != null && this.{{{name}}}.Length < {{minLength}}) + { + yield return new System.ComponentModel.DataAnnotations.ValidationResult("Invalid value for {{{name}}}, length must be greater than {{minLength}}.", new [] { "{{{name}}}" }); + } + + {{/minLength}} + {{#maximum}} + // {{{name}}} ({{{dataType}}}) maximum + if(this.{{{name}}} > ({{{dataType}}}){{maximum}}) + { + yield return new System.ComponentModel.DataAnnotations.ValidationResult("Invalid value for {{{name}}}, must be a value less than or equal to {{maximum}}.", new [] { "{{{name}}}" }); + } + + {{/maximum}} + {{#minimum}} + // {{{name}}} ({{{dataType}}}) minimum + if(this.{{{name}}} < ({{{dataType}}}){{minimum}}) + { + yield return new System.ComponentModel.DataAnnotations.ValidationResult("Invalid value for {{{name}}}, must be a value greater than or equal to {{minimum}}.", new [] { "{{{name}}}" }); + } + + {{/minimum}} + {{#pattern}} + {{^isByteArray}} + // {{{name}}} ({{{dataType}}}) pattern + Regex regex{{{name}}} = new Regex(@"{{{vendorExtensions.x-regex}}}"{{#vendorExtensions.x-modifiers}}{{#-first}}, {{/-first}}RegexOptions.{{{.}}}{{^-last}} | {{/-last}}{{/vendorExtensions.x-modifiers}}); + if (false == regex{{{name}}}.Match(this.{{{name}}}).Success) + { + yield return new System.ComponentModel.DataAnnotations.ValidationResult("Invalid value for {{{name}}}, must match a pattern of " + regex{{{name}}}, new [] { "{{{name}}}" }); + } + + {{/isByteArray}} + {{/pattern}} + {{/hasValidation}} + {{/vars}} + yield break; + } +{{/validatable}} +{{/netStandard}} + } diff --git a/modules/openapi-generator/src/main/resources/csharp-refactor/modelInnerEnum.mustache b/modules/openapi-generator/src/main/resources/csharp-refactor/modelInnerEnum.mustache new file mode 100644 index 00000000000..d9e96dccdb3 --- /dev/null +++ b/modules/openapi-generator/src/main/resources/csharp-refactor/modelInnerEnum.mustache @@ -0,0 +1,26 @@ + {{^isContainer}} + /// + /// {{^description}}Defines {{{name}}}{{/description}}{{#description}}{{description}}{{/description}} + /// + {{#description}} + /// {{description}} + {{/description}} + {{#isString}} + [JsonConverter(typeof(StringEnumConverter))] + {{/isString}} + {{>visibility}} enum {{#datatypeWithEnum}}{{.}}{{/datatypeWithEnum}}{{^datatypeWithEnum}}{{classname}}{{/datatypeWithEnum}}{{#vendorExtensions.x-enum-byte}}: byte{{/vendorExtensions.x-enum-byte}} + { + {{#allowableValues}} + {{#enumVars}} + /// + /// Enum {{name}} for value: {{{value}}} + /// + {{#isString}} + [EnumMember(Value = "{{{value}}}")] + {{/isString}} + {{name}}{{^isString}} = {{{value}}}{{/isString}}{{#isString}} = {{-index}}{{/isString}}{{^-last}},{{/-last}} + + {{/enumVars}} + {{/allowableValues}} + } + {{/isContainer}} diff --git a/modules/openapi-generator/src/main/resources/csharp-refactor/model_doc.mustache b/modules/openapi-generator/src/main/resources/csharp-refactor/model_doc.mustache new file mode 100644 index 00000000000..22141b671a3 --- /dev/null +++ b/modules/openapi-generator/src/main/resources/csharp-refactor/model_doc.mustache @@ -0,0 +1,19 @@ +{{#models}} +{{#model}} +# {{{packageName}}}.{{modelPackage}}.{{{classname}}} +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +{{#parent}} +{{#parentVars}} +**{{name}}** | {{#isPrimitiveType}}**{{dataType}}**{{/isPrimitiveType}}{{^isPrimitiveType}}[**{{dataType}}**]({{complexType}}.md){{/isPrimitiveType}} | {{description}} | {{^required}}[optional] {{/required}}{{#readOnly}}[readonly] {{/readOnly}}{{#defaultValue}}[default to {{{.}}}]{{/defaultValue}} +{{/parentVars}} +{{/parent}} +{{#vars}}**{{name}}** | {{#isPrimitiveType}}**{{dataType}}**{{/isPrimitiveType}}{{^isPrimitiveType}}[**{{dataType}}**]({{complexType}}.md){{/isPrimitiveType}} | {{description}} | {{^required}}[optional] {{/required}}{{#readOnly}}[readonly] {{/readOnly}}{{#defaultValue}}[default to {{{.}}}]{{/defaultValue}} +{{/vars}} + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + +{{/model}} +{{/models}} diff --git a/modules/openapi-generator/src/main/resources/csharp-refactor/model_test.mustache b/modules/openapi-generator/src/main/resources/csharp-refactor/model_test.mustache new file mode 100644 index 00000000000..8bdab50696c --- /dev/null +++ b/modules/openapi-generator/src/main/resources/csharp-refactor/model_test.mustache @@ -0,0 +1,90 @@ +{{>partial_header}} + +using NUnit.Framework; + +using System; +using System.Linq; +using System.IO; +using System.Collections.Generic; +using {{packageName}}.{{apiPackage}}; +using {{packageName}}.{{modelPackage}}; +using {{packageName}}.Client; +using System.Reflection; +using Newtonsoft.Json; + +{{#models}} +{{#model}} +namespace {{packageName}}.Test +{ + /// + /// Class for testing {{classname}} + /// + /// + /// This file is automatically generated by OpenAPI Generator (https://openapi-generator.tech). + /// Please update the test case below to test the model. + /// + [TestFixture] + public class {{classname}}Tests + { + // TODO uncomment below to declare an instance variable for {{classname}} + //private {{classname}} instance; + + /// + /// Setup before each test + /// + [SetUp] + public void Init() + { + // TODO uncomment below to create an instance of {{classname}} + //instance = new {{classname}}(); + } + + /// + /// Clean up after each test + /// + [TearDown] + public void Cleanup() + { + + } + + /// + /// Test an instance of {{classname}} + /// + [Test] + public void {{classname}}InstanceTest() + { + // TODO uncomment below to test "IsInstanceOfType" {{classname}} + //Assert.IsInstanceOfType<{{classname}}> (instance, "variable 'instance' is a {{classname}}"); + } + + {{#discriminator}} + {{#children}} + /// + /// Test deserialize a {{classname}} from type {{parent}} + /// + [Test] + public void {{classname}}DeserializeFrom{{parent}}Test() + { + // TODO uncomment below to test deserialize a {{classname}} from type {{parent}} + //Assert.IsInstanceOf<{{parent}}>(JsonConvert.DeserializeObject<{{parent}}>(new {{classname}}().ToJson())); + } + {{/children}} + {{/discriminator}} + + {{#vars}} + /// + /// Test the property '{{name}}' + /// + [Test] + public void {{name}}Test() + { + // TODO unit test for the property '{{name}}' + } + {{/vars}} + + } + +} +{{/model}} +{{/models}} diff --git a/modules/openapi-generator/src/main/resources/csharp-refactor/mono_nunit_test.mustache b/modules/openapi-generator/src/main/resources/csharp-refactor/mono_nunit_test.mustache new file mode 100644 index 00000000000..f3e03dc803e --- /dev/null +++ b/modules/openapi-generator/src/main/resources/csharp-refactor/mono_nunit_test.mustache @@ -0,0 +1,22 @@ +#!/usr/bin/env bash +# +# Generated by: https://github.com/openapitools/openapi-generator.git +# + +wget -nc https://dist.nuget.org/win-x86-commandline/latest/nuget.exe +mozroots --import --sync + +echo "[INFO] remove bin/Debug/{{{packageName}}}.Test.dll" +rm src/{{{packageName}}}.Test/bin/Debug/{{{packageName}}}.Test.dll 2> /dev/null + +echo "[INFO] install NUnit runners via NuGet" +wget -nc https://dist.nuget.org/win-x86-commandline/latest/nuget.exe +mozroots --import --sync +mono nuget.exe install src/{{{packageName}}}.Test/packages.config -o packages + +echo "[INFO] Install NUnit runners via NuGet" +mono nuget.exe install NUnit.Runners -Version 2.6.4 -OutputDirectory packages + +echo "[INFO] Build the solution and run the unit test" +xbuild {{{packageName}}}.sln && \ + mono ./packages/NUnit.Runners.2.6.4/tools/nunit-console.exe src/{{{packageName}}}.Test/bin/Debug/{{{packageName}}}.Test.dll diff --git a/modules/openapi-generator/src/main/resources/csharp-refactor/netcore_project.mustache b/modules/openapi-generator/src/main/resources/csharp-refactor/netcore_project.mustache new file mode 100644 index 00000000000..4d0e27a7b9e --- /dev/null +++ b/modules/openapi-generator/src/main/resources/csharp-refactor/netcore_project.mustache @@ -0,0 +1,46 @@ + + + + {{targetFrameworkNuget}} + {{packageName}} + {{packageName}} + Library + {{packageAuthors}} + {{packageCompany}} + {{packageTitle}} + {{packageDescription}} + {{packageCopyright}} + true + true + true + {{packageName}} + {{packageVersion}} + + + + {{#netStandard}} + + + {{/netStandard}} + {{^netStandard}} + + {{/netStandard}} + + + + + {{^netStandard}} + + + + + + + + + + + + {{/netStandard}} + + \ No newline at end of file diff --git a/modules/openapi-generator/src/main/resources/csharp-refactor/netcore_testproject.mustache b/modules/openapi-generator/src/main/resources/csharp-refactor/netcore_testproject.mustache new file mode 100644 index 00000000000..cf00f15a8da --- /dev/null +++ b/modules/openapi-generator/src/main/resources/csharp-refactor/netcore_testproject.mustache @@ -0,0 +1,49 @@ + + + + {{targetFrameworkNuget}} + {{testPackageName}} + {{testPackageName}} + Library + {{packageAuthors}} + {{packageCompany}} + {{packageTitle}} + {{packageDescription}} + {{packageCopyright}} + true + true + true + {{testPackageName}} + + + + + {{#netStandard}} + + {{/netStandard}} + {{^netStandard}} + + {{/netStandard}} + + + + + {{^netStandard}} + + + + + + + + + + + + {{/netStandard}} + + + + + + \ No newline at end of file diff --git a/modules/openapi-generator/src/main/resources/csharp-refactor/nuspec.mustache b/modules/openapi-generator/src/main/resources/csharp-refactor/nuspec.mustache new file mode 100644 index 00000000000..e061877340d --- /dev/null +++ b/modules/openapi-generator/src/main/resources/csharp-refactor/nuspec.mustache @@ -0,0 +1,53 @@ + + + + + $id$ + {{packageTitle}} + + + $version$ + + + $author$ + + + $author$ + false + false + + + {{packageDescription}} + {{#termsOfService}} + {{termsOfService}} + {{/termsOfService}} + {{#licenseUrl}} + {{licenseUrl}} + {{/licenseUrl}} + + + + + + + + {{#generatePropertyChanged}} + + + {{/generatePropertyChanged}} + + + + + + + + + {{#generatePropertyChanged}} + + {{/generatePropertyChanged}} + + + diff --git a/modules/openapi-generator/src/main/resources/csharp-refactor/packages.config.mustache b/modules/openapi-generator/src/main/resources/csharp-refactor/packages.config.mustache new file mode 100644 index 00000000000..57234ce284b --- /dev/null +++ b/modules/openapi-generator/src/main/resources/csharp-refactor/packages.config.mustache @@ -0,0 +1,10 @@ + + + + + + {{#generatePropertyChanged}} + + + {{/generatePropertyChanged}} + diff --git a/modules/openapi-generator/src/main/resources/csharp-refactor/packages_test.config.mustache b/modules/openapi-generator/src/main/resources/csharp-refactor/packages_test.config.mustache new file mode 100644 index 00000000000..5e08ad3b671 --- /dev/null +++ b/modules/openapi-generator/src/main/resources/csharp-refactor/packages_test.config.mustache @@ -0,0 +1,7 @@ + + + + + + + diff --git a/modules/openapi-generator/src/main/resources/csharp-refactor/partial_header.mustache b/modules/openapi-generator/src/main/resources/csharp-refactor/partial_header.mustache new file mode 100644 index 00000000000..911714bcac5 --- /dev/null +++ b/modules/openapi-generator/src/main/resources/csharp-refactor/partial_header.mustache @@ -0,0 +1,13 @@ +/* + {{#appName}} + * {{{appName}}} + * + {{/appName}} + {{#appDescription}} + * {{{appDescription}}} + * + {{/appDescription}} + * {{#version}}OpenAPI spec version: {{{version}}}{{/version}} + * {{#infoEmail}}Contact: {{{infoEmail}}}{{/infoEmail}} + * Generated by: https://github.com/openapitools/openapi-generator.git + */ diff --git a/modules/openapi-generator/src/main/resources/csharp-refactor/project.json.mustache b/modules/openapi-generator/src/main/resources/csharp-refactor/project.json.mustache new file mode 100644 index 00000000000..194fdda4495 --- /dev/null +++ b/modules/openapi-generator/src/main/resources/csharp-refactor/project.json.mustache @@ -0,0 +1,12 @@ +{ + "supports": {}, + "dependencies": { + "FubarCoder.RestSharp.Portable.Core": "4.0.7", + "FubarCoder.RestSharp.Portable.HttpClient": "4.0.7", + "Newtonsoft.Json": "10.0.3", + "JsonSubTypes": "1.2.0" + }, + "frameworks": { + "{{targetFrameworkNuget}}": {} + } +} \ No newline at end of file diff --git a/modules/openapi-generator/src/main/resources/csharp-refactor/travis.mustache b/modules/openapi-generator/src/main/resources/csharp-refactor/travis.mustache new file mode 100644 index 00000000000..645c72d06d6 --- /dev/null +++ b/modules/openapi-generator/src/main/resources/csharp-refactor/travis.mustache @@ -0,0 +1,9 @@ +# +# Generated by: https://github.com/openapitools/openapi-generator.git +# +language: csharp +mono: + - latest +solution: {{{packageName}}}.sln +script: + - /bin/sh ./mono_nunit_test.sh diff --git a/modules/openapi-generator/src/main/resources/csharp-refactor/visibility.mustache b/modules/openapi-generator/src/main/resources/csharp-refactor/visibility.mustache new file mode 100644 index 00000000000..a1d1f4163d4 --- /dev/null +++ b/modules/openapi-generator/src/main/resources/csharp-refactor/visibility.mustache @@ -0,0 +1 @@ +{{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}public{{/nonPublicApi}} \ No newline at end of file diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/.gitignore b/samples/client/petstore/csharp-refactor/OpenAPIClient/.gitignore new file mode 100644 index 00000000000..17302c93bf0 --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/.gitignore @@ -0,0 +1,186 @@ +# Ref: https://gist.github.com/kmorcinek/2710267 +# Download this file using PowerShell v3 under Windows with the following comand +# Invoke-WebRequest https://gist.githubusercontent.com/kmorcinek/2710267/raw/ -OutFile .gitignore + +# User-specific files +*.suo +*.user +*.sln.docstates +./nuget + +# Build results + +[Dd]ebug/ +[Rr]elease/ +x64/ +build/ +[Bb]in/ +[Oo]bj/ + +# NuGet Packages +*.nupkg +# The packages folder can be ignored because of Package Restore +**/packages/* +# except build/, which is used as an MSBuild target. +!**/packages/build/ +# Uncomment if necessary however generally it will be regenerated when needed +#!**/packages/repositories.config + +# MSTest test Results +[Tt]est[Rr]esult*/ +[Bb]uild[Ll]og.* + +*_i.c +*_p.c +*.ilk +*.meta +*.obj +*.pch +*.pdb +*.pgc +*.pgd +*.rsp +*.sbr +*.tlb +*.tli +*.tlh +*.tmp +*.tmp_proj +*.log +*.vspscc +*.vssscc +.builds +*.pidb +*.log +*.scc + +# OS generated files # +.DS_Store* +ehthumbs.db +Icon? +Thumbs.db + +# Visual C++ cache files +ipch/ +*.aps +*.ncb +*.opensdf +*.sdf +*.cachefile + +# Visual Studio profiler +*.psess +*.vsp +*.vspx + +# Guidance Automation Toolkit +*.gpState + +# ReSharper is a .NET coding add-in +_ReSharper*/ +*.[Rr]e[Ss]harper + +# TeamCity is a build add-in +_TeamCity* + +# DotCover is a Code Coverage Tool +*.dotCover + +# NCrunch +*.ncrunch* +.*crunch*.local.xml + +# Installshield output folder +[Ee]xpress/ + +# DocProject is a documentation generator add-in +DocProject/buildhelp/ +DocProject/Help/*.HxT +DocProject/Help/*.HxC +DocProject/Help/*.hhc +DocProject/Help/*.hhk +DocProject/Help/*.hhp +DocProject/Help/Html2 +DocProject/Help/html + +# Click-Once directory +publish/ + +# Publish Web Output +*.Publish.xml + +# Windows Azure Build Output +csx +*.build.csdef + +# Windows Store app package directory +AppPackages/ + +# Others +sql/ +*.Cache +ClientBin/ +[Ss]tyle[Cc]op.* +~$* +*~ +*.dbmdl +*.[Pp]ublish.xml +*.pfx +*.publishsettings +modulesbin/ +tempbin/ + +# EPiServer Site file (VPP) +AppData/ + +# RIA/Silverlight projects +Generated_Code/ + +# Backup & report files from converting an old project file to a newer +# Visual Studio version. Backup files are not needed, because we have git ;-) +_UpgradeReport_Files/ +Backup*/ +UpgradeLog*.XML +UpgradeLog*.htm + +# vim +*.txt~ +*.swp +*.swo + +# svn +.svn + +# SQL Server files +**/App_Data/*.mdf +**/App_Data/*.ldf +**/App_Data/*.sdf + + +#LightSwitch generated files +GeneratedArtifacts/ +_Pvt_Extensions/ +ModelManifest.xml + +# ========================= +# Windows detritus +# ========================= + +# Windows image file caches +Thumbs.db +ehthumbs.db + +# Folder config file +Desktop.ini + +# Recycle Bin used on file shares +$RECYCLE.BIN/ + +# Mac desktop service store files +.DS_Store + +# SASS Compiler cache +.sass-cache + +# Visual Studio 2014 CTP +**/*.sln.ide diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/.openapi-generator-ignore b/samples/client/petstore/csharp-refactor/OpenAPIClient/.openapi-generator-ignore new file mode 100644 index 00000000000..7484ee590a3 --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/.openapi-generator-ignore @@ -0,0 +1,23 @@ +# OpenAPI Generator Ignore +# Generated by openapi-generator https://github.com/openapitools/openapi-generator + +# Use this file to prevent files from being overwritten by the generator. +# The patterns follow closely to .gitignore or .dockerignore. + +# As an example, the C# client generator defines ApiClient.cs. +# You can make changes and tell OpenAPI Generator to ignore just this file by uncommenting the following line: +#ApiClient.cs + +# You can match any string of characters against a directory, file or extension with a single asterisk (*): +#foo/*/qux +# The above matches foo/bar/qux and foo/baz/qux, but not foo/bar/baz/qux + +# You can recursively match patterns against a directory, file or extension with a double asterisk (**): +#foo/**/qux +# This matches foo/bar/qux, foo/baz/qux, and foo/bar/baz/qux + +# You can also negate patterns with an exclamation (!). +# For example, you can ignore all files in a docs folder with the file extension .md: +#docs/*.md +# Then explicitly reverse the ignore rule for a single file: +#!docs/README.md diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/.openapi-generator/VERSION b/samples/client/petstore/csharp-refactor/OpenAPIClient/.openapi-generator/VERSION new file mode 100644 index 00000000000..e24c1f857e0 --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/.openapi-generator/VERSION @@ -0,0 +1 @@ +3.3.3-SNAPSHOT \ No newline at end of file diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/.travis.yml b/samples/client/petstore/csharp-refactor/OpenAPIClient/.travis.yml new file mode 100644 index 00000000000..e4965fc7e5c --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/.travis.yml @@ -0,0 +1,9 @@ +# +# Generated by: https://github.com/openapitools/openapi-generator.git +# +language: csharp +mono: + - latest +solution: Org.OpenAPITools.sln +script: + - /bin/sh ./mono_nunit_test.sh diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/.vs/Org.OpenAPITools/xs/UserPrefs.xml b/samples/client/petstore/csharp-refactor/OpenAPIClient/.vs/Org.OpenAPITools/xs/UserPrefs.xml new file mode 100644 index 00000000000..4507171116a --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/.vs/Org.OpenAPITools/xs/UserPrefs.xml @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/.vs/Org.OpenAPITools/xs/sqlite3/db.lock b/samples/client/petstore/csharp-refactor/OpenAPIClient/.vs/Org.OpenAPITools/xs/sqlite3/db.lock new file mode 100644 index 00000000000..e69de29bb2d diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/.vs/Org.OpenAPITools/xs/sqlite3/storage.ide b/samples/client/petstore/csharp-refactor/OpenAPIClient/.vs/Org.OpenAPITools/xs/sqlite3/storage.ide new file mode 100644 index 0000000000000000000000000000000000000000..88b4c44d287e68f76e67e62169f421611ae82722 GIT binary patch literal 421888 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%0DW|9mqc2bpupBuCk+m7d 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 literal 0 HcmV?d00001 diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/.vs/Org.OpenAPITools/xs/sqlite3/storage.ide-shm b/samples/client/petstore/csharp-refactor/OpenAPIClient/.vs/Org.OpenAPITools/xs/sqlite3/storage.ide-shm new file mode 100644 index 0000000000000000000000000000000000000000..7381c4cbb96edf138d1d1757d57a9f5e6fae10df GIT binary patch literal 32768 zcmeI53ABz?7svnq|25B2nF>)F4P}T(DjAxE6yXv@lsQQu5+S9~q?ruSD5;P#MRRB# zC37VdntW&XIqN&?UHA1~tv)W!v+QfX`|Pv#IlsN1=UUc!pHpmQ1=ux#fcsOZP#Q4M zeQr2oakm|thS%OXesIt1HOp^VRc>a{J`*?REw+dL7Tc~oF7D3Y`mgnWKix30IVt3% zu#?74u6APfR+-S-2R@;0FTZh2M?9H4scXD}Px6eLrGM{#VPpF%}tu@_AD!XI- z_uev^({b0B#R=Ea#C`T_HhUN&ajes>ak;;Zq0PHymu@*j&Sno|C60C8HP33|V;HAY zdi%g9)GdEl6CbB_;GayleR=<6y2bWBmdonv^O@cD>baP`ixXpHYxH{J8ofQy$H%s{ zc%Lw4s9SG%pHR14zHh8Yy-#TOdBZySIezR~H`n%&9>lPk`FP3n#GKZ<-sWTa&mlYO zf$N-D&QP~?`#v>3-pAJK^>A;-&fC)iJ)=0`{u6U_b#uEp>Fy+PO`es{<$d5FYl8~ zx4hmb*&34B!f@Qs>*-F<$jAD}`y|utcZ>JQNDtW=i|d`( zx)OEI$ky$BY|qJbV{dCR7T(A9=yiMMgnLS5w^-gM)Gd#3P0W?4J0A0yO#-`iZPpZ77=riXmZc7qd(7wYz$FgA9NS`6=FHm@i1DIE9|a=LwP z?8LbHxykIt&HE&B^mgy#871!5{Q5fajQl)fV6OYUbUFU$^7~`v3SP8&kOZ1US@Jy?R=cDw&5DB-rmQ@^!@7XVct+T zzTT&W)9rJ*6XRg^ke!X)9%(7leoWB_OOn|-TRw8QMY~MbaJzk z{!Rus8R#Tlkw7F62}A;sKqL?eL;{gOBoGNi0+B!@5D7#Akw7F62}A;sKqL?eL;{gO zBoGNi0+B!@5D7#Akw7F62}A;sKqL?eL;{gOBoGNi0+B!@5D7#Ak-))Cpd-%Whg`u= z_#5-9kPg$;8lqvkQ?xG<#VZon?+BcZ3vnshVm#i$2IS>A9LX_!h2QaL)zY;Zu7~xh z^1A+h6i;9Zrr~+Kh*@|QbFlzR@c~xg6MT-Z@GVwj{eHLq|Hpz$qa2RI`Do(4zuL`x zhx$kSj9-z91$j76WF=PR0N&2K_ynKhYOdo(-l50sbqw*^%LJO^A#6l_j^!%W)(Cx; zvgD2wq3mSR~R z&Et3iPhth0%qpzL>a4+k>6nOSM&dU8C#NTQ{hm`s)_ms-YUGGB_Uh;Tdd0ZWdx? zUdgN2iTyZ`w{il1;N7}U59$#;sVSPKXY`_G=~cb11zM_i^uCtqbA6?6wMuKWR_nDv zKj=qo(iZK|PGwKa75}BV$9?9M(csiSn97RTp)hER*Sw-SuO{dfdV;#thVOSq6-*pB99q~o-`MIc|MpVp0dJ}+T2UdEPe z&9-dMt9cEtWl#3yO&r7_9KpNog+vGal?!=M098;Eb@2-3;B_pGlqR z*ZC7~(f|#LznxP6uZq)fChFr2yovX)96OQ55-h{=oX@veT%}cB)zn=dMUp8SkJ6eu(*rx)~^w&~B<UdR7Y~ z$&@6sj>Bl(s|WOuCTOyr($kuum-LF}X}*@|ZM~-t^+~Mf-{mUd&Rv*{`S=FkV;xTA zX*`|vbb-d`evQ|3J*Sykq_^~LV1)%&$^ow?g5N+tsyux{tNbLWO~6rbUXoXySrh1>aPmLygnc7Grt1kni#@rYX11(Yd-%FKf28>bERe=S*($Aag4iyFZf^Z-I1o9(QMVMsIg_hH4*o zuHrxp#%;JABXKA0##lU<$w&vfTPYli^KgkfN%t4zWC2!We-7iFyq6E~AwJ4yIg@j^ WgGJOqk7<&o?z88Gop*mQU;hDNNs4d) literal 0 HcmV?d00001 diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/.vs/Org.OpenAPITools/xs/sqlite3/storage.ide-wal b/samples/client/petstore/csharp-refactor/OpenAPIClient/.vs/Org.OpenAPITools/xs/sqlite3/storage.ide-wal new file mode 100644 index 0000000000000000000000000000000000000000..674ccc13ea371167a239fe32eadef98bb4ba62f9 GIT binary patch literal 4136512 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 z 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 literal 0 HcmV?d00001 diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/Org.OpenAPITools.sln b/samples/client/petstore/csharp-refactor/OpenAPIClient/Org.OpenAPITools.sln new file mode 100644 index 00000000000..5b15451c9dc --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/Org.OpenAPITools.sln @@ -0,0 +1,27 @@ +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 2012 +VisualStudioVersion = 12.0.0.0 +MinimumVisualStudioVersion = 10.0.0.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Org.OpenAPITools", "src\Org.OpenAPITools\Org.OpenAPITools.csproj", "{321C8C3F-0156-40C1-AE42-D59761FB9B6C}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Org.OpenAPITools.Test", "src\Org.OpenAPITools.Test\Org.OpenAPITools.Test.csproj", "{19F1DEBC-DE5E-4517-8062-F000CD499087}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {321C8C3F-0156-40C1-AE42-D59761FB9B6C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {321C8C3F-0156-40C1-AE42-D59761FB9B6C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {321C8C3F-0156-40C1-AE42-D59761FB9B6C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {321C8C3F-0156-40C1-AE42-D59761FB9B6C}.Release|Any CPU.Build.0 = Release|Any CPU + {19F1DEBC-DE5E-4517-8062-F000CD499087}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {19F1DEBC-DE5E-4517-8062-F000CD499087}.Debug|Any CPU.Build.0 = Debug|Any CPU + {19F1DEBC-DE5E-4517-8062-F000CD499087}.Release|Any CPU.ActiveCfg = Release|Any CPU + {19F1DEBC-DE5E-4517-8062-F000CD499087}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal \ No newline at end of file diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/README.md b/samples/client/petstore/csharp-refactor/OpenAPIClient/README.md new file mode 100644 index 00000000000..60dbf319c6e --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/README.md @@ -0,0 +1,208 @@ +# Org.OpenAPITools - the C# library for the OpenAPI Petstore + +This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + +This C# SDK is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project: + +- API version: 1.0.0 +- SDK version: 1.0.0 +- Build package: org.openapitools.codegen.languages.CSharpRefactorClientCodegen + + +## Frameworks supported +- .NET 4.0 or later +- Windows Phone 7.1 (Mango) + + +## Dependencies +- [RestSharp](https://www.nuget.org/packages/RestSharp) - 105.1.0 or later +- [Json.NET](https://www.nuget.org/packages/Newtonsoft.Json/) - 7.0.0 or later +- [JsonSubTypes](https://www.nuget.org/packages/JsonSubTypes/) - 1.2.0 or later + +The DLLs included in the package may not be the latest version. We recommend using [NuGet](https://docs.nuget.org/consume/installing-nuget) to obtain the latest version of the packages: +``` +Install-Package RestSharp +Install-Package Newtonsoft.Json +Install-Package JsonSubTypes +``` + +NOTE: RestSharp versions greater than 105.1.0 have a bug which causes file uploads to fail. See [RestSharp#742](https://github.com/restsharp/RestSharp/issues/742) + + +## Installation +Run the following command to generate the DLL +- [Mac/Linux] `/bin/sh build.sh` +- [Windows] `build.bat` + +Then include the DLL (under the `bin` folder) in the C# project, and use the namespaces: +```csharp +using Org.OpenAPITools.Api; +using Org.OpenAPITools.Client; +using Org.OpenAPITools.Model; +``` + +## Packaging + +A `.nuspec` is included with the project. You can follow the Nuget quickstart to [create](https://docs.microsoft.com/en-us/nuget/quickstart/create-and-publish-a-package#create-the-package) and [publish](https://docs.microsoft.com/en-us/nuget/quickstart/create-and-publish-a-package#publish-the-package) packages. + +This `.nuspec` uses placeholders from the `.csproj`, so build the `.csproj` directly: + +``` +nuget pack -Build -OutputDirectory out Org.OpenAPITools.csproj +``` + +Then, publish to a [local feed](https://docs.microsoft.com/en-us/nuget/hosting-packages/local-feeds) or [other host](https://docs.microsoft.com/en-us/nuget/hosting-packages/overview) and consume the new package via Nuget as usual. + + +## Getting Started + +```csharp +using System; +using System.Diagnostics; +using Org.OpenAPITools.Api; +using Org.OpenAPITools.Client; +using Org.OpenAPITools.Model; + +namespace Example +{ + public class Example + { + public void main() + { + + var apiInstance = new AnotherFakeApi(); + var modelClient = new ModelClient(); // ModelClient | client model + + try + { + // To test special tags + ModelClient result = apiInstance.Call123TestSpecialTags(modelClient); + Debug.WriteLine(result); + } + catch (Exception e) + { + Debug.Print("Exception when calling AnotherFakeApi.Call123TestSpecialTags: " + e.Message ); + } + + } + } +} +``` + + +## Documentation for API Endpoints + +All URIs are relative to *http://petstore.swagger.io:80/v2* + +Class | Method | HTTP request | Description +------------ | ------------- | ------------- | ------------- +*AnotherFakeApi* | [**Call123TestSpecialTags**](docs/AnotherFakeApi.md#call123testspecialtags) | **PATCH** /another-fake/dummy | To test special tags +*FakeApi* | [**FakeOuterBooleanSerialize**](docs/FakeApi.md#fakeouterbooleanserialize) | **POST** /fake/outer/boolean | +*FakeApi* | [**FakeOuterCompositeSerialize**](docs/FakeApi.md#fakeoutercompositeserialize) | **POST** /fake/outer/composite | +*FakeApi* | [**FakeOuterNumberSerialize**](docs/FakeApi.md#fakeouternumberserialize) | **POST** /fake/outer/number | +*FakeApi* | [**FakeOuterStringSerialize**](docs/FakeApi.md#fakeouterstringserialize) | **POST** /fake/outer/string | +*FakeApi* | [**TestBodyWithFileSchema**](docs/FakeApi.md#testbodywithfileschema) | **PUT** /fake/body-with-file-schema | +*FakeApi* | [**TestBodyWithQueryParams**](docs/FakeApi.md#testbodywithqueryparams) | **PUT** /fake/body-with-query-params | +*FakeApi* | [**TestClientModel**](docs/FakeApi.md#testclientmodel) | **PATCH** /fake | To test \"client\" model +*FakeApi* | [**TestEndpointParameters**](docs/FakeApi.md#testendpointparameters) | **POST** /fake | Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트 +*FakeApi* | [**TestEnumParameters**](docs/FakeApi.md#testenumparameters) | **GET** /fake | To test enum parameters +*FakeApi* | [**TestGroupParameters**](docs/FakeApi.md#testgroupparameters) | **DELETE** /fake | Fake endpoint to test group parameters (optional) +*FakeApi* | [**TestInlineAdditionalProperties**](docs/FakeApi.md#testinlineadditionalproperties) | **POST** /fake/inline-additionalProperties | test inline additionalProperties +*FakeApi* | [**TestJsonFormData**](docs/FakeApi.md#testjsonformdata) | **GET** /fake/jsonFormData | test json serialization of form data +*FakeClassnameTags123Api* | [**TestClassname**](docs/FakeClassnameTags123Api.md#testclassname) | **PATCH** /fake_classname_test | To test class name in snake case +*PetApi* | [**AddPet**](docs/PetApi.md#addpet) | **POST** /pet | Add a new pet to the store +*PetApi* | [**DeletePet**](docs/PetApi.md#deletepet) | **DELETE** /pet/{petId} | Deletes a pet +*PetApi* | [**FindPetsByStatus**](docs/PetApi.md#findpetsbystatus) | **GET** /pet/findByStatus | Finds Pets by status +*PetApi* | [**FindPetsByTags**](docs/PetApi.md#findpetsbytags) | **GET** /pet/findByTags | Finds Pets by tags +*PetApi* | [**GetPetById**](docs/PetApi.md#getpetbyid) | **GET** /pet/{petId} | Find pet by ID +*PetApi* | [**UpdatePet**](docs/PetApi.md#updatepet) | **PUT** /pet | Update an existing pet +*PetApi* | [**UpdatePetWithForm**](docs/PetApi.md#updatepetwithform) | **POST** /pet/{petId} | Updates a pet in the store with form data +*PetApi* | [**UploadFile**](docs/PetApi.md#uploadfile) | **POST** /pet/{petId}/uploadImage | uploads an image +*PetApi* | [**UploadFileWithRequiredFile**](docs/PetApi.md#uploadfilewithrequiredfile) | **POST** /fake/{petId}/uploadImageWithRequiredFile | uploads an image (required) +*StoreApi* | [**DeleteOrder**](docs/StoreApi.md#deleteorder) | **DELETE** /store/order/{order_id} | Delete purchase order by ID +*StoreApi* | [**GetInventory**](docs/StoreApi.md#getinventory) | **GET** /store/inventory | Returns pet inventories by status +*StoreApi* | [**GetOrderById**](docs/StoreApi.md#getorderbyid) | **GET** /store/order/{order_id} | Find purchase order by ID +*StoreApi* | [**PlaceOrder**](docs/StoreApi.md#placeorder) | **POST** /store/order | Place an order for a pet +*UserApi* | [**CreateUser**](docs/UserApi.md#createuser) | **POST** /user | Create user +*UserApi* | [**CreateUsersWithArrayInput**](docs/UserApi.md#createuserswitharrayinput) | **POST** /user/createWithArray | Creates list of users with given input array +*UserApi* | [**CreateUsersWithListInput**](docs/UserApi.md#createuserswithlistinput) | **POST** /user/createWithList | Creates list of users with given input array +*UserApi* | [**DeleteUser**](docs/UserApi.md#deleteuser) | **DELETE** /user/{username} | Delete user +*UserApi* | [**GetUserByName**](docs/UserApi.md#getuserbyname) | **GET** /user/{username} | Get user by user name +*UserApi* | [**LoginUser**](docs/UserApi.md#loginuser) | **GET** /user/login | Logs user into the system +*UserApi* | [**LogoutUser**](docs/UserApi.md#logoutuser) | **GET** /user/logout | Logs out current logged in user session +*UserApi* | [**UpdateUser**](docs/UserApi.md#updateuser) | **PUT** /user/{username} | Updated user + + + +## Documentation for Models + + - [Model.AdditionalPropertiesClass](docs/AdditionalPropertiesClass.md) + - [Model.Animal](docs/Animal.md) + - [Model.AnimalFarm](docs/AnimalFarm.md) + - [Model.ApiResponse](docs/ApiResponse.md) + - [Model.ArrayOfArrayOfNumberOnly](docs/ArrayOfArrayOfNumberOnly.md) + - [Model.ArrayOfNumberOnly](docs/ArrayOfNumberOnly.md) + - [Model.ArrayTest](docs/ArrayTest.md) + - [Model.Capitalization](docs/Capitalization.md) + - [Model.Cat](docs/Cat.md) + - [Model.Category](docs/Category.md) + - [Model.ClassModel](docs/ClassModel.md) + - [Model.Dog](docs/Dog.md) + - [Model.EnumArrays](docs/EnumArrays.md) + - [Model.EnumClass](docs/EnumClass.md) + - [Model.EnumTest](docs/EnumTest.md) + - [Model.File](docs/File.md) + - [Model.FileSchemaTestClass](docs/FileSchemaTestClass.md) + - [Model.FormatTest](docs/FormatTest.md) + - [Model.HasOnlyReadOnly](docs/HasOnlyReadOnly.md) + - [Model.List](docs/List.md) + - [Model.MapTest](docs/MapTest.md) + - [Model.MixedPropertiesAndAdditionalPropertiesClass](docs/MixedPropertiesAndAdditionalPropertiesClass.md) + - [Model.Model200Response](docs/Model200Response.md) + - [Model.ModelClient](docs/ModelClient.md) + - [Model.Name](docs/Name.md) + - [Model.NumberOnly](docs/NumberOnly.md) + - [Model.Order](docs/Order.md) + - [Model.OuterComposite](docs/OuterComposite.md) + - [Model.OuterEnum](docs/OuterEnum.md) + - [Model.Pet](docs/Pet.md) + - [Model.ReadOnlyFirst](docs/ReadOnlyFirst.md) + - [Model.Return](docs/Return.md) + - [Model.SpecialModelName](docs/SpecialModelName.md) + - [Model.StringBooleanMap](docs/StringBooleanMap.md) + - [Model.Tag](docs/Tag.md) + - [Model.User](docs/User.md) + + + +## Documentation for Authorization + + +### api_key + +- **Type**: API key +- **API key parameter name**: api_key +- **Location**: HTTP header + + +### api_key_query + +- **Type**: API key +- **API key parameter name**: api_key_query +- **Location**: URL query string + + +### http_basic_test + +- **Type**: HTTP basic authentication + + +### petstore_auth + +- **Type**: OAuth +- **Flow**: implicit +- **Authorization URL**: http://petstore.swagger.io/api/oauth/dialog +- **Scopes**: + - write:pets: modify pets in your account + - read:pets: read your pets + diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/build.bat b/samples/client/petstore/csharp-refactor/OpenAPIClient/build.bat new file mode 100644 index 00000000000..88942a71d0f --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/build.bat @@ -0,0 +1,17 @@ +:: Generated by: https://github.com/openapitools/openapi-generator.git +:: + +@echo off + +SET CSCPATH=%SYSTEMROOT%\Microsoft.NET\Framework\v4.0.30319 + +if not exist ".\nuget.exe" powershell -Command "(new-object System.Net.WebClient).DownloadFile('https://dist.nuget.org/win-x86-commandline/latest/nuget.exe', '.\nuget.exe')" +.\nuget.exe install src\Org.OpenAPITools\packages.config -o packages + +if not exist ".\bin" mkdir bin + +copy packages\Newtonsoft.Json.10.0.3\lib\net45\Newtonsoft.Json.dll bin\Newtonsoft.Json.dll +copy packages\JsonSubTypes.1.2.0\lib\net45\JsonSubTypes.dll bin\JsonSubTypes.dll +copy packages\RestSharp.105.1.0\lib\net45\RestSharp.dll bin\RestSharp.dll +%CSCPATH%\csc /reference:bin\Newtonsoft.Json.dll;bin\JsonSubTypes.dll;bin\RestSharp.dll;System.ComponentModel.DataAnnotations.dll /target:library /out:bin\Org.OpenAPITools.dll /recurse:src\Org.OpenAPITools\*.cs /doc:bin\Org.OpenAPITools.xml + diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/build.sh b/samples/client/petstore/csharp-refactor/OpenAPIClient/build.sh new file mode 100644 index 00000000000..269c087258e --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/build.sh @@ -0,0 +1,68 @@ +#!/usr/bin/env bash +# +# Generated by: https://github.com/openapitools/openapi-generator.git +# + +frameworkVersion=net45 + +# sdk must match installed framworks under PREFIX/lib/mono/[value] +sdk=4.5.2-api + +# langversion refers to C# language features. see man mcs for details. +langversion=${sdk} +nuget_cmd=nuget + +# Match against our known SDK possibilities +case "${sdk}" in + 4) + langversion=4 + ;; + 4.5*) + langversion=5 + ;; + 4.6*) + langversion=6 + ;; + 4.7*) + langversion=7 # ignoring 7.1 for now. + ;; + *) + langversion=6 + ;; +esac + +echo "[INFO] Target framework: ${frameworkVersion}" + +if ! type nuget &>/dev/null; then + echo "[INFO] Download nuget and packages" + wget -nc https://dist.nuget.org/win-x86-commandline/latest/nuget.exe; + nuget_cmd="mono nuget.exe" +fi + +mozroots --import --sync +${nuget_cmd} install src/Org.OpenAPITools/packages.config -o packages; + +echo "[INFO] Copy DLLs to the 'bin' folder" +mkdir -p bin; +cp packages/Newtonsoft.Json.10.0.3/lib/net45/Newtonsoft.Json.dll bin/Newtonsoft.Json.dll; +cp packages/RestSharp.105.1.0/lib/net45/RestSharp.dll bin/RestSharp.dll; +cp packages/JsonSubTypes.1.2.0/lib/net45/JsonSubTypes.dll bin/JsonSubTypes.dll + +echo "[INFO] Run 'mcs' to build bin/Org.OpenAPITools.dll" +mcs -langversion:${langversion} -sdk:${sdk} -r:bin/Newtonsoft.Json.dll,bin/JsonSubTypes.dll,\ +bin/RestSharp.dll,\ +System.ComponentModel.DataAnnotations.dll,\ +System.Runtime.Serialization.dll \ +-target:library \ +-out:bin/Org.OpenAPITools.dll \ +-recurse:'src/Org.OpenAPITools/*.cs' \ +-doc:bin/Org.OpenAPITools.xml \ +-platform:anycpu + +if [ $? -ne 0 ] +then + echo "[ERROR] Compilation failed with exit code $?" + exit 1 +else + echo "[INFO] bin/Org.OpenAPITools.dll was created successfully" +fi diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/AdditionalPropertiesClass.md b/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/AdditionalPropertiesClass.md new file mode 100644 index 00000000000..057f5bd65df --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/AdditionalPropertiesClass.md @@ -0,0 +1,10 @@ +# Org.OpenAPITools.Model.AdditionalPropertiesClass +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**MapProperty** | **Dictionary<string, string>** | | [optional] +**MapOfMapProperty** | **Dictionary<string, Dictionary<string, string>>** | | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/Animal.md b/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/Animal.md new file mode 100644 index 00000000000..a97ce49b801 --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/Animal.md @@ -0,0 +1,10 @@ +# Org.OpenAPITools.Model.Animal +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**ClassName** | **string** | | +**Color** | **string** | | [optional] [default to "red"] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/AnimalFarm.md b/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/AnimalFarm.md new file mode 100644 index 00000000000..69c51725805 --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/AnimalFarm.md @@ -0,0 +1,8 @@ +# Org.OpenAPITools.Model.AnimalFarm +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/AnotherFakeApi.md b/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/AnotherFakeApi.md new file mode 100644 index 00000000000..81cc3106d64 --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/AnotherFakeApi.md @@ -0,0 +1,70 @@ +# Org.OpenAPITools.Api.AnotherFakeApi + +All URIs are relative to *http://petstore.swagger.io:80/v2* + +Method | HTTP request | Description +------------- | ------------- | ------------- +[**Call123TestSpecialTags**](AnotherFakeApi.md#call123testspecialtags) | **PATCH** /another-fake/dummy | To test special tags + + + +# **Call123TestSpecialTags** +> ModelClient Call123TestSpecialTags (ModelClient modelClient) + +To test special tags + +To test special tags and operation ID starting with number + +### Example +```csharp +using System; +using System.Diagnostics; +using Org.OpenAPITools.Api; +using Org.OpenAPITools.Client; +using Org.OpenAPITools.Model; + +namespace Example +{ + public class Call123TestSpecialTagsExample + { + public void main() + { + var apiInstance = new AnotherFakeApi(); + var modelClient = new ModelClient(); // ModelClient | client model + + try + { + // To test special tags + ModelClient result = apiInstance.Call123TestSpecialTags(modelClient); + Debug.WriteLine(result); + } + catch (Exception e) + { + Debug.Print("Exception when calling AnotherFakeApi.Call123TestSpecialTags: " + e.Message ); + } + } + } +} +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **modelClient** | [**ModelClient**](ModelClient.md)| client model | + +### Return type + +[**ModelClient**](ModelClient.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/json + - **Accept**: application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/ApiResponse.md b/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/ApiResponse.md new file mode 100644 index 00000000000..01b35815bd4 --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/ApiResponse.md @@ -0,0 +1,11 @@ +# Org.OpenAPITools.Model.ApiResponse +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**Code** | **int?** | | [optional] +**Type** | **string** | | [optional] +**Message** | **string** | | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/ArrayOfArrayOfNumberOnly.md b/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/ArrayOfArrayOfNumberOnly.md new file mode 100644 index 00000000000..614546d3256 --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/ArrayOfArrayOfNumberOnly.md @@ -0,0 +1,9 @@ +# Org.OpenAPITools.Model.ArrayOfArrayOfNumberOnly +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**ArrayArrayNumber** | **List<List<decimal?>>** | | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/ArrayOfNumberOnly.md b/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/ArrayOfNumberOnly.md new file mode 100644 index 00000000000..1886a6edcb4 --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/ArrayOfNumberOnly.md @@ -0,0 +1,9 @@ +# Org.OpenAPITools.Model.ArrayOfNumberOnly +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**ArrayNumber** | **List<decimal?>** | | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/ArrayTest.md b/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/ArrayTest.md new file mode 100644 index 00000000000..ff6a6cb24b0 --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/ArrayTest.md @@ -0,0 +1,11 @@ +# Org.OpenAPITools.Model.ArrayTest +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**ArrayOfString** | **List<string>** | | [optional] +**ArrayArrayOfInteger** | **List<List<long?>>** | | [optional] +**ArrayArrayOfModel** | **List<List<ReadOnlyFirst>>** | | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/Capitalization.md b/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/Capitalization.md new file mode 100644 index 00000000000..74c1ab66db2 --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/Capitalization.md @@ -0,0 +1,14 @@ +# Org.OpenAPITools.Model.Capitalization +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**SmallCamel** | **string** | | [optional] +**CapitalCamel** | **string** | | [optional] +**SmallSnake** | **string** | | [optional] +**CapitalSnake** | **string** | | [optional] +**SCAETHFlowPoints** | **string** | | [optional] +**ATT_NAME** | **string** | Name of the pet | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/Cat.md b/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/Cat.md new file mode 100644 index 00000000000..4b79315204f --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/Cat.md @@ -0,0 +1,11 @@ +# Org.OpenAPITools.Model.Cat +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**ClassName** | **string** | | +**Color** | **string** | | [optional] [default to "red"] +**Declawed** | **bool?** | | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/Category.md b/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/Category.md new file mode 100644 index 00000000000..67e28fe8d08 --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/Category.md @@ -0,0 +1,10 @@ +# Org.OpenAPITools.Model.Category +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**Id** | **long?** | | [optional] +**Name** | **string** | | [default to "default-name"] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/ClassModel.md b/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/ClassModel.md new file mode 100644 index 00000000000..556b05db241 --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/ClassModel.md @@ -0,0 +1,9 @@ +# Org.OpenAPITools.Model.ClassModel +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**Class** | **string** | | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/Dog.md b/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/Dog.md new file mode 100644 index 00000000000..aa5df1a927a --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/Dog.md @@ -0,0 +1,11 @@ +# Org.OpenAPITools.Model.Dog +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**ClassName** | **string** | | +**Color** | **string** | | [optional] [default to "red"] +**Breed** | **string** | | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/EnumArrays.md b/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/EnumArrays.md new file mode 100644 index 00000000000..2dfe0e22388 --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/EnumArrays.md @@ -0,0 +1,10 @@ +# Org.OpenAPITools.Model.EnumArrays +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**JustSymbol** | **string** | | [optional] +**ArrayEnum** | **List<string>** | | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/EnumClass.md b/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/EnumClass.md new file mode 100644 index 00000000000..4fb1eae9c06 --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/EnumClass.md @@ -0,0 +1,8 @@ +# Org.OpenAPITools.Model.EnumClass +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/EnumTest.md b/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/EnumTest.md new file mode 100644 index 00000000000..65bc4d2cb04 --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/EnumTest.md @@ -0,0 +1,13 @@ +# Org.OpenAPITools.Model.EnumTest +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**EnumString** | **string** | | [optional] +**EnumStringRequired** | **string** | | +**EnumInteger** | **int?** | | [optional] +**EnumNumber** | **double?** | | [optional] +**OuterEnum** | **OuterEnum** | | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/FakeApi.md b/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/FakeApi.md new file mode 100644 index 00000000000..f76d88e36d6 --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/FakeApi.md @@ -0,0 +1,791 @@ +# Org.OpenAPITools.Api.FakeApi + +All URIs are relative to *http://petstore.swagger.io:80/v2* + +Method | HTTP request | Description +------------- | ------------- | ------------- +[**FakeOuterBooleanSerialize**](FakeApi.md#fakeouterbooleanserialize) | **POST** /fake/outer/boolean | +[**FakeOuterCompositeSerialize**](FakeApi.md#fakeoutercompositeserialize) | **POST** /fake/outer/composite | +[**FakeOuterNumberSerialize**](FakeApi.md#fakeouternumberserialize) | **POST** /fake/outer/number | +[**FakeOuterStringSerialize**](FakeApi.md#fakeouterstringserialize) | **POST** /fake/outer/string | +[**TestBodyWithFileSchema**](FakeApi.md#testbodywithfileschema) | **PUT** /fake/body-with-file-schema | +[**TestBodyWithQueryParams**](FakeApi.md#testbodywithqueryparams) | **PUT** /fake/body-with-query-params | +[**TestClientModel**](FakeApi.md#testclientmodel) | **PATCH** /fake | To test \"client\" model +[**TestEndpointParameters**](FakeApi.md#testendpointparameters) | **POST** /fake | Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트 +[**TestEnumParameters**](FakeApi.md#testenumparameters) | **GET** /fake | To test enum parameters +[**TestGroupParameters**](FakeApi.md#testgroupparameters) | **DELETE** /fake | Fake endpoint to test group parameters (optional) +[**TestInlineAdditionalProperties**](FakeApi.md#testinlineadditionalproperties) | **POST** /fake/inline-additionalProperties | test inline additionalProperties +[**TestJsonFormData**](FakeApi.md#testjsonformdata) | **GET** /fake/jsonFormData | test json serialization of form data + + + +# **FakeOuterBooleanSerialize** +> bool? FakeOuterBooleanSerialize (bool? body = null) + + + +Test serialization of outer boolean types + +### Example +```csharp +using System; +using System.Diagnostics; +using Org.OpenAPITools.Api; +using Org.OpenAPITools.Client; +using Org.OpenAPITools.Model; + +namespace Example +{ + public class FakeOuterBooleanSerializeExample + { + public void main() + { + var apiInstance = new FakeApi(); + var body = true; // bool? | Input boolean as post body (optional) + + try + { + bool? result = apiInstance.FakeOuterBooleanSerialize(body); + Debug.WriteLine(result); + } + catch (Exception e) + { + Debug.Print("Exception when calling FakeApi.FakeOuterBooleanSerialize: " + e.Message ); + } + } + } +} +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **body** | **bool?**| Input boolean as post body | [optional] + +### Return type + +**bool?** + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: */* + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + + +# **FakeOuterCompositeSerialize** +> OuterComposite FakeOuterCompositeSerialize (OuterComposite outerComposite = null) + + + +Test serialization of object with outer number type + +### Example +```csharp +using System; +using System.Diagnostics; +using Org.OpenAPITools.Api; +using Org.OpenAPITools.Client; +using Org.OpenAPITools.Model; + +namespace Example +{ + public class FakeOuterCompositeSerializeExample + { + public void main() + { + var apiInstance = new FakeApi(); + var outerComposite = new OuterComposite(); // OuterComposite | Input composite as post body (optional) + + try + { + OuterComposite result = apiInstance.FakeOuterCompositeSerialize(outerComposite); + Debug.WriteLine(result); + } + catch (Exception e) + { + Debug.Print("Exception when calling FakeApi.FakeOuterCompositeSerialize: " + e.Message ); + } + } + } +} +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **outerComposite** | [**OuterComposite**](OuterComposite.md)| Input composite as post body | [optional] + +### Return type + +[**OuterComposite**](OuterComposite.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: */* + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + + +# **FakeOuterNumberSerialize** +> decimal? FakeOuterNumberSerialize (decimal? body = null) + + + +Test serialization of outer number types + +### Example +```csharp +using System; +using System.Diagnostics; +using Org.OpenAPITools.Api; +using Org.OpenAPITools.Client; +using Org.OpenAPITools.Model; + +namespace Example +{ + public class FakeOuterNumberSerializeExample + { + public void main() + { + var apiInstance = new FakeApi(); + var body = 1.2D; // decimal? | Input number as post body (optional) + + try + { + decimal? result = apiInstance.FakeOuterNumberSerialize(body); + Debug.WriteLine(result); + } + catch (Exception e) + { + Debug.Print("Exception when calling FakeApi.FakeOuterNumberSerialize: " + e.Message ); + } + } + } +} +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **body** | **decimal?**| Input number as post body | [optional] + +### Return type + +**decimal?** + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: */* + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + + +# **FakeOuterStringSerialize** +> string FakeOuterStringSerialize (string body = null) + + + +Test serialization of outer string types + +### Example +```csharp +using System; +using System.Diagnostics; +using Org.OpenAPITools.Api; +using Org.OpenAPITools.Client; +using Org.OpenAPITools.Model; + +namespace Example +{ + public class FakeOuterStringSerializeExample + { + public void main() + { + var apiInstance = new FakeApi(); + var body = body_example; // string | Input string as post body (optional) + + try + { + string result = apiInstance.FakeOuterStringSerialize(body); + Debug.WriteLine(result); + } + catch (Exception e) + { + Debug.Print("Exception when calling FakeApi.FakeOuterStringSerialize: " + e.Message ); + } + } + } +} +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **body** | **string**| Input string as post body | [optional] + +### Return type + +**string** + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: */* + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + + +# **TestBodyWithFileSchema** +> void TestBodyWithFileSchema (FileSchemaTestClass fileSchemaTestClass) + + + +For this test, the body for this request much reference a schema named `File`. + +### Example +```csharp +using System; +using System.Diagnostics; +using Org.OpenAPITools.Api; +using Org.OpenAPITools.Client; +using Org.OpenAPITools.Model; + +namespace Example +{ + public class TestBodyWithFileSchemaExample + { + public void main() + { + var apiInstance = new FakeApi(); + var fileSchemaTestClass = new FileSchemaTestClass(); // FileSchemaTestClass | + + try + { + apiInstance.TestBodyWithFileSchema(fileSchemaTestClass); + } + catch (Exception e) + { + Debug.Print("Exception when calling FakeApi.TestBodyWithFileSchema: " + e.Message ); + } + } + } +} +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **fileSchemaTestClass** | [**FileSchemaTestClass**](FileSchemaTestClass.md)| | + +### Return type + +void (empty response body) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/json + - **Accept**: Not defined + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + + +# **TestBodyWithQueryParams** +> void TestBodyWithQueryParams (string query, User user) + + + +### Example +```csharp +using System; +using System.Diagnostics; +using Org.OpenAPITools.Api; +using Org.OpenAPITools.Client; +using Org.OpenAPITools.Model; + +namespace Example +{ + public class TestBodyWithQueryParamsExample + { + public void main() + { + var apiInstance = new FakeApi(); + var query = query_example; // string | + var user = new User(); // User | + + try + { + apiInstance.TestBodyWithQueryParams(query, user); + } + catch (Exception e) + { + Debug.Print("Exception when calling FakeApi.TestBodyWithQueryParams: " + e.Message ); + } + } + } +} +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **query** | **string**| | + **user** | [**User**](User.md)| | + +### Return type + +void (empty response body) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/json + - **Accept**: Not defined + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + + +# **TestClientModel** +> ModelClient TestClientModel (ModelClient modelClient) + +To test \"client\" model + +To test \"client\" model + +### Example +```csharp +using System; +using System.Diagnostics; +using Org.OpenAPITools.Api; +using Org.OpenAPITools.Client; +using Org.OpenAPITools.Model; + +namespace Example +{ + public class TestClientModelExample + { + public void main() + { + var apiInstance = new FakeApi(); + var modelClient = new ModelClient(); // ModelClient | client model + + try + { + // To test \"client\" model + ModelClient result = apiInstance.TestClientModel(modelClient); + Debug.WriteLine(result); + } + catch (Exception e) + { + Debug.Print("Exception when calling FakeApi.TestClientModel: " + e.Message ); + } + } + } +} +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **modelClient** | [**ModelClient**](ModelClient.md)| client model | + +### Return type + +[**ModelClient**](ModelClient.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/json + - **Accept**: application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + + +# **TestEndpointParameters** +> void TestEndpointParameters (decimal? number, double? _double, string patternWithoutDelimiter, byte[] _byte, int? integer = null, int? int32 = null, long? int64 = null, float? _float = null, string _string = null, System.IO.Stream binary = null, DateTime? date = null, DateTime? dateTime = null, string password = null, string callback = null) + +Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트 + +Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트 + +### Example +```csharp +using System; +using System.Diagnostics; +using Org.OpenAPITools.Api; +using Org.OpenAPITools.Client; +using Org.OpenAPITools.Model; + +namespace Example +{ + public class TestEndpointParametersExample + { + public void main() + { + // Configure HTTP basic authorization: http_basic_test + Configuration.Default.Username = "YOUR_USERNAME"; + Configuration.Default.Password = "YOUR_PASSWORD"; + + var apiInstance = new FakeApi(); + var number = 8.14; // decimal? | None + var _double = 1.2D; // double? | None + var patternWithoutDelimiter = patternWithoutDelimiter_example; // string | None + var _byte = BYTE_ARRAY_DATA_HERE; // byte[] | None + var integer = 56; // int? | None (optional) + var int32 = 56; // int? | None (optional) + var int64 = 789; // long? | None (optional) + var _float = 3.4F; // float? | None (optional) + var _string = _string_example; // string | None (optional) + var binary = BINARY_DATA_HERE; // System.IO.Stream | None (optional) + var date = 2013-10-20; // DateTime? | None (optional) + var dateTime = 2013-10-20T19:20:30+01:00; // DateTime? | None (optional) + var password = password_example; // string | None (optional) + var callback = callback_example; // string | None (optional) + + try + { + // Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트 + apiInstance.TestEndpointParameters(number, _double, patternWithoutDelimiter, _byte, integer, int32, int64, _float, _string, binary, date, dateTime, password, callback); + } + catch (Exception e) + { + Debug.Print("Exception when calling FakeApi.TestEndpointParameters: " + e.Message ); + } + } + } +} +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **number** | **decimal?**| None | + **_double** | **double?**| None | + **patternWithoutDelimiter** | **string**| None | + **_byte** | **byte[]**| None | + **integer** | **int?**| None | [optional] + **int32** | **int?**| None | [optional] + **int64** | **long?**| None | [optional] + **_float** | **float?**| None | [optional] + **_string** | **string**| None | [optional] + **binary** | **System.IO.Stream****System.IO.Stream**| None | [optional] + **date** | **DateTime?**| None | [optional] + **dateTime** | **DateTime?**| None | [optional] + **password** | **string**| None | [optional] + **callback** | **string**| None | [optional] + +### Return type + +void (empty response body) + +### Authorization + +[http_basic_test](../README.md#http_basic_test) + +### HTTP request headers + + - **Content-Type**: application/x-www-form-urlencoded + - **Accept**: Not defined + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + + +# **TestEnumParameters** +> void TestEnumParameters (List enumHeaderStringArray = null, string enumHeaderString = null, List enumQueryStringArray = null, string enumQueryString = null, int? enumQueryInteger = null, double? enumQueryDouble = null, List enumFormStringArray = null, string enumFormString = null) + +To test enum parameters + +To test enum parameters + +### Example +```csharp +using System; +using System.Diagnostics; +using Org.OpenAPITools.Api; +using Org.OpenAPITools.Client; +using Org.OpenAPITools.Model; + +namespace Example +{ + public class TestEnumParametersExample + { + public void main() + { + var apiInstance = new FakeApi(); + var enumHeaderStringArray = enumHeaderStringArray_example; // List | Header parameter enum test (string array) (optional) + var enumHeaderString = enumHeaderString_example; // string | Header parameter enum test (string) (optional) (default to -efg) + var enumQueryStringArray = enumQueryStringArray_example; // List | Query parameter enum test (string array) (optional) + var enumQueryString = enumQueryString_example; // string | Query parameter enum test (string) (optional) (default to -efg) + var enumQueryInteger = 56; // int? | Query parameter enum test (double) (optional) + var enumQueryDouble = 1.2D; // double? | Query parameter enum test (double) (optional) + var enumFormStringArray = new List(); // List | Form parameter enum test (string array) (optional) (default to $) + var enumFormString = enumFormString_example; // string | Form parameter enum test (string) (optional) (default to -efg) + + try + { + // To test enum parameters + apiInstance.TestEnumParameters(enumHeaderStringArray, enumHeaderString, enumQueryStringArray, enumQueryString, enumQueryInteger, enumQueryDouble, enumFormStringArray, enumFormString); + } + catch (Exception e) + { + Debug.Print("Exception when calling FakeApi.TestEnumParameters: " + e.Message ); + } + } + } +} +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **enumHeaderStringArray** | **List<string>**| Header parameter enum test (string array) | [optional] + **enumHeaderString** | **string**| Header parameter enum test (string) | [optional] [default to -efg] + **enumQueryStringArray** | **List<string>**| Query parameter enum test (string array) | [optional] + **enumQueryString** | **string**| Query parameter enum test (string) | [optional] [default to -efg] + **enumQueryInteger** | **int?**| Query parameter enum test (double) | [optional] + **enumQueryDouble** | **double?**| Query parameter enum test (double) | [optional] + **enumFormStringArray** | [**List<string>**](string.md)| Form parameter enum test (string array) | [optional] [default to $] + **enumFormString** | **string**| Form parameter enum test (string) | [optional] [default to -efg] + +### Return type + +void (empty response body) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/x-www-form-urlencoded + - **Accept**: Not defined + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + + +# **TestGroupParameters** +> void TestGroupParameters (int? requiredStringGroup, bool? requiredBooleanGroup, long? requiredInt64Group, int? stringGroup = null, bool? booleanGroup = null, long? int64Group = null) + +Fake endpoint to test group parameters (optional) + +Fake endpoint to test group parameters (optional) + +### Example +```csharp +using System; +using System.Diagnostics; +using Org.OpenAPITools.Api; +using Org.OpenAPITools.Client; +using Org.OpenAPITools.Model; + +namespace Example +{ + public class TestGroupParametersExample + { + public void main() + { + var apiInstance = new FakeApi(); + var requiredStringGroup = 56; // int? | Required String in group parameters + var requiredBooleanGroup = true; // bool? | Required Boolean in group parameters + var requiredInt64Group = 789; // long? | Required Integer in group parameters + var stringGroup = 56; // int? | String in group parameters (optional) + var booleanGroup = true; // bool? | Boolean in group parameters (optional) + var int64Group = 789; // long? | Integer in group parameters (optional) + + try + { + // Fake endpoint to test group parameters (optional) + apiInstance.TestGroupParameters(requiredStringGroup, requiredBooleanGroup, requiredInt64Group, stringGroup, booleanGroup, int64Group); + } + catch (Exception e) + { + Debug.Print("Exception when calling FakeApi.TestGroupParameters: " + e.Message ); + } + } + } +} +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **requiredStringGroup** | **int?**| Required String in group parameters | + **requiredBooleanGroup** | **bool?**| Required Boolean in group parameters | + **requiredInt64Group** | **long?**| Required Integer in group parameters | + **stringGroup** | **int?**| String in group parameters | [optional] + **booleanGroup** | **bool?**| Boolean in group parameters | [optional] + **int64Group** | **long?**| Integer in group parameters | [optional] + +### Return type + +void (empty response body) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + + +# **TestInlineAdditionalProperties** +> void TestInlineAdditionalProperties (Dictionary requestBody) + +test inline additionalProperties + +### Example +```csharp +using System; +using System.Diagnostics; +using Org.OpenAPITools.Api; +using Org.OpenAPITools.Client; +using Org.OpenAPITools.Model; + +namespace Example +{ + public class TestInlineAdditionalPropertiesExample + { + public void main() + { + var apiInstance = new FakeApi(); + var requestBody = new Dictionary(); // Dictionary | request body + + try + { + // test inline additionalProperties + apiInstance.TestInlineAdditionalProperties(requestBody); + } + catch (Exception e) + { + Debug.Print("Exception when calling FakeApi.TestInlineAdditionalProperties: " + e.Message ); + } + } + } +} +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **requestBody** | [**Dictionary<string, string>**](string.md)| request body | + +### Return type + +void (empty response body) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/json + - **Accept**: Not defined + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + + +# **TestJsonFormData** +> void TestJsonFormData (string param, string param2) + +test json serialization of form data + +### Example +```csharp +using System; +using System.Diagnostics; +using Org.OpenAPITools.Api; +using Org.OpenAPITools.Client; +using Org.OpenAPITools.Model; + +namespace Example +{ + public class TestJsonFormDataExample + { + public void main() + { + var apiInstance = new FakeApi(); + var param = param_example; // string | field1 + var param2 = param2_example; // string | field2 + + try + { + // test json serialization of form data + apiInstance.TestJsonFormData(param, param2); + } + catch (Exception e) + { + Debug.Print("Exception when calling FakeApi.TestJsonFormData: " + e.Message ); + } + } + } +} +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **param** | **string**| field1 | + **param2** | **string**| field2 | + +### Return type + +void (empty response body) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/x-www-form-urlencoded + - **Accept**: Not defined + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/FakeClassnameTags123Api.md b/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/FakeClassnameTags123Api.md new file mode 100644 index 00000000000..f069b098399 --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/FakeClassnameTags123Api.md @@ -0,0 +1,75 @@ +# Org.OpenAPITools.Api.FakeClassnameTags123Api + +All URIs are relative to *http://petstore.swagger.io:80/v2* + +Method | HTTP request | Description +------------- | ------------- | ------------- +[**TestClassname**](FakeClassnameTags123Api.md#testclassname) | **PATCH** /fake_classname_test | To test class name in snake case + + + +# **TestClassname** +> ModelClient TestClassname (ModelClient modelClient) + +To test class name in snake case + +To test class name in snake case + +### Example +```csharp +using System; +using System.Diagnostics; +using Org.OpenAPITools.Api; +using Org.OpenAPITools.Client; +using Org.OpenAPITools.Model; + +namespace Example +{ + public class TestClassnameExample + { + public void main() + { + // Configure API key authorization: api_key_query + Configuration.Default.AddApiKey("api_key_query", "YOUR_API_KEY"); + // Uncomment below to setup prefix (e.g. Bearer) for API key, if needed + // Configuration.Default.AddApiKeyPrefix("api_key_query", "Bearer"); + + var apiInstance = new FakeClassnameTags123Api(); + var modelClient = new ModelClient(); // ModelClient | client model + + try + { + // To test class name in snake case + ModelClient result = apiInstance.TestClassname(modelClient); + Debug.WriteLine(result); + } + catch (Exception e) + { + Debug.Print("Exception when calling FakeClassnameTags123Api.TestClassname: " + e.Message ); + } + } + } +} +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **modelClient** | [**ModelClient**](ModelClient.md)| client model | + +### Return type + +[**ModelClient**](ModelClient.md) + +### Authorization + +[api_key_query](../README.md#api_key_query) + +### HTTP request headers + + - **Content-Type**: application/json + - **Accept**: application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/File.md b/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/File.md new file mode 100644 index 00000000000..acf85a4c001 --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/File.md @@ -0,0 +1,9 @@ +# Org.OpenAPITools.Model.File +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**SourceURI** | **string** | Test capitalization | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/FileSchemaTestClass.md b/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/FileSchemaTestClass.md new file mode 100644 index 00000000000..e0820fa4e65 --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/FileSchemaTestClass.md @@ -0,0 +1,10 @@ +# Org.OpenAPITools.Model.FileSchemaTestClass +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**File** | **System.IO.Stream** | | [optional] +**Files** | **List<System.IO.Stream>** | | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/FormatTest.md b/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/FormatTest.md new file mode 100644 index 00000000000..f82c08bd75b --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/FormatTest.md @@ -0,0 +1,21 @@ +# Org.OpenAPITools.Model.FormatTest +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**Integer** | **int?** | | [optional] +**Int32** | **int?** | | [optional] +**Int64** | **long?** | | [optional] +**Number** | **decimal?** | | +**Float** | **float?** | | [optional] +**Double** | **double?** | | [optional] +**String** | **string** | | [optional] +**Byte** | **byte[]** | | +**Binary** | **System.IO.Stream** | | [optional] +**Date** | **DateTime?** | | +**DateTime** | **DateTime?** | | [optional] +**Uuid** | **Guid?** | | [optional] +**Password** | **string** | | + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/HasOnlyReadOnly.md b/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/HasOnlyReadOnly.md new file mode 100644 index 00000000000..95f49de194c --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/HasOnlyReadOnly.md @@ -0,0 +1,10 @@ +# Org.OpenAPITools.Model.HasOnlyReadOnly +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**Bar** | **string** | | [optional] +**Foo** | **string** | | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/List.md b/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/List.md new file mode 100644 index 00000000000..484c2a0992c --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/List.md @@ -0,0 +1,9 @@ +# Org.OpenAPITools.Model.List +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**_123List** | **string** | | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/MapTest.md b/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/MapTest.md new file mode 100644 index 00000000000..2c44f95808a --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/MapTest.md @@ -0,0 +1,12 @@ +# Org.OpenAPITools.Model.MapTest +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**MapMapOfString** | **Dictionary<string, Dictionary<string, string>>** | | [optional] +**MapOfEnumString** | **Dictionary<string, string>** | | [optional] +**DirectMap** | **Dictionary<string, bool?>** | | [optional] +**IndirectMap** | **Dictionary<string, bool?>** | | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/MixedPropertiesAndAdditionalPropertiesClass.md b/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/MixedPropertiesAndAdditionalPropertiesClass.md new file mode 100644 index 00000000000..9b8e2e3434c --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/MixedPropertiesAndAdditionalPropertiesClass.md @@ -0,0 +1,11 @@ +# Org.OpenAPITools.Model.MixedPropertiesAndAdditionalPropertiesClass +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**Uuid** | **Guid?** | | [optional] +**DateTime** | **DateTime?** | | [optional] +**Map** | [**Dictionary<string, Animal>**](Animal.md) | | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/Model200Response.md b/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/Model200Response.md new file mode 100644 index 00000000000..16337f9b6b2 --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/Model200Response.md @@ -0,0 +1,10 @@ +# Org.OpenAPITools.Model.Model200Response +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**Name** | **int?** | | [optional] +**Class** | **string** | | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/ModelClient.md b/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/ModelClient.md new file mode 100644 index 00000000000..ecc7b60ce55 --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/ModelClient.md @@ -0,0 +1,9 @@ +# Org.OpenAPITools.Model.ModelClient +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**__Client** | **string** | | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/Name.md b/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/Name.md new file mode 100644 index 00000000000..e22fef95673 --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/Name.md @@ -0,0 +1,12 @@ +# Org.OpenAPITools.Model.Name +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**_Name** | **int?** | | +**SnakeCase** | **int?** | | [optional] +**Property** | **string** | | [optional] +**_123Number** | **int?** | | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/NumberOnly.md b/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/NumberOnly.md new file mode 100644 index 00000000000..5f00dedf1c3 --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/NumberOnly.md @@ -0,0 +1,9 @@ +# Org.OpenAPITools.Model.NumberOnly +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**JustNumber** | **decimal?** | | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/Order.md b/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/Order.md new file mode 100644 index 00000000000..984bd5ca063 --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/Order.md @@ -0,0 +1,14 @@ +# Org.OpenAPITools.Model.Order +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**Id** | **long?** | | [optional] +**PetId** | **long?** | | [optional] +**Quantity** | **int?** | | [optional] +**ShipDate** | **DateTime?** | | [optional] +**Status** | **string** | Order Status | [optional] +**Complete** | **bool?** | | [optional] [default to false] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/OuterComposite.md b/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/OuterComposite.md new file mode 100644 index 00000000000..4091cd23f2e --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/OuterComposite.md @@ -0,0 +1,11 @@ +# Org.OpenAPITools.Model.OuterComposite +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**MyNumber** | **decimal?** | | [optional] +**MyString** | **string** | | [optional] +**MyBoolean** | **bool?** | | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/OuterEnum.md b/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/OuterEnum.md new file mode 100644 index 00000000000..22713352ca0 --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/OuterEnum.md @@ -0,0 +1,8 @@ +# Org.OpenAPITools.Model.OuterEnum +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/Pet.md b/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/Pet.md new file mode 100644 index 00000000000..0ac711337aa --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/Pet.md @@ -0,0 +1,14 @@ +# Org.OpenAPITools.Model.Pet +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**Id** | **long?** | | [optional] +**Category** | [**Category**](Category.md) | | [optional] +**Name** | **string** | | +**PhotoUrls** | **List<string>** | | +**Tags** | [**List<Tag>**](Tag.md) | | [optional] +**Status** | **string** | pet status in the store | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/PetApi.md b/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/PetApi.md new file mode 100644 index 00000000000..28ba9ebe575 --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/PetApi.md @@ -0,0 +1,593 @@ +# Org.OpenAPITools.Api.PetApi + +All URIs are relative to *http://petstore.swagger.io:80/v2* + +Method | HTTP request | Description +------------- | ------------- | ------------- +[**AddPet**](PetApi.md#addpet) | **POST** /pet | Add a new pet to the store +[**DeletePet**](PetApi.md#deletepet) | **DELETE** /pet/{petId} | Deletes a pet +[**FindPetsByStatus**](PetApi.md#findpetsbystatus) | **GET** /pet/findByStatus | Finds Pets by status +[**FindPetsByTags**](PetApi.md#findpetsbytags) | **GET** /pet/findByTags | Finds Pets by tags +[**GetPetById**](PetApi.md#getpetbyid) | **GET** /pet/{petId} | Find pet by ID +[**UpdatePet**](PetApi.md#updatepet) | **PUT** /pet | Update an existing pet +[**UpdatePetWithForm**](PetApi.md#updatepetwithform) | **POST** /pet/{petId} | Updates a pet in the store with form data +[**UploadFile**](PetApi.md#uploadfile) | **POST** /pet/{petId}/uploadImage | uploads an image +[**UploadFileWithRequiredFile**](PetApi.md#uploadfilewithrequiredfile) | **POST** /fake/{petId}/uploadImageWithRequiredFile | uploads an image (required) + + + +# **AddPet** +> void AddPet (Pet pet) + +Add a new pet to the store + +### Example +```csharp +using System; +using System.Diagnostics; +using Org.OpenAPITools.Api; +using Org.OpenAPITools.Client; +using Org.OpenAPITools.Model; + +namespace Example +{ + public class AddPetExample + { + public void main() + { + // Configure OAuth2 access token for authorization: petstore_auth + Configuration.Default.AccessToken = "YOUR_ACCESS_TOKEN"; + + var apiInstance = new PetApi(); + var pet = new Pet(); // Pet | Pet object that needs to be added to the store + + try + { + // Add a new pet to the store + apiInstance.AddPet(pet); + } + catch (Exception e) + { + Debug.Print("Exception when calling PetApi.AddPet: " + e.Message ); + } + } + } +} +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **pet** | [**Pet**](Pet.md)| Pet object that needs to be added to the store | + +### Return type + +void (empty response body) + +### Authorization + +[petstore_auth](../README.md#petstore_auth) + +### HTTP request headers + + - **Content-Type**: application/json, application/xml + - **Accept**: Not defined + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + + +# **DeletePet** +> void DeletePet (long? petId, string apiKey = null) + +Deletes a pet + +### Example +```csharp +using System; +using System.Diagnostics; +using Org.OpenAPITools.Api; +using Org.OpenAPITools.Client; +using Org.OpenAPITools.Model; + +namespace Example +{ + public class DeletePetExample + { + public void main() + { + // Configure OAuth2 access token for authorization: petstore_auth + Configuration.Default.AccessToken = "YOUR_ACCESS_TOKEN"; + + var apiInstance = new PetApi(); + var petId = 789; // long? | Pet id to delete + var apiKey = apiKey_example; // string | (optional) + + try + { + // Deletes a pet + apiInstance.DeletePet(petId, apiKey); + } + catch (Exception e) + { + Debug.Print("Exception when calling PetApi.DeletePet: " + e.Message ); + } + } + } +} +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **petId** | **long?**| Pet id to delete | + **apiKey** | **string**| | [optional] + +### Return type + +void (empty response body) + +### Authorization + +[petstore_auth](../README.md#petstore_auth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + + +# **FindPetsByStatus** +> List FindPetsByStatus (List status) + +Finds Pets by status + +Multiple status values can be provided with comma separated strings + +### Example +```csharp +using System; +using System.Diagnostics; +using Org.OpenAPITools.Api; +using Org.OpenAPITools.Client; +using Org.OpenAPITools.Model; + +namespace Example +{ + public class FindPetsByStatusExample + { + public void main() + { + // Configure OAuth2 access token for authorization: petstore_auth + Configuration.Default.AccessToken = "YOUR_ACCESS_TOKEN"; + + var apiInstance = new PetApi(); + var status = status_example; // List | Status values that need to be considered for filter + + try + { + // Finds Pets by status + List<Pet> result = apiInstance.FindPetsByStatus(status); + Debug.WriteLine(result); + } + catch (Exception e) + { + Debug.Print("Exception when calling PetApi.FindPetsByStatus: " + e.Message ); + } + } + } +} +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **status** | **List<string>**| Status values that need to be considered for filter | + +### Return type + +[**List**](Pet.md) + +### Authorization + +[petstore_auth](../README.md#petstore_auth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + + +# **FindPetsByTags** +> List FindPetsByTags (List tags) + +Finds Pets by tags + +Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing. + +### Example +```csharp +using System; +using System.Diagnostics; +using Org.OpenAPITools.Api; +using Org.OpenAPITools.Client; +using Org.OpenAPITools.Model; + +namespace Example +{ + public class FindPetsByTagsExample + { + public void main() + { + // Configure OAuth2 access token for authorization: petstore_auth + Configuration.Default.AccessToken = "YOUR_ACCESS_TOKEN"; + + var apiInstance = new PetApi(); + var tags = new List(); // List | Tags to filter by + + try + { + // Finds Pets by tags + List<Pet> result = apiInstance.FindPetsByTags(tags); + Debug.WriteLine(result); + } + catch (Exception e) + { + Debug.Print("Exception when calling PetApi.FindPetsByTags: " + e.Message ); + } + } + } +} +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **tags** | [**List<string>**](string.md)| Tags to filter by | + +### Return type + +[**List**](Pet.md) + +### Authorization + +[petstore_auth](../README.md#petstore_auth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + + +# **GetPetById** +> Pet GetPetById (long? petId) + +Find pet by ID + +Returns a single pet + +### Example +```csharp +using System; +using System.Diagnostics; +using Org.OpenAPITools.Api; +using Org.OpenAPITools.Client; +using Org.OpenAPITools.Model; + +namespace Example +{ + public class GetPetByIdExample + { + public void main() + { + // Configure API key authorization: api_key + Configuration.Default.AddApiKey("api_key", "YOUR_API_KEY"); + // Uncomment below to setup prefix (e.g. Bearer) for API key, if needed + // Configuration.Default.AddApiKeyPrefix("api_key", "Bearer"); + + var apiInstance = new PetApi(); + var petId = 789; // long? | ID of pet to return + + try + { + // Find pet by ID + Pet result = apiInstance.GetPetById(petId); + Debug.WriteLine(result); + } + catch (Exception e) + { + Debug.Print("Exception when calling PetApi.GetPetById: " + e.Message ); + } + } + } +} +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **petId** | **long?**| ID of pet to return | + +### Return type + +[**Pet**](Pet.md) + +### Authorization + +[api_key](../README.md#api_key) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + + +# **UpdatePet** +> void UpdatePet (Pet pet) + +Update an existing pet + +### Example +```csharp +using System; +using System.Diagnostics; +using Org.OpenAPITools.Api; +using Org.OpenAPITools.Client; +using Org.OpenAPITools.Model; + +namespace Example +{ + public class UpdatePetExample + { + public void main() + { + // Configure OAuth2 access token for authorization: petstore_auth + Configuration.Default.AccessToken = "YOUR_ACCESS_TOKEN"; + + var apiInstance = new PetApi(); + var pet = new Pet(); // Pet | Pet object that needs to be added to the store + + try + { + // Update an existing pet + apiInstance.UpdatePet(pet); + } + catch (Exception e) + { + Debug.Print("Exception when calling PetApi.UpdatePet: " + e.Message ); + } + } + } +} +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **pet** | [**Pet**](Pet.md)| Pet object that needs to be added to the store | + +### Return type + +void (empty response body) + +### Authorization + +[petstore_auth](../README.md#petstore_auth) + +### HTTP request headers + + - **Content-Type**: application/json, application/xml + - **Accept**: Not defined + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + + +# **UpdatePetWithForm** +> void UpdatePetWithForm (long? petId, string name = null, string status = null) + +Updates a pet in the store with form data + +### Example +```csharp +using System; +using System.Diagnostics; +using Org.OpenAPITools.Api; +using Org.OpenAPITools.Client; +using Org.OpenAPITools.Model; + +namespace Example +{ + public class UpdatePetWithFormExample + { + public void main() + { + // Configure OAuth2 access token for authorization: petstore_auth + Configuration.Default.AccessToken = "YOUR_ACCESS_TOKEN"; + + var apiInstance = new PetApi(); + var petId = 789; // long? | ID of pet that needs to be updated + var name = name_example; // string | Updated name of the pet (optional) + var status = status_example; // string | Updated status of the pet (optional) + + try + { + // Updates a pet in the store with form data + apiInstance.UpdatePetWithForm(petId, name, status); + } + catch (Exception e) + { + Debug.Print("Exception when calling PetApi.UpdatePetWithForm: " + e.Message ); + } + } + } +} +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **petId** | **long?**| ID of pet that needs to be updated | + **name** | **string**| Updated name of the pet | [optional] + **status** | **string**| Updated status of the pet | [optional] + +### Return type + +void (empty response body) + +### Authorization + +[petstore_auth](../README.md#petstore_auth) + +### HTTP request headers + + - **Content-Type**: application/x-www-form-urlencoded + - **Accept**: Not defined + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + + +# **UploadFile** +> ApiResponse UploadFile (long? petId, string additionalMetadata = null, System.IO.Stream file = null) + +uploads an image + +### Example +```csharp +using System; +using System.Diagnostics; +using Org.OpenAPITools.Api; +using Org.OpenAPITools.Client; +using Org.OpenAPITools.Model; + +namespace Example +{ + public class UploadFileExample + { + public void main() + { + // Configure OAuth2 access token for authorization: petstore_auth + Configuration.Default.AccessToken = "YOUR_ACCESS_TOKEN"; + + var apiInstance = new PetApi(); + var petId = 789; // long? | ID of pet to update + var additionalMetadata = additionalMetadata_example; // string | Additional data to pass to server (optional) + var file = BINARY_DATA_HERE; // System.IO.Stream | file to upload (optional) + + try + { + // uploads an image + ApiResponse result = apiInstance.UploadFile(petId, additionalMetadata, file); + Debug.WriteLine(result); + } + catch (Exception e) + { + Debug.Print("Exception when calling PetApi.UploadFile: " + e.Message ); + } + } + } +} +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **petId** | **long?**| ID of pet to update | + **additionalMetadata** | **string**| Additional data to pass to server | [optional] + **file** | **System.IO.Stream****System.IO.Stream**| file to upload | [optional] + +### Return type + +[**ApiResponse**](ApiResponse.md) + +### Authorization + +[petstore_auth](../README.md#petstore_auth) + +### HTTP request headers + + - **Content-Type**: multipart/form-data + - **Accept**: application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + + +# **UploadFileWithRequiredFile** +> ApiResponse UploadFileWithRequiredFile (long? petId, System.IO.Stream requiredFile, string additionalMetadata = null) + +uploads an image (required) + +### Example +```csharp +using System; +using System.Diagnostics; +using Org.OpenAPITools.Api; +using Org.OpenAPITools.Client; +using Org.OpenAPITools.Model; + +namespace Example +{ + public class UploadFileWithRequiredFileExample + { + public void main() + { + // Configure OAuth2 access token for authorization: petstore_auth + Configuration.Default.AccessToken = "YOUR_ACCESS_TOKEN"; + + var apiInstance = new PetApi(); + var petId = 789; // long? | ID of pet to update + var requiredFile = BINARY_DATA_HERE; // System.IO.Stream | file to upload + var additionalMetadata = additionalMetadata_example; // string | Additional data to pass to server (optional) + + try + { + // uploads an image (required) + ApiResponse result = apiInstance.UploadFileWithRequiredFile(petId, requiredFile, additionalMetadata); + Debug.WriteLine(result); + } + catch (Exception e) + { + Debug.Print("Exception when calling PetApi.UploadFileWithRequiredFile: " + e.Message ); + } + } + } +} +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **petId** | **long?**| ID of pet to update | + **requiredFile** | **System.IO.Stream****System.IO.Stream**| file to upload | + **additionalMetadata** | **string**| Additional data to pass to server | [optional] + +### Return type + +[**ApiResponse**](ApiResponse.md) + +### Authorization + +[petstore_auth](../README.md#petstore_auth) + +### HTTP request headers + + - **Content-Type**: multipart/form-data + - **Accept**: application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/ReadOnlyFirst.md b/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/ReadOnlyFirst.md new file mode 100644 index 00000000000..6c2571cb48f --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/ReadOnlyFirst.md @@ -0,0 +1,10 @@ +# Org.OpenAPITools.Model.ReadOnlyFirst +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**Bar** | **string** | | [optional] +**Baz** | **string** | | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/Return.md b/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/Return.md new file mode 100644 index 00000000000..21a269c63f4 --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/Return.md @@ -0,0 +1,9 @@ +# Org.OpenAPITools.Model.Return +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**_Return** | **int?** | | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/SpecialModelName.md b/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/SpecialModelName.md new file mode 100644 index 00000000000..306e65392a2 --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/SpecialModelName.md @@ -0,0 +1,9 @@ +# Org.OpenAPITools.Model.SpecialModelName +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**SpecialPropertyName** | **long?** | | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/StoreApi.md b/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/StoreApi.md new file mode 100644 index 00000000000..ff7608854f8 --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/StoreApi.md @@ -0,0 +1,254 @@ +# Org.OpenAPITools.Api.StoreApi + +All URIs are relative to *http://petstore.swagger.io:80/v2* + +Method | HTTP request | Description +------------- | ------------- | ------------- +[**DeleteOrder**](StoreApi.md#deleteorder) | **DELETE** /store/order/{order_id} | Delete purchase order by ID +[**GetInventory**](StoreApi.md#getinventory) | **GET** /store/inventory | Returns pet inventories by status +[**GetOrderById**](StoreApi.md#getorderbyid) | **GET** /store/order/{order_id} | Find purchase order by ID +[**PlaceOrder**](StoreApi.md#placeorder) | **POST** /store/order | Place an order for a pet + + + +# **DeleteOrder** +> void DeleteOrder (string orderId) + +Delete purchase order by ID + +For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors + +### Example +```csharp +using System; +using System.Diagnostics; +using Org.OpenAPITools.Api; +using Org.OpenAPITools.Client; +using Org.OpenAPITools.Model; + +namespace Example +{ + public class DeleteOrderExample + { + public void main() + { + var apiInstance = new StoreApi(); + var orderId = orderId_example; // string | ID of the order that needs to be deleted + + try + { + // Delete purchase order by ID + apiInstance.DeleteOrder(orderId); + } + catch (Exception e) + { + Debug.Print("Exception when calling StoreApi.DeleteOrder: " + e.Message ); + } + } + } +} +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **orderId** | **string**| ID of the order that needs to be deleted | + +### Return type + +void (empty response body) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + + +# **GetInventory** +> Dictionary GetInventory () + +Returns pet inventories by status + +Returns a map of status codes to quantities + +### Example +```csharp +using System; +using System.Diagnostics; +using Org.OpenAPITools.Api; +using Org.OpenAPITools.Client; +using Org.OpenAPITools.Model; + +namespace Example +{ + public class GetInventoryExample + { + public void main() + { + // Configure API key authorization: api_key + Configuration.Default.AddApiKey("api_key", "YOUR_API_KEY"); + // Uncomment below to setup prefix (e.g. Bearer) for API key, if needed + // Configuration.Default.AddApiKeyPrefix("api_key", "Bearer"); + + var apiInstance = new StoreApi(); + + try + { + // Returns pet inventories by status + Dictionary<string, int?> result = apiInstance.GetInventory(); + Debug.WriteLine(result); + } + catch (Exception e) + { + Debug.Print("Exception when calling StoreApi.GetInventory: " + e.Message ); + } + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +**Dictionary** + +### Authorization + +[api_key](../README.md#api_key) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + + +# **GetOrderById** +> Order GetOrderById (long? orderId) + +Find purchase order by ID + +For valid response try integer IDs with value <= 5 or > 10. Other values will generated exceptions + +### Example +```csharp +using System; +using System.Diagnostics; +using Org.OpenAPITools.Api; +using Org.OpenAPITools.Client; +using Org.OpenAPITools.Model; + +namespace Example +{ + public class GetOrderByIdExample + { + public void main() + { + var apiInstance = new StoreApi(); + var orderId = 789; // long? | ID of pet that needs to be fetched + + try + { + // Find purchase order by ID + Order result = apiInstance.GetOrderById(orderId); + Debug.WriteLine(result); + } + catch (Exception e) + { + Debug.Print("Exception when calling StoreApi.GetOrderById: " + e.Message ); + } + } + } +} +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **orderId** | **long?**| ID of pet that needs to be fetched | + +### Return type + +[**Order**](Order.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + + +# **PlaceOrder** +> Order PlaceOrder (Order order) + +Place an order for a pet + +### Example +```csharp +using System; +using System.Diagnostics; +using Org.OpenAPITools.Api; +using Org.OpenAPITools.Client; +using Org.OpenAPITools.Model; + +namespace Example +{ + public class PlaceOrderExample + { + public void main() + { + var apiInstance = new StoreApi(); + var order = new Order(); // Order | order placed for purchasing the pet + + try + { + // Place an order for a pet + Order result = apiInstance.PlaceOrder(order); + Debug.WriteLine(result); + } + catch (Exception e) + { + Debug.Print("Exception when calling StoreApi.PlaceOrder: " + e.Message ); + } + } + } +} +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **order** | [**Order**](Order.md)| order placed for purchasing the pet | + +### Return type + +[**Order**](Order.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/StringBooleanMap.md b/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/StringBooleanMap.md new file mode 100644 index 00000000000..6e7a71368df --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/StringBooleanMap.md @@ -0,0 +1,8 @@ +# Org.OpenAPITools.Model.StringBooleanMap +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/Tag.md b/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/Tag.md new file mode 100644 index 00000000000..6a76c28595f --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/Tag.md @@ -0,0 +1,10 @@ +# Org.OpenAPITools.Model.Tag +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**Id** | **long?** | | [optional] +**Name** | **string** | | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/User.md b/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/User.md new file mode 100644 index 00000000000..04dd24a3423 --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/User.md @@ -0,0 +1,16 @@ +# Org.OpenAPITools.Model.User +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**Id** | **long?** | | [optional] +**Username** | **string** | | [optional] +**FirstName** | **string** | | [optional] +**LastName** | **string** | | [optional] +**Email** | **string** | | [optional] +**Password** | **string** | | [optional] +**Phone** | **string** | | [optional] +**UserStatus** | **int?** | User Status | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/UserApi.md b/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/UserApi.md new file mode 100644 index 00000000000..857ab27084c --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/docs/UserApi.md @@ -0,0 +1,488 @@ +# Org.OpenAPITools.Api.UserApi + +All URIs are relative to *http://petstore.swagger.io:80/v2* + +Method | HTTP request | Description +------------- | ------------- | ------------- +[**CreateUser**](UserApi.md#createuser) | **POST** /user | Create user +[**CreateUsersWithArrayInput**](UserApi.md#createuserswitharrayinput) | **POST** /user/createWithArray | Creates list of users with given input array +[**CreateUsersWithListInput**](UserApi.md#createuserswithlistinput) | **POST** /user/createWithList | Creates list of users with given input array +[**DeleteUser**](UserApi.md#deleteuser) | **DELETE** /user/{username} | Delete user +[**GetUserByName**](UserApi.md#getuserbyname) | **GET** /user/{username} | Get user by user name +[**LoginUser**](UserApi.md#loginuser) | **GET** /user/login | Logs user into the system +[**LogoutUser**](UserApi.md#logoutuser) | **GET** /user/logout | Logs out current logged in user session +[**UpdateUser**](UserApi.md#updateuser) | **PUT** /user/{username} | Updated user + + + +# **CreateUser** +> void CreateUser (User user) + +Create user + +This can only be done by the logged in user. + +### Example +```csharp +using System; +using System.Diagnostics; +using Org.OpenAPITools.Api; +using Org.OpenAPITools.Client; +using Org.OpenAPITools.Model; + +namespace Example +{ + public class CreateUserExample + { + public void main() + { + var apiInstance = new UserApi(); + var user = new User(); // User | Created user object + + try + { + // Create user + apiInstance.CreateUser(user); + } + catch (Exception e) + { + Debug.Print("Exception when calling UserApi.CreateUser: " + e.Message ); + } + } + } +} +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **user** | [**User**](User.md)| Created user object | + +### Return type + +void (empty response body) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + + +# **CreateUsersWithArrayInput** +> void CreateUsersWithArrayInput (List user) + +Creates list of users with given input array + +### Example +```csharp +using System; +using System.Diagnostics; +using Org.OpenAPITools.Api; +using Org.OpenAPITools.Client; +using Org.OpenAPITools.Model; + +namespace Example +{ + public class CreateUsersWithArrayInputExample + { + public void main() + { + var apiInstance = new UserApi(); + var user = new List(); // List | List of user object + + try + { + // Creates list of users with given input array + apiInstance.CreateUsersWithArrayInput(user); + } + catch (Exception e) + { + Debug.Print("Exception when calling UserApi.CreateUsersWithArrayInput: " + e.Message ); + } + } + } +} +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **user** | [**List<User>**](List.md)| List of user object | + +### Return type + +void (empty response body) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + + +# **CreateUsersWithListInput** +> void CreateUsersWithListInput (List user) + +Creates list of users with given input array + +### Example +```csharp +using System; +using System.Diagnostics; +using Org.OpenAPITools.Api; +using Org.OpenAPITools.Client; +using Org.OpenAPITools.Model; + +namespace Example +{ + public class CreateUsersWithListInputExample + { + public void main() + { + var apiInstance = new UserApi(); + var user = new List(); // List | List of user object + + try + { + // Creates list of users with given input array + apiInstance.CreateUsersWithListInput(user); + } + catch (Exception e) + { + Debug.Print("Exception when calling UserApi.CreateUsersWithListInput: " + e.Message ); + } + } + } +} +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **user** | [**List<User>**](List.md)| List of user object | + +### Return type + +void (empty response body) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + + +# **DeleteUser** +> void DeleteUser (string username) + +Delete user + +This can only be done by the logged in user. + +### Example +```csharp +using System; +using System.Diagnostics; +using Org.OpenAPITools.Api; +using Org.OpenAPITools.Client; +using Org.OpenAPITools.Model; + +namespace Example +{ + public class DeleteUserExample + { + public void main() + { + var apiInstance = new UserApi(); + var username = username_example; // string | The name that needs to be deleted + + try + { + // Delete user + apiInstance.DeleteUser(username); + } + catch (Exception e) + { + Debug.Print("Exception when calling UserApi.DeleteUser: " + e.Message ); + } + } + } +} +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **username** | **string**| The name that needs to be deleted | + +### Return type + +void (empty response body) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + + +# **GetUserByName** +> User GetUserByName (string username) + +Get user by user name + +### Example +```csharp +using System; +using System.Diagnostics; +using Org.OpenAPITools.Api; +using Org.OpenAPITools.Client; +using Org.OpenAPITools.Model; + +namespace Example +{ + public class GetUserByNameExample + { + public void main() + { + var apiInstance = new UserApi(); + var username = username_example; // string | The name that needs to be fetched. Use user1 for testing. + + try + { + // Get user by user name + User result = apiInstance.GetUserByName(username); + Debug.WriteLine(result); + } + catch (Exception e) + { + Debug.Print("Exception when calling UserApi.GetUserByName: " + e.Message ); + } + } + } +} +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **username** | **string**| The name that needs to be fetched. Use user1 for testing. | + +### Return type + +[**User**](User.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + + +# **LoginUser** +> string LoginUser (string username, string password) + +Logs user into the system + +### Example +```csharp +using System; +using System.Diagnostics; +using Org.OpenAPITools.Api; +using Org.OpenAPITools.Client; +using Org.OpenAPITools.Model; + +namespace Example +{ + public class LoginUserExample + { + public void main() + { + var apiInstance = new UserApi(); + var username = username_example; // string | The user name for login + var password = password_example; // string | The password for login in clear text + + try + { + // Logs user into the system + string result = apiInstance.LoginUser(username, password); + Debug.WriteLine(result); + } + catch (Exception e) + { + Debug.Print("Exception when calling UserApi.LoginUser: " + e.Message ); + } + } + } +} +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **username** | **string**| The user name for login | + **password** | **string**| The password for login in clear text | + +### Return type + +**string** + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + + +# **LogoutUser** +> void LogoutUser () + +Logs out current logged in user session + +### Example +```csharp +using System; +using System.Diagnostics; +using Org.OpenAPITools.Api; +using Org.OpenAPITools.Client; +using Org.OpenAPITools.Model; + +namespace Example +{ + public class LogoutUserExample + { + public void main() + { + var apiInstance = new UserApi(); + + try + { + // Logs out current logged in user session + apiInstance.LogoutUser(); + } + catch (Exception e) + { + Debug.Print("Exception when calling UserApi.LogoutUser: " + e.Message ); + } + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +void (empty response body) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + + +# **UpdateUser** +> void UpdateUser (string username, User user) + +Updated user + +This can only be done by the logged in user. + +### Example +```csharp +using System; +using System.Diagnostics; +using Org.OpenAPITools.Api; +using Org.OpenAPITools.Client; +using Org.OpenAPITools.Model; + +namespace Example +{ + public class UpdateUserExample + { + public void main() + { + var apiInstance = new UserApi(); + var username = username_example; // string | name that need to be deleted + var user = new User(); // User | Updated user object + + try + { + // Updated user + apiInstance.UpdateUser(username, user); + } + catch (Exception e) + { + Debug.Print("Exception when calling UserApi.UpdateUser: " + e.Message ); + } + } + } +} +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **username** | **string**| name that need to be deleted | + **user** | [**User**](User.md)| Updated user object | + +### Return type + +void (empty response body) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/git_push.sh b/samples/client/petstore/csharp-refactor/OpenAPIClient/git_push.sh new file mode 100644 index 00000000000..4d22bfef4d7 --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/git_push.sh @@ -0,0 +1,52 @@ +#!/bin/sh +# ref: https://help.github.com/articles/adding-an-existing-project-to-github-using-the-command-line/ +# +# Usage example: /bin/sh ./git_push.sh wing328 openapi-petstore-perl "minor update" + +git_user_id=$1 +git_repo_id=$2 +release_note=$3 + +if [ "$git_user_id" = "" ]; then + git_user_id="GIT_USER_ID" + echo "[INFO] No command line input provided. Set \$git_user_id to $git_user_id" +fi + +if [ "$git_repo_id" = "" ]; then + git_repo_id="GIT_REPO_ID" + echo "[INFO] No command line input provided. Set \$git_repo_id to $git_repo_id" +fi + +if [ "$release_note" = "" ]; then + release_note="Minor update" + echo "[INFO] No command line input provided. Set \$release_note to $release_note" +fi + +# Initialize the local directory as a Git repository +git init + +# Adds the files in the local repository and stages them for commit. +git add . + +# Commits the tracked changes and prepares them to be pushed to a remote repository. +git commit -m "$release_note" + +# Sets the new remote +git_remote=`git remote` +if [ "$git_remote" = "" ]; then # git remote not defined + + if [ "$GIT_TOKEN" = "" ]; then + echo "[INFO] \$GIT_TOKEN (environment variable) is not set. Using the git credential in your environment." + git remote add origin https://github.com/${git_user_id}/${git_repo_id}.git + else + git remote add origin https://${git_user_id}:${GIT_TOKEN}@github.com/${git_user_id}/${git_repo_id}.git + fi + +fi + +git pull origin master + +# Pushes (Forces) the changes in the local repository up to the remote repository +echo "Git pushing to https://github.com/${git_user_id}/${git_repo_id}.git" +git push origin master 2>&1 | grep -v 'To https' + diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/mono_nunit_test.sh b/samples/client/petstore/csharp-refactor/OpenAPIClient/mono_nunit_test.sh new file mode 100644 index 00000000000..039eba8ed42 --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/mono_nunit_test.sh @@ -0,0 +1,22 @@ +#!/usr/bin/env bash +# +# Generated by: https://github.com/openapitools/openapi-generator.git +# + +wget -nc https://dist.nuget.org/win-x86-commandline/latest/nuget.exe +mozroots --import --sync + +echo "[INFO] remove bin/Debug/Org.OpenAPITools.Test.dll" +rm src/Org.OpenAPITools.Test/bin/Debug/Org.OpenAPITools.Test.dll 2> /dev/null + +echo "[INFO] install NUnit runners via NuGet" +wget -nc https://dist.nuget.org/win-x86-commandline/latest/nuget.exe +mozroots --import --sync +mono nuget.exe install src/Org.OpenAPITools.Test/packages.config -o packages + +echo "[INFO] Install NUnit runners via NuGet" +mono nuget.exe install NUnit.Runners -Version 2.6.4 -OutputDirectory packages + +echo "[INFO] Build the solution and run the unit test" +xbuild Org.OpenAPITools.sln && \ + mono ./packages/NUnit.Runners.2.6.4/tools/nunit-console.exe src/Org.OpenAPITools.Test/bin/Debug/Org.OpenAPITools.Test.dll diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Api/AnotherFakeApiTests.cs b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Api/AnotherFakeApiTests.cs new file mode 100644 index 00000000000..e888d01f446 --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Api/AnotherFakeApiTests.cs @@ -0,0 +1,81 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * OpenAPI spec version: 1.0.0 + * + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + +using System; +using System.IO; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Linq; +using System.Reflection; +using RestSharp; +using NUnit.Framework; + +using Org.OpenAPITools.Client; +using Org.OpenAPITools.Api; +using Org.OpenAPITools.Model; + +namespace Org.OpenAPITools.Test +{ + ///

+ /// Class for testing AnotherFakeApi + /// + /// + /// This file is automatically generated by OpenAPI Generator (https://openapi-generator.tech). + /// Please update the test case below to test the API endpoint. + /// + [TestFixture] + public class AnotherFakeApiTests + { + private AnotherFakeApi instance; + + /// + /// Setup before each unit test + /// + [SetUp] + public void Init() + { + instance = new AnotherFakeApi(); + } + + /// + /// Clean up after each unit test + /// + [TearDown] + public void Cleanup() + { + + } + + /// + /// Test an instance of AnotherFakeApi + /// + [Test] + public void InstanceTest() + { + // TODO uncomment below to test 'IsInstanceOfType' AnotherFakeApi + //Assert.IsInstanceOfType(typeof(AnotherFakeApi), instance, "instance is a AnotherFakeApi"); + } + + + /// + /// Test Call123TestSpecialTags + /// + [Test] + public void Call123TestSpecialTagsTest() + { + // TODO uncomment below to test the method and replace null with proper value + //ModelClient modelClient = null; + //var response = instance.Call123TestSpecialTags(modelClient); + //Assert.IsInstanceOf (response, "response is ModelClient"); + } + + } + +} diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Api/FakeApiTests.cs b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Api/FakeApiTests.cs new file mode 100644 index 00000000000..79feb5e5d8f --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Api/FakeApiTests.cs @@ -0,0 +1,223 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * OpenAPI spec version: 1.0.0 + * + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + +using System; +using System.IO; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Linq; +using System.Reflection; +using RestSharp; +using NUnit.Framework; + +using Org.OpenAPITools.Client; +using Org.OpenAPITools.Api; +using Org.OpenAPITools.Model; + +namespace Org.OpenAPITools.Test +{ + /// + /// Class for testing FakeApi + /// + /// + /// This file is automatically generated by OpenAPI Generator (https://openapi-generator.tech). + /// Please update the test case below to test the API endpoint. + /// + [TestFixture] + public class FakeApiTests + { + private FakeApi instance; + + /// + /// Setup before each unit test + /// + [SetUp] + public void Init() + { + instance = new FakeApi(); + } + + /// + /// Clean up after each unit test + /// + [TearDown] + public void Cleanup() + { + + } + + /// + /// Test an instance of FakeApi + /// + [Test] + public void InstanceTest() + { + // TODO uncomment below to test 'IsInstanceOfType' FakeApi + //Assert.IsInstanceOfType(typeof(FakeApi), instance, "instance is a FakeApi"); + } + + + /// + /// Test FakeOuterBooleanSerialize + /// + [Test] + public void FakeOuterBooleanSerializeTest() + { + // TODO uncomment below to test the method and replace null with proper value + //bool? body = null; + //var response = instance.FakeOuterBooleanSerialize(body); + //Assert.IsInstanceOf (response, "response is bool?"); + } + + /// + /// Test FakeOuterCompositeSerialize + /// + [Test] + public void FakeOuterCompositeSerializeTest() + { + // TODO uncomment below to test the method and replace null with proper value + //OuterComposite outerComposite = null; + //var response = instance.FakeOuterCompositeSerialize(outerComposite); + //Assert.IsInstanceOf (response, "response is OuterComposite"); + } + + /// + /// Test FakeOuterNumberSerialize + /// + [Test] + public void FakeOuterNumberSerializeTest() + { + // TODO uncomment below to test the method and replace null with proper value + //decimal? body = null; + //var response = instance.FakeOuterNumberSerialize(body); + //Assert.IsInstanceOf (response, "response is decimal?"); + } + + /// + /// Test FakeOuterStringSerialize + /// + [Test] + public void FakeOuterStringSerializeTest() + { + // TODO uncomment below to test the method and replace null with proper value + //string body = null; + //var response = instance.FakeOuterStringSerialize(body); + //Assert.IsInstanceOf (response, "response is string"); + } + + /// + /// Test TestBodyWithFileSchema + /// + [Test] + public void TestBodyWithFileSchemaTest() + { + // TODO uncomment below to test the method and replace null with proper value + //FileSchemaTestClass fileSchemaTestClass = null; + //instance.TestBodyWithFileSchema(fileSchemaTestClass); + + } + + /// + /// Test TestBodyWithQueryParams + /// + [Test] + public void TestBodyWithQueryParamsTest() + { + // TODO uncomment below to test the method and replace null with proper value + //string query = null; + //User user = null; + //instance.TestBodyWithQueryParams(query, user); + + } + + /// + /// Test TestClientModel + /// + [Test] + public void TestClientModelTest() + { + // TODO uncomment below to test the method and replace null with proper value + //ModelClient modelClient = null; + //var response = instance.TestClientModel(modelClient); + //Assert.IsInstanceOf (response, "response is ModelClient"); + } + + /// + /// Test TestEndpointParameters + /// + [Test] + public void TestEndpointParametersTest() + { + // TODO uncomment below to test the method and replace null with proper value + //decimal? number = null; + //double? _double = null; + //string patternWithoutDelimiter = null; + //byte[] _byte = null; + //int? integer = null; + //int? int32 = null; + //long? int64 = null; + //float? _float = null; + //string _string = null; + //System.IO.Stream binary = null; + //DateTime? date = null; + //DateTime? dateTime = null; + //string password = null; + //string callback = null; + //instance.TestEndpointParameters(number, _double, patternWithoutDelimiter, _byte, integer, int32, int64, _float, _string, binary, date, dateTime, password, callback); + + } + + /// + /// Test TestEnumParameters + /// + [Test] + public void TestEnumParametersTest() + { + // TODO uncomment below to test the method and replace null with proper value + //List enumHeaderStringArray = null; + //string enumHeaderString = null; + //List enumQueryStringArray = null; + //string enumQueryString = null; + //int? enumQueryInteger = null; + //double? enumQueryDouble = null; + //List enumFormStringArray = null; + //string enumFormString = null; + //instance.TestEnumParameters(enumHeaderStringArray, enumHeaderString, enumQueryStringArray, enumQueryString, enumQueryInteger, enumQueryDouble, enumFormStringArray, enumFormString); + + } + + /// + /// Test TestInlineAdditionalProperties + /// + [Test] + public void TestInlineAdditionalPropertiesTest() + { + // TODO uncomment below to test the method and replace null with proper value + //Dictionary requestBody = null; + //instance.TestInlineAdditionalProperties(requestBody); + + } + + /// + /// Test TestJsonFormData + /// + [Test] + public void TestJsonFormDataTest() + { + // TODO uncomment below to test the method and replace null with proper value + //string param = null; + //string param2 = null; + //instance.TestJsonFormData(param, param2); + + } + + } + +} diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Api/FakeClassnameTags123ApiTests.cs b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Api/FakeClassnameTags123ApiTests.cs new file mode 100644 index 00000000000..57afc7f80ad --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Api/FakeClassnameTags123ApiTests.cs @@ -0,0 +1,81 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * OpenAPI spec version: 1.0.0 + * + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + +using System; +using System.IO; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Linq; +using System.Reflection; +using RestSharp; +using NUnit.Framework; + +using Org.OpenAPITools.Client; +using Org.OpenAPITools.Api; +using Org.OpenAPITools.Model; + +namespace Org.OpenAPITools.Test +{ + /// + /// Class for testing FakeClassnameTags123Api + /// + /// + /// This file is automatically generated by OpenAPI Generator (https://openapi-generator.tech). + /// Please update the test case below to test the API endpoint. + /// + [TestFixture] + public class FakeClassnameTags123ApiTests + { + private FakeClassnameTags123Api instance; + + /// + /// Setup before each unit test + /// + [SetUp] + public void Init() + { + instance = new FakeClassnameTags123Api(); + } + + /// + /// Clean up after each unit test + /// + [TearDown] + public void Cleanup() + { + + } + + /// + /// Test an instance of FakeClassnameTags123Api + /// + [Test] + public void InstanceTest() + { + // TODO uncomment below to test 'IsInstanceOfType' FakeClassnameTags123Api + //Assert.IsInstanceOfType(typeof(FakeClassnameTags123Api), instance, "instance is a FakeClassnameTags123Api"); + } + + + /// + /// Test TestClassname + /// + [Test] + public void TestClassnameTest() + { + // TODO uncomment below to test the method and replace null with proper value + //ModelClient modelClient = null; + //var response = instance.TestClassname(modelClient); + //Assert.IsInstanceOf (response, "response is ModelClient"); + } + + } + +} diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Api/PetApiTests.cs b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Api/PetApiTests.cs new file mode 100644 index 00000000000..1b78d0a12f9 --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Api/PetApiTests.cs @@ -0,0 +1,184 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * OpenAPI spec version: 1.0.0 + * + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + +using System; +using System.IO; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Linq; +using System.Reflection; +using RestSharp; +using NUnit.Framework; + +using Org.OpenAPITools.Client; +using Org.OpenAPITools.Api; +using Org.OpenAPITools.Model; + +namespace Org.OpenAPITools.Test +{ + /// + /// Class for testing PetApi + /// + /// + /// This file is automatically generated by OpenAPI Generator (https://openapi-generator.tech). + /// Please update the test case below to test the API endpoint. + /// + [TestFixture] + public class PetApiTests + { + private PetApi instance; + + /// + /// Setup before each unit test + /// + [SetUp] + public void Init() + { + instance = new PetApi(); + } + + /// + /// Clean up after each unit test + /// + [TearDown] + public void Cleanup() + { + + } + + /// + /// Test an instance of PetApi + /// + [Test] + public void InstanceTest() + { + // TODO uncomment below to test 'IsInstanceOfType' PetApi + //Assert.IsInstanceOfType(typeof(PetApi), instance, "instance is a PetApi"); + } + + + /// + /// Test AddPet + /// + [Test] + public void AddPetTest() + { + // TODO uncomment below to test the method and replace null with proper value + //Pet pet = null; + //instance.AddPet(pet); + + } + + /// + /// Test DeletePet + /// + [Test] + public void DeletePetTest() + { + // TODO uncomment below to test the method and replace null with proper value + //long? petId = null; + //string apiKey = null; + //instance.DeletePet(petId, apiKey); + + } + + /// + /// Test FindPetsByStatus + /// + [Test] + public void FindPetsByStatusTest() + { + // TODO uncomment below to test the method and replace null with proper value + //List status = null; + //var response = instance.FindPetsByStatus(status); + //Assert.IsInstanceOf> (response, "response is List"); + } + + /// + /// Test FindPetsByTags + /// + [Test] + public void FindPetsByTagsTest() + { + // TODO uncomment below to test the method and replace null with proper value + //List tags = null; + //var response = instance.FindPetsByTags(tags); + //Assert.IsInstanceOf> (response, "response is List"); + } + + /// + /// Test GetPetById + /// + [Test] + public void GetPetByIdTest() + { + // TODO uncomment below to test the method and replace null with proper value + //long? petId = null; + //var response = instance.GetPetById(petId); + //Assert.IsInstanceOf (response, "response is Pet"); + } + + /// + /// Test UpdatePet + /// + [Test] + public void UpdatePetTest() + { + // TODO uncomment below to test the method and replace null with proper value + //Pet pet = null; + //instance.UpdatePet(pet); + + } + + /// + /// Test UpdatePetWithForm + /// + [Test] + public void UpdatePetWithFormTest() + { + // TODO uncomment below to test the method and replace null with proper value + //long? petId = null; + //string name = null; + //string status = null; + //instance.UpdatePetWithForm(petId, name, status); + + } + + /// + /// Test UploadFile + /// + [Test] + public void UploadFileTest() + { + // TODO uncomment below to test the method and replace null with proper value + //long? petId = null; + //string additionalMetadata = null; + //System.IO.Stream file = null; + //var response = instance.UploadFile(petId, additionalMetadata, file); + //Assert.IsInstanceOf (response, "response is ApiResponse"); + } + + /// + /// Test UploadFileWithRequiredFile + /// + [Test] + public void UploadFileWithRequiredFileTest() + { + // TODO uncomment below to test the method and replace null with proper value + //long? petId = null; + //System.IO.Stream requiredFile = null; + //string additionalMetadata = null; + //var response = instance.UploadFileWithRequiredFile(petId, requiredFile, additionalMetadata); + //Assert.IsInstanceOf (response, "response is ApiResponse"); + } + + } + +} diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Api/StoreApiTests.cs b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Api/StoreApiTests.cs new file mode 100644 index 00000000000..20a28424ae0 --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Api/StoreApiTests.cs @@ -0,0 +1,116 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * OpenAPI spec version: 1.0.0 + * + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + +using System; +using System.IO; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Linq; +using System.Reflection; +using RestSharp; +using NUnit.Framework; + +using Org.OpenAPITools.Client; +using Org.OpenAPITools.Api; +using Org.OpenAPITools.Model; + +namespace Org.OpenAPITools.Test +{ + /// + /// Class for testing StoreApi + /// + /// + /// This file is automatically generated by OpenAPI Generator (https://openapi-generator.tech). + /// Please update the test case below to test the API endpoint. + /// + [TestFixture] + public class StoreApiTests + { + private StoreApi instance; + + /// + /// Setup before each unit test + /// + [SetUp] + public void Init() + { + instance = new StoreApi(); + } + + /// + /// Clean up after each unit test + /// + [TearDown] + public void Cleanup() + { + + } + + /// + /// Test an instance of StoreApi + /// + [Test] + public void InstanceTest() + { + // TODO uncomment below to test 'IsInstanceOfType' StoreApi + //Assert.IsInstanceOfType(typeof(StoreApi), instance, "instance is a StoreApi"); + } + + + /// + /// Test DeleteOrder + /// + [Test] + public void DeleteOrderTest() + { + // TODO uncomment below to test the method and replace null with proper value + //string orderId = null; + //instance.DeleteOrder(orderId); + + } + + /// + /// Test GetInventory + /// + [Test] + public void GetInventoryTest() + { + // TODO uncomment below to test the method and replace null with proper value + //var response = instance.GetInventory(); + //Assert.IsInstanceOf> (response, "response is Dictionary"); + } + + /// + /// Test GetOrderById + /// + [Test] + public void GetOrderByIdTest() + { + // TODO uncomment below to test the method and replace null with proper value + //long? orderId = null; + //var response = instance.GetOrderById(orderId); + //Assert.IsInstanceOf (response, "response is Order"); + } + + /// + /// Test PlaceOrder + /// + [Test] + public void PlaceOrderTest() + { + // TODO uncomment below to test the method and replace null with proper value + //Order order = null; + //var response = instance.PlaceOrder(order); + //Assert.IsInstanceOf (response, "response is Order"); + } + + } + +} diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Api/UserApiTests.cs b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Api/UserApiTests.cs new file mode 100644 index 00000000000..6abe2c9b542 --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Api/UserApiTests.cs @@ -0,0 +1,166 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * OpenAPI spec version: 1.0.0 + * + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + +using System; +using System.IO; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Linq; +using System.Reflection; +using RestSharp; +using NUnit.Framework; + +using Org.OpenAPITools.Client; +using Org.OpenAPITools.Api; +using Org.OpenAPITools.Model; + +namespace Org.OpenAPITools.Test +{ + /// + /// Class for testing UserApi + /// + /// + /// This file is automatically generated by OpenAPI Generator (https://openapi-generator.tech). + /// Please update the test case below to test the API endpoint. + /// + [TestFixture] + public class UserApiTests + { + private UserApi instance; + + /// + /// Setup before each unit test + /// + [SetUp] + public void Init() + { + instance = new UserApi(); + } + + /// + /// Clean up after each unit test + /// + [TearDown] + public void Cleanup() + { + + } + + /// + /// Test an instance of UserApi + /// + [Test] + public void InstanceTest() + { + // TODO uncomment below to test 'IsInstanceOfType' UserApi + //Assert.IsInstanceOfType(typeof(UserApi), instance, "instance is a UserApi"); + } + + + /// + /// Test CreateUser + /// + [Test] + public void CreateUserTest() + { + // TODO uncomment below to test the method and replace null with proper value + //User user = null; + //instance.CreateUser(user); + + } + + /// + /// Test CreateUsersWithArrayInput + /// + [Test] + public void CreateUsersWithArrayInputTest() + { + // TODO uncomment below to test the method and replace null with proper value + //List user = null; + //instance.CreateUsersWithArrayInput(user); + + } + + /// + /// Test CreateUsersWithListInput + /// + [Test] + public void CreateUsersWithListInputTest() + { + // TODO uncomment below to test the method and replace null with proper value + //List user = null; + //instance.CreateUsersWithListInput(user); + + } + + /// + /// Test DeleteUser + /// + [Test] + public void DeleteUserTest() + { + // TODO uncomment below to test the method and replace null with proper value + //string username = null; + //instance.DeleteUser(username); + + } + + /// + /// Test GetUserByName + /// + [Test] + public void GetUserByNameTest() + { + // TODO uncomment below to test the method and replace null with proper value + //string username = null; + //var response = instance.GetUserByName(username); + //Assert.IsInstanceOf (response, "response is User"); + } + + /// + /// Test LoginUser + /// + [Test] + public void LoginUserTest() + { + // TODO uncomment below to test the method and replace null with proper value + //string username = null; + //string password = null; + //var response = instance.LoginUser(username, password); + //Assert.IsInstanceOf (response, "response is string"); + } + + /// + /// Test LogoutUser + /// + [Test] + public void LogoutUserTest() + { + // TODO uncomment below to test the method and replace null with proper value + //instance.LogoutUser(); + + } + + /// + /// Test UpdateUser + /// + [Test] + public void UpdateUserTest() + { + // TODO uncomment below to test the method and replace null with proper value + //string username = null; + //User user = null; + //instance.UpdateUser(username, user); + + } + + } + +} diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/AdditionalPropertiesClassTests.cs b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/AdditionalPropertiesClassTests.cs new file mode 100644 index 00000000000..e4435f13ab2 --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/AdditionalPropertiesClassTests.cs @@ -0,0 +1,88 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * OpenAPI spec version: 1.0.0 + * + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + + +using NUnit.Framework; + +using System; +using System.Linq; +using System.IO; +using System.Collections.Generic; +using Org.OpenAPITools.Api; +using Org.OpenAPITools.Model; +using Org.OpenAPITools.Client; +using System.Reflection; +using Newtonsoft.Json; + +namespace Org.OpenAPITools.Test +{ + /// + /// Class for testing AdditionalPropertiesClass + /// + /// + /// This file is automatically generated by OpenAPI Generator (https://openapi-generator.tech). + /// Please update the test case below to test the model. + /// + [TestFixture] + public class AdditionalPropertiesClassTests + { + // TODO uncomment below to declare an instance variable for AdditionalPropertiesClass + //private AdditionalPropertiesClass instance; + + /// + /// Setup before each test + /// + [SetUp] + public void Init() + { + // TODO uncomment below to create an instance of AdditionalPropertiesClass + //instance = new AdditionalPropertiesClass(); + } + + /// + /// Clean up after each test + /// + [TearDown] + public void Cleanup() + { + + } + + /// + /// Test an instance of AdditionalPropertiesClass + /// + [Test] + public void AdditionalPropertiesClassInstanceTest() + { + // TODO uncomment below to test "IsInstanceOfType" AdditionalPropertiesClass + //Assert.IsInstanceOfType (instance, "variable 'instance' is a AdditionalPropertiesClass"); + } + + + /// + /// Test the property 'MapProperty' + /// + [Test] + public void MapPropertyTest() + { + // TODO unit test for the property 'MapProperty' + } + /// + /// Test the property 'MapOfMapProperty' + /// + [Test] + public void MapOfMapPropertyTest() + { + // TODO unit test for the property 'MapOfMapProperty' + } + + } + +} diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/AnimalFarmTests.cs b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/AnimalFarmTests.cs new file mode 100644 index 00000000000..cf61e423436 --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/AnimalFarmTests.cs @@ -0,0 +1,72 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * OpenAPI spec version: 1.0.0 + * + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + + +using NUnit.Framework; + +using System; +using System.Linq; +using System.IO; +using System.Collections.Generic; +using Org.OpenAPITools.Api; +using Org.OpenAPITools.Model; +using Org.OpenAPITools.Client; +using System.Reflection; +using Newtonsoft.Json; + +namespace Org.OpenAPITools.Test +{ + /// + /// Class for testing AnimalFarm + /// + /// + /// This file is automatically generated by OpenAPI Generator (https://openapi-generator.tech). + /// Please update the test case below to test the model. + /// + [TestFixture] + public class AnimalFarmTests + { + // TODO uncomment below to declare an instance variable for AnimalFarm + //private AnimalFarm instance; + + /// + /// Setup before each test + /// + [SetUp] + public void Init() + { + // TODO uncomment below to create an instance of AnimalFarm + //instance = new AnimalFarm(); + } + + /// + /// Clean up after each test + /// + [TearDown] + public void Cleanup() + { + + } + + /// + /// Test an instance of AnimalFarm + /// + [Test] + public void AnimalFarmInstanceTest() + { + // TODO uncomment below to test "IsInstanceOfType" AnimalFarm + //Assert.IsInstanceOfType (instance, "variable 'instance' is a AnimalFarm"); + } + + + + } + +} diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/AnimalTests.cs b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/AnimalTests.cs new file mode 100644 index 00000000000..2849d780c8d --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/AnimalTests.cs @@ -0,0 +1,106 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * OpenAPI spec version: 1.0.0 + * + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + + +using NUnit.Framework; + +using System; +using System.Linq; +using System.IO; +using System.Collections.Generic; +using Org.OpenAPITools.Api; +using Org.OpenAPITools.Model; +using Org.OpenAPITools.Client; +using System.Reflection; +using Newtonsoft.Json; + +namespace Org.OpenAPITools.Test +{ + /// + /// Class for testing Animal + /// + /// + /// This file is automatically generated by OpenAPI Generator (https://openapi-generator.tech). + /// Please update the test case below to test the model. + /// + [TestFixture] + public class AnimalTests + { + // TODO uncomment below to declare an instance variable for Animal + //private Animal instance; + + /// + /// Setup before each test + /// + [SetUp] + public void Init() + { + // TODO uncomment below to create an instance of Animal + //instance = new Animal(); + } + + /// + /// Clean up after each test + /// + [TearDown] + public void Cleanup() + { + + } + + /// + /// Test an instance of Animal + /// + [Test] + public void AnimalInstanceTest() + { + // TODO uncomment below to test "IsInstanceOfType" Animal + //Assert.IsInstanceOfType (instance, "variable 'instance' is a Animal"); + } + + /// + /// Test deserialize a Dog from type Animal + /// + [Test] + public void DogDeserializeFromAnimalTest() + { + // TODO uncomment below to test deserialize a Dog from type Animal + //Assert.IsInstanceOf(JsonConvert.DeserializeObject(new Dog().ToJson())); + } + /// + /// Test deserialize a Cat from type Animal + /// + [Test] + public void CatDeserializeFromAnimalTest() + { + // TODO uncomment below to test deserialize a Cat from type Animal + //Assert.IsInstanceOf(JsonConvert.DeserializeObject(new Cat().ToJson())); + } + + /// + /// Test the property 'ClassName' + /// + [Test] + public void ClassNameTest() + { + // TODO unit test for the property 'ClassName' + } + /// + /// Test the property 'Color' + /// + [Test] + public void ColorTest() + { + // TODO unit test for the property 'Color' + } + + } + +} diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/ApiResponseTests.cs b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/ApiResponseTests.cs new file mode 100644 index 00000000000..70c07575145 --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/ApiResponseTests.cs @@ -0,0 +1,96 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * OpenAPI spec version: 1.0.0 + * + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + + +using NUnit.Framework; + +using System; +using System.Linq; +using System.IO; +using System.Collections.Generic; +using Org.OpenAPITools.Api; +using Org.OpenAPITools.Model; +using Org.OpenAPITools.Client; +using System.Reflection; +using Newtonsoft.Json; + +namespace Org.OpenAPITools.Test +{ + /// + /// Class for testing ApiResponse + /// + /// + /// This file is automatically generated by OpenAPI Generator (https://openapi-generator.tech). + /// Please update the test case below to test the model. + /// + [TestFixture] + public class ApiResponseTests + { + // TODO uncomment below to declare an instance variable for ApiResponse + //private ApiResponse instance; + + /// + /// Setup before each test + /// + [SetUp] + public void Init() + { + // TODO uncomment below to create an instance of ApiResponse + //instance = new ApiResponse(); + } + + /// + /// Clean up after each test + /// + [TearDown] + public void Cleanup() + { + + } + + /// + /// Test an instance of ApiResponse + /// + [Test] + public void ApiResponseInstanceTest() + { + // TODO uncomment below to test "IsInstanceOfType" ApiResponse + //Assert.IsInstanceOfType (instance, "variable 'instance' is a ApiResponse"); + } + + + /// + /// Test the property 'Code' + /// + [Test] + public void CodeTest() + { + // TODO unit test for the property 'Code' + } + /// + /// Test the property 'Type' + /// + [Test] + public void TypeTest() + { + // TODO unit test for the property 'Type' + } + /// + /// Test the property 'Message' + /// + [Test] + public void MessageTest() + { + // TODO unit test for the property 'Message' + } + + } + +} diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/ArrayOfArrayOfNumberOnlyTests.cs b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/ArrayOfArrayOfNumberOnlyTests.cs new file mode 100644 index 00000000000..5eb86a38573 --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/ArrayOfArrayOfNumberOnlyTests.cs @@ -0,0 +1,80 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * OpenAPI spec version: 1.0.0 + * + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + + +using NUnit.Framework; + +using System; +using System.Linq; +using System.IO; +using System.Collections.Generic; +using Org.OpenAPITools.Api; +using Org.OpenAPITools.Model; +using Org.OpenAPITools.Client; +using System.Reflection; +using Newtonsoft.Json; + +namespace Org.OpenAPITools.Test +{ + /// + /// Class for testing ArrayOfArrayOfNumberOnly + /// + /// + /// This file is automatically generated by OpenAPI Generator (https://openapi-generator.tech). + /// Please update the test case below to test the model. + /// + [TestFixture] + public class ArrayOfArrayOfNumberOnlyTests + { + // TODO uncomment below to declare an instance variable for ArrayOfArrayOfNumberOnly + //private ArrayOfArrayOfNumberOnly instance; + + /// + /// Setup before each test + /// + [SetUp] + public void Init() + { + // TODO uncomment below to create an instance of ArrayOfArrayOfNumberOnly + //instance = new ArrayOfArrayOfNumberOnly(); + } + + /// + /// Clean up after each test + /// + [TearDown] + public void Cleanup() + { + + } + + /// + /// Test an instance of ArrayOfArrayOfNumberOnly + /// + [Test] + public void ArrayOfArrayOfNumberOnlyInstanceTest() + { + // TODO uncomment below to test "IsInstanceOfType" ArrayOfArrayOfNumberOnly + //Assert.IsInstanceOfType (instance, "variable 'instance' is a ArrayOfArrayOfNumberOnly"); + } + + + /// + /// Test the property 'ArrayArrayNumber' + /// + [Test] + public void ArrayArrayNumberTest() + { + // TODO unit test for the property 'ArrayArrayNumber' + } + + } + +} diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/ArrayOfNumberOnlyTests.cs b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/ArrayOfNumberOnlyTests.cs new file mode 100644 index 00000000000..cd7074afaa1 --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/ArrayOfNumberOnlyTests.cs @@ -0,0 +1,80 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * OpenAPI spec version: 1.0.0 + * + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + + +using NUnit.Framework; + +using System; +using System.Linq; +using System.IO; +using System.Collections.Generic; +using Org.OpenAPITools.Api; +using Org.OpenAPITools.Model; +using Org.OpenAPITools.Client; +using System.Reflection; +using Newtonsoft.Json; + +namespace Org.OpenAPITools.Test +{ + /// + /// Class for testing ArrayOfNumberOnly + /// + /// + /// This file is automatically generated by OpenAPI Generator (https://openapi-generator.tech). + /// Please update the test case below to test the model. + /// + [TestFixture] + public class ArrayOfNumberOnlyTests + { + // TODO uncomment below to declare an instance variable for ArrayOfNumberOnly + //private ArrayOfNumberOnly instance; + + /// + /// Setup before each test + /// + [SetUp] + public void Init() + { + // TODO uncomment below to create an instance of ArrayOfNumberOnly + //instance = new ArrayOfNumberOnly(); + } + + /// + /// Clean up after each test + /// + [TearDown] + public void Cleanup() + { + + } + + /// + /// Test an instance of ArrayOfNumberOnly + /// + [Test] + public void ArrayOfNumberOnlyInstanceTest() + { + // TODO uncomment below to test "IsInstanceOfType" ArrayOfNumberOnly + //Assert.IsInstanceOfType (instance, "variable 'instance' is a ArrayOfNumberOnly"); + } + + + /// + /// Test the property 'ArrayNumber' + /// + [Test] + public void ArrayNumberTest() + { + // TODO unit test for the property 'ArrayNumber' + } + + } + +} diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/ArrayTestTests.cs b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/ArrayTestTests.cs new file mode 100644 index 00000000000..f1f286ce448 --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/ArrayTestTests.cs @@ -0,0 +1,96 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * OpenAPI spec version: 1.0.0 + * + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + + +using NUnit.Framework; + +using System; +using System.Linq; +using System.IO; +using System.Collections.Generic; +using Org.OpenAPITools.Api; +using Org.OpenAPITools.Model; +using Org.OpenAPITools.Client; +using System.Reflection; +using Newtonsoft.Json; + +namespace Org.OpenAPITools.Test +{ + /// + /// Class for testing ArrayTest + /// + /// + /// This file is automatically generated by OpenAPI Generator (https://openapi-generator.tech). + /// Please update the test case below to test the model. + /// + [TestFixture] + public class ArrayTestTests + { + // TODO uncomment below to declare an instance variable for ArrayTest + //private ArrayTest instance; + + /// + /// Setup before each test + /// + [SetUp] + public void Init() + { + // TODO uncomment below to create an instance of ArrayTest + //instance = new ArrayTest(); + } + + /// + /// Clean up after each test + /// + [TearDown] + public void Cleanup() + { + + } + + /// + /// Test an instance of ArrayTest + /// + [Test] + public void ArrayTestInstanceTest() + { + // TODO uncomment below to test "IsInstanceOfType" ArrayTest + //Assert.IsInstanceOfType (instance, "variable 'instance' is a ArrayTest"); + } + + + /// + /// Test the property 'ArrayOfString' + /// + [Test] + public void ArrayOfStringTest() + { + // TODO unit test for the property 'ArrayOfString' + } + /// + /// Test the property 'ArrayArrayOfInteger' + /// + [Test] + public void ArrayArrayOfIntegerTest() + { + // TODO unit test for the property 'ArrayArrayOfInteger' + } + /// + /// Test the property 'ArrayArrayOfModel' + /// + [Test] + public void ArrayArrayOfModelTest() + { + // TODO unit test for the property 'ArrayArrayOfModel' + } + + } + +} diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/CapitalizationTests.cs b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/CapitalizationTests.cs new file mode 100644 index 00000000000..cb003b2abee --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/CapitalizationTests.cs @@ -0,0 +1,120 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * OpenAPI spec version: 1.0.0 + * + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + + +using NUnit.Framework; + +using System; +using System.Linq; +using System.IO; +using System.Collections.Generic; +using Org.OpenAPITools.Api; +using Org.OpenAPITools.Model; +using Org.OpenAPITools.Client; +using System.Reflection; +using Newtonsoft.Json; + +namespace Org.OpenAPITools.Test +{ + /// + /// Class for testing Capitalization + /// + /// + /// This file is automatically generated by OpenAPI Generator (https://openapi-generator.tech). + /// Please update the test case below to test the model. + /// + [TestFixture] + public class CapitalizationTests + { + // TODO uncomment below to declare an instance variable for Capitalization + //private Capitalization instance; + + /// + /// Setup before each test + /// + [SetUp] + public void Init() + { + // TODO uncomment below to create an instance of Capitalization + //instance = new Capitalization(); + } + + /// + /// Clean up after each test + /// + [TearDown] + public void Cleanup() + { + + } + + /// + /// Test an instance of Capitalization + /// + [Test] + public void CapitalizationInstanceTest() + { + // TODO uncomment below to test "IsInstanceOfType" Capitalization + //Assert.IsInstanceOfType (instance, "variable 'instance' is a Capitalization"); + } + + + /// + /// Test the property 'SmallCamel' + /// + [Test] + public void SmallCamelTest() + { + // TODO unit test for the property 'SmallCamel' + } + /// + /// Test the property 'CapitalCamel' + /// + [Test] + public void CapitalCamelTest() + { + // TODO unit test for the property 'CapitalCamel' + } + /// + /// Test the property 'SmallSnake' + /// + [Test] + public void SmallSnakeTest() + { + // TODO unit test for the property 'SmallSnake' + } + /// + /// Test the property 'CapitalSnake' + /// + [Test] + public void CapitalSnakeTest() + { + // TODO unit test for the property 'CapitalSnake' + } + /// + /// Test the property 'SCAETHFlowPoints' + /// + [Test] + public void SCAETHFlowPointsTest() + { + // TODO unit test for the property 'SCAETHFlowPoints' + } + /// + /// Test the property 'ATT_NAME' + /// + [Test] + public void ATT_NAMETest() + { + // TODO unit test for the property 'ATT_NAME' + } + + } + +} diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/CatTests.cs b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/CatTests.cs new file mode 100644 index 00000000000..6cd18d546ed --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/CatTests.cs @@ -0,0 +1,80 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * OpenAPI spec version: 1.0.0 + * + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + + +using NUnit.Framework; + +using System; +using System.Linq; +using System.IO; +using System.Collections.Generic; +using Org.OpenAPITools.Api; +using Org.OpenAPITools.Model; +using Org.OpenAPITools.Client; +using System.Reflection; +using Newtonsoft.Json; + +namespace Org.OpenAPITools.Test +{ + /// + /// Class for testing Cat + /// + /// + /// This file is automatically generated by OpenAPI Generator (https://openapi-generator.tech). + /// Please update the test case below to test the model. + /// + [TestFixture] + public class CatTests + { + // TODO uncomment below to declare an instance variable for Cat + //private Cat instance; + + /// + /// Setup before each test + /// + [SetUp] + public void Init() + { + // TODO uncomment below to create an instance of Cat + //instance = new Cat(); + } + + /// + /// Clean up after each test + /// + [TearDown] + public void Cleanup() + { + + } + + /// + /// Test an instance of Cat + /// + [Test] + public void CatInstanceTest() + { + // TODO uncomment below to test "IsInstanceOfType" Cat + //Assert.IsInstanceOfType (instance, "variable 'instance' is a Cat"); + } + + + /// + /// Test the property 'Declawed' + /// + [Test] + public void DeclawedTest() + { + // TODO unit test for the property 'Declawed' + } + + } + +} diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/CategoryTests.cs b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/CategoryTests.cs new file mode 100644 index 00000000000..f964723517e --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/CategoryTests.cs @@ -0,0 +1,88 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * OpenAPI spec version: 1.0.0 + * + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + + +using NUnit.Framework; + +using System; +using System.Linq; +using System.IO; +using System.Collections.Generic; +using Org.OpenAPITools.Api; +using Org.OpenAPITools.Model; +using Org.OpenAPITools.Client; +using System.Reflection; +using Newtonsoft.Json; + +namespace Org.OpenAPITools.Test +{ + /// + /// Class for testing Category + /// + /// + /// This file is automatically generated by OpenAPI Generator (https://openapi-generator.tech). + /// Please update the test case below to test the model. + /// + [TestFixture] + public class CategoryTests + { + // TODO uncomment below to declare an instance variable for Category + //private Category instance; + + /// + /// Setup before each test + /// + [SetUp] + public void Init() + { + // TODO uncomment below to create an instance of Category + //instance = new Category(); + } + + /// + /// Clean up after each test + /// + [TearDown] + public void Cleanup() + { + + } + + /// + /// Test an instance of Category + /// + [Test] + public void CategoryInstanceTest() + { + // TODO uncomment below to test "IsInstanceOfType" Category + //Assert.IsInstanceOfType (instance, "variable 'instance' is a Category"); + } + + + /// + /// Test the property 'Id' + /// + [Test] + public void IdTest() + { + // TODO unit test for the property 'Id' + } + /// + /// Test the property 'Name' + /// + [Test] + public void NameTest() + { + // TODO unit test for the property 'Name' + } + + } + +} diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/ClassModelTests.cs b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/ClassModelTests.cs new file mode 100644 index 00000000000..0a6de083da5 --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/ClassModelTests.cs @@ -0,0 +1,80 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * OpenAPI spec version: 1.0.0 + * + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + + +using NUnit.Framework; + +using System; +using System.Linq; +using System.IO; +using System.Collections.Generic; +using Org.OpenAPITools.Api; +using Org.OpenAPITools.Model; +using Org.OpenAPITools.Client; +using System.Reflection; +using Newtonsoft.Json; + +namespace Org.OpenAPITools.Test +{ + /// + /// Class for testing ClassModel + /// + /// + /// This file is automatically generated by OpenAPI Generator (https://openapi-generator.tech). + /// Please update the test case below to test the model. + /// + [TestFixture] + public class ClassModelTests + { + // TODO uncomment below to declare an instance variable for ClassModel + //private ClassModel instance; + + /// + /// Setup before each test + /// + [SetUp] + public void Init() + { + // TODO uncomment below to create an instance of ClassModel + //instance = new ClassModel(); + } + + /// + /// Clean up after each test + /// + [TearDown] + public void Cleanup() + { + + } + + /// + /// Test an instance of ClassModel + /// + [Test] + public void ClassModelInstanceTest() + { + // TODO uncomment below to test "IsInstanceOfType" ClassModel + //Assert.IsInstanceOfType (instance, "variable 'instance' is a ClassModel"); + } + + + /// + /// Test the property 'Class' + /// + [Test] + public void ClassTest() + { + // TODO unit test for the property 'Class' + } + + } + +} diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/DogTests.cs b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/DogTests.cs new file mode 100644 index 00000000000..fbae571470b --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/DogTests.cs @@ -0,0 +1,80 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * OpenAPI spec version: 1.0.0 + * + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + + +using NUnit.Framework; + +using System; +using System.Linq; +using System.IO; +using System.Collections.Generic; +using Org.OpenAPITools.Api; +using Org.OpenAPITools.Model; +using Org.OpenAPITools.Client; +using System.Reflection; +using Newtonsoft.Json; + +namespace Org.OpenAPITools.Test +{ + /// + /// Class for testing Dog + /// + /// + /// This file is automatically generated by OpenAPI Generator (https://openapi-generator.tech). + /// Please update the test case below to test the model. + /// + [TestFixture] + public class DogTests + { + // TODO uncomment below to declare an instance variable for Dog + //private Dog instance; + + /// + /// Setup before each test + /// + [SetUp] + public void Init() + { + // TODO uncomment below to create an instance of Dog + //instance = new Dog(); + } + + /// + /// Clean up after each test + /// + [TearDown] + public void Cleanup() + { + + } + + /// + /// Test an instance of Dog + /// + [Test] + public void DogInstanceTest() + { + // TODO uncomment below to test "IsInstanceOfType" Dog + //Assert.IsInstanceOfType (instance, "variable 'instance' is a Dog"); + } + + + /// + /// Test the property 'Breed' + /// + [Test] + public void BreedTest() + { + // TODO unit test for the property 'Breed' + } + + } + +} diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/EnumArraysTests.cs b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/EnumArraysTests.cs new file mode 100644 index 00000000000..1760e0d4ef3 --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/EnumArraysTests.cs @@ -0,0 +1,88 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * OpenAPI spec version: 1.0.0 + * + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + + +using NUnit.Framework; + +using System; +using System.Linq; +using System.IO; +using System.Collections.Generic; +using Org.OpenAPITools.Api; +using Org.OpenAPITools.Model; +using Org.OpenAPITools.Client; +using System.Reflection; +using Newtonsoft.Json; + +namespace Org.OpenAPITools.Test +{ + /// + /// Class for testing EnumArrays + /// + /// + /// This file is automatically generated by OpenAPI Generator (https://openapi-generator.tech). + /// Please update the test case below to test the model. + /// + [TestFixture] + public class EnumArraysTests + { + // TODO uncomment below to declare an instance variable for EnumArrays + //private EnumArrays instance; + + /// + /// Setup before each test + /// + [SetUp] + public void Init() + { + // TODO uncomment below to create an instance of EnumArrays + //instance = new EnumArrays(); + } + + /// + /// Clean up after each test + /// + [TearDown] + public void Cleanup() + { + + } + + /// + /// Test an instance of EnumArrays + /// + [Test] + public void EnumArraysInstanceTest() + { + // TODO uncomment below to test "IsInstanceOfType" EnumArrays + //Assert.IsInstanceOfType (instance, "variable 'instance' is a EnumArrays"); + } + + + /// + /// Test the property 'JustSymbol' + /// + [Test] + public void JustSymbolTest() + { + // TODO unit test for the property 'JustSymbol' + } + /// + /// Test the property 'ArrayEnum' + /// + [Test] + public void ArrayEnumTest() + { + // TODO unit test for the property 'ArrayEnum' + } + + } + +} diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/EnumClassTests.cs b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/EnumClassTests.cs new file mode 100644 index 00000000000..f1c67fe1914 --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/EnumClassTests.cs @@ -0,0 +1,72 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * OpenAPI spec version: 1.0.0 + * + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + + +using NUnit.Framework; + +using System; +using System.Linq; +using System.IO; +using System.Collections.Generic; +using Org.OpenAPITools.Api; +using Org.OpenAPITools.Model; +using Org.OpenAPITools.Client; +using System.Reflection; +using Newtonsoft.Json; + +namespace Org.OpenAPITools.Test +{ + /// + /// Class for testing EnumClass + /// + /// + /// This file is automatically generated by OpenAPI Generator (https://openapi-generator.tech). + /// Please update the test case below to test the model. + /// + [TestFixture] + public class EnumClassTests + { + // TODO uncomment below to declare an instance variable for EnumClass + //private EnumClass instance; + + /// + /// Setup before each test + /// + [SetUp] + public void Init() + { + // TODO uncomment below to create an instance of EnumClass + //instance = new EnumClass(); + } + + /// + /// Clean up after each test + /// + [TearDown] + public void Cleanup() + { + + } + + /// + /// Test an instance of EnumClass + /// + [Test] + public void EnumClassInstanceTest() + { + // TODO uncomment below to test "IsInstanceOfType" EnumClass + //Assert.IsInstanceOfType (instance, "variable 'instance' is a EnumClass"); + } + + + + } + +} diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/EnumTestTests.cs b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/EnumTestTests.cs new file mode 100644 index 00000000000..6ba0c31db41 --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/EnumTestTests.cs @@ -0,0 +1,112 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * OpenAPI spec version: 1.0.0 + * + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + + +using NUnit.Framework; + +using System; +using System.Linq; +using System.IO; +using System.Collections.Generic; +using Org.OpenAPITools.Api; +using Org.OpenAPITools.Model; +using Org.OpenAPITools.Client; +using System.Reflection; +using Newtonsoft.Json; + +namespace Org.OpenAPITools.Test +{ + /// + /// Class for testing EnumTest + /// + /// + /// This file is automatically generated by OpenAPI Generator (https://openapi-generator.tech). + /// Please update the test case below to test the model. + /// + [TestFixture] + public class EnumTestTests + { + // TODO uncomment below to declare an instance variable for EnumTest + //private EnumTest instance; + + /// + /// Setup before each test + /// + [SetUp] + public void Init() + { + // TODO uncomment below to create an instance of EnumTest + //instance = new EnumTest(); + } + + /// + /// Clean up after each test + /// + [TearDown] + public void Cleanup() + { + + } + + /// + /// Test an instance of EnumTest + /// + [Test] + public void EnumTestInstanceTest() + { + // TODO uncomment below to test "IsInstanceOfType" EnumTest + //Assert.IsInstanceOfType (instance, "variable 'instance' is a EnumTest"); + } + + + /// + /// Test the property 'EnumString' + /// + [Test] + public void EnumStringTest() + { + // TODO unit test for the property 'EnumString' + } + /// + /// Test the property 'EnumStringRequired' + /// + [Test] + public void EnumStringRequiredTest() + { + // TODO unit test for the property 'EnumStringRequired' + } + /// + /// Test the property 'EnumInteger' + /// + [Test] + public void EnumIntegerTest() + { + // TODO unit test for the property 'EnumInteger' + } + /// + /// Test the property 'EnumNumber' + /// + [Test] + public void EnumNumberTest() + { + // TODO unit test for the property 'EnumNumber' + } + /// + /// Test the property 'OuterEnum' + /// + [Test] + public void OuterEnumTest() + { + // TODO unit test for the property 'OuterEnum' + } + + } + +} diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/FileSchemaTestClassTests.cs b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/FileSchemaTestClassTests.cs new file mode 100644 index 00000000000..bb47c43dc7a --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/FileSchemaTestClassTests.cs @@ -0,0 +1,88 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * OpenAPI spec version: 1.0.0 + * + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + + +using NUnit.Framework; + +using System; +using System.Linq; +using System.IO; +using System.Collections.Generic; +using Org.OpenAPITools.Api; +using Org.OpenAPITools.Model; +using Org.OpenAPITools.Client; +using System.Reflection; +using Newtonsoft.Json; + +namespace Org.OpenAPITools.Test +{ + /// + /// Class for testing FileSchemaTestClass + /// + /// + /// This file is automatically generated by OpenAPI Generator (https://openapi-generator.tech). + /// Please update the test case below to test the model. + /// + [TestFixture] + public class FileSchemaTestClassTests + { + // TODO uncomment below to declare an instance variable for FileSchemaTestClass + //private FileSchemaTestClass instance; + + /// + /// Setup before each test + /// + [SetUp] + public void Init() + { + // TODO uncomment below to create an instance of FileSchemaTestClass + //instance = new FileSchemaTestClass(); + } + + /// + /// Clean up after each test + /// + [TearDown] + public void Cleanup() + { + + } + + /// + /// Test an instance of FileSchemaTestClass + /// + [Test] + public void FileSchemaTestClassInstanceTest() + { + // TODO uncomment below to test "IsInstanceOfType" FileSchemaTestClass + //Assert.IsInstanceOfType (instance, "variable 'instance' is a FileSchemaTestClass"); + } + + + /// + /// Test the property 'File' + /// + [Test] + public void FileTest() + { + // TODO unit test for the property 'File' + } + /// + /// Test the property 'Files' + /// + [Test] + public void FilesTest() + { + // TODO unit test for the property 'Files' + } + + } + +} diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/FileTests.cs b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/FileTests.cs new file mode 100644 index 00000000000..f1cf54c22e4 --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/FileTests.cs @@ -0,0 +1,80 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * OpenAPI spec version: 1.0.0 + * + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + + +using NUnit.Framework; + +using System; +using System.Linq; +using System.IO; +using System.Collections.Generic; +using Org.OpenAPITools.Api; +using Org.OpenAPITools.Model; +using Org.OpenAPITools.Client; +using System.Reflection; +using Newtonsoft.Json; + +namespace Org.OpenAPITools.Test +{ + /// + /// Class for testing File + /// + /// + /// This file is automatically generated by OpenAPI Generator (https://openapi-generator.tech). + /// Please update the test case below to test the model. + /// + [TestFixture] + public class FileTests + { + // TODO uncomment below to declare an instance variable for File + //private File instance; + + /// + /// Setup before each test + /// + [SetUp] + public void Init() + { + // TODO uncomment below to create an instance of File + //instance = new File(); + } + + /// + /// Clean up after each test + /// + [TearDown] + public void Cleanup() + { + + } + + /// + /// Test an instance of File + /// + [Test] + public void FileInstanceTest() + { + // TODO uncomment below to test "IsInstanceOfType" File + //Assert.IsInstanceOfType (instance, "variable 'instance' is a File"); + } + + + /// + /// Test the property 'SourceURI' + /// + [Test] + public void SourceURITest() + { + // TODO unit test for the property 'SourceURI' + } + + } + +} diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/FormatTestTests.cs b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/FormatTestTests.cs new file mode 100644 index 00000000000..cca85ec5b2a --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/FormatTestTests.cs @@ -0,0 +1,176 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * OpenAPI spec version: 1.0.0 + * + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + + +using NUnit.Framework; + +using System; +using System.Linq; +using System.IO; +using System.Collections.Generic; +using Org.OpenAPITools.Api; +using Org.OpenAPITools.Model; +using Org.OpenAPITools.Client; +using System.Reflection; +using Newtonsoft.Json; + +namespace Org.OpenAPITools.Test +{ + /// + /// Class for testing FormatTest + /// + /// + /// This file is automatically generated by OpenAPI Generator (https://openapi-generator.tech). + /// Please update the test case below to test the model. + /// + [TestFixture] + public class FormatTestTests + { + // TODO uncomment below to declare an instance variable for FormatTest + //private FormatTest instance; + + /// + /// Setup before each test + /// + [SetUp] + public void Init() + { + // TODO uncomment below to create an instance of FormatTest + //instance = new FormatTest(); + } + + /// + /// Clean up after each test + /// + [TearDown] + public void Cleanup() + { + + } + + /// + /// Test an instance of FormatTest + /// + [Test] + public void FormatTestInstanceTest() + { + // TODO uncomment below to test "IsInstanceOfType" FormatTest + //Assert.IsInstanceOfType (instance, "variable 'instance' is a FormatTest"); + } + + + /// + /// Test the property 'Integer' + /// + [Test] + public void IntegerTest() + { + // TODO unit test for the property 'Integer' + } + /// + /// Test the property 'Int32' + /// + [Test] + public void Int32Test() + { + // TODO unit test for the property 'Int32' + } + /// + /// Test the property 'Int64' + /// + [Test] + public void Int64Test() + { + // TODO unit test for the property 'Int64' + } + /// + /// Test the property 'Number' + /// + [Test] + public void NumberTest() + { + // TODO unit test for the property 'Number' + } + /// + /// Test the property 'Float' + /// + [Test] + public void FloatTest() + { + // TODO unit test for the property 'Float' + } + /// + /// Test the property 'Double' + /// + [Test] + public void DoubleTest() + { + // TODO unit test for the property 'Double' + } + /// + /// Test the property 'String' + /// + [Test] + public void StringTest() + { + // TODO unit test for the property 'String' + } + /// + /// Test the property 'Byte' + /// + [Test] + public void ByteTest() + { + // TODO unit test for the property 'Byte' + } + /// + /// Test the property 'Binary' + /// + [Test] + public void BinaryTest() + { + // TODO unit test for the property 'Binary' + } + /// + /// Test the property 'Date' + /// + [Test] + public void DateTest() + { + // TODO unit test for the property 'Date' + } + /// + /// Test the property 'DateTime' + /// + [Test] + public void DateTimeTest() + { + // TODO unit test for the property 'DateTime' + } + /// + /// Test the property 'Uuid' + /// + [Test] + public void UuidTest() + { + // TODO unit test for the property 'Uuid' + } + /// + /// Test the property 'Password' + /// + [Test] + public void PasswordTest() + { + // TODO unit test for the property 'Password' + } + + } + +} diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/HasOnlyReadOnlyTests.cs b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/HasOnlyReadOnlyTests.cs new file mode 100644 index 00000000000..1fef4b1371e --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/HasOnlyReadOnlyTests.cs @@ -0,0 +1,88 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * OpenAPI spec version: 1.0.0 + * + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + + +using NUnit.Framework; + +using System; +using System.Linq; +using System.IO; +using System.Collections.Generic; +using Org.OpenAPITools.Api; +using Org.OpenAPITools.Model; +using Org.OpenAPITools.Client; +using System.Reflection; +using Newtonsoft.Json; + +namespace Org.OpenAPITools.Test +{ + /// + /// Class for testing HasOnlyReadOnly + /// + /// + /// This file is automatically generated by OpenAPI Generator (https://openapi-generator.tech). + /// Please update the test case below to test the model. + /// + [TestFixture] + public class HasOnlyReadOnlyTests + { + // TODO uncomment below to declare an instance variable for HasOnlyReadOnly + //private HasOnlyReadOnly instance; + + /// + /// Setup before each test + /// + [SetUp] + public void Init() + { + // TODO uncomment below to create an instance of HasOnlyReadOnly + //instance = new HasOnlyReadOnly(); + } + + /// + /// Clean up after each test + /// + [TearDown] + public void Cleanup() + { + + } + + /// + /// Test an instance of HasOnlyReadOnly + /// + [Test] + public void HasOnlyReadOnlyInstanceTest() + { + // TODO uncomment below to test "IsInstanceOfType" HasOnlyReadOnly + //Assert.IsInstanceOfType (instance, "variable 'instance' is a HasOnlyReadOnly"); + } + + + /// + /// Test the property 'Bar' + /// + [Test] + public void BarTest() + { + // TODO unit test for the property 'Bar' + } + /// + /// Test the property 'Foo' + /// + [Test] + public void FooTest() + { + // TODO unit test for the property 'Foo' + } + + } + +} diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/ListTests.cs b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/ListTests.cs new file mode 100644 index 00000000000..983fd757c32 --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/ListTests.cs @@ -0,0 +1,80 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * OpenAPI spec version: 1.0.0 + * + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + + +using NUnit.Framework; + +using System; +using System.Linq; +using System.IO; +using System.Collections.Generic; +using Org.OpenAPITools.Api; +using Org.OpenAPITools.Model; +using Org.OpenAPITools.Client; +using System.Reflection; +using Newtonsoft.Json; + +namespace Org.OpenAPITools.Test +{ + /// + /// Class for testing List + /// + /// + /// This file is automatically generated by OpenAPI Generator (https://openapi-generator.tech). + /// Please update the test case below to test the model. + /// + [TestFixture] + public class ListTests + { + // TODO uncomment below to declare an instance variable for List + //private List instance; + + /// + /// Setup before each test + /// + [SetUp] + public void Init() + { + // TODO uncomment below to create an instance of List + //instance = new List(); + } + + /// + /// Clean up after each test + /// + [TearDown] + public void Cleanup() + { + + } + + /// + /// Test an instance of List + /// + [Test] + public void ListInstanceTest() + { + // TODO uncomment below to test "IsInstanceOfType" List + //Assert.IsInstanceOfType (instance, "variable 'instance' is a List"); + } + + + /// + /// Test the property '_123List' + /// + [Test] + public void _123ListTest() + { + // TODO unit test for the property '_123List' + } + + } + +} diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/MapTestTests.cs b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/MapTestTests.cs new file mode 100644 index 00000000000..9bb76bde239 --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/MapTestTests.cs @@ -0,0 +1,104 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * OpenAPI spec version: 1.0.0 + * + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + + +using NUnit.Framework; + +using System; +using System.Linq; +using System.IO; +using System.Collections.Generic; +using Org.OpenAPITools.Api; +using Org.OpenAPITools.Model; +using Org.OpenAPITools.Client; +using System.Reflection; +using Newtonsoft.Json; + +namespace Org.OpenAPITools.Test +{ + /// + /// Class for testing MapTest + /// + /// + /// This file is automatically generated by OpenAPI Generator (https://openapi-generator.tech). + /// Please update the test case below to test the model. + /// + [TestFixture] + public class MapTestTests + { + // TODO uncomment below to declare an instance variable for MapTest + //private MapTest instance; + + /// + /// Setup before each test + /// + [SetUp] + public void Init() + { + // TODO uncomment below to create an instance of MapTest + //instance = new MapTest(); + } + + /// + /// Clean up after each test + /// + [TearDown] + public void Cleanup() + { + + } + + /// + /// Test an instance of MapTest + /// + [Test] + public void MapTestInstanceTest() + { + // TODO uncomment below to test "IsInstanceOfType" MapTest + //Assert.IsInstanceOfType (instance, "variable 'instance' is a MapTest"); + } + + + /// + /// Test the property 'MapMapOfString' + /// + [Test] + public void MapMapOfStringTest() + { + // TODO unit test for the property 'MapMapOfString' + } + /// + /// Test the property 'MapOfEnumString' + /// + [Test] + public void MapOfEnumStringTest() + { + // TODO unit test for the property 'MapOfEnumString' + } + /// + /// Test the property 'DirectMap' + /// + [Test] + public void DirectMapTest() + { + // TODO unit test for the property 'DirectMap' + } + /// + /// Test the property 'IndirectMap' + /// + [Test] + public void IndirectMapTest() + { + // TODO unit test for the property 'IndirectMap' + } + + } + +} diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/MixedPropertiesAndAdditionalPropertiesClassTests.cs b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/MixedPropertiesAndAdditionalPropertiesClassTests.cs new file mode 100644 index 00000000000..72e5a9130b9 --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/MixedPropertiesAndAdditionalPropertiesClassTests.cs @@ -0,0 +1,96 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * OpenAPI spec version: 1.0.0 + * + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + + +using NUnit.Framework; + +using System; +using System.Linq; +using System.IO; +using System.Collections.Generic; +using Org.OpenAPITools.Api; +using Org.OpenAPITools.Model; +using Org.OpenAPITools.Client; +using System.Reflection; +using Newtonsoft.Json; + +namespace Org.OpenAPITools.Test +{ + /// + /// Class for testing MixedPropertiesAndAdditionalPropertiesClass + /// + /// + /// This file is automatically generated by OpenAPI Generator (https://openapi-generator.tech). + /// Please update the test case below to test the model. + /// + [TestFixture] + public class MixedPropertiesAndAdditionalPropertiesClassTests + { + // TODO uncomment below to declare an instance variable for MixedPropertiesAndAdditionalPropertiesClass + //private MixedPropertiesAndAdditionalPropertiesClass instance; + + /// + /// Setup before each test + /// + [SetUp] + public void Init() + { + // TODO uncomment below to create an instance of MixedPropertiesAndAdditionalPropertiesClass + //instance = new MixedPropertiesAndAdditionalPropertiesClass(); + } + + /// + /// Clean up after each test + /// + [TearDown] + public void Cleanup() + { + + } + + /// + /// Test an instance of MixedPropertiesAndAdditionalPropertiesClass + /// + [Test] + public void MixedPropertiesAndAdditionalPropertiesClassInstanceTest() + { + // TODO uncomment below to test "IsInstanceOfType" MixedPropertiesAndAdditionalPropertiesClass + //Assert.IsInstanceOfType (instance, "variable 'instance' is a MixedPropertiesAndAdditionalPropertiesClass"); + } + + + /// + /// Test the property 'Uuid' + /// + [Test] + public void UuidTest() + { + // TODO unit test for the property 'Uuid' + } + /// + /// Test the property 'DateTime' + /// + [Test] + public void DateTimeTest() + { + // TODO unit test for the property 'DateTime' + } + /// + /// Test the property 'Map' + /// + [Test] + public void MapTest() + { + // TODO unit test for the property 'Map' + } + + } + +} diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/Model200ResponseTests.cs b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/Model200ResponseTests.cs new file mode 100644 index 00000000000..f85a9a6a581 --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/Model200ResponseTests.cs @@ -0,0 +1,88 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * OpenAPI spec version: 1.0.0 + * + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + + +using NUnit.Framework; + +using System; +using System.Linq; +using System.IO; +using System.Collections.Generic; +using Org.OpenAPITools.Api; +using Org.OpenAPITools.Model; +using Org.OpenAPITools.Client; +using System.Reflection; +using Newtonsoft.Json; + +namespace Org.OpenAPITools.Test +{ + /// + /// Class for testing Model200Response + /// + /// + /// This file is automatically generated by OpenAPI Generator (https://openapi-generator.tech). + /// Please update the test case below to test the model. + /// + [TestFixture] + public class Model200ResponseTests + { + // TODO uncomment below to declare an instance variable for Model200Response + //private Model200Response instance; + + /// + /// Setup before each test + /// + [SetUp] + public void Init() + { + // TODO uncomment below to create an instance of Model200Response + //instance = new Model200Response(); + } + + /// + /// Clean up after each test + /// + [TearDown] + public void Cleanup() + { + + } + + /// + /// Test an instance of Model200Response + /// + [Test] + public void Model200ResponseInstanceTest() + { + // TODO uncomment below to test "IsInstanceOfType" Model200Response + //Assert.IsInstanceOfType (instance, "variable 'instance' is a Model200Response"); + } + + + /// + /// Test the property 'Name' + /// + [Test] + public void NameTest() + { + // TODO unit test for the property 'Name' + } + /// + /// Test the property 'Class' + /// + [Test] + public void ClassTest() + { + // TODO unit test for the property 'Class' + } + + } + +} diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/ModelClientTests.cs b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/ModelClientTests.cs new file mode 100644 index 00000000000..db4530153a8 --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/ModelClientTests.cs @@ -0,0 +1,80 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * OpenAPI spec version: 1.0.0 + * + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + + +using NUnit.Framework; + +using System; +using System.Linq; +using System.IO; +using System.Collections.Generic; +using Org.OpenAPITools.Api; +using Org.OpenAPITools.Model; +using Org.OpenAPITools.Client; +using System.Reflection; +using Newtonsoft.Json; + +namespace Org.OpenAPITools.Test +{ + /// + /// Class for testing ModelClient + /// + /// + /// This file is automatically generated by OpenAPI Generator (https://openapi-generator.tech). + /// Please update the test case below to test the model. + /// + [TestFixture] + public class ModelClientTests + { + // TODO uncomment below to declare an instance variable for ModelClient + //private ModelClient instance; + + /// + /// Setup before each test + /// + [SetUp] + public void Init() + { + // TODO uncomment below to create an instance of ModelClient + //instance = new ModelClient(); + } + + /// + /// Clean up after each test + /// + [TearDown] + public void Cleanup() + { + + } + + /// + /// Test an instance of ModelClient + /// + [Test] + public void ModelClientInstanceTest() + { + // TODO uncomment below to test "IsInstanceOfType" ModelClient + //Assert.IsInstanceOfType (instance, "variable 'instance' is a ModelClient"); + } + + + /// + /// Test the property '__Client' + /// + [Test] + public void __ClientTest() + { + // TODO unit test for the property '__Client' + } + + } + +} diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/NameTests.cs b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/NameTests.cs new file mode 100644 index 00000000000..5575f11af51 --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/NameTests.cs @@ -0,0 +1,104 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * OpenAPI spec version: 1.0.0 + * + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + + +using NUnit.Framework; + +using System; +using System.Linq; +using System.IO; +using System.Collections.Generic; +using Org.OpenAPITools.Api; +using Org.OpenAPITools.Model; +using Org.OpenAPITools.Client; +using System.Reflection; +using Newtonsoft.Json; + +namespace Org.OpenAPITools.Test +{ + /// + /// Class for testing Name + /// + /// + /// This file is automatically generated by OpenAPI Generator (https://openapi-generator.tech). + /// Please update the test case below to test the model. + /// + [TestFixture] + public class NameTests + { + // TODO uncomment below to declare an instance variable for Name + //private Name instance; + + /// + /// Setup before each test + /// + [SetUp] + public void Init() + { + // TODO uncomment below to create an instance of Name + //instance = new Name(); + } + + /// + /// Clean up after each test + /// + [TearDown] + public void Cleanup() + { + + } + + /// + /// Test an instance of Name + /// + [Test] + public void NameInstanceTest() + { + // TODO uncomment below to test "IsInstanceOfType" Name + //Assert.IsInstanceOfType (instance, "variable 'instance' is a Name"); + } + + + /// + /// Test the property '_Name' + /// + [Test] + public void _NameTest() + { + // TODO unit test for the property '_Name' + } + /// + /// Test the property 'SnakeCase' + /// + [Test] + public void SnakeCaseTest() + { + // TODO unit test for the property 'SnakeCase' + } + /// + /// Test the property 'Property' + /// + [Test] + public void PropertyTest() + { + // TODO unit test for the property 'Property' + } + /// + /// Test the property '_123Number' + /// + [Test] + public void _123NumberTest() + { + // TODO unit test for the property '_123Number' + } + + } + +} diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/NumberOnlyTests.cs b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/NumberOnlyTests.cs new file mode 100644 index 00000000000..d9b5c4ea499 --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/NumberOnlyTests.cs @@ -0,0 +1,80 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * OpenAPI spec version: 1.0.0 + * + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + + +using NUnit.Framework; + +using System; +using System.Linq; +using System.IO; +using System.Collections.Generic; +using Org.OpenAPITools.Api; +using Org.OpenAPITools.Model; +using Org.OpenAPITools.Client; +using System.Reflection; +using Newtonsoft.Json; + +namespace Org.OpenAPITools.Test +{ + /// + /// Class for testing NumberOnly + /// + /// + /// This file is automatically generated by OpenAPI Generator (https://openapi-generator.tech). + /// Please update the test case below to test the model. + /// + [TestFixture] + public class NumberOnlyTests + { + // TODO uncomment below to declare an instance variable for NumberOnly + //private NumberOnly instance; + + /// + /// Setup before each test + /// + [SetUp] + public void Init() + { + // TODO uncomment below to create an instance of NumberOnly + //instance = new NumberOnly(); + } + + /// + /// Clean up after each test + /// + [TearDown] + public void Cleanup() + { + + } + + /// + /// Test an instance of NumberOnly + /// + [Test] + public void NumberOnlyInstanceTest() + { + // TODO uncomment below to test "IsInstanceOfType" NumberOnly + //Assert.IsInstanceOfType (instance, "variable 'instance' is a NumberOnly"); + } + + + /// + /// Test the property 'JustNumber' + /// + [Test] + public void JustNumberTest() + { + // TODO unit test for the property 'JustNumber' + } + + } + +} diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/OrderTests.cs b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/OrderTests.cs new file mode 100644 index 00000000000..36853bd0d17 --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/OrderTests.cs @@ -0,0 +1,120 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * OpenAPI spec version: 1.0.0 + * + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + + +using NUnit.Framework; + +using System; +using System.Linq; +using System.IO; +using System.Collections.Generic; +using Org.OpenAPITools.Api; +using Org.OpenAPITools.Model; +using Org.OpenAPITools.Client; +using System.Reflection; +using Newtonsoft.Json; + +namespace Org.OpenAPITools.Test +{ + /// + /// Class for testing Order + /// + /// + /// This file is automatically generated by OpenAPI Generator (https://openapi-generator.tech). + /// Please update the test case below to test the model. + /// + [TestFixture] + public class OrderTests + { + // TODO uncomment below to declare an instance variable for Order + //private Order instance; + + /// + /// Setup before each test + /// + [SetUp] + public void Init() + { + // TODO uncomment below to create an instance of Order + //instance = new Order(); + } + + /// + /// Clean up after each test + /// + [TearDown] + public void Cleanup() + { + + } + + /// + /// Test an instance of Order + /// + [Test] + public void OrderInstanceTest() + { + // TODO uncomment below to test "IsInstanceOfType" Order + //Assert.IsInstanceOfType (instance, "variable 'instance' is a Order"); + } + + + /// + /// Test the property 'Id' + /// + [Test] + public void IdTest() + { + // TODO unit test for the property 'Id' + } + /// + /// Test the property 'PetId' + /// + [Test] + public void PetIdTest() + { + // TODO unit test for the property 'PetId' + } + /// + /// Test the property 'Quantity' + /// + [Test] + public void QuantityTest() + { + // TODO unit test for the property 'Quantity' + } + /// + /// Test the property 'ShipDate' + /// + [Test] + public void ShipDateTest() + { + // TODO unit test for the property 'ShipDate' + } + /// + /// Test the property 'Status' + /// + [Test] + public void StatusTest() + { + // TODO unit test for the property 'Status' + } + /// + /// Test the property 'Complete' + /// + [Test] + public void CompleteTest() + { + // TODO unit test for the property 'Complete' + } + + } + +} diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/OuterCompositeTests.cs b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/OuterCompositeTests.cs new file mode 100644 index 00000000000..7069f4e9554 --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/OuterCompositeTests.cs @@ -0,0 +1,96 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * OpenAPI spec version: 1.0.0 + * + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + + +using NUnit.Framework; + +using System; +using System.Linq; +using System.IO; +using System.Collections.Generic; +using Org.OpenAPITools.Api; +using Org.OpenAPITools.Model; +using Org.OpenAPITools.Client; +using System.Reflection; +using Newtonsoft.Json; + +namespace Org.OpenAPITools.Test +{ + /// + /// Class for testing OuterComposite + /// + /// + /// This file is automatically generated by OpenAPI Generator (https://openapi-generator.tech). + /// Please update the test case below to test the model. + /// + [TestFixture] + public class OuterCompositeTests + { + // TODO uncomment below to declare an instance variable for OuterComposite + //private OuterComposite instance; + + /// + /// Setup before each test + /// + [SetUp] + public void Init() + { + // TODO uncomment below to create an instance of OuterComposite + //instance = new OuterComposite(); + } + + /// + /// Clean up after each test + /// + [TearDown] + public void Cleanup() + { + + } + + /// + /// Test an instance of OuterComposite + /// + [Test] + public void OuterCompositeInstanceTest() + { + // TODO uncomment below to test "IsInstanceOfType" OuterComposite + //Assert.IsInstanceOfType (instance, "variable 'instance' is a OuterComposite"); + } + + + /// + /// Test the property 'MyNumber' + /// + [Test] + public void MyNumberTest() + { + // TODO unit test for the property 'MyNumber' + } + /// + /// Test the property 'MyString' + /// + [Test] + public void MyStringTest() + { + // TODO unit test for the property 'MyString' + } + /// + /// Test the property 'MyBoolean' + /// + [Test] + public void MyBooleanTest() + { + // TODO unit test for the property 'MyBoolean' + } + + } + +} diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/OuterEnumTests.cs b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/OuterEnumTests.cs new file mode 100644 index 00000000000..f482ff479ec --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/OuterEnumTests.cs @@ -0,0 +1,72 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * OpenAPI spec version: 1.0.0 + * + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + + +using NUnit.Framework; + +using System; +using System.Linq; +using System.IO; +using System.Collections.Generic; +using Org.OpenAPITools.Api; +using Org.OpenAPITools.Model; +using Org.OpenAPITools.Client; +using System.Reflection; +using Newtonsoft.Json; + +namespace Org.OpenAPITools.Test +{ + /// + /// Class for testing OuterEnum + /// + /// + /// This file is automatically generated by OpenAPI Generator (https://openapi-generator.tech). + /// Please update the test case below to test the model. + /// + [TestFixture] + public class OuterEnumTests + { + // TODO uncomment below to declare an instance variable for OuterEnum + //private OuterEnum instance; + + /// + /// Setup before each test + /// + [SetUp] + public void Init() + { + // TODO uncomment below to create an instance of OuterEnum + //instance = new OuterEnum(); + } + + /// + /// Clean up after each test + /// + [TearDown] + public void Cleanup() + { + + } + + /// + /// Test an instance of OuterEnum + /// + [Test] + public void OuterEnumInstanceTest() + { + // TODO uncomment below to test "IsInstanceOfType" OuterEnum + //Assert.IsInstanceOfType (instance, "variable 'instance' is a OuterEnum"); + } + + + + } + +} diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/PetTests.cs b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/PetTests.cs new file mode 100644 index 00000000000..20b3ab12dbb --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/PetTests.cs @@ -0,0 +1,120 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * OpenAPI spec version: 1.0.0 + * + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + + +using NUnit.Framework; + +using System; +using System.Linq; +using System.IO; +using System.Collections.Generic; +using Org.OpenAPITools.Api; +using Org.OpenAPITools.Model; +using Org.OpenAPITools.Client; +using System.Reflection; +using Newtonsoft.Json; + +namespace Org.OpenAPITools.Test +{ + /// + /// Class for testing Pet + /// + /// + /// This file is automatically generated by OpenAPI Generator (https://openapi-generator.tech). + /// Please update the test case below to test the model. + /// + [TestFixture] + public class PetTests + { + // TODO uncomment below to declare an instance variable for Pet + //private Pet instance; + + /// + /// Setup before each test + /// + [SetUp] + public void Init() + { + // TODO uncomment below to create an instance of Pet + //instance = new Pet(); + } + + /// + /// Clean up after each test + /// + [TearDown] + public void Cleanup() + { + + } + + /// + /// Test an instance of Pet + /// + [Test] + public void PetInstanceTest() + { + // TODO uncomment below to test "IsInstanceOfType" Pet + //Assert.IsInstanceOfType (instance, "variable 'instance' is a Pet"); + } + + + /// + /// Test the property 'Id' + /// + [Test] + public void IdTest() + { + // TODO unit test for the property 'Id' + } + /// + /// Test the property 'Category' + /// + [Test] + public void CategoryTest() + { + // TODO unit test for the property 'Category' + } + /// + /// Test the property 'Name' + /// + [Test] + public void NameTest() + { + // TODO unit test for the property 'Name' + } + /// + /// Test the property 'PhotoUrls' + /// + [Test] + public void PhotoUrlsTest() + { + // TODO unit test for the property 'PhotoUrls' + } + /// + /// Test the property 'Tags' + /// + [Test] + public void TagsTest() + { + // TODO unit test for the property 'Tags' + } + /// + /// Test the property 'Status' + /// + [Test] + public void StatusTest() + { + // TODO unit test for the property 'Status' + } + + } + +} diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/ReadOnlyFirstTests.cs b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/ReadOnlyFirstTests.cs new file mode 100644 index 00000000000..cf1a8f54bb8 --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/ReadOnlyFirstTests.cs @@ -0,0 +1,88 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * OpenAPI spec version: 1.0.0 + * + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + + +using NUnit.Framework; + +using System; +using System.Linq; +using System.IO; +using System.Collections.Generic; +using Org.OpenAPITools.Api; +using Org.OpenAPITools.Model; +using Org.OpenAPITools.Client; +using System.Reflection; +using Newtonsoft.Json; + +namespace Org.OpenAPITools.Test +{ + /// + /// Class for testing ReadOnlyFirst + /// + /// + /// This file is automatically generated by OpenAPI Generator (https://openapi-generator.tech). + /// Please update the test case below to test the model. + /// + [TestFixture] + public class ReadOnlyFirstTests + { + // TODO uncomment below to declare an instance variable for ReadOnlyFirst + //private ReadOnlyFirst instance; + + /// + /// Setup before each test + /// + [SetUp] + public void Init() + { + // TODO uncomment below to create an instance of ReadOnlyFirst + //instance = new ReadOnlyFirst(); + } + + /// + /// Clean up after each test + /// + [TearDown] + public void Cleanup() + { + + } + + /// + /// Test an instance of ReadOnlyFirst + /// + [Test] + public void ReadOnlyFirstInstanceTest() + { + // TODO uncomment below to test "IsInstanceOfType" ReadOnlyFirst + //Assert.IsInstanceOfType (instance, "variable 'instance' is a ReadOnlyFirst"); + } + + + /// + /// Test the property 'Bar' + /// + [Test] + public void BarTest() + { + // TODO unit test for the property 'Bar' + } + /// + /// Test the property 'Baz' + /// + [Test] + public void BazTest() + { + // TODO unit test for the property 'Baz' + } + + } + +} diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/ReturnTests.cs b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/ReturnTests.cs new file mode 100644 index 00000000000..1ac79a9f910 --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/ReturnTests.cs @@ -0,0 +1,80 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * OpenAPI spec version: 1.0.0 + * + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + + +using NUnit.Framework; + +using System; +using System.Linq; +using System.IO; +using System.Collections.Generic; +using Org.OpenAPITools.Api; +using Org.OpenAPITools.Model; +using Org.OpenAPITools.Client; +using System.Reflection; +using Newtonsoft.Json; + +namespace Org.OpenAPITools.Test +{ + /// + /// Class for testing Return + /// + /// + /// This file is automatically generated by OpenAPI Generator (https://openapi-generator.tech). + /// Please update the test case below to test the model. + /// + [TestFixture] + public class ReturnTests + { + // TODO uncomment below to declare an instance variable for Return + //private Return instance; + + /// + /// Setup before each test + /// + [SetUp] + public void Init() + { + // TODO uncomment below to create an instance of Return + //instance = new Return(); + } + + /// + /// Clean up after each test + /// + [TearDown] + public void Cleanup() + { + + } + + /// + /// Test an instance of Return + /// + [Test] + public void ReturnInstanceTest() + { + // TODO uncomment below to test "IsInstanceOfType" Return + //Assert.IsInstanceOfType (instance, "variable 'instance' is a Return"); + } + + + /// + /// Test the property '_Return' + /// + [Test] + public void _ReturnTest() + { + // TODO unit test for the property '_Return' + } + + } + +} diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/SpecialModelNameTests.cs b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/SpecialModelNameTests.cs new file mode 100644 index 00000000000..0a4dcb6a7bc --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/SpecialModelNameTests.cs @@ -0,0 +1,80 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * OpenAPI spec version: 1.0.0 + * + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + + +using NUnit.Framework; + +using System; +using System.Linq; +using System.IO; +using System.Collections.Generic; +using Org.OpenAPITools.Api; +using Org.OpenAPITools.Model; +using Org.OpenAPITools.Client; +using System.Reflection; +using Newtonsoft.Json; + +namespace Org.OpenAPITools.Test +{ + /// + /// Class for testing SpecialModelName + /// + /// + /// This file is automatically generated by OpenAPI Generator (https://openapi-generator.tech). + /// Please update the test case below to test the model. + /// + [TestFixture] + public class SpecialModelNameTests + { + // TODO uncomment below to declare an instance variable for SpecialModelName + //private SpecialModelName instance; + + /// + /// Setup before each test + /// + [SetUp] + public void Init() + { + // TODO uncomment below to create an instance of SpecialModelName + //instance = new SpecialModelName(); + } + + /// + /// Clean up after each test + /// + [TearDown] + public void Cleanup() + { + + } + + /// + /// Test an instance of SpecialModelName + /// + [Test] + public void SpecialModelNameInstanceTest() + { + // TODO uncomment below to test "IsInstanceOfType" SpecialModelName + //Assert.IsInstanceOfType (instance, "variable 'instance' is a SpecialModelName"); + } + + + /// + /// Test the property 'SpecialPropertyName' + /// + [Test] + public void SpecialPropertyNameTest() + { + // TODO unit test for the property 'SpecialPropertyName' + } + + } + +} diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/StringBooleanMapTests.cs b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/StringBooleanMapTests.cs new file mode 100644 index 00000000000..efc4cd90773 --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/StringBooleanMapTests.cs @@ -0,0 +1,72 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * OpenAPI spec version: 1.0.0 + * + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + + +using NUnit.Framework; + +using System; +using System.Linq; +using System.IO; +using System.Collections.Generic; +using Org.OpenAPITools.Api; +using Org.OpenAPITools.Model; +using Org.OpenAPITools.Client; +using System.Reflection; +using Newtonsoft.Json; + +namespace Org.OpenAPITools.Test +{ + /// + /// Class for testing StringBooleanMap + /// + /// + /// This file is automatically generated by OpenAPI Generator (https://openapi-generator.tech). + /// Please update the test case below to test the model. + /// + [TestFixture] + public class StringBooleanMapTests + { + // TODO uncomment below to declare an instance variable for StringBooleanMap + //private StringBooleanMap instance; + + /// + /// Setup before each test + /// + [SetUp] + public void Init() + { + // TODO uncomment below to create an instance of StringBooleanMap + //instance = new StringBooleanMap(); + } + + /// + /// Clean up after each test + /// + [TearDown] + public void Cleanup() + { + + } + + /// + /// Test an instance of StringBooleanMap + /// + [Test] + public void StringBooleanMapInstanceTest() + { + // TODO uncomment below to test "IsInstanceOfType" StringBooleanMap + //Assert.IsInstanceOfType (instance, "variable 'instance' is a StringBooleanMap"); + } + + + + } + +} diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/TagTests.cs b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/TagTests.cs new file mode 100644 index 00000000000..52ee4ca988f --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/TagTests.cs @@ -0,0 +1,88 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * OpenAPI spec version: 1.0.0 + * + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + + +using NUnit.Framework; + +using System; +using System.Linq; +using System.IO; +using System.Collections.Generic; +using Org.OpenAPITools.Api; +using Org.OpenAPITools.Model; +using Org.OpenAPITools.Client; +using System.Reflection; +using Newtonsoft.Json; + +namespace Org.OpenAPITools.Test +{ + /// + /// Class for testing Tag + /// + /// + /// This file is automatically generated by OpenAPI Generator (https://openapi-generator.tech). + /// Please update the test case below to test the model. + /// + [TestFixture] + public class TagTests + { + // TODO uncomment below to declare an instance variable for Tag + //private Tag instance; + + /// + /// Setup before each test + /// + [SetUp] + public void Init() + { + // TODO uncomment below to create an instance of Tag + //instance = new Tag(); + } + + /// + /// Clean up after each test + /// + [TearDown] + public void Cleanup() + { + + } + + /// + /// Test an instance of Tag + /// + [Test] + public void TagInstanceTest() + { + // TODO uncomment below to test "IsInstanceOfType" Tag + //Assert.IsInstanceOfType (instance, "variable 'instance' is a Tag"); + } + + + /// + /// Test the property 'Id' + /// + [Test] + public void IdTest() + { + // TODO unit test for the property 'Id' + } + /// + /// Test the property 'Name' + /// + [Test] + public void NameTest() + { + // TODO unit test for the property 'Name' + } + + } + +} diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/UserTests.cs b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/UserTests.cs new file mode 100644 index 00000000000..8e073d2aa0e --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/UserTests.cs @@ -0,0 +1,136 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * OpenAPI spec version: 1.0.0 + * + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + + +using NUnit.Framework; + +using System; +using System.Linq; +using System.IO; +using System.Collections.Generic; +using Org.OpenAPITools.Api; +using Org.OpenAPITools.Model; +using Org.OpenAPITools.Client; +using System.Reflection; +using Newtonsoft.Json; + +namespace Org.OpenAPITools.Test +{ + /// + /// Class for testing User + /// + /// + /// This file is automatically generated by OpenAPI Generator (https://openapi-generator.tech). + /// Please update the test case below to test the model. + /// + [TestFixture] + public class UserTests + { + // TODO uncomment below to declare an instance variable for User + //private User instance; + + /// + /// Setup before each test + /// + [SetUp] + public void Init() + { + // TODO uncomment below to create an instance of User + //instance = new User(); + } + + /// + /// Clean up after each test + /// + [TearDown] + public void Cleanup() + { + + } + + /// + /// Test an instance of User + /// + [Test] + public void UserInstanceTest() + { + // TODO uncomment below to test "IsInstanceOfType" User + //Assert.IsInstanceOfType (instance, "variable 'instance' is a User"); + } + + + /// + /// Test the property 'Id' + /// + [Test] + public void IdTest() + { + // TODO unit test for the property 'Id' + } + /// + /// Test the property 'Username' + /// + [Test] + public void UsernameTest() + { + // TODO unit test for the property 'Username' + } + /// + /// Test the property 'FirstName' + /// + [Test] + public void FirstNameTest() + { + // TODO unit test for the property 'FirstName' + } + /// + /// Test the property 'LastName' + /// + [Test] + public void LastNameTest() + { + // TODO unit test for the property 'LastName' + } + /// + /// Test the property 'Email' + /// + [Test] + public void EmailTest() + { + // TODO unit test for the property 'Email' + } + /// + /// Test the property 'Password' + /// + [Test] + public void PasswordTest() + { + // TODO unit test for the property 'Password' + } + /// + /// Test the property 'Phone' + /// + [Test] + public void PhoneTest() + { + // TODO unit test for the property 'Phone' + } + /// + /// Test the property 'UserStatus' + /// + [Test] + public void UserStatusTest() + { + // TODO unit test for the property 'UserStatus' + } + + } + +} diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Org.OpenAPITools.Test.csproj b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Org.OpenAPITools.Test.csproj new file mode 100644 index 00000000000..48ec5e0f7c1 --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Org.OpenAPITools.Test.csproj @@ -0,0 +1,89 @@ + + + + + Debug + AnyCPU + {19F1DEBC-DE5E-4517-8062-F000CD499087} + Library + Properties + Org.OpenAPITools.Test + Org.OpenAPITools.Test + v4.5 + 512 + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + $(SolutionDir)\packages\Newtonsoft.Json.10.0.3\lib\net45\Newtonsoft.Json.dll + ..\packages\Newtonsoft.Json.10.0.3\lib\net45\Newtonsoft.Json.dll + ..\..\packages\Newtonsoft.Json.10.0.3\lib\net45\Newtonsoft.Json.dll + ..\..\vendor\Newtonsoft.Json.10.0.3\lib\net45\Newtonsoft.Json.dll + + + $(SolutionDir)\packages\JsonSubTypes.1.2.0\lib\net45\JsonSubTypes.dll + ..\packages\JsonSubTypes.1.2.0\lib\net45\JsonSubTypes.dll + ..\..\packages\JsonSubTypes.1.2.0\lib\net45\JsonSubTypes.dll + ..\..\vendor\JsonSubTypes.1.2.0\lib\net45\JsonSubTypes.dll + + + $(SolutionDir)\packages\RestSharp.105.1.0\lib\net45\RestSharp.dll + ..\packages\RestSharp.105.1.0\lib\net45\RestSharp.dll + ..\..\packages\RestSharp.105.1.0\lib\net45\RestSharp.dll + ..\..\vendor\RestSharp.105.1.0\lib\net45\RestSharp.dll + + + $(SolutionDir)\packages\NUnit.2.6.4\lib\nunit.framework.dll + ..\packages\NUnit.2.6.4\lib\nunit.framework.dll + ..\..\packages\NUnit.2.6.4\lib\nunit.framework.dll + ..\..\vendor\NUnit.2.6.4\lib\nunit.framework.dll + + + + + + + + + + + + {321C8C3F-0156-40C1-AE42-D59761FB9B6C} + Org.OpenAPITools + + + + diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/packages.config b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/packages.config new file mode 100644 index 00000000000..ac390c1dcb3 --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/packages.config @@ -0,0 +1,7 @@ + + + + + + + diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Api/AnotherFakeApi.cs b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Api/AnotherFakeApi.cs new file mode 100644 index 00000000000..7ad377f91f8 --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Api/AnotherFakeApi.cs @@ -0,0 +1,314 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * OpenAPI spec version: 1.0.0 + * + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + + +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Linq; +using System.Net; +using System.Net.Mime; +using Org.OpenAPITools.Client; +using Org.OpenAPITools.Model; + +namespace Org.OpenAPITools.Api +{ + + /// + /// Represents a collection of functions to interact with the API endpoints + /// + public interface IAnotherFakeApiSync : IApiAccessor + { + #region Synchronous Operations + /// + /// To test special tags + /// + /// + /// To test special tags and operation ID starting with number + /// + /// Thrown when fails to make API call + /// client model + /// ModelClient + ModelClient Call123TestSpecialTags (ModelClient modelClient); + + /// + /// To test special tags + /// + /// + /// To test special tags and operation ID starting with number + /// + /// Thrown when fails to make API call + /// client model + /// ApiResponse of ModelClient + ApiResponse Call123TestSpecialTagsWithHttpInfo (ModelClient modelClient); + #endregion Synchronous Operations + } + + /// + /// Represents a collection of functions to interact with the API endpoints + /// + public interface IAnotherFakeApiAsync : IApiAccessor + { + #region Asynchronous Operations + /// + /// To test special tags + /// + /// + /// To test special tags and operation ID starting with number + /// + /// Thrown when fails to make API call + /// client model + /// Task of ModelClient + System.Threading.Tasks.Task Call123TestSpecialTagsAsync (ModelClient modelClient); + + /// + /// To test special tags + /// + /// + /// To test special tags and operation ID starting with number + /// + /// Thrown when fails to make API call + /// client model + /// Task of ApiResponse (ModelClient) + System.Threading.Tasks.Task> Call123TestSpecialTagsAsyncWithHttpInfo (ModelClient modelClient); + #endregion Asynchronous Operations + } + + public interface IAnotherFakeApi : IAnotherFakeApiSync, IAnotherFakeApiAsync + { + + } + + /// + /// Represents a collection of functions to interact with the API endpoints + /// + public partial class AnotherFakeApi : IAnotherFakeApi + { + private Org.OpenAPITools.Client.ExceptionFactory _exceptionFactory = (name, response) => null; + + /// + /// Initializes a new instance of the class. + /// + /// + public AnotherFakeApi() : this((string) null) + { + } + + /// + /// Initializes a new instance of the class. + /// + /// + public AnotherFakeApi(String basePath) + { + this.Configuration = Org.OpenAPITools.Client.Configuration.MergeConfigurations( + Org.OpenAPITools.Client.GlobalConfiguration.Instance, + new Org.OpenAPITools.Client.Configuration { BasePath = basePath } + ); + this.Client = new Org.OpenAPITools.Client.ApiClient(this.Configuration.BasePath); + this.AsynchronousClient = new Org.OpenAPITools.Client.ApiClient(this.Configuration.BasePath); + this.ExceptionFactory = Org.OpenAPITools.Client.Configuration.DefaultExceptionFactory; + } + + /// + /// Initializes a new instance of the class + /// using Configuration object + /// + /// An instance of Configuration + /// + public AnotherFakeApi(Org.OpenAPITools.Client.Configuration configuration) + { + if (configuration == null) throw new ArgumentNullException("configuration"); + + this.Configuration = Org.OpenAPITools.Client.Configuration.MergeConfigurations( + Org.OpenAPITools.Client.GlobalConfiguration.Instance, + configuration + ); + this.Client = new Org.OpenAPITools.Client.ApiClient(this.Configuration.BasePath); + this.AsynchronousClient = new Org.OpenAPITools.Client.ApiClient(this.Configuration.BasePath); + ExceptionFactory = Org.OpenAPITools.Client.Configuration.DefaultExceptionFactory; + } + + /// + /// Initializes a new instance of the class + /// using a Configuration object and client instance. + /// + /// The client interface for synchronous API access. + /// The client interface for asynchronous API access. + /// The configuration object. + public AnotherFakeApi(Org.OpenAPITools.Client.ISynchronousClient client,Org.OpenAPITools.Client.IAsynchronousClient asyncClient, Org.OpenAPITools.Client.IReadableConfiguration configuration) + { + if(client == null) throw new ArgumentNullException("client"); + if(asyncClient == null) throw new ArgumentNullException("asyncClient"); + if(configuration == null) throw new ArgumentNullException("configuration"); + + this.Client = client; + this.AsynchronousClient = asyncClient; + this.Configuration = configuration; + this.ExceptionFactory = Org.OpenAPITools.Client.Configuration.DefaultExceptionFactory; + } + + /// + /// The client for accessing this underlying API asynchronously. + /// + public Org.OpenAPITools.Client.IAsynchronousClient AsynchronousClient { get; set; } + + /// + /// The client for accessing this underlying API synchronously. + /// + public Org.OpenAPITools.Client.ISynchronousClient Client { get; set; } + + /// + /// Gets the base path of the API client. + /// + /// The base path + public String GetBasePath() + { + return this.Configuration.BasePath; + } + + /// + /// Gets or sets the configuration object + /// + /// An instance of the Configuration + public Org.OpenAPITools.Client.IReadableConfiguration Configuration {get; set;} + + /// + /// Provides a factory method hook for the creation of exceptions. + /// + public Org.OpenAPITools.Client.ExceptionFactory ExceptionFactory + { + get + { + if (_exceptionFactory != null && _exceptionFactory.GetInvocationList().Length > 1) + { + throw new InvalidOperationException("Multicast delegate for ExceptionFactory is unsupported."); + } + return _exceptionFactory; + } + set { _exceptionFactory = value; } + } + + /// + /// To test special tags To test special tags and operation ID starting with number + /// + /// Thrown when fails to make API call + /// client model + /// ModelClient + public ModelClient Call123TestSpecialTags (ModelClient modelClient) + { + Org.OpenAPITools.Client.ApiResponse localVarResponse = Call123TestSpecialTagsWithHttpInfo(modelClient); + return localVarResponse.Data; + } + + /// + /// To test special tags To test special tags and operation ID starting with number + /// + /// Thrown when fails to make API call + /// client model + /// ApiResponse of ModelClient + public Org.OpenAPITools.Client.ApiResponse< ModelClient > Call123TestSpecialTagsWithHttpInfo (ModelClient modelClient) + { + // verify the required parameter 'modelClient' is set + if (modelClient == null) + throw new Org.OpenAPITools.Client.ApiException(400, "Missing required parameter 'modelClient' when calling AnotherFakeApi->Call123TestSpecialTags"); + + Org.OpenAPITools.Client.RequestOptions requestOptions = new Org.OpenAPITools.Client.RequestOptions(); + + String[] @contentTypes = new String[] { + "application/json" + }; + + // to determine the Accept header + String[] @accepts = new String[] { + "application/json" + }; + + foreach (var contentType in @contentTypes) + requestOptions.HeaderParameters.Add("Content-Type", contentType); + + foreach (var accept in @accepts) + requestOptions.HeaderParameters.Add("Accept", accept); + + requestOptions.Data = modelClient; + + + // make the HTTP request + + var response = this.Client.Patch< ModelClient >("/another-fake/dummy", requestOptions, this.Configuration); + + if (this.ExceptionFactory != null) + { + Exception exception = this.ExceptionFactory("Call123TestSpecialTags", response); + if (exception != null) throw exception; + } + + return response; + } + + /// + /// To test special tags To test special tags and operation ID starting with number + /// + /// Thrown when fails to make API call + /// client model + /// Task of ModelClient + public async System.Threading.Tasks.Task Call123TestSpecialTagsAsync (ModelClient modelClient) + { + Org.OpenAPITools.Client.ApiResponse localVarResponse = await Call123TestSpecialTagsAsyncWithHttpInfo(modelClient); + return localVarResponse.Data; + + } + + /// + /// To test special tags To test special tags and operation ID starting with number + /// + /// Thrown when fails to make API call + /// client model + /// Task of ApiResponse (ModelClient) + public async System.Threading.Tasks.Task> Call123TestSpecialTagsAsyncWithHttpInfo (ModelClient modelClient) + { + // verify the required parameter 'modelClient' is set + if (modelClient == null) + throw new Org.OpenAPITools.Client.ApiException(400, "Missing required parameter 'modelClient' when calling AnotherFakeApi->Call123TestSpecialTags"); + + Org.OpenAPITools.Client.RequestOptions requestOptions = new Org.OpenAPITools.Client.RequestOptions(); + + String[] @contentTypes = new String[] { + "application/json" + }; + + // to determine the Accept header + String[] @accepts = new String[] { + "application/json" + }; + + foreach (var contentType in @contentTypes) + requestOptions.HeaderParameters.Add("Content-Type", contentType); + + foreach (var accept in @accepts) + requestOptions.HeaderParameters.Add("Accept", accept); + + requestOptions.Data = modelClient; + + + // make the HTTP request + + var response = await this.AsynchronousClient.PatchAsync("/another-fake/dummy", requestOptions, this.Configuration); + + if (this.ExceptionFactory != null) + { + Exception exception = this.ExceptionFactory("Call123TestSpecialTags", response); + if (exception != null) throw exception; + } + + return response; + } + + } +} diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Api/FakeApi.cs b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Api/FakeApi.cs new file mode 100644 index 00000000000..ff8ead23210 --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Api/FakeApi.cs @@ -0,0 +1,2575 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * OpenAPI spec version: 1.0.0 + * + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + + +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Linq; +using System.Net; +using System.Net.Mime; +using Org.OpenAPITools.Client; +using Org.OpenAPITools.Model; + +namespace Org.OpenAPITools.Api +{ + + /// + /// Represents a collection of functions to interact with the API endpoints + /// + public interface IFakeApiSync : IApiAccessor + { + #region Synchronous Operations + /// + /// + /// + /// + /// Test serialization of outer boolean types + /// + /// Thrown when fails to make API call + /// Input boolean as post body (optional) + /// bool? + bool? FakeOuterBooleanSerialize (bool? body = null); + + /// + /// + /// + /// + /// Test serialization of outer boolean types + /// + /// Thrown when fails to make API call + /// Input boolean as post body (optional) + /// ApiResponse of bool? + ApiResponse FakeOuterBooleanSerializeWithHttpInfo (bool? body = null); + /// + /// + /// + /// + /// Test serialization of object with outer number type + /// + /// Thrown when fails to make API call + /// Input composite as post body (optional) + /// OuterComposite + OuterComposite FakeOuterCompositeSerialize (OuterComposite outerComposite = null); + + /// + /// + /// + /// + /// Test serialization of object with outer number type + /// + /// Thrown when fails to make API call + /// Input composite as post body (optional) + /// ApiResponse of OuterComposite + ApiResponse FakeOuterCompositeSerializeWithHttpInfo (OuterComposite outerComposite = null); + /// + /// + /// + /// + /// Test serialization of outer number types + /// + /// Thrown when fails to make API call + /// Input number as post body (optional) + /// decimal? + decimal? FakeOuterNumberSerialize (decimal? body = null); + + /// + /// + /// + /// + /// Test serialization of outer number types + /// + /// Thrown when fails to make API call + /// Input number as post body (optional) + /// ApiResponse of decimal? + ApiResponse FakeOuterNumberSerializeWithHttpInfo (decimal? body = null); + /// + /// + /// + /// + /// Test serialization of outer string types + /// + /// Thrown when fails to make API call + /// Input string as post body (optional) + /// string + string FakeOuterStringSerialize (string body = null); + + /// + /// + /// + /// + /// Test serialization of outer string types + /// + /// Thrown when fails to make API call + /// Input string as post body (optional) + /// ApiResponse of string + ApiResponse FakeOuterStringSerializeWithHttpInfo (string body = null); + /// + /// + /// + /// + /// For this test, the body for this request much reference a schema named `File`. + /// + /// Thrown when fails to make API call + /// + /// + void TestBodyWithFileSchema (FileSchemaTestClass fileSchemaTestClass); + + /// + /// + /// + /// + /// For this test, the body for this request much reference a schema named `File`. + /// + /// Thrown when fails to make API call + /// + /// ApiResponse of Object(void) + ApiResponse TestBodyWithFileSchemaWithHttpInfo (FileSchemaTestClass fileSchemaTestClass); + /// + /// + /// + /// + /// + /// + /// Thrown when fails to make API call + /// + /// + /// + void TestBodyWithQueryParams (string query, User user); + + /// + /// + /// + /// + /// + /// + /// Thrown when fails to make API call + /// + /// + /// ApiResponse of Object(void) + ApiResponse TestBodyWithQueryParamsWithHttpInfo (string query, User user); + /// + /// To test \"client\" model + /// + /// + /// To test \"client\" model + /// + /// Thrown when fails to make API call + /// client model + /// ModelClient + ModelClient TestClientModel (ModelClient modelClient); + + /// + /// To test \"client\" model + /// + /// + /// To test \"client\" model + /// + /// Thrown when fails to make API call + /// client model + /// ApiResponse of ModelClient + ApiResponse TestClientModelWithHttpInfo (ModelClient modelClient); + /// + /// Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트 + /// + /// + /// Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트 + /// + /// Thrown when fails to make API call + /// None + /// None + /// None + /// None + /// None (optional) + /// None (optional) + /// None (optional) + /// None (optional) + /// None (optional) + /// None (optional) + /// None (optional) + /// None (optional) + /// None (optional) + /// None (optional) + /// + void TestEndpointParameters (decimal? number, double? _double, string patternWithoutDelimiter, byte[] _byte, int? integer = null, int? int32 = null, long? int64 = null, float? _float = null, string _string = null, System.IO.Stream binary = null, DateTime? date = null, DateTime? dateTime = null, string password = null, string callback = null); + + /// + /// Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트 + /// + /// + /// Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트 + /// + /// Thrown when fails to make API call + /// None + /// None + /// None + /// None + /// None (optional) + /// None (optional) + /// None (optional) + /// None (optional) + /// None (optional) + /// None (optional) + /// None (optional) + /// None (optional) + /// None (optional) + /// None (optional) + /// ApiResponse of Object(void) + ApiResponse TestEndpointParametersWithHttpInfo (decimal? number, double? _double, string patternWithoutDelimiter, byte[] _byte, int? integer = null, int? int32 = null, long? int64 = null, float? _float = null, string _string = null, System.IO.Stream binary = null, DateTime? date = null, DateTime? dateTime = null, string password = null, string callback = null); + /// + /// To test enum parameters + /// + /// + /// To test enum parameters + /// + /// Thrown when fails to make API call + /// Header parameter enum test (string array) (optional) + /// Header parameter enum test (string) (optional, default to -efg) + /// Query parameter enum test (string array) (optional) + /// Query parameter enum test (string) (optional, default to -efg) + /// Query parameter enum test (double) (optional) + /// Query parameter enum test (double) (optional) + /// Form parameter enum test (string array) (optional, default to $) + /// Form parameter enum test (string) (optional, default to -efg) + /// + void TestEnumParameters (List enumHeaderStringArray = null, string enumHeaderString = null, List enumQueryStringArray = null, string enumQueryString = null, int? enumQueryInteger = null, double? enumQueryDouble = null, List enumFormStringArray = null, string enumFormString = null); + + /// + /// To test enum parameters + /// + /// + /// To test enum parameters + /// + /// Thrown when fails to make API call + /// Header parameter enum test (string array) (optional) + /// Header parameter enum test (string) (optional, default to -efg) + /// Query parameter enum test (string array) (optional) + /// Query parameter enum test (string) (optional, default to -efg) + /// Query parameter enum test (double) (optional) + /// Query parameter enum test (double) (optional) + /// Form parameter enum test (string array) (optional, default to $) + /// Form parameter enum test (string) (optional, default to -efg) + /// ApiResponse of Object(void) + ApiResponse TestEnumParametersWithHttpInfo (List enumHeaderStringArray = null, string enumHeaderString = null, List enumQueryStringArray = null, string enumQueryString = null, int? enumQueryInteger = null, double? enumQueryDouble = null, List enumFormStringArray = null, string enumFormString = null); + /// + /// Fake endpoint to test group parameters (optional) + /// + /// + /// Fake endpoint to test group parameters (optional) + /// + /// Thrown when fails to make API call + /// Required String in group parameters + /// Required Boolean in group parameters + /// Required Integer in group parameters + /// String in group parameters (optional) + /// Boolean in group parameters (optional) + /// Integer in group parameters (optional) + /// + void TestGroupParameters (int? requiredStringGroup, bool? requiredBooleanGroup, long? requiredInt64Group, int? stringGroup = null, bool? booleanGroup = null, long? int64Group = null); + + /// + /// Fake endpoint to test group parameters (optional) + /// + /// + /// Fake endpoint to test group parameters (optional) + /// + /// Thrown when fails to make API call + /// Required String in group parameters + /// Required Boolean in group parameters + /// Required Integer in group parameters + /// String in group parameters (optional) + /// Boolean in group parameters (optional) + /// Integer in group parameters (optional) + /// ApiResponse of Object(void) + ApiResponse TestGroupParametersWithHttpInfo (int? requiredStringGroup, bool? requiredBooleanGroup, long? requiredInt64Group, int? stringGroup = null, bool? booleanGroup = null, long? int64Group = null); + /// + /// test inline additionalProperties + /// + /// + /// + /// + /// Thrown when fails to make API call + /// request body + /// + void TestInlineAdditionalProperties (Dictionary requestBody); + + /// + /// test inline additionalProperties + /// + /// + /// + /// + /// Thrown when fails to make API call + /// request body + /// ApiResponse of Object(void) + ApiResponse TestInlineAdditionalPropertiesWithHttpInfo (Dictionary requestBody); + /// + /// test json serialization of form data + /// + /// + /// + /// + /// Thrown when fails to make API call + /// field1 + /// field2 + /// + void TestJsonFormData (string param, string param2); + + /// + /// test json serialization of form data + /// + /// + /// + /// + /// Thrown when fails to make API call + /// field1 + /// field2 + /// ApiResponse of Object(void) + ApiResponse TestJsonFormDataWithHttpInfo (string param, string param2); + #endregion Synchronous Operations + } + + /// + /// Represents a collection of functions to interact with the API endpoints + /// + public interface IFakeApiAsync : IApiAccessor + { + #region Asynchronous Operations + /// + /// + /// + /// + /// Test serialization of outer boolean types + /// + /// Thrown when fails to make API call + /// Input boolean as post body (optional) + /// Task of bool? + System.Threading.Tasks.Task FakeOuterBooleanSerializeAsync (bool? body = null); + + /// + /// + /// + /// + /// Test serialization of outer boolean types + /// + /// Thrown when fails to make API call + /// Input boolean as post body (optional) + /// Task of ApiResponse (bool?) + System.Threading.Tasks.Task> FakeOuterBooleanSerializeAsyncWithHttpInfo (bool? body = null); + /// + /// + /// + /// + /// Test serialization of object with outer number type + /// + /// Thrown when fails to make API call + /// Input composite as post body (optional) + /// Task of OuterComposite + System.Threading.Tasks.Task FakeOuterCompositeSerializeAsync (OuterComposite outerComposite = null); + + /// + /// + /// + /// + /// Test serialization of object with outer number type + /// + /// Thrown when fails to make API call + /// Input composite as post body (optional) + /// Task of ApiResponse (OuterComposite) + System.Threading.Tasks.Task> FakeOuterCompositeSerializeAsyncWithHttpInfo (OuterComposite outerComposite = null); + /// + /// + /// + /// + /// Test serialization of outer number types + /// + /// Thrown when fails to make API call + /// Input number as post body (optional) + /// Task of decimal? + System.Threading.Tasks.Task FakeOuterNumberSerializeAsync (decimal? body = null); + + /// + /// + /// + /// + /// Test serialization of outer number types + /// + /// Thrown when fails to make API call + /// Input number as post body (optional) + /// Task of ApiResponse (decimal?) + System.Threading.Tasks.Task> FakeOuterNumberSerializeAsyncWithHttpInfo (decimal? body = null); + /// + /// + /// + /// + /// Test serialization of outer string types + /// + /// Thrown when fails to make API call + /// Input string as post body (optional) + /// Task of string + System.Threading.Tasks.Task FakeOuterStringSerializeAsync (string body = null); + + /// + /// + /// + /// + /// Test serialization of outer string types + /// + /// Thrown when fails to make API call + /// Input string as post body (optional) + /// Task of ApiResponse (string) + System.Threading.Tasks.Task> FakeOuterStringSerializeAsyncWithHttpInfo (string body = null); + /// + /// + /// + /// + /// For this test, the body for this request much reference a schema named `File`. + /// + /// Thrown when fails to make API call + /// + /// Task of void + System.Threading.Tasks.Task TestBodyWithFileSchemaAsync (FileSchemaTestClass fileSchemaTestClass); + + /// + /// + /// + /// + /// For this test, the body for this request much reference a schema named `File`. + /// + /// Thrown when fails to make API call + /// + /// Task of ApiResponse + System.Threading.Tasks.Task> TestBodyWithFileSchemaAsyncWithHttpInfo (FileSchemaTestClass fileSchemaTestClass); + /// + /// + /// + /// + /// + /// + /// Thrown when fails to make API call + /// + /// + /// Task of void + System.Threading.Tasks.Task TestBodyWithQueryParamsAsync (string query, User user); + + /// + /// + /// + /// + /// + /// + /// Thrown when fails to make API call + /// + /// + /// Task of ApiResponse + System.Threading.Tasks.Task> TestBodyWithQueryParamsAsyncWithHttpInfo (string query, User user); + /// + /// To test \"client\" model + /// + /// + /// To test \"client\" model + /// + /// Thrown when fails to make API call + /// client model + /// Task of ModelClient + System.Threading.Tasks.Task TestClientModelAsync (ModelClient modelClient); + + /// + /// To test \"client\" model + /// + /// + /// To test \"client\" model + /// + /// Thrown when fails to make API call + /// client model + /// Task of ApiResponse (ModelClient) + System.Threading.Tasks.Task> TestClientModelAsyncWithHttpInfo (ModelClient modelClient); + /// + /// Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트 + /// + /// + /// Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트 + /// + /// Thrown when fails to make API call + /// None + /// None + /// None + /// None + /// None (optional) + /// None (optional) + /// None (optional) + /// None (optional) + /// None (optional) + /// None (optional) + /// None (optional) + /// None (optional) + /// None (optional) + /// None (optional) + /// Task of void + System.Threading.Tasks.Task TestEndpointParametersAsync (decimal? number, double? _double, string patternWithoutDelimiter, byte[] _byte, int? integer = null, int? int32 = null, long? int64 = null, float? _float = null, string _string = null, System.IO.Stream binary = null, DateTime? date = null, DateTime? dateTime = null, string password = null, string callback = null); + + /// + /// Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트 + /// + /// + /// Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트 + /// + /// Thrown when fails to make API call + /// None + /// None + /// None + /// None + /// None (optional) + /// None (optional) + /// None (optional) + /// None (optional) + /// None (optional) + /// None (optional) + /// None (optional) + /// None (optional) + /// None (optional) + /// None (optional) + /// Task of ApiResponse + System.Threading.Tasks.Task> TestEndpointParametersAsyncWithHttpInfo (decimal? number, double? _double, string patternWithoutDelimiter, byte[] _byte, int? integer = null, int? int32 = null, long? int64 = null, float? _float = null, string _string = null, System.IO.Stream binary = null, DateTime? date = null, DateTime? dateTime = null, string password = null, string callback = null); + /// + /// To test enum parameters + /// + /// + /// To test enum parameters + /// + /// Thrown when fails to make API call + /// Header parameter enum test (string array) (optional) + /// Header parameter enum test (string) (optional, default to -efg) + /// Query parameter enum test (string array) (optional) + /// Query parameter enum test (string) (optional, default to -efg) + /// Query parameter enum test (double) (optional) + /// Query parameter enum test (double) (optional) + /// Form parameter enum test (string array) (optional, default to $) + /// Form parameter enum test (string) (optional, default to -efg) + /// Task of void + System.Threading.Tasks.Task TestEnumParametersAsync (List enumHeaderStringArray = null, string enumHeaderString = null, List enumQueryStringArray = null, string enumQueryString = null, int? enumQueryInteger = null, double? enumQueryDouble = null, List enumFormStringArray = null, string enumFormString = null); + + /// + /// To test enum parameters + /// + /// + /// To test enum parameters + /// + /// Thrown when fails to make API call + /// Header parameter enum test (string array) (optional) + /// Header parameter enum test (string) (optional, default to -efg) + /// Query parameter enum test (string array) (optional) + /// Query parameter enum test (string) (optional, default to -efg) + /// Query parameter enum test (double) (optional) + /// Query parameter enum test (double) (optional) + /// Form parameter enum test (string array) (optional, default to $) + /// Form parameter enum test (string) (optional, default to -efg) + /// Task of ApiResponse + System.Threading.Tasks.Task> TestEnumParametersAsyncWithHttpInfo (List enumHeaderStringArray = null, string enumHeaderString = null, List enumQueryStringArray = null, string enumQueryString = null, int? enumQueryInteger = null, double? enumQueryDouble = null, List enumFormStringArray = null, string enumFormString = null); + /// + /// Fake endpoint to test group parameters (optional) + /// + /// + /// Fake endpoint to test group parameters (optional) + /// + /// Thrown when fails to make API call + /// Required String in group parameters + /// Required Boolean in group parameters + /// Required Integer in group parameters + /// String in group parameters (optional) + /// Boolean in group parameters (optional) + /// Integer in group parameters (optional) + /// Task of void + System.Threading.Tasks.Task TestGroupParametersAsync (int? requiredStringGroup, bool? requiredBooleanGroup, long? requiredInt64Group, int? stringGroup = null, bool? booleanGroup = null, long? int64Group = null); + + /// + /// Fake endpoint to test group parameters (optional) + /// + /// + /// Fake endpoint to test group parameters (optional) + /// + /// Thrown when fails to make API call + /// Required String in group parameters + /// Required Boolean in group parameters + /// Required Integer in group parameters + /// String in group parameters (optional) + /// Boolean in group parameters (optional) + /// Integer in group parameters (optional) + /// Task of ApiResponse + System.Threading.Tasks.Task> TestGroupParametersAsyncWithHttpInfo (int? requiredStringGroup, bool? requiredBooleanGroup, long? requiredInt64Group, int? stringGroup = null, bool? booleanGroup = null, long? int64Group = null); + /// + /// test inline additionalProperties + /// + /// + /// + /// + /// Thrown when fails to make API call + /// request body + /// Task of void + System.Threading.Tasks.Task TestInlineAdditionalPropertiesAsync (Dictionary requestBody); + + /// + /// test inline additionalProperties + /// + /// + /// + /// + /// Thrown when fails to make API call + /// request body + /// Task of ApiResponse + System.Threading.Tasks.Task> TestInlineAdditionalPropertiesAsyncWithHttpInfo (Dictionary requestBody); + /// + /// test json serialization of form data + /// + /// + /// + /// + /// Thrown when fails to make API call + /// field1 + /// field2 + /// Task of void + System.Threading.Tasks.Task TestJsonFormDataAsync (string param, string param2); + + /// + /// test json serialization of form data + /// + /// + /// + /// + /// Thrown when fails to make API call + /// field1 + /// field2 + /// Task of ApiResponse + System.Threading.Tasks.Task> TestJsonFormDataAsyncWithHttpInfo (string param, string param2); + #endregion Asynchronous Operations + } + + public interface IFakeApi : IFakeApiSync, IFakeApiAsync + { + + } + + /// + /// Represents a collection of functions to interact with the API endpoints + /// + public partial class FakeApi : IFakeApi + { + private Org.OpenAPITools.Client.ExceptionFactory _exceptionFactory = (name, response) => null; + + /// + /// Initializes a new instance of the class. + /// + /// + public FakeApi() : this((string) null) + { + } + + /// + /// Initializes a new instance of the class. + /// + /// + public FakeApi(String basePath) + { + this.Configuration = Org.OpenAPITools.Client.Configuration.MergeConfigurations( + Org.OpenAPITools.Client.GlobalConfiguration.Instance, + new Org.OpenAPITools.Client.Configuration { BasePath = basePath } + ); + this.Client = new Org.OpenAPITools.Client.ApiClient(this.Configuration.BasePath); + this.AsynchronousClient = new Org.OpenAPITools.Client.ApiClient(this.Configuration.BasePath); + this.ExceptionFactory = Org.OpenAPITools.Client.Configuration.DefaultExceptionFactory; + } + + /// + /// Initializes a new instance of the class + /// using Configuration object + /// + /// An instance of Configuration + /// + public FakeApi(Org.OpenAPITools.Client.Configuration configuration) + { + if (configuration == null) throw new ArgumentNullException("configuration"); + + this.Configuration = Org.OpenAPITools.Client.Configuration.MergeConfigurations( + Org.OpenAPITools.Client.GlobalConfiguration.Instance, + configuration + ); + this.Client = new Org.OpenAPITools.Client.ApiClient(this.Configuration.BasePath); + this.AsynchronousClient = new Org.OpenAPITools.Client.ApiClient(this.Configuration.BasePath); + ExceptionFactory = Org.OpenAPITools.Client.Configuration.DefaultExceptionFactory; + } + + /// + /// Initializes a new instance of the class + /// using a Configuration object and client instance. + /// + /// The client interface for synchronous API access. + /// The client interface for asynchronous API access. + /// The configuration object. + public FakeApi(Org.OpenAPITools.Client.ISynchronousClient client,Org.OpenAPITools.Client.IAsynchronousClient asyncClient, Org.OpenAPITools.Client.IReadableConfiguration configuration) + { + if(client == null) throw new ArgumentNullException("client"); + if(asyncClient == null) throw new ArgumentNullException("asyncClient"); + if(configuration == null) throw new ArgumentNullException("configuration"); + + this.Client = client; + this.AsynchronousClient = asyncClient; + this.Configuration = configuration; + this.ExceptionFactory = Org.OpenAPITools.Client.Configuration.DefaultExceptionFactory; + } + + /// + /// The client for accessing this underlying API asynchronously. + /// + public Org.OpenAPITools.Client.IAsynchronousClient AsynchronousClient { get; set; } + + /// + /// The client for accessing this underlying API synchronously. + /// + public Org.OpenAPITools.Client.ISynchronousClient Client { get; set; } + + /// + /// Gets the base path of the API client. + /// + /// The base path + public String GetBasePath() + { + return this.Configuration.BasePath; + } + + /// + /// Gets or sets the configuration object + /// + /// An instance of the Configuration + public Org.OpenAPITools.Client.IReadableConfiguration Configuration {get; set;} + + /// + /// Provides a factory method hook for the creation of exceptions. + /// + public Org.OpenAPITools.Client.ExceptionFactory ExceptionFactory + { + get + { + if (_exceptionFactory != null && _exceptionFactory.GetInvocationList().Length > 1) + { + throw new InvalidOperationException("Multicast delegate for ExceptionFactory is unsupported."); + } + return _exceptionFactory; + } + set { _exceptionFactory = value; } + } + + /// + /// Test serialization of outer boolean types + /// + /// Thrown when fails to make API call + /// Input boolean as post body (optional) + /// bool? + public bool? FakeOuterBooleanSerialize (bool? body = null) + { + Org.OpenAPITools.Client.ApiResponse localVarResponse = FakeOuterBooleanSerializeWithHttpInfo(body); + return localVarResponse.Data; + } + + /// + /// Test serialization of outer boolean types + /// + /// Thrown when fails to make API call + /// Input boolean as post body (optional) + /// ApiResponse of bool? + public Org.OpenAPITools.Client.ApiResponse< bool? > FakeOuterBooleanSerializeWithHttpInfo (bool? body = null) + { + + Org.OpenAPITools.Client.RequestOptions requestOptions = new Org.OpenAPITools.Client.RequestOptions(); + + String[] @contentTypes = new String[] { + }; + + // to determine the Accept header + String[] @accepts = new String[] { + "*/*" + }; + + foreach (var contentType in @contentTypes) + requestOptions.HeaderParameters.Add("Content-Type", contentType); + + foreach (var accept in @accepts) + requestOptions.HeaderParameters.Add("Accept", accept); + + requestOptions.Data = body; + + + // make the HTTP request + + var response = this.Client.Post< bool? >("/fake/outer/boolean", requestOptions, this.Configuration); + + if (this.ExceptionFactory != null) + { + Exception exception = this.ExceptionFactory("FakeOuterBooleanSerialize", response); + if (exception != null) throw exception; + } + + return response; + } + + /// + /// Test serialization of outer boolean types + /// + /// Thrown when fails to make API call + /// Input boolean as post body (optional) + /// Task of bool? + public async System.Threading.Tasks.Task FakeOuterBooleanSerializeAsync (bool? body = null) + { + Org.OpenAPITools.Client.ApiResponse localVarResponse = await FakeOuterBooleanSerializeAsyncWithHttpInfo(body); + return localVarResponse.Data; + + } + + /// + /// Test serialization of outer boolean types + /// + /// Thrown when fails to make API call + /// Input boolean as post body (optional) + /// Task of ApiResponse (bool?) + public async System.Threading.Tasks.Task> FakeOuterBooleanSerializeAsyncWithHttpInfo (bool? body = null) + { + + Org.OpenAPITools.Client.RequestOptions requestOptions = new Org.OpenAPITools.Client.RequestOptions(); + + String[] @contentTypes = new String[] { + }; + + // to determine the Accept header + String[] @accepts = new String[] { + "*/*" + }; + + foreach (var contentType in @contentTypes) + requestOptions.HeaderParameters.Add("Content-Type", contentType); + + foreach (var accept in @accepts) + requestOptions.HeaderParameters.Add("Accept", accept); + + requestOptions.Data = body; + + + // make the HTTP request + + var response = await this.AsynchronousClient.PostAsync("/fake/outer/boolean", requestOptions, this.Configuration); + + if (this.ExceptionFactory != null) + { + Exception exception = this.ExceptionFactory("FakeOuterBooleanSerialize", response); + if (exception != null) throw exception; + } + + return response; + } + + /// + /// Test serialization of object with outer number type + /// + /// Thrown when fails to make API call + /// Input composite as post body (optional) + /// OuterComposite + public OuterComposite FakeOuterCompositeSerialize (OuterComposite outerComposite = null) + { + Org.OpenAPITools.Client.ApiResponse localVarResponse = FakeOuterCompositeSerializeWithHttpInfo(outerComposite); + return localVarResponse.Data; + } + + /// + /// Test serialization of object with outer number type + /// + /// Thrown when fails to make API call + /// Input composite as post body (optional) + /// ApiResponse of OuterComposite + public Org.OpenAPITools.Client.ApiResponse< OuterComposite > FakeOuterCompositeSerializeWithHttpInfo (OuterComposite outerComposite = null) + { + + Org.OpenAPITools.Client.RequestOptions requestOptions = new Org.OpenAPITools.Client.RequestOptions(); + + String[] @contentTypes = new String[] { + }; + + // to determine the Accept header + String[] @accepts = new String[] { + "*/*" + }; + + foreach (var contentType in @contentTypes) + requestOptions.HeaderParameters.Add("Content-Type", contentType); + + foreach (var accept in @accepts) + requestOptions.HeaderParameters.Add("Accept", accept); + + requestOptions.Data = outerComposite; + + + // make the HTTP request + + var response = this.Client.Post< OuterComposite >("/fake/outer/composite", requestOptions, this.Configuration); + + if (this.ExceptionFactory != null) + { + Exception exception = this.ExceptionFactory("FakeOuterCompositeSerialize", response); + if (exception != null) throw exception; + } + + return response; + } + + /// + /// Test serialization of object with outer number type + /// + /// Thrown when fails to make API call + /// Input composite as post body (optional) + /// Task of OuterComposite + public async System.Threading.Tasks.Task FakeOuterCompositeSerializeAsync (OuterComposite outerComposite = null) + { + Org.OpenAPITools.Client.ApiResponse localVarResponse = await FakeOuterCompositeSerializeAsyncWithHttpInfo(outerComposite); + return localVarResponse.Data; + + } + + /// + /// Test serialization of object with outer number type + /// + /// Thrown when fails to make API call + /// Input composite as post body (optional) + /// Task of ApiResponse (OuterComposite) + public async System.Threading.Tasks.Task> FakeOuterCompositeSerializeAsyncWithHttpInfo (OuterComposite outerComposite = null) + { + + Org.OpenAPITools.Client.RequestOptions requestOptions = new Org.OpenAPITools.Client.RequestOptions(); + + String[] @contentTypes = new String[] { + }; + + // to determine the Accept header + String[] @accepts = new String[] { + "*/*" + }; + + foreach (var contentType in @contentTypes) + requestOptions.HeaderParameters.Add("Content-Type", contentType); + + foreach (var accept in @accepts) + requestOptions.HeaderParameters.Add("Accept", accept); + + requestOptions.Data = outerComposite; + + + // make the HTTP request + + var response = await this.AsynchronousClient.PostAsync("/fake/outer/composite", requestOptions, this.Configuration); + + if (this.ExceptionFactory != null) + { + Exception exception = this.ExceptionFactory("FakeOuterCompositeSerialize", response); + if (exception != null) throw exception; + } + + return response; + } + + /// + /// Test serialization of outer number types + /// + /// Thrown when fails to make API call + /// Input number as post body (optional) + /// decimal? + public decimal? FakeOuterNumberSerialize (decimal? body = null) + { + Org.OpenAPITools.Client.ApiResponse localVarResponse = FakeOuterNumberSerializeWithHttpInfo(body); + return localVarResponse.Data; + } + + /// + /// Test serialization of outer number types + /// + /// Thrown when fails to make API call + /// Input number as post body (optional) + /// ApiResponse of decimal? + public Org.OpenAPITools.Client.ApiResponse< decimal? > FakeOuterNumberSerializeWithHttpInfo (decimal? body = null) + { + + Org.OpenAPITools.Client.RequestOptions requestOptions = new Org.OpenAPITools.Client.RequestOptions(); + + String[] @contentTypes = new String[] { + }; + + // to determine the Accept header + String[] @accepts = new String[] { + "*/*" + }; + + foreach (var contentType in @contentTypes) + requestOptions.HeaderParameters.Add("Content-Type", contentType); + + foreach (var accept in @accepts) + requestOptions.HeaderParameters.Add("Accept", accept); + + requestOptions.Data = body; + + + // make the HTTP request + + var response = this.Client.Post< decimal? >("/fake/outer/number", requestOptions, this.Configuration); + + if (this.ExceptionFactory != null) + { + Exception exception = this.ExceptionFactory("FakeOuterNumberSerialize", response); + if (exception != null) throw exception; + } + + return response; + } + + /// + /// Test serialization of outer number types + /// + /// Thrown when fails to make API call + /// Input number as post body (optional) + /// Task of decimal? + public async System.Threading.Tasks.Task FakeOuterNumberSerializeAsync (decimal? body = null) + { + Org.OpenAPITools.Client.ApiResponse localVarResponse = await FakeOuterNumberSerializeAsyncWithHttpInfo(body); + return localVarResponse.Data; + + } + + /// + /// Test serialization of outer number types + /// + /// Thrown when fails to make API call + /// Input number as post body (optional) + /// Task of ApiResponse (decimal?) + public async System.Threading.Tasks.Task> FakeOuterNumberSerializeAsyncWithHttpInfo (decimal? body = null) + { + + Org.OpenAPITools.Client.RequestOptions requestOptions = new Org.OpenAPITools.Client.RequestOptions(); + + String[] @contentTypes = new String[] { + }; + + // to determine the Accept header + String[] @accepts = new String[] { + "*/*" + }; + + foreach (var contentType in @contentTypes) + requestOptions.HeaderParameters.Add("Content-Type", contentType); + + foreach (var accept in @accepts) + requestOptions.HeaderParameters.Add("Accept", accept); + + requestOptions.Data = body; + + + // make the HTTP request + + var response = await this.AsynchronousClient.PostAsync("/fake/outer/number", requestOptions, this.Configuration); + + if (this.ExceptionFactory != null) + { + Exception exception = this.ExceptionFactory("FakeOuterNumberSerialize", response); + if (exception != null) throw exception; + } + + return response; + } + + /// + /// Test serialization of outer string types + /// + /// Thrown when fails to make API call + /// Input string as post body (optional) + /// string + public string FakeOuterStringSerialize (string body = null) + { + Org.OpenAPITools.Client.ApiResponse localVarResponse = FakeOuterStringSerializeWithHttpInfo(body); + return localVarResponse.Data; + } + + /// + /// Test serialization of outer string types + /// + /// Thrown when fails to make API call + /// Input string as post body (optional) + /// ApiResponse of string + public Org.OpenAPITools.Client.ApiResponse< string > FakeOuterStringSerializeWithHttpInfo (string body = null) + { + + Org.OpenAPITools.Client.RequestOptions requestOptions = new Org.OpenAPITools.Client.RequestOptions(); + + String[] @contentTypes = new String[] { + }; + + // to determine the Accept header + String[] @accepts = new String[] { + "*/*" + }; + + foreach (var contentType in @contentTypes) + requestOptions.HeaderParameters.Add("Content-Type", contentType); + + foreach (var accept in @accepts) + requestOptions.HeaderParameters.Add("Accept", accept); + + requestOptions.Data = body; + + + // make the HTTP request + + var response = this.Client.Post< string >("/fake/outer/string", requestOptions, this.Configuration); + + if (this.ExceptionFactory != null) + { + Exception exception = this.ExceptionFactory("FakeOuterStringSerialize", response); + if (exception != null) throw exception; + } + + return response; + } + + /// + /// Test serialization of outer string types + /// + /// Thrown when fails to make API call + /// Input string as post body (optional) + /// Task of string + public async System.Threading.Tasks.Task FakeOuterStringSerializeAsync (string body = null) + { + Org.OpenAPITools.Client.ApiResponse localVarResponse = await FakeOuterStringSerializeAsyncWithHttpInfo(body); + return localVarResponse.Data; + + } + + /// + /// Test serialization of outer string types + /// + /// Thrown when fails to make API call + /// Input string as post body (optional) + /// Task of ApiResponse (string) + public async System.Threading.Tasks.Task> FakeOuterStringSerializeAsyncWithHttpInfo (string body = null) + { + + Org.OpenAPITools.Client.RequestOptions requestOptions = new Org.OpenAPITools.Client.RequestOptions(); + + String[] @contentTypes = new String[] { + }; + + // to determine the Accept header + String[] @accepts = new String[] { + "*/*" + }; + + foreach (var contentType in @contentTypes) + requestOptions.HeaderParameters.Add("Content-Type", contentType); + + foreach (var accept in @accepts) + requestOptions.HeaderParameters.Add("Accept", accept); + + requestOptions.Data = body; + + + // make the HTTP request + + var response = await this.AsynchronousClient.PostAsync("/fake/outer/string", requestOptions, this.Configuration); + + if (this.ExceptionFactory != null) + { + Exception exception = this.ExceptionFactory("FakeOuterStringSerialize", response); + if (exception != null) throw exception; + } + + return response; + } + + /// + /// For this test, the body for this request much reference a schema named `File`. + /// + /// Thrown when fails to make API call + /// + /// + public void TestBodyWithFileSchema (FileSchemaTestClass fileSchemaTestClass) + { + TestBodyWithFileSchemaWithHttpInfo(fileSchemaTestClass); + } + + /// + /// For this test, the body for this request much reference a schema named `File`. + /// + /// Thrown when fails to make API call + /// + /// ApiResponse of Object(void) + public Org.OpenAPITools.Client.ApiResponse TestBodyWithFileSchemaWithHttpInfo (FileSchemaTestClass fileSchemaTestClass) + { + // verify the required parameter 'fileSchemaTestClass' is set + if (fileSchemaTestClass == null) + throw new Org.OpenAPITools.Client.ApiException(400, "Missing required parameter 'fileSchemaTestClass' when calling FakeApi->TestBodyWithFileSchema"); + + Org.OpenAPITools.Client.RequestOptions requestOptions = new Org.OpenAPITools.Client.RequestOptions(); + + String[] @contentTypes = new String[] { + "application/json" + }; + + // to determine the Accept header + String[] @accepts = new String[] { + }; + + foreach (var contentType in @contentTypes) + requestOptions.HeaderParameters.Add("Content-Type", contentType); + + foreach (var accept in @accepts) + requestOptions.HeaderParameters.Add("Accept", accept); + + requestOptions.Data = fileSchemaTestClass; + + + // make the HTTP request + + var response = this.Client.Put("/fake/body-with-file-schema", requestOptions, this.Configuration); + + if (this.ExceptionFactory != null) + { + Exception exception = this.ExceptionFactory("TestBodyWithFileSchema", response); + if (exception != null) throw exception; + } + + return response; + } + + /// + /// For this test, the body for this request much reference a schema named `File`. + /// + /// Thrown when fails to make API call + /// + /// Task of void + public async System.Threading.Tasks.Task TestBodyWithFileSchemaAsync (FileSchemaTestClass fileSchemaTestClass) + { + await TestBodyWithFileSchemaAsyncWithHttpInfo(fileSchemaTestClass); + + } + + /// + /// For this test, the body for this request much reference a schema named `File`. + /// + /// Thrown when fails to make API call + /// + /// Task of ApiResponse + public async System.Threading.Tasks.Task> TestBodyWithFileSchemaAsyncWithHttpInfo (FileSchemaTestClass fileSchemaTestClass) + { + // verify the required parameter 'fileSchemaTestClass' is set + if (fileSchemaTestClass == null) + throw new Org.OpenAPITools.Client.ApiException(400, "Missing required parameter 'fileSchemaTestClass' when calling FakeApi->TestBodyWithFileSchema"); + + Org.OpenAPITools.Client.RequestOptions requestOptions = new Org.OpenAPITools.Client.RequestOptions(); + + String[] @contentTypes = new String[] { + "application/json" + }; + + // to determine the Accept header + String[] @accepts = new String[] { + }; + + foreach (var contentType in @contentTypes) + requestOptions.HeaderParameters.Add("Content-Type", contentType); + + foreach (var accept in @accepts) + requestOptions.HeaderParameters.Add("Accept", accept); + + requestOptions.Data = fileSchemaTestClass; + + + // make the HTTP request + + var response = await this.AsynchronousClient.PutAsync("/fake/body-with-file-schema", requestOptions, this.Configuration); + + if (this.ExceptionFactory != null) + { + Exception exception = this.ExceptionFactory("TestBodyWithFileSchema", response); + if (exception != null) throw exception; + } + + return response; + } + + /// + /// + /// + /// Thrown when fails to make API call + /// + /// + /// + public void TestBodyWithQueryParams (string query, User user) + { + TestBodyWithQueryParamsWithHttpInfo(query, user); + } + + /// + /// + /// + /// Thrown when fails to make API call + /// + /// + /// ApiResponse of Object(void) + public Org.OpenAPITools.Client.ApiResponse TestBodyWithQueryParamsWithHttpInfo (string query, User user) + { + // verify the required parameter 'query' is set + if (query == null) + throw new Org.OpenAPITools.Client.ApiException(400, "Missing required parameter 'query' when calling FakeApi->TestBodyWithQueryParams"); + // verify the required parameter 'user' is set + if (user == null) + throw new Org.OpenAPITools.Client.ApiException(400, "Missing required parameter 'user' when calling FakeApi->TestBodyWithQueryParams"); + + Org.OpenAPITools.Client.RequestOptions requestOptions = new Org.OpenAPITools.Client.RequestOptions(); + + String[] @contentTypes = new String[] { + "application/json" + }; + + // to determine the Accept header + String[] @accepts = new String[] { + }; + + foreach (var contentType in @contentTypes) + requestOptions.HeaderParameters.Add("Content-Type", contentType); + + foreach (var accept in @accepts) + requestOptions.HeaderParameters.Add("Accept", accept); + + if (query != null) + { + foreach (var kvp in Org.OpenAPITools.Client.ClientUtils.ParameterToMultiMap("", "query", query)) + { + foreach (var value in kvp.Value) + { + requestOptions.QueryParameters.Add(kvp.Key, value); + } + } + } + requestOptions.Data = user; + + + // make the HTTP request + + var response = this.Client.Put("/fake/body-with-query-params", requestOptions, this.Configuration); + + if (this.ExceptionFactory != null) + { + Exception exception = this.ExceptionFactory("TestBodyWithQueryParams", response); + if (exception != null) throw exception; + } + + return response; + } + + /// + /// + /// + /// Thrown when fails to make API call + /// + /// + /// Task of void + public async System.Threading.Tasks.Task TestBodyWithQueryParamsAsync (string query, User user) + { + await TestBodyWithQueryParamsAsyncWithHttpInfo(query, user); + + } + + /// + /// + /// + /// Thrown when fails to make API call + /// + /// + /// Task of ApiResponse + public async System.Threading.Tasks.Task> TestBodyWithQueryParamsAsyncWithHttpInfo (string query, User user) + { + // verify the required parameter 'query' is set + if (query == null) + throw new Org.OpenAPITools.Client.ApiException(400, "Missing required parameter 'query' when calling FakeApi->TestBodyWithQueryParams"); + // verify the required parameter 'user' is set + if (user == null) + throw new Org.OpenAPITools.Client.ApiException(400, "Missing required parameter 'user' when calling FakeApi->TestBodyWithQueryParams"); + + Org.OpenAPITools.Client.RequestOptions requestOptions = new Org.OpenAPITools.Client.RequestOptions(); + + String[] @contentTypes = new String[] { + "application/json" + }; + + // to determine the Accept header + String[] @accepts = new String[] { + }; + + foreach (var contentType in @contentTypes) + requestOptions.HeaderParameters.Add("Content-Type", contentType); + + foreach (var accept in @accepts) + requestOptions.HeaderParameters.Add("Accept", accept); + + if (query != null) + { + foreach (var kvp in Org.OpenAPITools.Client.ClientUtils.ParameterToMultiMap("", "query", query)) + { + foreach (var value in kvp.Value) + { + requestOptions.QueryParameters.Add(kvp.Key, value); + } + } + } + requestOptions.Data = user; + + + // make the HTTP request + + var response = await this.AsynchronousClient.PutAsync("/fake/body-with-query-params", requestOptions, this.Configuration); + + if (this.ExceptionFactory != null) + { + Exception exception = this.ExceptionFactory("TestBodyWithQueryParams", response); + if (exception != null) throw exception; + } + + return response; + } + + /// + /// To test \"client\" model To test \"client\" model + /// + /// Thrown when fails to make API call + /// client model + /// ModelClient + public ModelClient TestClientModel (ModelClient modelClient) + { + Org.OpenAPITools.Client.ApiResponse localVarResponse = TestClientModelWithHttpInfo(modelClient); + return localVarResponse.Data; + } + + /// + /// To test \"client\" model To test \"client\" model + /// + /// Thrown when fails to make API call + /// client model + /// ApiResponse of ModelClient + public Org.OpenAPITools.Client.ApiResponse< ModelClient > TestClientModelWithHttpInfo (ModelClient modelClient) + { + // verify the required parameter 'modelClient' is set + if (modelClient == null) + throw new Org.OpenAPITools.Client.ApiException(400, "Missing required parameter 'modelClient' when calling FakeApi->TestClientModel"); + + Org.OpenAPITools.Client.RequestOptions requestOptions = new Org.OpenAPITools.Client.RequestOptions(); + + String[] @contentTypes = new String[] { + "application/json" + }; + + // to determine the Accept header + String[] @accepts = new String[] { + "application/json" + }; + + foreach (var contentType in @contentTypes) + requestOptions.HeaderParameters.Add("Content-Type", contentType); + + foreach (var accept in @accepts) + requestOptions.HeaderParameters.Add("Accept", accept); + + requestOptions.Data = modelClient; + + + // make the HTTP request + + var response = this.Client.Patch< ModelClient >("/fake", requestOptions, this.Configuration); + + if (this.ExceptionFactory != null) + { + Exception exception = this.ExceptionFactory("TestClientModel", response); + if (exception != null) throw exception; + } + + return response; + } + + /// + /// To test \"client\" model To test \"client\" model + /// + /// Thrown when fails to make API call + /// client model + /// Task of ModelClient + public async System.Threading.Tasks.Task TestClientModelAsync (ModelClient modelClient) + { + Org.OpenAPITools.Client.ApiResponse localVarResponse = await TestClientModelAsyncWithHttpInfo(modelClient); + return localVarResponse.Data; + + } + + /// + /// To test \"client\" model To test \"client\" model + /// + /// Thrown when fails to make API call + /// client model + /// Task of ApiResponse (ModelClient) + public async System.Threading.Tasks.Task> TestClientModelAsyncWithHttpInfo (ModelClient modelClient) + { + // verify the required parameter 'modelClient' is set + if (modelClient == null) + throw new Org.OpenAPITools.Client.ApiException(400, "Missing required parameter 'modelClient' when calling FakeApi->TestClientModel"); + + Org.OpenAPITools.Client.RequestOptions requestOptions = new Org.OpenAPITools.Client.RequestOptions(); + + String[] @contentTypes = new String[] { + "application/json" + }; + + // to determine the Accept header + String[] @accepts = new String[] { + "application/json" + }; + + foreach (var contentType in @contentTypes) + requestOptions.HeaderParameters.Add("Content-Type", contentType); + + foreach (var accept in @accepts) + requestOptions.HeaderParameters.Add("Accept", accept); + + requestOptions.Data = modelClient; + + + // make the HTTP request + + var response = await this.AsynchronousClient.PatchAsync("/fake", requestOptions, this.Configuration); + + if (this.ExceptionFactory != null) + { + Exception exception = this.ExceptionFactory("TestClientModel", response); + if (exception != null) throw exception; + } + + return response; + } + + /// + /// Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트 Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트 + /// + /// Thrown when fails to make API call + /// None + /// None + /// None + /// None + /// None (optional) + /// None (optional) + /// None (optional) + /// None (optional) + /// None (optional) + /// None (optional) + /// None (optional) + /// None (optional) + /// None (optional) + /// None (optional) + /// + public void TestEndpointParameters (decimal? number, double? _double, string patternWithoutDelimiter, byte[] _byte, int? integer = null, int? int32 = null, long? int64 = null, float? _float = null, string _string = null, System.IO.Stream binary = null, DateTime? date = null, DateTime? dateTime = null, string password = null, string callback = null) + { + TestEndpointParametersWithHttpInfo(number, _double, patternWithoutDelimiter, _byte, integer, int32, int64, _float, _string, binary, date, dateTime, password, callback); + } + + /// + /// Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트 Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트 + /// + /// Thrown when fails to make API call + /// None + /// None + /// None + /// None + /// None (optional) + /// None (optional) + /// None (optional) + /// None (optional) + /// None (optional) + /// None (optional) + /// None (optional) + /// None (optional) + /// None (optional) + /// None (optional) + /// ApiResponse of Object(void) + public Org.OpenAPITools.Client.ApiResponse TestEndpointParametersWithHttpInfo (decimal? number, double? _double, string patternWithoutDelimiter, byte[] _byte, int? integer = null, int? int32 = null, long? int64 = null, float? _float = null, string _string = null, System.IO.Stream binary = null, DateTime? date = null, DateTime? dateTime = null, string password = null, string callback = null) + { + // verify the required parameter 'number' is set + if (number == null) + throw new Org.OpenAPITools.Client.ApiException(400, "Missing required parameter 'number' when calling FakeApi->TestEndpointParameters"); + // verify the required parameter '_double' is set + if (_double == null) + throw new Org.OpenAPITools.Client.ApiException(400, "Missing required parameter '_double' when calling FakeApi->TestEndpointParameters"); + // verify the required parameter 'patternWithoutDelimiter' is set + if (patternWithoutDelimiter == null) + throw new Org.OpenAPITools.Client.ApiException(400, "Missing required parameter 'patternWithoutDelimiter' when calling FakeApi->TestEndpointParameters"); + // verify the required parameter '_byte' is set + if (_byte == null) + throw new Org.OpenAPITools.Client.ApiException(400, "Missing required parameter '_byte' when calling FakeApi->TestEndpointParameters"); + + Org.OpenAPITools.Client.RequestOptions requestOptions = new Org.OpenAPITools.Client.RequestOptions(); + + String[] @contentTypes = new String[] { + "application/x-www-form-urlencoded" + }; + + // to determine the Accept header + String[] @accepts = new String[] { + }; + + foreach (var contentType in @contentTypes) + requestOptions.HeaderParameters.Add("Content-Type", contentType); + + foreach (var accept in @accepts) + requestOptions.HeaderParameters.Add("Accept", accept); + + if (integer != null) + { + requestOptions.FormParameters.Add("integer", Org.OpenAPITools.Client.ClientUtils.ParameterToString(integer)); // form parameter + } + if (int32 != null) + { + requestOptions.FormParameters.Add("int32", Org.OpenAPITools.Client.ClientUtils.ParameterToString(int32)); // form parameter + } + if (int64 != null) + { + requestOptions.FormParameters.Add("int64", Org.OpenAPITools.Client.ClientUtils.ParameterToString(int64)); // form parameter + } + if (number != null) + { + requestOptions.FormParameters.Add("number", Org.OpenAPITools.Client.ClientUtils.ParameterToString(number)); // form parameter + } + if (_float != null) + { + requestOptions.FormParameters.Add("float", Org.OpenAPITools.Client.ClientUtils.ParameterToString(_float)); // form parameter + } + if (_double != null) + { + requestOptions.FormParameters.Add("double", Org.OpenAPITools.Client.ClientUtils.ParameterToString(_double)); // form parameter + } + if (_string != null) + { + requestOptions.FormParameters.Add("string", Org.OpenAPITools.Client.ClientUtils.ParameterToString(_string)); // form parameter + } + if (patternWithoutDelimiter != null) + { + requestOptions.FormParameters.Add("pattern_without_delimiter", Org.OpenAPITools.Client.ClientUtils.ParameterToString(patternWithoutDelimiter)); // form parameter + } + if (_byte != null) + { + requestOptions.FormParameters.Add("byte", Org.OpenAPITools.Client.ClientUtils.ParameterToString(_byte)); // form parameter + } + if (binary != null) + { + requestOptions.FileParameters.Add("binary", binary); + } + if (date != null) + { + requestOptions.FormParameters.Add("date", Org.OpenAPITools.Client.ClientUtils.ParameterToString(date)); // form parameter + } + if (dateTime != null) + { + requestOptions.FormParameters.Add("dateTime", Org.OpenAPITools.Client.ClientUtils.ParameterToString(dateTime)); // form parameter + } + if (password != null) + { + requestOptions.FormParameters.Add("password", Org.OpenAPITools.Client.ClientUtils.ParameterToString(password)); // form parameter + } + if (callback != null) + { + requestOptions.FormParameters.Add("callback", Org.OpenAPITools.Client.ClientUtils.ParameterToString(callback)); // form parameter + } + + // authentication (http_basic_test) required + // http basic authentication required + if (!String.IsNullOrEmpty(this.Configuration.Username) || !String.IsNullOrEmpty(this.Configuration.Password)) + { + requestOptions.HeaderParameters.Add("Authorization", "Basic " + Org.OpenAPITools.Client.ClientUtils.Base64Encode(this.Configuration.Username + ":" + this.Configuration.Password)); + } + + // make the HTTP request + + var response = this.Client.Post("/fake", requestOptions, this.Configuration); + + if (this.ExceptionFactory != null) + { + Exception exception = this.ExceptionFactory("TestEndpointParameters", response); + if (exception != null) throw exception; + } + + return response; + } + + /// + /// Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트 Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트 + /// + /// Thrown when fails to make API call + /// None + /// None + /// None + /// None + /// None (optional) + /// None (optional) + /// None (optional) + /// None (optional) + /// None (optional) + /// None (optional) + /// None (optional) + /// None (optional) + /// None (optional) + /// None (optional) + /// Task of void + public async System.Threading.Tasks.Task TestEndpointParametersAsync (decimal? number, double? _double, string patternWithoutDelimiter, byte[] _byte, int? integer = null, int? int32 = null, long? int64 = null, float? _float = null, string _string = null, System.IO.Stream binary = null, DateTime? date = null, DateTime? dateTime = null, string password = null, string callback = null) + { + await TestEndpointParametersAsyncWithHttpInfo(number, _double, patternWithoutDelimiter, _byte, integer, int32, int64, _float, _string, binary, date, dateTime, password, callback); + + } + + /// + /// Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트 Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트 + /// + /// Thrown when fails to make API call + /// None + /// None + /// None + /// None + /// None (optional) + /// None (optional) + /// None (optional) + /// None (optional) + /// None (optional) + /// None (optional) + /// None (optional) + /// None (optional) + /// None (optional) + /// None (optional) + /// Task of ApiResponse + public async System.Threading.Tasks.Task> TestEndpointParametersAsyncWithHttpInfo (decimal? number, double? _double, string patternWithoutDelimiter, byte[] _byte, int? integer = null, int? int32 = null, long? int64 = null, float? _float = null, string _string = null, System.IO.Stream binary = null, DateTime? date = null, DateTime? dateTime = null, string password = null, string callback = null) + { + // verify the required parameter 'number' is set + if (number == null) + throw new Org.OpenAPITools.Client.ApiException(400, "Missing required parameter 'number' when calling FakeApi->TestEndpointParameters"); + // verify the required parameter '_double' is set + if (_double == null) + throw new Org.OpenAPITools.Client.ApiException(400, "Missing required parameter '_double' when calling FakeApi->TestEndpointParameters"); + // verify the required parameter 'patternWithoutDelimiter' is set + if (patternWithoutDelimiter == null) + throw new Org.OpenAPITools.Client.ApiException(400, "Missing required parameter 'patternWithoutDelimiter' when calling FakeApi->TestEndpointParameters"); + // verify the required parameter '_byte' is set + if (_byte == null) + throw new Org.OpenAPITools.Client.ApiException(400, "Missing required parameter '_byte' when calling FakeApi->TestEndpointParameters"); + + Org.OpenAPITools.Client.RequestOptions requestOptions = new Org.OpenAPITools.Client.RequestOptions(); + + String[] @contentTypes = new String[] { + "application/x-www-form-urlencoded" + }; + + // to determine the Accept header + String[] @accepts = new String[] { + }; + + foreach (var contentType in @contentTypes) + requestOptions.HeaderParameters.Add("Content-Type", contentType); + + foreach (var accept in @accepts) + requestOptions.HeaderParameters.Add("Accept", accept); + + if (integer != null) + { + requestOptions.FormParameters.Add("integer", Org.OpenAPITools.Client.ClientUtils.ParameterToString(integer)); // form parameter + } + if (int32 != null) + { + requestOptions.FormParameters.Add("int32", Org.OpenAPITools.Client.ClientUtils.ParameterToString(int32)); // form parameter + } + if (int64 != null) + { + requestOptions.FormParameters.Add("int64", Org.OpenAPITools.Client.ClientUtils.ParameterToString(int64)); // form parameter + } + if (number != null) + { + requestOptions.FormParameters.Add("number", Org.OpenAPITools.Client.ClientUtils.ParameterToString(number)); // form parameter + } + if (_float != null) + { + requestOptions.FormParameters.Add("float", Org.OpenAPITools.Client.ClientUtils.ParameterToString(_float)); // form parameter + } + if (_double != null) + { + requestOptions.FormParameters.Add("double", Org.OpenAPITools.Client.ClientUtils.ParameterToString(_double)); // form parameter + } + if (_string != null) + { + requestOptions.FormParameters.Add("string", Org.OpenAPITools.Client.ClientUtils.ParameterToString(_string)); // form parameter + } + if (patternWithoutDelimiter != null) + { + requestOptions.FormParameters.Add("pattern_without_delimiter", Org.OpenAPITools.Client.ClientUtils.ParameterToString(patternWithoutDelimiter)); // form parameter + } + if (_byte != null) + { + requestOptions.FormParameters.Add("byte", Org.OpenAPITools.Client.ClientUtils.ParameterToString(_byte)); // form parameter + } + if (binary != null) + { + requestOptions.FileParameters.Add("binary", binary); + } + if (date != null) + { + requestOptions.FormParameters.Add("date", Org.OpenAPITools.Client.ClientUtils.ParameterToString(date)); // form parameter + } + if (dateTime != null) + { + requestOptions.FormParameters.Add("dateTime", Org.OpenAPITools.Client.ClientUtils.ParameterToString(dateTime)); // form parameter + } + if (password != null) + { + requestOptions.FormParameters.Add("password", Org.OpenAPITools.Client.ClientUtils.ParameterToString(password)); // form parameter + } + if (callback != null) + { + requestOptions.FormParameters.Add("callback", Org.OpenAPITools.Client.ClientUtils.ParameterToString(callback)); // form parameter + } + + // authentication (http_basic_test) required + // http basic authentication required + if (!String.IsNullOrEmpty(this.Configuration.Username) || !String.IsNullOrEmpty(this.Configuration.Password)) + { + requestOptions.HeaderParameters.Add("Authorization", "Basic " + Org.OpenAPITools.Client.ClientUtils.Base64Encode(this.Configuration.Username + ":" + this.Configuration.Password)); + } + + // make the HTTP request + + var response = await this.AsynchronousClient.PostAsync("/fake", requestOptions, this.Configuration); + + if (this.ExceptionFactory != null) + { + Exception exception = this.ExceptionFactory("TestEndpointParameters", response); + if (exception != null) throw exception; + } + + return response; + } + + /// + /// To test enum parameters To test enum parameters + /// + /// Thrown when fails to make API call + /// Header parameter enum test (string array) (optional) + /// Header parameter enum test (string) (optional, default to -efg) + /// Query parameter enum test (string array) (optional) + /// Query parameter enum test (string) (optional, default to -efg) + /// Query parameter enum test (double) (optional) + /// Query parameter enum test (double) (optional) + /// Form parameter enum test (string array) (optional, default to $) + /// Form parameter enum test (string) (optional, default to -efg) + /// + public void TestEnumParameters (List enumHeaderStringArray = null, string enumHeaderString = null, List enumQueryStringArray = null, string enumQueryString = null, int? enumQueryInteger = null, double? enumQueryDouble = null, List enumFormStringArray = null, string enumFormString = null) + { + TestEnumParametersWithHttpInfo(enumHeaderStringArray, enumHeaderString, enumQueryStringArray, enumQueryString, enumQueryInteger, enumQueryDouble, enumFormStringArray, enumFormString); + } + + /// + /// To test enum parameters To test enum parameters + /// + /// Thrown when fails to make API call + /// Header parameter enum test (string array) (optional) + /// Header parameter enum test (string) (optional, default to -efg) + /// Query parameter enum test (string array) (optional) + /// Query parameter enum test (string) (optional, default to -efg) + /// Query parameter enum test (double) (optional) + /// Query parameter enum test (double) (optional) + /// Form parameter enum test (string array) (optional, default to $) + /// Form parameter enum test (string) (optional, default to -efg) + /// ApiResponse of Object(void) + public Org.OpenAPITools.Client.ApiResponse TestEnumParametersWithHttpInfo (List enumHeaderStringArray = null, string enumHeaderString = null, List enumQueryStringArray = null, string enumQueryString = null, int? enumQueryInteger = null, double? enumQueryDouble = null, List enumFormStringArray = null, string enumFormString = null) + { + + Org.OpenAPITools.Client.RequestOptions requestOptions = new Org.OpenAPITools.Client.RequestOptions(); + + String[] @contentTypes = new String[] { + "application/x-www-form-urlencoded" + }; + + // to determine the Accept header + String[] @accepts = new String[] { + }; + + foreach (var contentType in @contentTypes) + requestOptions.HeaderParameters.Add("Content-Type", contentType); + + foreach (var accept in @accepts) + requestOptions.HeaderParameters.Add("Accept", accept); + + if (enumQueryStringArray != null) + { + foreach (var kvp in Org.OpenAPITools.Client.ClientUtils.ParameterToMultiMap("csv", "enum_query_string_array", enumQueryStringArray)) + { + foreach (var value in kvp.Value) + { + requestOptions.QueryParameters.Add(kvp.Key, value); + } + } + } + if (enumQueryString != null) + { + foreach (var kvp in Org.OpenAPITools.Client.ClientUtils.ParameterToMultiMap("", "enum_query_string", enumQueryString)) + { + foreach (var value in kvp.Value) + { + requestOptions.QueryParameters.Add(kvp.Key, value); + } + } + } + if (enumQueryInteger != null) + { + foreach (var kvp in Org.OpenAPITools.Client.ClientUtils.ParameterToMultiMap("", "enum_query_integer", enumQueryInteger)) + { + foreach (var value in kvp.Value) + { + requestOptions.QueryParameters.Add(kvp.Key, value); + } + } + } + if (enumQueryDouble != null) + { + foreach (var kvp in Org.OpenAPITools.Client.ClientUtils.ParameterToMultiMap("", "enum_query_double", enumQueryDouble)) + { + foreach (var value in kvp.Value) + { + requestOptions.QueryParameters.Add(kvp.Key, value); + } + } + } + if (enumHeaderStringArray != null) + requestOptions.HeaderParameters.Add("enum_header_string_array", Org.OpenAPITools.Client.ClientUtils.ParameterToString(enumHeaderStringArray)); // header parameter + if (enumHeaderString != null) + requestOptions.HeaderParameters.Add("enum_header_string", Org.OpenAPITools.Client.ClientUtils.ParameterToString(enumHeaderString)); // header parameter + if (enumFormStringArray != null) + { + requestOptions.FormParameters.Add("enum_form_string_array", Org.OpenAPITools.Client.ClientUtils.ParameterToString(enumFormStringArray)); // form parameter + } + if (enumFormString != null) + { + requestOptions.FormParameters.Add("enum_form_string", Org.OpenAPITools.Client.ClientUtils.ParameterToString(enumFormString)); // form parameter + } + + + // make the HTTP request + + var response = this.Client.Get("/fake", requestOptions, this.Configuration); + + if (this.ExceptionFactory != null) + { + Exception exception = this.ExceptionFactory("TestEnumParameters", response); + if (exception != null) throw exception; + } + + return response; + } + + /// + /// To test enum parameters To test enum parameters + /// + /// Thrown when fails to make API call + /// Header parameter enum test (string array) (optional) + /// Header parameter enum test (string) (optional, default to -efg) + /// Query parameter enum test (string array) (optional) + /// Query parameter enum test (string) (optional, default to -efg) + /// Query parameter enum test (double) (optional) + /// Query parameter enum test (double) (optional) + /// Form parameter enum test (string array) (optional, default to $) + /// Form parameter enum test (string) (optional, default to -efg) + /// Task of void + public async System.Threading.Tasks.Task TestEnumParametersAsync (List enumHeaderStringArray = null, string enumHeaderString = null, List enumQueryStringArray = null, string enumQueryString = null, int? enumQueryInteger = null, double? enumQueryDouble = null, List enumFormStringArray = null, string enumFormString = null) + { + await TestEnumParametersAsyncWithHttpInfo(enumHeaderStringArray, enumHeaderString, enumQueryStringArray, enumQueryString, enumQueryInteger, enumQueryDouble, enumFormStringArray, enumFormString); + + } + + /// + /// To test enum parameters To test enum parameters + /// + /// Thrown when fails to make API call + /// Header parameter enum test (string array) (optional) + /// Header parameter enum test (string) (optional, default to -efg) + /// Query parameter enum test (string array) (optional) + /// Query parameter enum test (string) (optional, default to -efg) + /// Query parameter enum test (double) (optional) + /// Query parameter enum test (double) (optional) + /// Form parameter enum test (string array) (optional, default to $) + /// Form parameter enum test (string) (optional, default to -efg) + /// Task of ApiResponse + public async System.Threading.Tasks.Task> TestEnumParametersAsyncWithHttpInfo (List enumHeaderStringArray = null, string enumHeaderString = null, List enumQueryStringArray = null, string enumQueryString = null, int? enumQueryInteger = null, double? enumQueryDouble = null, List enumFormStringArray = null, string enumFormString = null) + { + + Org.OpenAPITools.Client.RequestOptions requestOptions = new Org.OpenAPITools.Client.RequestOptions(); + + String[] @contentTypes = new String[] { + "application/x-www-form-urlencoded" + }; + + // to determine the Accept header + String[] @accepts = new String[] { + }; + + foreach (var contentType in @contentTypes) + requestOptions.HeaderParameters.Add("Content-Type", contentType); + + foreach (var accept in @accepts) + requestOptions.HeaderParameters.Add("Accept", accept); + + if (enumQueryStringArray != null) + { + foreach (var kvp in Org.OpenAPITools.Client.ClientUtils.ParameterToMultiMap("csv", "enum_query_string_array", enumQueryStringArray)) + { + foreach (var value in kvp.Value) + { + requestOptions.QueryParameters.Add(kvp.Key, value); + } + } + } + if (enumQueryString != null) + { + foreach (var kvp in Org.OpenAPITools.Client.ClientUtils.ParameterToMultiMap("", "enum_query_string", enumQueryString)) + { + foreach (var value in kvp.Value) + { + requestOptions.QueryParameters.Add(kvp.Key, value); + } + } + } + if (enumQueryInteger != null) + { + foreach (var kvp in Org.OpenAPITools.Client.ClientUtils.ParameterToMultiMap("", "enum_query_integer", enumQueryInteger)) + { + foreach (var value in kvp.Value) + { + requestOptions.QueryParameters.Add(kvp.Key, value); + } + } + } + if (enumQueryDouble != null) + { + foreach (var kvp in Org.OpenAPITools.Client.ClientUtils.ParameterToMultiMap("", "enum_query_double", enumQueryDouble)) + { + foreach (var value in kvp.Value) + { + requestOptions.QueryParameters.Add(kvp.Key, value); + } + } + } + if (enumHeaderStringArray != null) + requestOptions.HeaderParameters.Add("enum_header_string_array", Org.OpenAPITools.Client.ClientUtils.ParameterToString(enumHeaderStringArray)); // header parameter + if (enumHeaderString != null) + requestOptions.HeaderParameters.Add("enum_header_string", Org.OpenAPITools.Client.ClientUtils.ParameterToString(enumHeaderString)); // header parameter + if (enumFormStringArray != null) + { + requestOptions.FormParameters.Add("enum_form_string_array", Org.OpenAPITools.Client.ClientUtils.ParameterToString(enumFormStringArray)); // form parameter + } + if (enumFormString != null) + { + requestOptions.FormParameters.Add("enum_form_string", Org.OpenAPITools.Client.ClientUtils.ParameterToString(enumFormString)); // form parameter + } + + + // make the HTTP request + + var response = await this.AsynchronousClient.GetAsync("/fake", requestOptions, this.Configuration); + + if (this.ExceptionFactory != null) + { + Exception exception = this.ExceptionFactory("TestEnumParameters", response); + if (exception != null) throw exception; + } + + return response; + } + + /// + /// Fake endpoint to test group parameters (optional) Fake endpoint to test group parameters (optional) + /// + /// Thrown when fails to make API call + /// Required String in group parameters + /// Required Boolean in group parameters + /// Required Integer in group parameters + /// String in group parameters (optional) + /// Boolean in group parameters (optional) + /// Integer in group parameters (optional) + /// + public void TestGroupParameters (int? requiredStringGroup, bool? requiredBooleanGroup, long? requiredInt64Group, int? stringGroup = null, bool? booleanGroup = null, long? int64Group = null) + { + TestGroupParametersWithHttpInfo(requiredStringGroup, requiredBooleanGroup, requiredInt64Group, stringGroup, booleanGroup, int64Group); + } + + /// + /// Fake endpoint to test group parameters (optional) Fake endpoint to test group parameters (optional) + /// + /// Thrown when fails to make API call + /// Required String in group parameters + /// Required Boolean in group parameters + /// Required Integer in group parameters + /// String in group parameters (optional) + /// Boolean in group parameters (optional) + /// Integer in group parameters (optional) + /// ApiResponse of Object(void) + public Org.OpenAPITools.Client.ApiResponse TestGroupParametersWithHttpInfo (int? requiredStringGroup, bool? requiredBooleanGroup, long? requiredInt64Group, int? stringGroup = null, bool? booleanGroup = null, long? int64Group = null) + { + // verify the required parameter 'requiredStringGroup' is set + if (requiredStringGroup == null) + throw new Org.OpenAPITools.Client.ApiException(400, "Missing required parameter 'requiredStringGroup' when calling FakeApi->TestGroupParameters"); + // verify the required parameter 'requiredBooleanGroup' is set + if (requiredBooleanGroup == null) + throw new Org.OpenAPITools.Client.ApiException(400, "Missing required parameter 'requiredBooleanGroup' when calling FakeApi->TestGroupParameters"); + // verify the required parameter 'requiredInt64Group' is set + if (requiredInt64Group == null) + throw new Org.OpenAPITools.Client.ApiException(400, "Missing required parameter 'requiredInt64Group' when calling FakeApi->TestGroupParameters"); + + Org.OpenAPITools.Client.RequestOptions requestOptions = new Org.OpenAPITools.Client.RequestOptions(); + + String[] @contentTypes = new String[] { + }; + + // to determine the Accept header + String[] @accepts = new String[] { + }; + + foreach (var contentType in @contentTypes) + requestOptions.HeaderParameters.Add("Content-Type", contentType); + + foreach (var accept in @accepts) + requestOptions.HeaderParameters.Add("Accept", accept); + + if (requiredStringGroup != null) + { + foreach (var kvp in Org.OpenAPITools.Client.ClientUtils.ParameterToMultiMap("", "required_string_group", requiredStringGroup)) + { + foreach (var value in kvp.Value) + { + requestOptions.QueryParameters.Add(kvp.Key, value); + } + } + } + if (requiredInt64Group != null) + { + foreach (var kvp in Org.OpenAPITools.Client.ClientUtils.ParameterToMultiMap("", "required_int64_group", requiredInt64Group)) + { + foreach (var value in kvp.Value) + { + requestOptions.QueryParameters.Add(kvp.Key, value); + } + } + } + if (stringGroup != null) + { + foreach (var kvp in Org.OpenAPITools.Client.ClientUtils.ParameterToMultiMap("", "string_group", stringGroup)) + { + foreach (var value in kvp.Value) + { + requestOptions.QueryParameters.Add(kvp.Key, value); + } + } + } + if (int64Group != null) + { + foreach (var kvp in Org.OpenAPITools.Client.ClientUtils.ParameterToMultiMap("", "int64_group", int64Group)) + { + foreach (var value in kvp.Value) + { + requestOptions.QueryParameters.Add(kvp.Key, value); + } + } + } + if (requiredBooleanGroup != null) + requestOptions.HeaderParameters.Add("required_boolean_group", Org.OpenAPITools.Client.ClientUtils.ParameterToString(requiredBooleanGroup)); // header parameter + if (booleanGroup != null) + requestOptions.HeaderParameters.Add("boolean_group", Org.OpenAPITools.Client.ClientUtils.ParameterToString(booleanGroup)); // header parameter + + + // make the HTTP request + + var response = this.Client.Delete("/fake", requestOptions, this.Configuration); + + if (this.ExceptionFactory != null) + { + Exception exception = this.ExceptionFactory("TestGroupParameters", response); + if (exception != null) throw exception; + } + + return response; + } + + /// + /// Fake endpoint to test group parameters (optional) Fake endpoint to test group parameters (optional) + /// + /// Thrown when fails to make API call + /// Required String in group parameters + /// Required Boolean in group parameters + /// Required Integer in group parameters + /// String in group parameters (optional) + /// Boolean in group parameters (optional) + /// Integer in group parameters (optional) + /// Task of void + public async System.Threading.Tasks.Task TestGroupParametersAsync (int? requiredStringGroup, bool? requiredBooleanGroup, long? requiredInt64Group, int? stringGroup = null, bool? booleanGroup = null, long? int64Group = null) + { + await TestGroupParametersAsyncWithHttpInfo(requiredStringGroup, requiredBooleanGroup, requiredInt64Group, stringGroup, booleanGroup, int64Group); + + } + + /// + /// Fake endpoint to test group parameters (optional) Fake endpoint to test group parameters (optional) + /// + /// Thrown when fails to make API call + /// Required String in group parameters + /// Required Boolean in group parameters + /// Required Integer in group parameters + /// String in group parameters (optional) + /// Boolean in group parameters (optional) + /// Integer in group parameters (optional) + /// Task of ApiResponse + public async System.Threading.Tasks.Task> TestGroupParametersAsyncWithHttpInfo (int? requiredStringGroup, bool? requiredBooleanGroup, long? requiredInt64Group, int? stringGroup = null, bool? booleanGroup = null, long? int64Group = null) + { + // verify the required parameter 'requiredStringGroup' is set + if (requiredStringGroup == null) + throw new Org.OpenAPITools.Client.ApiException(400, "Missing required parameter 'requiredStringGroup' when calling FakeApi->TestGroupParameters"); + // verify the required parameter 'requiredBooleanGroup' is set + if (requiredBooleanGroup == null) + throw new Org.OpenAPITools.Client.ApiException(400, "Missing required parameter 'requiredBooleanGroup' when calling FakeApi->TestGroupParameters"); + // verify the required parameter 'requiredInt64Group' is set + if (requiredInt64Group == null) + throw new Org.OpenAPITools.Client.ApiException(400, "Missing required parameter 'requiredInt64Group' when calling FakeApi->TestGroupParameters"); + + Org.OpenAPITools.Client.RequestOptions requestOptions = new Org.OpenAPITools.Client.RequestOptions(); + + String[] @contentTypes = new String[] { + }; + + // to determine the Accept header + String[] @accepts = new String[] { + }; + + foreach (var contentType in @contentTypes) + requestOptions.HeaderParameters.Add("Content-Type", contentType); + + foreach (var accept in @accepts) + requestOptions.HeaderParameters.Add("Accept", accept); + + if (requiredStringGroup != null) + { + foreach (var kvp in Org.OpenAPITools.Client.ClientUtils.ParameterToMultiMap("", "required_string_group", requiredStringGroup)) + { + foreach (var value in kvp.Value) + { + requestOptions.QueryParameters.Add(kvp.Key, value); + } + } + } + if (requiredInt64Group != null) + { + foreach (var kvp in Org.OpenAPITools.Client.ClientUtils.ParameterToMultiMap("", "required_int64_group", requiredInt64Group)) + { + foreach (var value in kvp.Value) + { + requestOptions.QueryParameters.Add(kvp.Key, value); + } + } + } + if (stringGroup != null) + { + foreach (var kvp in Org.OpenAPITools.Client.ClientUtils.ParameterToMultiMap("", "string_group", stringGroup)) + { + foreach (var value in kvp.Value) + { + requestOptions.QueryParameters.Add(kvp.Key, value); + } + } + } + if (int64Group != null) + { + foreach (var kvp in Org.OpenAPITools.Client.ClientUtils.ParameterToMultiMap("", "int64_group", int64Group)) + { + foreach (var value in kvp.Value) + { + requestOptions.QueryParameters.Add(kvp.Key, value); + } + } + } + if (requiredBooleanGroup != null) + requestOptions.HeaderParameters.Add("required_boolean_group", Org.OpenAPITools.Client.ClientUtils.ParameterToString(requiredBooleanGroup)); // header parameter + if (booleanGroup != null) + requestOptions.HeaderParameters.Add("boolean_group", Org.OpenAPITools.Client.ClientUtils.ParameterToString(booleanGroup)); // header parameter + + + // make the HTTP request + + var response = await this.AsynchronousClient.DeleteAsync("/fake", requestOptions, this.Configuration); + + if (this.ExceptionFactory != null) + { + Exception exception = this.ExceptionFactory("TestGroupParameters", response); + if (exception != null) throw exception; + } + + return response; + } + + /// + /// test inline additionalProperties + /// + /// Thrown when fails to make API call + /// request body + /// + public void TestInlineAdditionalProperties (Dictionary requestBody) + { + TestInlineAdditionalPropertiesWithHttpInfo(requestBody); + } + + /// + /// test inline additionalProperties + /// + /// Thrown when fails to make API call + /// request body + /// ApiResponse of Object(void) + public Org.OpenAPITools.Client.ApiResponse TestInlineAdditionalPropertiesWithHttpInfo (Dictionary requestBody) + { + // verify the required parameter 'requestBody' is set + if (requestBody == null) + throw new Org.OpenAPITools.Client.ApiException(400, "Missing required parameter 'requestBody' when calling FakeApi->TestInlineAdditionalProperties"); + + Org.OpenAPITools.Client.RequestOptions requestOptions = new Org.OpenAPITools.Client.RequestOptions(); + + String[] @contentTypes = new String[] { + "application/json" + }; + + // to determine the Accept header + String[] @accepts = new String[] { + }; + + foreach (var contentType in @contentTypes) + requestOptions.HeaderParameters.Add("Content-Type", contentType); + + foreach (var accept in @accepts) + requestOptions.HeaderParameters.Add("Accept", accept); + + requestOptions.Data = requestBody; + + + // make the HTTP request + + var response = this.Client.Post("/fake/inline-additionalProperties", requestOptions, this.Configuration); + + if (this.ExceptionFactory != null) + { + Exception exception = this.ExceptionFactory("TestInlineAdditionalProperties", response); + if (exception != null) throw exception; + } + + return response; + } + + /// + /// test inline additionalProperties + /// + /// Thrown when fails to make API call + /// request body + /// Task of void + public async System.Threading.Tasks.Task TestInlineAdditionalPropertiesAsync (Dictionary requestBody) + { + await TestInlineAdditionalPropertiesAsyncWithHttpInfo(requestBody); + + } + + /// + /// test inline additionalProperties + /// + /// Thrown when fails to make API call + /// request body + /// Task of ApiResponse + public async System.Threading.Tasks.Task> TestInlineAdditionalPropertiesAsyncWithHttpInfo (Dictionary requestBody) + { + // verify the required parameter 'requestBody' is set + if (requestBody == null) + throw new Org.OpenAPITools.Client.ApiException(400, "Missing required parameter 'requestBody' when calling FakeApi->TestInlineAdditionalProperties"); + + Org.OpenAPITools.Client.RequestOptions requestOptions = new Org.OpenAPITools.Client.RequestOptions(); + + String[] @contentTypes = new String[] { + "application/json" + }; + + // to determine the Accept header + String[] @accepts = new String[] { + }; + + foreach (var contentType in @contentTypes) + requestOptions.HeaderParameters.Add("Content-Type", contentType); + + foreach (var accept in @accepts) + requestOptions.HeaderParameters.Add("Accept", accept); + + requestOptions.Data = requestBody; + + + // make the HTTP request + + var response = await this.AsynchronousClient.PostAsync("/fake/inline-additionalProperties", requestOptions, this.Configuration); + + if (this.ExceptionFactory != null) + { + Exception exception = this.ExceptionFactory("TestInlineAdditionalProperties", response); + if (exception != null) throw exception; + } + + return response; + } + + /// + /// test json serialization of form data + /// + /// Thrown when fails to make API call + /// field1 + /// field2 + /// + public void TestJsonFormData (string param, string param2) + { + TestJsonFormDataWithHttpInfo(param, param2); + } + + /// + /// test json serialization of form data + /// + /// Thrown when fails to make API call + /// field1 + /// field2 + /// ApiResponse of Object(void) + public Org.OpenAPITools.Client.ApiResponse TestJsonFormDataWithHttpInfo (string param, string param2) + { + // verify the required parameter 'param' is set + if (param == null) + throw new Org.OpenAPITools.Client.ApiException(400, "Missing required parameter 'param' when calling FakeApi->TestJsonFormData"); + // verify the required parameter 'param2' is set + if (param2 == null) + throw new Org.OpenAPITools.Client.ApiException(400, "Missing required parameter 'param2' when calling FakeApi->TestJsonFormData"); + + Org.OpenAPITools.Client.RequestOptions requestOptions = new Org.OpenAPITools.Client.RequestOptions(); + + String[] @contentTypes = new String[] { + "application/x-www-form-urlencoded" + }; + + // to determine the Accept header + String[] @accepts = new String[] { + }; + + foreach (var contentType in @contentTypes) + requestOptions.HeaderParameters.Add("Content-Type", contentType); + + foreach (var accept in @accepts) + requestOptions.HeaderParameters.Add("Accept", accept); + + if (param != null) + { + requestOptions.FormParameters.Add("param", Org.OpenAPITools.Client.ClientUtils.ParameterToString(param)); // form parameter + } + if (param2 != null) + { + requestOptions.FormParameters.Add("param2", Org.OpenAPITools.Client.ClientUtils.ParameterToString(param2)); // form parameter + } + + + // make the HTTP request + + var response = this.Client.Get("/fake/jsonFormData", requestOptions, this.Configuration); + + if (this.ExceptionFactory != null) + { + Exception exception = this.ExceptionFactory("TestJsonFormData", response); + if (exception != null) throw exception; + } + + return response; + } + + /// + /// test json serialization of form data + /// + /// Thrown when fails to make API call + /// field1 + /// field2 + /// Task of void + public async System.Threading.Tasks.Task TestJsonFormDataAsync (string param, string param2) + { + await TestJsonFormDataAsyncWithHttpInfo(param, param2); + + } + + /// + /// test json serialization of form data + /// + /// Thrown when fails to make API call + /// field1 + /// field2 + /// Task of ApiResponse + public async System.Threading.Tasks.Task> TestJsonFormDataAsyncWithHttpInfo (string param, string param2) + { + // verify the required parameter 'param' is set + if (param == null) + throw new Org.OpenAPITools.Client.ApiException(400, "Missing required parameter 'param' when calling FakeApi->TestJsonFormData"); + // verify the required parameter 'param2' is set + if (param2 == null) + throw new Org.OpenAPITools.Client.ApiException(400, "Missing required parameter 'param2' when calling FakeApi->TestJsonFormData"); + + Org.OpenAPITools.Client.RequestOptions requestOptions = new Org.OpenAPITools.Client.RequestOptions(); + + String[] @contentTypes = new String[] { + "application/x-www-form-urlencoded" + }; + + // to determine the Accept header + String[] @accepts = new String[] { + }; + + foreach (var contentType in @contentTypes) + requestOptions.HeaderParameters.Add("Content-Type", contentType); + + foreach (var accept in @accepts) + requestOptions.HeaderParameters.Add("Accept", accept); + + if (param != null) + { + requestOptions.FormParameters.Add("param", Org.OpenAPITools.Client.ClientUtils.ParameterToString(param)); // form parameter + } + if (param2 != null) + { + requestOptions.FormParameters.Add("param2", Org.OpenAPITools.Client.ClientUtils.ParameterToString(param2)); // form parameter + } + + + // make the HTTP request + + var response = await this.AsynchronousClient.GetAsync("/fake/jsonFormData", requestOptions, this.Configuration); + + if (this.ExceptionFactory != null) + { + Exception exception = this.ExceptionFactory("TestJsonFormData", response); + if (exception != null) throw exception; + } + + return response; + } + + } +} diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Api/FakeClassnameTags123Api.cs b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Api/FakeClassnameTags123Api.cs new file mode 100644 index 00000000000..8ad7b904047 --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Api/FakeClassnameTags123Api.cs @@ -0,0 +1,336 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * OpenAPI spec version: 1.0.0 + * + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + + +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Linq; +using System.Net; +using System.Net.Mime; +using Org.OpenAPITools.Client; +using Org.OpenAPITools.Model; + +namespace Org.OpenAPITools.Api +{ + + /// + /// Represents a collection of functions to interact with the API endpoints + /// + public interface IFakeClassnameTags123ApiSync : IApiAccessor + { + #region Synchronous Operations + /// + /// To test class name in snake case + /// + /// + /// To test class name in snake case + /// + /// Thrown when fails to make API call + /// client model + /// ModelClient + ModelClient TestClassname (ModelClient modelClient); + + /// + /// To test class name in snake case + /// + /// + /// To test class name in snake case + /// + /// Thrown when fails to make API call + /// client model + /// ApiResponse of ModelClient + ApiResponse TestClassnameWithHttpInfo (ModelClient modelClient); + #endregion Synchronous Operations + } + + /// + /// Represents a collection of functions to interact with the API endpoints + /// + public interface IFakeClassnameTags123ApiAsync : IApiAccessor + { + #region Asynchronous Operations + /// + /// To test class name in snake case + /// + /// + /// To test class name in snake case + /// + /// Thrown when fails to make API call + /// client model + /// Task of ModelClient + System.Threading.Tasks.Task TestClassnameAsync (ModelClient modelClient); + + /// + /// To test class name in snake case + /// + /// + /// To test class name in snake case + /// + /// Thrown when fails to make API call + /// client model + /// Task of ApiResponse (ModelClient) + System.Threading.Tasks.Task> TestClassnameAsyncWithHttpInfo (ModelClient modelClient); + #endregion Asynchronous Operations + } + + public interface IFakeClassnameTags123Api : IFakeClassnameTags123ApiSync, IFakeClassnameTags123ApiAsync + { + + } + + /// + /// Represents a collection of functions to interact with the API endpoints + /// + public partial class FakeClassnameTags123Api : IFakeClassnameTags123Api + { + private Org.OpenAPITools.Client.ExceptionFactory _exceptionFactory = (name, response) => null; + + /// + /// Initializes a new instance of the class. + /// + /// + public FakeClassnameTags123Api() : this((string) null) + { + } + + /// + /// Initializes a new instance of the class. + /// + /// + public FakeClassnameTags123Api(String basePath) + { + this.Configuration = Org.OpenAPITools.Client.Configuration.MergeConfigurations( + Org.OpenAPITools.Client.GlobalConfiguration.Instance, + new Org.OpenAPITools.Client.Configuration { BasePath = basePath } + ); + this.Client = new Org.OpenAPITools.Client.ApiClient(this.Configuration.BasePath); + this.AsynchronousClient = new Org.OpenAPITools.Client.ApiClient(this.Configuration.BasePath); + this.ExceptionFactory = Org.OpenAPITools.Client.Configuration.DefaultExceptionFactory; + } + + /// + /// Initializes a new instance of the class + /// using Configuration object + /// + /// An instance of Configuration + /// + public FakeClassnameTags123Api(Org.OpenAPITools.Client.Configuration configuration) + { + if (configuration == null) throw new ArgumentNullException("configuration"); + + this.Configuration = Org.OpenAPITools.Client.Configuration.MergeConfigurations( + Org.OpenAPITools.Client.GlobalConfiguration.Instance, + configuration + ); + this.Client = new Org.OpenAPITools.Client.ApiClient(this.Configuration.BasePath); + this.AsynchronousClient = new Org.OpenAPITools.Client.ApiClient(this.Configuration.BasePath); + ExceptionFactory = Org.OpenAPITools.Client.Configuration.DefaultExceptionFactory; + } + + /// + /// Initializes a new instance of the class + /// using a Configuration object and client instance. + /// + /// The client interface for synchronous API access. + /// The client interface for asynchronous API access. + /// The configuration object. + public FakeClassnameTags123Api(Org.OpenAPITools.Client.ISynchronousClient client,Org.OpenAPITools.Client.IAsynchronousClient asyncClient, Org.OpenAPITools.Client.IReadableConfiguration configuration) + { + if(client == null) throw new ArgumentNullException("client"); + if(asyncClient == null) throw new ArgumentNullException("asyncClient"); + if(configuration == null) throw new ArgumentNullException("configuration"); + + this.Client = client; + this.AsynchronousClient = asyncClient; + this.Configuration = configuration; + this.ExceptionFactory = Org.OpenAPITools.Client.Configuration.DefaultExceptionFactory; + } + + /// + /// The client for accessing this underlying API asynchronously. + /// + public Org.OpenAPITools.Client.IAsynchronousClient AsynchronousClient { get; set; } + + /// + /// The client for accessing this underlying API synchronously. + /// + public Org.OpenAPITools.Client.ISynchronousClient Client { get; set; } + + /// + /// Gets the base path of the API client. + /// + /// The base path + public String GetBasePath() + { + return this.Configuration.BasePath; + } + + /// + /// Gets or sets the configuration object + /// + /// An instance of the Configuration + public Org.OpenAPITools.Client.IReadableConfiguration Configuration {get; set;} + + /// + /// Provides a factory method hook for the creation of exceptions. + /// + public Org.OpenAPITools.Client.ExceptionFactory ExceptionFactory + { + get + { + if (_exceptionFactory != null && _exceptionFactory.GetInvocationList().Length > 1) + { + throw new InvalidOperationException("Multicast delegate for ExceptionFactory is unsupported."); + } + return _exceptionFactory; + } + set { _exceptionFactory = value; } + } + + /// + /// To test class name in snake case To test class name in snake case + /// + /// Thrown when fails to make API call + /// client model + /// ModelClient + public ModelClient TestClassname (ModelClient modelClient) + { + Org.OpenAPITools.Client.ApiResponse localVarResponse = TestClassnameWithHttpInfo(modelClient); + return localVarResponse.Data; + } + + /// + /// To test class name in snake case To test class name in snake case + /// + /// Thrown when fails to make API call + /// client model + /// ApiResponse of ModelClient + public Org.OpenAPITools.Client.ApiResponse< ModelClient > TestClassnameWithHttpInfo (ModelClient modelClient) + { + // verify the required parameter 'modelClient' is set + if (modelClient == null) + throw new Org.OpenAPITools.Client.ApiException(400, "Missing required parameter 'modelClient' when calling FakeClassnameTags123Api->TestClassname"); + + Org.OpenAPITools.Client.RequestOptions requestOptions = new Org.OpenAPITools.Client.RequestOptions(); + + String[] @contentTypes = new String[] { + "application/json" + }; + + // to determine the Accept header + String[] @accepts = new String[] { + "application/json" + }; + + foreach (var contentType in @contentTypes) + requestOptions.HeaderParameters.Add("Content-Type", contentType); + + foreach (var accept in @accepts) + requestOptions.HeaderParameters.Add("Accept", accept); + + requestOptions.Data = modelClient; + + // authentication (api_key_query) required + if (!String.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("api_key_query"))) + { + foreach (var kvp in Org.OpenAPITools.Client.ClientUtils.ParameterToMultiMap("", "api_key_query", this.Configuration.GetApiKeyWithPrefix("api_key_query"))) + { + foreach (var value in kvp.Value) + { + requestOptions.QueryParameters.Add(kvp.Key, value); + } + } + } + + // make the HTTP request + + var response = this.Client.Patch< ModelClient >("/fake_classname_test", requestOptions, this.Configuration); + + if (this.ExceptionFactory != null) + { + Exception exception = this.ExceptionFactory("TestClassname", response); + if (exception != null) throw exception; + } + + return response; + } + + /// + /// To test class name in snake case To test class name in snake case + /// + /// Thrown when fails to make API call + /// client model + /// Task of ModelClient + public async System.Threading.Tasks.Task TestClassnameAsync (ModelClient modelClient) + { + Org.OpenAPITools.Client.ApiResponse localVarResponse = await TestClassnameAsyncWithHttpInfo(modelClient); + return localVarResponse.Data; + + } + + /// + /// To test class name in snake case To test class name in snake case + /// + /// Thrown when fails to make API call + /// client model + /// Task of ApiResponse (ModelClient) + public async System.Threading.Tasks.Task> TestClassnameAsyncWithHttpInfo (ModelClient modelClient) + { + // verify the required parameter 'modelClient' is set + if (modelClient == null) + throw new Org.OpenAPITools.Client.ApiException(400, "Missing required parameter 'modelClient' when calling FakeClassnameTags123Api->TestClassname"); + + Org.OpenAPITools.Client.RequestOptions requestOptions = new Org.OpenAPITools.Client.RequestOptions(); + + String[] @contentTypes = new String[] { + "application/json" + }; + + // to determine the Accept header + String[] @accepts = new String[] { + "application/json" + }; + + foreach (var contentType in @contentTypes) + requestOptions.HeaderParameters.Add("Content-Type", contentType); + + foreach (var accept in @accepts) + requestOptions.HeaderParameters.Add("Accept", accept); + + requestOptions.Data = modelClient; + + // authentication (api_key_query) required + if (!String.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("api_key_query"))) + { + foreach (var kvp in Org.OpenAPITools.Client.ClientUtils.ParameterToMultiMap("", "api_key_query", this.Configuration.GetApiKeyWithPrefix("api_key_query"))) + { + foreach (var value in kvp.Value) + { + requestOptions.QueryParameters.Add(kvp.Key, value); + } + } + } + + // make the HTTP request + + var response = await this.AsynchronousClient.PatchAsync("/fake_classname_test", requestOptions, this.Configuration); + + if (this.ExceptionFactory != null) + { + Exception exception = this.ExceptionFactory("TestClassname", response); + if (exception != null) throw exception; + } + + return response; + } + + } +} diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Api/PetApi.cs b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Api/PetApi.cs new file mode 100644 index 00000000000..75e6be97b82 --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Api/PetApi.cs @@ -0,0 +1,1822 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * OpenAPI spec version: 1.0.0 + * + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + + +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Linq; +using System.Net; +using System.Net.Mime; +using Org.OpenAPITools.Client; +using Org.OpenAPITools.Model; + +namespace Org.OpenAPITools.Api +{ + + /// + /// Represents a collection of functions to interact with the API endpoints + /// + public interface IPetApiSync : IApiAccessor + { + #region Synchronous Operations + /// + /// Add a new pet to the store + /// + /// + /// + /// + /// Thrown when fails to make API call + /// Pet object that needs to be added to the store + /// + void AddPet (Pet pet); + + /// + /// Add a new pet to the store + /// + /// + /// + /// + /// Thrown when fails to make API call + /// Pet object that needs to be added to the store + /// ApiResponse of Object(void) + ApiResponse AddPetWithHttpInfo (Pet pet); + /// + /// Deletes a pet + /// + /// + /// + /// + /// Thrown when fails to make API call + /// Pet id to delete + /// (optional) + /// + void DeletePet (long? petId, string apiKey = null); + + /// + /// Deletes a pet + /// + /// + /// + /// + /// Thrown when fails to make API call + /// Pet id to delete + /// (optional) + /// ApiResponse of Object(void) + ApiResponse DeletePetWithHttpInfo (long? petId, string apiKey = null); + /// + /// Finds Pets by status + /// + /// + /// Multiple status values can be provided with comma separated strings + /// + /// Thrown when fails to make API call + /// Status values that need to be considered for filter + /// List<Pet> + List FindPetsByStatus (List status); + + /// + /// Finds Pets by status + /// + /// + /// Multiple status values can be provided with comma separated strings + /// + /// Thrown when fails to make API call + /// Status values that need to be considered for filter + /// ApiResponse of List<Pet> + ApiResponse> FindPetsByStatusWithHttpInfo (List status); + /// + /// Finds Pets by tags + /// + /// + /// Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing. + /// + /// Thrown when fails to make API call + /// Tags to filter by + /// List<Pet> + List FindPetsByTags (List tags); + + /// + /// Finds Pets by tags + /// + /// + /// Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing. + /// + /// Thrown when fails to make API call + /// Tags to filter by + /// ApiResponse of List<Pet> + ApiResponse> FindPetsByTagsWithHttpInfo (List tags); + /// + /// Find pet by ID + /// + /// + /// Returns a single pet + /// + /// Thrown when fails to make API call + /// ID of pet to return + /// Pet + Pet GetPetById (long? petId); + + /// + /// Find pet by ID + /// + /// + /// Returns a single pet + /// + /// Thrown when fails to make API call + /// ID of pet to return + /// ApiResponse of Pet + ApiResponse GetPetByIdWithHttpInfo (long? petId); + /// + /// Update an existing pet + /// + /// + /// + /// + /// Thrown when fails to make API call + /// Pet object that needs to be added to the store + /// + void UpdatePet (Pet pet); + + /// + /// Update an existing pet + /// + /// + /// + /// + /// Thrown when fails to make API call + /// Pet object that needs to be added to the store + /// ApiResponse of Object(void) + ApiResponse UpdatePetWithHttpInfo (Pet pet); + /// + /// Updates a pet in the store with form data + /// + /// + /// + /// + /// Thrown when fails to make API call + /// ID of pet that needs to be updated + /// Updated name of the pet (optional) + /// Updated status of the pet (optional) + /// + void UpdatePetWithForm (long? petId, string name = null, string status = null); + + /// + /// Updates a pet in the store with form data + /// + /// + /// + /// + /// Thrown when fails to make API call + /// ID of pet that needs to be updated + /// Updated name of the pet (optional) + /// Updated status of the pet (optional) + /// ApiResponse of Object(void) + ApiResponse UpdatePetWithFormWithHttpInfo (long? petId, string name = null, string status = null); + /// + /// uploads an image + /// + /// + /// + /// + /// Thrown when fails to make API call + /// ID of pet to update + /// Additional data to pass to server (optional) + /// file to upload (optional) + /// ApiResponse + ApiResponse UploadFile (long? petId, string additionalMetadata = null, System.IO.Stream file = null); + + /// + /// uploads an image + /// + /// + /// + /// + /// Thrown when fails to make API call + /// ID of pet to update + /// Additional data to pass to server (optional) + /// file to upload (optional) + /// ApiResponse of ApiResponse + ApiResponse UploadFileWithHttpInfo (long? petId, string additionalMetadata = null, System.IO.Stream file = null); + /// + /// uploads an image (required) + /// + /// + /// + /// + /// Thrown when fails to make API call + /// ID of pet to update + /// file to upload + /// Additional data to pass to server (optional) + /// ApiResponse + ApiResponse UploadFileWithRequiredFile (long? petId, System.IO.Stream requiredFile, string additionalMetadata = null); + + /// + /// uploads an image (required) + /// + /// + /// + /// + /// Thrown when fails to make API call + /// ID of pet to update + /// file to upload + /// Additional data to pass to server (optional) + /// ApiResponse of ApiResponse + ApiResponse UploadFileWithRequiredFileWithHttpInfo (long? petId, System.IO.Stream requiredFile, string additionalMetadata = null); + #endregion Synchronous Operations + } + + /// + /// Represents a collection of functions to interact with the API endpoints + /// + public interface IPetApiAsync : IApiAccessor + { + #region Asynchronous Operations + /// + /// Add a new pet to the store + /// + /// + /// + /// + /// Thrown when fails to make API call + /// Pet object that needs to be added to the store + /// Task of void + System.Threading.Tasks.Task AddPetAsync (Pet pet); + + /// + /// Add a new pet to the store + /// + /// + /// + /// + /// Thrown when fails to make API call + /// Pet object that needs to be added to the store + /// Task of ApiResponse + System.Threading.Tasks.Task> AddPetAsyncWithHttpInfo (Pet pet); + /// + /// Deletes a pet + /// + /// + /// + /// + /// Thrown when fails to make API call + /// Pet id to delete + /// (optional) + /// Task of void + System.Threading.Tasks.Task DeletePetAsync (long? petId, string apiKey = null); + + /// + /// Deletes a pet + /// + /// + /// + /// + /// Thrown when fails to make API call + /// Pet id to delete + /// (optional) + /// Task of ApiResponse + System.Threading.Tasks.Task> DeletePetAsyncWithHttpInfo (long? petId, string apiKey = null); + /// + /// Finds Pets by status + /// + /// + /// Multiple status values can be provided with comma separated strings + /// + /// Thrown when fails to make API call + /// Status values that need to be considered for filter + /// Task of List<Pet> + System.Threading.Tasks.Task> FindPetsByStatusAsync (List status); + + /// + /// Finds Pets by status + /// + /// + /// Multiple status values can be provided with comma separated strings + /// + /// Thrown when fails to make API call + /// Status values that need to be considered for filter + /// Task of ApiResponse (List<Pet>) + System.Threading.Tasks.Task>> FindPetsByStatusAsyncWithHttpInfo (List status); + /// + /// Finds Pets by tags + /// + /// + /// Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing. + /// + /// Thrown when fails to make API call + /// Tags to filter by + /// Task of List<Pet> + System.Threading.Tasks.Task> FindPetsByTagsAsync (List tags); + + /// + /// Finds Pets by tags + /// + /// + /// Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing. + /// + /// Thrown when fails to make API call + /// Tags to filter by + /// Task of ApiResponse (List<Pet>) + System.Threading.Tasks.Task>> FindPetsByTagsAsyncWithHttpInfo (List tags); + /// + /// Find pet by ID + /// + /// + /// Returns a single pet + /// + /// Thrown when fails to make API call + /// ID of pet to return + /// Task of Pet + System.Threading.Tasks.Task GetPetByIdAsync (long? petId); + + /// + /// Find pet by ID + /// + /// + /// Returns a single pet + /// + /// Thrown when fails to make API call + /// ID of pet to return + /// Task of ApiResponse (Pet) + System.Threading.Tasks.Task> GetPetByIdAsyncWithHttpInfo (long? petId); + /// + /// Update an existing pet + /// + /// + /// + /// + /// Thrown when fails to make API call + /// Pet object that needs to be added to the store + /// Task of void + System.Threading.Tasks.Task UpdatePetAsync (Pet pet); + + /// + /// Update an existing pet + /// + /// + /// + /// + /// Thrown when fails to make API call + /// Pet object that needs to be added to the store + /// Task of ApiResponse + System.Threading.Tasks.Task> UpdatePetAsyncWithHttpInfo (Pet pet); + /// + /// Updates a pet in the store with form data + /// + /// + /// + /// + /// Thrown when fails to make API call + /// ID of pet that needs to be updated + /// Updated name of the pet (optional) + /// Updated status of the pet (optional) + /// Task of void + System.Threading.Tasks.Task UpdatePetWithFormAsync (long? petId, string name = null, string status = null); + + /// + /// Updates a pet in the store with form data + /// + /// + /// + /// + /// Thrown when fails to make API call + /// ID of pet that needs to be updated + /// Updated name of the pet (optional) + /// Updated status of the pet (optional) + /// Task of ApiResponse + System.Threading.Tasks.Task> UpdatePetWithFormAsyncWithHttpInfo (long? petId, string name = null, string status = null); + /// + /// uploads an image + /// + /// + /// + /// + /// Thrown when fails to make API call + /// ID of pet to update + /// Additional data to pass to server (optional) + /// file to upload (optional) + /// Task of ApiResponse + System.Threading.Tasks.Task UploadFileAsync (long? petId, string additionalMetadata = null, System.IO.Stream file = null); + + /// + /// uploads an image + /// + /// + /// + /// + /// Thrown when fails to make API call + /// ID of pet to update + /// Additional data to pass to server (optional) + /// file to upload (optional) + /// Task of ApiResponse (ApiResponse) + System.Threading.Tasks.Task> UploadFileAsyncWithHttpInfo (long? petId, string additionalMetadata = null, System.IO.Stream file = null); + /// + /// uploads an image (required) + /// + /// + /// + /// + /// Thrown when fails to make API call + /// ID of pet to update + /// file to upload + /// Additional data to pass to server (optional) + /// Task of ApiResponse + System.Threading.Tasks.Task UploadFileWithRequiredFileAsync (long? petId, System.IO.Stream requiredFile, string additionalMetadata = null); + + /// + /// uploads an image (required) + /// + /// + /// + /// + /// Thrown when fails to make API call + /// ID of pet to update + /// file to upload + /// Additional data to pass to server (optional) + /// Task of ApiResponse (ApiResponse) + System.Threading.Tasks.Task> UploadFileWithRequiredFileAsyncWithHttpInfo (long? petId, System.IO.Stream requiredFile, string additionalMetadata = null); + #endregion Asynchronous Operations + } + + public interface IPetApi : IPetApiSync, IPetApiAsync + { + + } + + /// + /// Represents a collection of functions to interact with the API endpoints + /// + public partial class PetApi : IPetApi + { + private Org.OpenAPITools.Client.ExceptionFactory _exceptionFactory = (name, response) => null; + + /// + /// Initializes a new instance of the class. + /// + /// + public PetApi() : this((string) null) + { + } + + /// + /// Initializes a new instance of the class. + /// + /// + public PetApi(String basePath) + { + this.Configuration = Org.OpenAPITools.Client.Configuration.MergeConfigurations( + Org.OpenAPITools.Client.GlobalConfiguration.Instance, + new Org.OpenAPITools.Client.Configuration { BasePath = basePath } + ); + this.Client = new Org.OpenAPITools.Client.ApiClient(this.Configuration.BasePath); + this.AsynchronousClient = new Org.OpenAPITools.Client.ApiClient(this.Configuration.BasePath); + this.ExceptionFactory = Org.OpenAPITools.Client.Configuration.DefaultExceptionFactory; + } + + /// + /// Initializes a new instance of the class + /// using Configuration object + /// + /// An instance of Configuration + /// + public PetApi(Org.OpenAPITools.Client.Configuration configuration) + { + if (configuration == null) throw new ArgumentNullException("configuration"); + + this.Configuration = Org.OpenAPITools.Client.Configuration.MergeConfigurations( + Org.OpenAPITools.Client.GlobalConfiguration.Instance, + configuration + ); + this.Client = new Org.OpenAPITools.Client.ApiClient(this.Configuration.BasePath); + this.AsynchronousClient = new Org.OpenAPITools.Client.ApiClient(this.Configuration.BasePath); + ExceptionFactory = Org.OpenAPITools.Client.Configuration.DefaultExceptionFactory; + } + + /// + /// Initializes a new instance of the class + /// using a Configuration object and client instance. + /// + /// The client interface for synchronous API access. + /// The client interface for asynchronous API access. + /// The configuration object. + public PetApi(Org.OpenAPITools.Client.ISynchronousClient client,Org.OpenAPITools.Client.IAsynchronousClient asyncClient, Org.OpenAPITools.Client.IReadableConfiguration configuration) + { + if(client == null) throw new ArgumentNullException("client"); + if(asyncClient == null) throw new ArgumentNullException("asyncClient"); + if(configuration == null) throw new ArgumentNullException("configuration"); + + this.Client = client; + this.AsynchronousClient = asyncClient; + this.Configuration = configuration; + this.ExceptionFactory = Org.OpenAPITools.Client.Configuration.DefaultExceptionFactory; + } + + /// + /// The client for accessing this underlying API asynchronously. + /// + public Org.OpenAPITools.Client.IAsynchronousClient AsynchronousClient { get; set; } + + /// + /// The client for accessing this underlying API synchronously. + /// + public Org.OpenAPITools.Client.ISynchronousClient Client { get; set; } + + /// + /// Gets the base path of the API client. + /// + /// The base path + public String GetBasePath() + { + return this.Configuration.BasePath; + } + + /// + /// Gets or sets the configuration object + /// + /// An instance of the Configuration + public Org.OpenAPITools.Client.IReadableConfiguration Configuration {get; set;} + + /// + /// Provides a factory method hook for the creation of exceptions. + /// + public Org.OpenAPITools.Client.ExceptionFactory ExceptionFactory + { + get + { + if (_exceptionFactory != null && _exceptionFactory.GetInvocationList().Length > 1) + { + throw new InvalidOperationException("Multicast delegate for ExceptionFactory is unsupported."); + } + return _exceptionFactory; + } + set { _exceptionFactory = value; } + } + + /// + /// Add a new pet to the store + /// + /// Thrown when fails to make API call + /// Pet object that needs to be added to the store + /// + public void AddPet (Pet pet) + { + AddPetWithHttpInfo(pet); + } + + /// + /// Add a new pet to the store + /// + /// Thrown when fails to make API call + /// Pet object that needs to be added to the store + /// ApiResponse of Object(void) + public Org.OpenAPITools.Client.ApiResponse AddPetWithHttpInfo (Pet pet) + { + // verify the required parameter 'pet' is set + if (pet == null) + throw new Org.OpenAPITools.Client.ApiException(400, "Missing required parameter 'pet' when calling PetApi->AddPet"); + + Org.OpenAPITools.Client.RequestOptions requestOptions = new Org.OpenAPITools.Client.RequestOptions(); + + String[] @contentTypes = new String[] { + "application/json", + "application/xml" + }; + + // to determine the Accept header + String[] @accepts = new String[] { + }; + + foreach (var contentType in @contentTypes) + requestOptions.HeaderParameters.Add("Content-Type", contentType); + + foreach (var accept in @accepts) + requestOptions.HeaderParameters.Add("Accept", accept); + + requestOptions.Data = pet; + + // authentication (petstore_auth) required + // oauth required + if (!String.IsNullOrEmpty(this.Configuration.AccessToken)) + { + requestOptions.HeaderParameters.Add("Authorization", "Bearer " + this.Configuration.AccessToken); + } + + // make the HTTP request + + var response = this.Client.Post("/pet", requestOptions, this.Configuration); + + if (this.ExceptionFactory != null) + { + Exception exception = this.ExceptionFactory("AddPet", response); + if (exception != null) throw exception; + } + + return response; + } + + /// + /// Add a new pet to the store + /// + /// Thrown when fails to make API call + /// Pet object that needs to be added to the store + /// Task of void + public async System.Threading.Tasks.Task AddPetAsync (Pet pet) + { + await AddPetAsyncWithHttpInfo(pet); + + } + + /// + /// Add a new pet to the store + /// + /// Thrown when fails to make API call + /// Pet object that needs to be added to the store + /// Task of ApiResponse + public async System.Threading.Tasks.Task> AddPetAsyncWithHttpInfo (Pet pet) + { + // verify the required parameter 'pet' is set + if (pet == null) + throw new Org.OpenAPITools.Client.ApiException(400, "Missing required parameter 'pet' when calling PetApi->AddPet"); + + Org.OpenAPITools.Client.RequestOptions requestOptions = new Org.OpenAPITools.Client.RequestOptions(); + + String[] @contentTypes = new String[] { + "application/json", + "application/xml" + }; + + // to determine the Accept header + String[] @accepts = new String[] { + }; + + foreach (var contentType in @contentTypes) + requestOptions.HeaderParameters.Add("Content-Type", contentType); + + foreach (var accept in @accepts) + requestOptions.HeaderParameters.Add("Accept", accept); + + requestOptions.Data = pet; + + // authentication (petstore_auth) required + // oauth required + if (!String.IsNullOrEmpty(this.Configuration.AccessToken)) + { + requestOptions.HeaderParameters.Add("Authorization", "Bearer " + this.Configuration.AccessToken); + } + + // make the HTTP request + + var response = await this.AsynchronousClient.PostAsync("/pet", requestOptions, this.Configuration); + + if (this.ExceptionFactory != null) + { + Exception exception = this.ExceptionFactory("AddPet", response); + if (exception != null) throw exception; + } + + return response; + } + + /// + /// Deletes a pet + /// + /// Thrown when fails to make API call + /// Pet id to delete + /// (optional) + /// + public void DeletePet (long? petId, string apiKey = null) + { + DeletePetWithHttpInfo(petId, apiKey); + } + + /// + /// Deletes a pet + /// + /// Thrown when fails to make API call + /// Pet id to delete + /// (optional) + /// ApiResponse of Object(void) + public Org.OpenAPITools.Client.ApiResponse DeletePetWithHttpInfo (long? petId, string apiKey = null) + { + // verify the required parameter 'petId' is set + if (petId == null) + throw new Org.OpenAPITools.Client.ApiException(400, "Missing required parameter 'petId' when calling PetApi->DeletePet"); + + Org.OpenAPITools.Client.RequestOptions requestOptions = new Org.OpenAPITools.Client.RequestOptions(); + + String[] @contentTypes = new String[] { + }; + + // to determine the Accept header + String[] @accepts = new String[] { + }; + + foreach (var contentType in @contentTypes) + requestOptions.HeaderParameters.Add("Content-Type", contentType); + + foreach (var accept in @accepts) + requestOptions.HeaderParameters.Add("Accept", accept); + + if (petId != null) + requestOptions.PathParameters.Add("petId", Org.OpenAPITools.Client.ClientUtils.ParameterToString(petId)); // path parameter + if (apiKey != null) + requestOptions.HeaderParameters.Add("api_key", Org.OpenAPITools.Client.ClientUtils.ParameterToString(apiKey)); // header parameter + + // authentication (petstore_auth) required + // oauth required + if (!String.IsNullOrEmpty(this.Configuration.AccessToken)) + { + requestOptions.HeaderParameters.Add("Authorization", "Bearer " + this.Configuration.AccessToken); + } + + // make the HTTP request + + var response = this.Client.Delete("/pet/{petId}", requestOptions, this.Configuration); + + if (this.ExceptionFactory != null) + { + Exception exception = this.ExceptionFactory("DeletePet", response); + if (exception != null) throw exception; + } + + return response; + } + + /// + /// Deletes a pet + /// + /// Thrown when fails to make API call + /// Pet id to delete + /// (optional) + /// Task of void + public async System.Threading.Tasks.Task DeletePetAsync (long? petId, string apiKey = null) + { + await DeletePetAsyncWithHttpInfo(petId, apiKey); + + } + + /// + /// Deletes a pet + /// + /// Thrown when fails to make API call + /// Pet id to delete + /// (optional) + /// Task of ApiResponse + public async System.Threading.Tasks.Task> DeletePetAsyncWithHttpInfo (long? petId, string apiKey = null) + { + // verify the required parameter 'petId' is set + if (petId == null) + throw new Org.OpenAPITools.Client.ApiException(400, "Missing required parameter 'petId' when calling PetApi->DeletePet"); + + Org.OpenAPITools.Client.RequestOptions requestOptions = new Org.OpenAPITools.Client.RequestOptions(); + + String[] @contentTypes = new String[] { + }; + + // to determine the Accept header + String[] @accepts = new String[] { + }; + + foreach (var contentType in @contentTypes) + requestOptions.HeaderParameters.Add("Content-Type", contentType); + + foreach (var accept in @accepts) + requestOptions.HeaderParameters.Add("Accept", accept); + + if (petId != null) + requestOptions.PathParameters.Add("petId", Org.OpenAPITools.Client.ClientUtils.ParameterToString(petId)); // path parameter + if (apiKey != null) + requestOptions.HeaderParameters.Add("api_key", Org.OpenAPITools.Client.ClientUtils.ParameterToString(apiKey)); // header parameter + + // authentication (petstore_auth) required + // oauth required + if (!String.IsNullOrEmpty(this.Configuration.AccessToken)) + { + requestOptions.HeaderParameters.Add("Authorization", "Bearer " + this.Configuration.AccessToken); + } + + // make the HTTP request + + var response = await this.AsynchronousClient.DeleteAsync("/pet/{petId}", requestOptions, this.Configuration); + + if (this.ExceptionFactory != null) + { + Exception exception = this.ExceptionFactory("DeletePet", response); + if (exception != null) throw exception; + } + + return response; + } + + /// + /// Finds Pets by status Multiple status values can be provided with comma separated strings + /// + /// Thrown when fails to make API call + /// Status values that need to be considered for filter + /// List<Pet> + public List FindPetsByStatus (List status) + { + Org.OpenAPITools.Client.ApiResponse> localVarResponse = FindPetsByStatusWithHttpInfo(status); + return localVarResponse.Data; + } + + /// + /// Finds Pets by status Multiple status values can be provided with comma separated strings + /// + /// Thrown when fails to make API call + /// Status values that need to be considered for filter + /// ApiResponse of List<Pet> + public Org.OpenAPITools.Client.ApiResponse< List > FindPetsByStatusWithHttpInfo (List status) + { + // verify the required parameter 'status' is set + if (status == null) + throw new Org.OpenAPITools.Client.ApiException(400, "Missing required parameter 'status' when calling PetApi->FindPetsByStatus"); + + Org.OpenAPITools.Client.RequestOptions requestOptions = new Org.OpenAPITools.Client.RequestOptions(); + + String[] @contentTypes = new String[] { + }; + + // to determine the Accept header + String[] @accepts = new String[] { + "application/xml", + "application/json" + }; + + foreach (var contentType in @contentTypes) + requestOptions.HeaderParameters.Add("Content-Type", contentType); + + foreach (var accept in @accepts) + requestOptions.HeaderParameters.Add("Accept", accept); + + if (status != null) + { + foreach (var kvp in Org.OpenAPITools.Client.ClientUtils.ParameterToMultiMap("csv", "status", status)) + { + foreach (var value in kvp.Value) + { + requestOptions.QueryParameters.Add(kvp.Key, value); + } + } + } + + // authentication (petstore_auth) required + // oauth required + if (!String.IsNullOrEmpty(this.Configuration.AccessToken)) + { + requestOptions.HeaderParameters.Add("Authorization", "Bearer " + this.Configuration.AccessToken); + } + + // make the HTTP request + + var response = this.Client.Get< List >("/pet/findByStatus", requestOptions, this.Configuration); + + if (this.ExceptionFactory != null) + { + Exception exception = this.ExceptionFactory("FindPetsByStatus", response); + if (exception != null) throw exception; + } + + return response; + } + + /// + /// Finds Pets by status Multiple status values can be provided with comma separated strings + /// + /// Thrown when fails to make API call + /// Status values that need to be considered for filter + /// Task of List<Pet> + public async System.Threading.Tasks.Task> FindPetsByStatusAsync (List status) + { + Org.OpenAPITools.Client.ApiResponse> localVarResponse = await FindPetsByStatusAsyncWithHttpInfo(status); + return localVarResponse.Data; + + } + + /// + /// Finds Pets by status Multiple status values can be provided with comma separated strings + /// + /// Thrown when fails to make API call + /// Status values that need to be considered for filter + /// Task of ApiResponse (List<Pet>) + public async System.Threading.Tasks.Task>> FindPetsByStatusAsyncWithHttpInfo (List status) + { + // verify the required parameter 'status' is set + if (status == null) + throw new Org.OpenAPITools.Client.ApiException(400, "Missing required parameter 'status' when calling PetApi->FindPetsByStatus"); + + Org.OpenAPITools.Client.RequestOptions requestOptions = new Org.OpenAPITools.Client.RequestOptions(); + + String[] @contentTypes = new String[] { + }; + + // to determine the Accept header + String[] @accepts = new String[] { + "application/xml", + "application/json" + }; + + foreach (var contentType in @contentTypes) + requestOptions.HeaderParameters.Add("Content-Type", contentType); + + foreach (var accept in @accepts) + requestOptions.HeaderParameters.Add("Accept", accept); + + if (status != null) + { + foreach (var kvp in Org.OpenAPITools.Client.ClientUtils.ParameterToMultiMap("csv", "status", status)) + { + foreach (var value in kvp.Value) + { + requestOptions.QueryParameters.Add(kvp.Key, value); + } + } + } + + // authentication (petstore_auth) required + // oauth required + if (!String.IsNullOrEmpty(this.Configuration.AccessToken)) + { + requestOptions.HeaderParameters.Add("Authorization", "Bearer " + this.Configuration.AccessToken); + } + + // make the HTTP request + + var response = await this.AsynchronousClient.GetAsync>("/pet/findByStatus", requestOptions, this.Configuration); + + if (this.ExceptionFactory != null) + { + Exception exception = this.ExceptionFactory("FindPetsByStatus", response); + if (exception != null) throw exception; + } + + return response; + } + + /// + /// Finds Pets by tags Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing. + /// + /// Thrown when fails to make API call + /// Tags to filter by + /// List<Pet> + public List FindPetsByTags (List tags) + { + Org.OpenAPITools.Client.ApiResponse> localVarResponse = FindPetsByTagsWithHttpInfo(tags); + return localVarResponse.Data; + } + + /// + /// Finds Pets by tags Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing. + /// + /// Thrown when fails to make API call + /// Tags to filter by + /// ApiResponse of List<Pet> + public Org.OpenAPITools.Client.ApiResponse< List > FindPetsByTagsWithHttpInfo (List tags) + { + // verify the required parameter 'tags' is set + if (tags == null) + throw new Org.OpenAPITools.Client.ApiException(400, "Missing required parameter 'tags' when calling PetApi->FindPetsByTags"); + + Org.OpenAPITools.Client.RequestOptions requestOptions = new Org.OpenAPITools.Client.RequestOptions(); + + String[] @contentTypes = new String[] { + }; + + // to determine the Accept header + String[] @accepts = new String[] { + "application/xml", + "application/json" + }; + + foreach (var contentType in @contentTypes) + requestOptions.HeaderParameters.Add("Content-Type", contentType); + + foreach (var accept in @accepts) + requestOptions.HeaderParameters.Add("Accept", accept); + + if (tags != null) + { + foreach (var kvp in Org.OpenAPITools.Client.ClientUtils.ParameterToMultiMap("csv", "tags", tags)) + { + foreach (var value in kvp.Value) + { + requestOptions.QueryParameters.Add(kvp.Key, value); + } + } + } + + // authentication (petstore_auth) required + // oauth required + if (!String.IsNullOrEmpty(this.Configuration.AccessToken)) + { + requestOptions.HeaderParameters.Add("Authorization", "Bearer " + this.Configuration.AccessToken); + } + + // make the HTTP request + + var response = this.Client.Get< List >("/pet/findByTags", requestOptions, this.Configuration); + + if (this.ExceptionFactory != null) + { + Exception exception = this.ExceptionFactory("FindPetsByTags", response); + if (exception != null) throw exception; + } + + return response; + } + + /// + /// Finds Pets by tags Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing. + /// + /// Thrown when fails to make API call + /// Tags to filter by + /// Task of List<Pet> + public async System.Threading.Tasks.Task> FindPetsByTagsAsync (List tags) + { + Org.OpenAPITools.Client.ApiResponse> localVarResponse = await FindPetsByTagsAsyncWithHttpInfo(tags); + return localVarResponse.Data; + + } + + /// + /// Finds Pets by tags Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing. + /// + /// Thrown when fails to make API call + /// Tags to filter by + /// Task of ApiResponse (List<Pet>) + public async System.Threading.Tasks.Task>> FindPetsByTagsAsyncWithHttpInfo (List tags) + { + // verify the required parameter 'tags' is set + if (tags == null) + throw new Org.OpenAPITools.Client.ApiException(400, "Missing required parameter 'tags' when calling PetApi->FindPetsByTags"); + + Org.OpenAPITools.Client.RequestOptions requestOptions = new Org.OpenAPITools.Client.RequestOptions(); + + String[] @contentTypes = new String[] { + }; + + // to determine the Accept header + String[] @accepts = new String[] { + "application/xml", + "application/json" + }; + + foreach (var contentType in @contentTypes) + requestOptions.HeaderParameters.Add("Content-Type", contentType); + + foreach (var accept in @accepts) + requestOptions.HeaderParameters.Add("Accept", accept); + + if (tags != null) + { + foreach (var kvp in Org.OpenAPITools.Client.ClientUtils.ParameterToMultiMap("csv", "tags", tags)) + { + foreach (var value in kvp.Value) + { + requestOptions.QueryParameters.Add(kvp.Key, value); + } + } + } + + // authentication (petstore_auth) required + // oauth required + if (!String.IsNullOrEmpty(this.Configuration.AccessToken)) + { + requestOptions.HeaderParameters.Add("Authorization", "Bearer " + this.Configuration.AccessToken); + } + + // make the HTTP request + + var response = await this.AsynchronousClient.GetAsync>("/pet/findByTags", requestOptions, this.Configuration); + + if (this.ExceptionFactory != null) + { + Exception exception = this.ExceptionFactory("FindPetsByTags", response); + if (exception != null) throw exception; + } + + return response; + } + + /// + /// Find pet by ID Returns a single pet + /// + /// Thrown when fails to make API call + /// ID of pet to return + /// Pet + public Pet GetPetById (long? petId) + { + Org.OpenAPITools.Client.ApiResponse localVarResponse = GetPetByIdWithHttpInfo(petId); + return localVarResponse.Data; + } + + /// + /// Find pet by ID Returns a single pet + /// + /// Thrown when fails to make API call + /// ID of pet to return + /// ApiResponse of Pet + public Org.OpenAPITools.Client.ApiResponse< Pet > GetPetByIdWithHttpInfo (long? petId) + { + // verify the required parameter 'petId' is set + if (petId == null) + throw new Org.OpenAPITools.Client.ApiException(400, "Missing required parameter 'petId' when calling PetApi->GetPetById"); + + Org.OpenAPITools.Client.RequestOptions requestOptions = new Org.OpenAPITools.Client.RequestOptions(); + + String[] @contentTypes = new String[] { + }; + + // to determine the Accept header + String[] @accepts = new String[] { + "application/xml", + "application/json" + }; + + foreach (var contentType in @contentTypes) + requestOptions.HeaderParameters.Add("Content-Type", contentType); + + foreach (var accept in @accepts) + requestOptions.HeaderParameters.Add("Accept", accept); + + if (petId != null) + requestOptions.PathParameters.Add("petId", Org.OpenAPITools.Client.ClientUtils.ParameterToString(petId)); // path parameter + + // authentication (api_key) required + if (!String.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("api_key"))) + { + requestOptions.HeaderParameters.Add("api_key", this.Configuration.GetApiKeyWithPrefix("api_key")); + } + + // make the HTTP request + + var response = this.Client.Get< Pet >("/pet/{petId}", requestOptions, this.Configuration); + + if (this.ExceptionFactory != null) + { + Exception exception = this.ExceptionFactory("GetPetById", response); + if (exception != null) throw exception; + } + + return response; + } + + /// + /// Find pet by ID Returns a single pet + /// + /// Thrown when fails to make API call + /// ID of pet to return + /// Task of Pet + public async System.Threading.Tasks.Task GetPetByIdAsync (long? petId) + { + Org.OpenAPITools.Client.ApiResponse localVarResponse = await GetPetByIdAsyncWithHttpInfo(petId); + return localVarResponse.Data; + + } + + /// + /// Find pet by ID Returns a single pet + /// + /// Thrown when fails to make API call + /// ID of pet to return + /// Task of ApiResponse (Pet) + public async System.Threading.Tasks.Task> GetPetByIdAsyncWithHttpInfo (long? petId) + { + // verify the required parameter 'petId' is set + if (petId == null) + throw new Org.OpenAPITools.Client.ApiException(400, "Missing required parameter 'petId' when calling PetApi->GetPetById"); + + Org.OpenAPITools.Client.RequestOptions requestOptions = new Org.OpenAPITools.Client.RequestOptions(); + + String[] @contentTypes = new String[] { + }; + + // to determine the Accept header + String[] @accepts = new String[] { + "application/xml", + "application/json" + }; + + foreach (var contentType in @contentTypes) + requestOptions.HeaderParameters.Add("Content-Type", contentType); + + foreach (var accept in @accepts) + requestOptions.HeaderParameters.Add("Accept", accept); + + if (petId != null) + requestOptions.PathParameters.Add("petId", Org.OpenAPITools.Client.ClientUtils.ParameterToString(petId)); // path parameter + + // authentication (api_key) required + if (!String.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("api_key"))) + { + requestOptions.HeaderParameters.Add("api_key", this.Configuration.GetApiKeyWithPrefix("api_key")); + } + + // make the HTTP request + + var response = await this.AsynchronousClient.GetAsync("/pet/{petId}", requestOptions, this.Configuration); + + if (this.ExceptionFactory != null) + { + Exception exception = this.ExceptionFactory("GetPetById", response); + if (exception != null) throw exception; + } + + return response; + } + + /// + /// Update an existing pet + /// + /// Thrown when fails to make API call + /// Pet object that needs to be added to the store + /// + public void UpdatePet (Pet pet) + { + UpdatePetWithHttpInfo(pet); + } + + /// + /// Update an existing pet + /// + /// Thrown when fails to make API call + /// Pet object that needs to be added to the store + /// ApiResponse of Object(void) + public Org.OpenAPITools.Client.ApiResponse UpdatePetWithHttpInfo (Pet pet) + { + // verify the required parameter 'pet' is set + if (pet == null) + throw new Org.OpenAPITools.Client.ApiException(400, "Missing required parameter 'pet' when calling PetApi->UpdatePet"); + + Org.OpenAPITools.Client.RequestOptions requestOptions = new Org.OpenAPITools.Client.RequestOptions(); + + String[] @contentTypes = new String[] { + "application/json", + "application/xml" + }; + + // to determine the Accept header + String[] @accepts = new String[] { + }; + + foreach (var contentType in @contentTypes) + requestOptions.HeaderParameters.Add("Content-Type", contentType); + + foreach (var accept in @accepts) + requestOptions.HeaderParameters.Add("Accept", accept); + + requestOptions.Data = pet; + + // authentication (petstore_auth) required + // oauth required + if (!String.IsNullOrEmpty(this.Configuration.AccessToken)) + { + requestOptions.HeaderParameters.Add("Authorization", "Bearer " + this.Configuration.AccessToken); + } + + // make the HTTP request + + var response = this.Client.Put("/pet", requestOptions, this.Configuration); + + if (this.ExceptionFactory != null) + { + Exception exception = this.ExceptionFactory("UpdatePet", response); + if (exception != null) throw exception; + } + + return response; + } + + /// + /// Update an existing pet + /// + /// Thrown when fails to make API call + /// Pet object that needs to be added to the store + /// Task of void + public async System.Threading.Tasks.Task UpdatePetAsync (Pet pet) + { + await UpdatePetAsyncWithHttpInfo(pet); + + } + + /// + /// Update an existing pet + /// + /// Thrown when fails to make API call + /// Pet object that needs to be added to the store + /// Task of ApiResponse + public async System.Threading.Tasks.Task> UpdatePetAsyncWithHttpInfo (Pet pet) + { + // verify the required parameter 'pet' is set + if (pet == null) + throw new Org.OpenAPITools.Client.ApiException(400, "Missing required parameter 'pet' when calling PetApi->UpdatePet"); + + Org.OpenAPITools.Client.RequestOptions requestOptions = new Org.OpenAPITools.Client.RequestOptions(); + + String[] @contentTypes = new String[] { + "application/json", + "application/xml" + }; + + // to determine the Accept header + String[] @accepts = new String[] { + }; + + foreach (var contentType in @contentTypes) + requestOptions.HeaderParameters.Add("Content-Type", contentType); + + foreach (var accept in @accepts) + requestOptions.HeaderParameters.Add("Accept", accept); + + requestOptions.Data = pet; + + // authentication (petstore_auth) required + // oauth required + if (!String.IsNullOrEmpty(this.Configuration.AccessToken)) + { + requestOptions.HeaderParameters.Add("Authorization", "Bearer " + this.Configuration.AccessToken); + } + + // make the HTTP request + + var response = await this.AsynchronousClient.PutAsync("/pet", requestOptions, this.Configuration); + + if (this.ExceptionFactory != null) + { + Exception exception = this.ExceptionFactory("UpdatePet", response); + if (exception != null) throw exception; + } + + return response; + } + + /// + /// Updates a pet in the store with form data + /// + /// Thrown when fails to make API call + /// ID of pet that needs to be updated + /// Updated name of the pet (optional) + /// Updated status of the pet (optional) + /// + public void UpdatePetWithForm (long? petId, string name = null, string status = null) + { + UpdatePetWithFormWithHttpInfo(petId, name, status); + } + + /// + /// Updates a pet in the store with form data + /// + /// Thrown when fails to make API call + /// ID of pet that needs to be updated + /// Updated name of the pet (optional) + /// Updated status of the pet (optional) + /// ApiResponse of Object(void) + public Org.OpenAPITools.Client.ApiResponse UpdatePetWithFormWithHttpInfo (long? petId, string name = null, string status = null) + { + // verify the required parameter 'petId' is set + if (petId == null) + throw new Org.OpenAPITools.Client.ApiException(400, "Missing required parameter 'petId' when calling PetApi->UpdatePetWithForm"); + + Org.OpenAPITools.Client.RequestOptions requestOptions = new Org.OpenAPITools.Client.RequestOptions(); + + String[] @contentTypes = new String[] { + "application/x-www-form-urlencoded" + }; + + // to determine the Accept header + String[] @accepts = new String[] { + }; + + foreach (var contentType in @contentTypes) + requestOptions.HeaderParameters.Add("Content-Type", contentType); + + foreach (var accept in @accepts) + requestOptions.HeaderParameters.Add("Accept", accept); + + if (petId != null) + requestOptions.PathParameters.Add("petId", Org.OpenAPITools.Client.ClientUtils.ParameterToString(petId)); // path parameter + if (name != null) + { + requestOptions.FormParameters.Add("name", Org.OpenAPITools.Client.ClientUtils.ParameterToString(name)); // form parameter + } + if (status != null) + { + requestOptions.FormParameters.Add("status", Org.OpenAPITools.Client.ClientUtils.ParameterToString(status)); // form parameter + } + + // authentication (petstore_auth) required + // oauth required + if (!String.IsNullOrEmpty(this.Configuration.AccessToken)) + { + requestOptions.HeaderParameters.Add("Authorization", "Bearer " + this.Configuration.AccessToken); + } + + // make the HTTP request + + var response = this.Client.Post("/pet/{petId}", requestOptions, this.Configuration); + + if (this.ExceptionFactory != null) + { + Exception exception = this.ExceptionFactory("UpdatePetWithForm", response); + if (exception != null) throw exception; + } + + return response; + } + + /// + /// Updates a pet in the store with form data + /// + /// Thrown when fails to make API call + /// ID of pet that needs to be updated + /// Updated name of the pet (optional) + /// Updated status of the pet (optional) + /// Task of void + public async System.Threading.Tasks.Task UpdatePetWithFormAsync (long? petId, string name = null, string status = null) + { + await UpdatePetWithFormAsyncWithHttpInfo(petId, name, status); + + } + + /// + /// Updates a pet in the store with form data + /// + /// Thrown when fails to make API call + /// ID of pet that needs to be updated + /// Updated name of the pet (optional) + /// Updated status of the pet (optional) + /// Task of ApiResponse + public async System.Threading.Tasks.Task> UpdatePetWithFormAsyncWithHttpInfo (long? petId, string name = null, string status = null) + { + // verify the required parameter 'petId' is set + if (petId == null) + throw new Org.OpenAPITools.Client.ApiException(400, "Missing required parameter 'petId' when calling PetApi->UpdatePetWithForm"); + + Org.OpenAPITools.Client.RequestOptions requestOptions = new Org.OpenAPITools.Client.RequestOptions(); + + String[] @contentTypes = new String[] { + "application/x-www-form-urlencoded" + }; + + // to determine the Accept header + String[] @accepts = new String[] { + }; + + foreach (var contentType in @contentTypes) + requestOptions.HeaderParameters.Add("Content-Type", contentType); + + foreach (var accept in @accepts) + requestOptions.HeaderParameters.Add("Accept", accept); + + if (petId != null) + requestOptions.PathParameters.Add("petId", Org.OpenAPITools.Client.ClientUtils.ParameterToString(petId)); // path parameter + if (name != null) + { + requestOptions.FormParameters.Add("name", Org.OpenAPITools.Client.ClientUtils.ParameterToString(name)); // form parameter + } + if (status != null) + { + requestOptions.FormParameters.Add("status", Org.OpenAPITools.Client.ClientUtils.ParameterToString(status)); // form parameter + } + + // authentication (petstore_auth) required + // oauth required + if (!String.IsNullOrEmpty(this.Configuration.AccessToken)) + { + requestOptions.HeaderParameters.Add("Authorization", "Bearer " + this.Configuration.AccessToken); + } + + // make the HTTP request + + var response = await this.AsynchronousClient.PostAsync("/pet/{petId}", requestOptions, this.Configuration); + + if (this.ExceptionFactory != null) + { + Exception exception = this.ExceptionFactory("UpdatePetWithForm", response); + if (exception != null) throw exception; + } + + return response; + } + + /// + /// uploads an image + /// + /// Thrown when fails to make API call + /// ID of pet to update + /// Additional data to pass to server (optional) + /// file to upload (optional) + /// ApiResponse + public ApiResponse UploadFile (long? petId, string additionalMetadata = null, System.IO.Stream file = null) + { + Org.OpenAPITools.Client.ApiResponse localVarResponse = UploadFileWithHttpInfo(petId, additionalMetadata, file); + return localVarResponse.Data; + } + + /// + /// uploads an image + /// + /// Thrown when fails to make API call + /// ID of pet to update + /// Additional data to pass to server (optional) + /// file to upload (optional) + /// ApiResponse of ApiResponse + public Org.OpenAPITools.Client.ApiResponse< ApiResponse > UploadFileWithHttpInfo (long? petId, string additionalMetadata = null, System.IO.Stream file = null) + { + // verify the required parameter 'petId' is set + if (petId == null) + throw new Org.OpenAPITools.Client.ApiException(400, "Missing required parameter 'petId' when calling PetApi->UploadFile"); + + Org.OpenAPITools.Client.RequestOptions requestOptions = new Org.OpenAPITools.Client.RequestOptions(); + + String[] @contentTypes = new String[] { + "multipart/form-data" + }; + + // to determine the Accept header + String[] @accepts = new String[] { + "application/json" + }; + + foreach (var contentType in @contentTypes) + requestOptions.HeaderParameters.Add("Content-Type", contentType); + + foreach (var accept in @accepts) + requestOptions.HeaderParameters.Add("Accept", accept); + + if (petId != null) + requestOptions.PathParameters.Add("petId", Org.OpenAPITools.Client.ClientUtils.ParameterToString(petId)); // path parameter + if (additionalMetadata != null) + { + requestOptions.FormParameters.Add("additionalMetadata", Org.OpenAPITools.Client.ClientUtils.ParameterToString(additionalMetadata)); // form parameter + } + if (file != null) + { + requestOptions.FileParameters.Add("file", file); + } + + // authentication (petstore_auth) required + // oauth required + if (!String.IsNullOrEmpty(this.Configuration.AccessToken)) + { + requestOptions.HeaderParameters.Add("Authorization", "Bearer " + this.Configuration.AccessToken); + } + + // make the HTTP request + + var response = this.Client.Post< ApiResponse >("/pet/{petId}/uploadImage", requestOptions, this.Configuration); + + if (this.ExceptionFactory != null) + { + Exception exception = this.ExceptionFactory("UploadFile", response); + if (exception != null) throw exception; + } + + return response; + } + + /// + /// uploads an image + /// + /// Thrown when fails to make API call + /// ID of pet to update + /// Additional data to pass to server (optional) + /// file to upload (optional) + /// Task of ApiResponse + public async System.Threading.Tasks.Task UploadFileAsync (long? petId, string additionalMetadata = null, System.IO.Stream file = null) + { + Org.OpenAPITools.Client.ApiResponse localVarResponse = await UploadFileAsyncWithHttpInfo(petId, additionalMetadata, file); + return localVarResponse.Data; + + } + + /// + /// uploads an image + /// + /// Thrown when fails to make API call + /// ID of pet to update + /// Additional data to pass to server (optional) + /// file to upload (optional) + /// Task of ApiResponse (ApiResponse) + public async System.Threading.Tasks.Task> UploadFileAsyncWithHttpInfo (long? petId, string additionalMetadata = null, System.IO.Stream file = null) + { + // verify the required parameter 'petId' is set + if (petId == null) + throw new Org.OpenAPITools.Client.ApiException(400, "Missing required parameter 'petId' when calling PetApi->UploadFile"); + + Org.OpenAPITools.Client.RequestOptions requestOptions = new Org.OpenAPITools.Client.RequestOptions(); + + String[] @contentTypes = new String[] { + "multipart/form-data" + }; + + // to determine the Accept header + String[] @accepts = new String[] { + "application/json" + }; + + foreach (var contentType in @contentTypes) + requestOptions.HeaderParameters.Add("Content-Type", contentType); + + foreach (var accept in @accepts) + requestOptions.HeaderParameters.Add("Accept", accept); + + if (petId != null) + requestOptions.PathParameters.Add("petId", Org.OpenAPITools.Client.ClientUtils.ParameterToString(petId)); // path parameter + if (additionalMetadata != null) + { + requestOptions.FormParameters.Add("additionalMetadata", Org.OpenAPITools.Client.ClientUtils.ParameterToString(additionalMetadata)); // form parameter + } + if (file != null) + { + requestOptions.FileParameters.Add("file", file); + } + + // authentication (petstore_auth) required + // oauth required + if (!String.IsNullOrEmpty(this.Configuration.AccessToken)) + { + requestOptions.HeaderParameters.Add("Authorization", "Bearer " + this.Configuration.AccessToken); + } + + // make the HTTP request + + var response = await this.AsynchronousClient.PostAsync("/pet/{petId}/uploadImage", requestOptions, this.Configuration); + + if (this.ExceptionFactory != null) + { + Exception exception = this.ExceptionFactory("UploadFile", response); + if (exception != null) throw exception; + } + + return response; + } + + /// + /// uploads an image (required) + /// + /// Thrown when fails to make API call + /// ID of pet to update + /// file to upload + /// Additional data to pass to server (optional) + /// ApiResponse + public ApiResponse UploadFileWithRequiredFile (long? petId, System.IO.Stream requiredFile, string additionalMetadata = null) + { + Org.OpenAPITools.Client.ApiResponse localVarResponse = UploadFileWithRequiredFileWithHttpInfo(petId, requiredFile, additionalMetadata); + return localVarResponse.Data; + } + + /// + /// uploads an image (required) + /// + /// Thrown when fails to make API call + /// ID of pet to update + /// file to upload + /// Additional data to pass to server (optional) + /// ApiResponse of ApiResponse + public Org.OpenAPITools.Client.ApiResponse< ApiResponse > UploadFileWithRequiredFileWithHttpInfo (long? petId, System.IO.Stream requiredFile, string additionalMetadata = null) + { + // verify the required parameter 'petId' is set + if (petId == null) + throw new Org.OpenAPITools.Client.ApiException(400, "Missing required parameter 'petId' when calling PetApi->UploadFileWithRequiredFile"); + // verify the required parameter 'requiredFile' is set + if (requiredFile == null) + throw new Org.OpenAPITools.Client.ApiException(400, "Missing required parameter 'requiredFile' when calling PetApi->UploadFileWithRequiredFile"); + + Org.OpenAPITools.Client.RequestOptions requestOptions = new Org.OpenAPITools.Client.RequestOptions(); + + String[] @contentTypes = new String[] { + "multipart/form-data" + }; + + // to determine the Accept header + String[] @accepts = new String[] { + "application/json" + }; + + foreach (var contentType in @contentTypes) + requestOptions.HeaderParameters.Add("Content-Type", contentType); + + foreach (var accept in @accepts) + requestOptions.HeaderParameters.Add("Accept", accept); + + if (petId != null) + requestOptions.PathParameters.Add("petId", Org.OpenAPITools.Client.ClientUtils.ParameterToString(petId)); // path parameter + if (additionalMetadata != null) + { + requestOptions.FormParameters.Add("additionalMetadata", Org.OpenAPITools.Client.ClientUtils.ParameterToString(additionalMetadata)); // form parameter + } + if (requiredFile != null) + { + requestOptions.FileParameters.Add("requiredFile", requiredFile); + } + + // authentication (petstore_auth) required + // oauth required + if (!String.IsNullOrEmpty(this.Configuration.AccessToken)) + { + requestOptions.HeaderParameters.Add("Authorization", "Bearer " + this.Configuration.AccessToken); + } + + // make the HTTP request + + var response = this.Client.Post< ApiResponse >("/fake/{petId}/uploadImageWithRequiredFile", requestOptions, this.Configuration); + + if (this.ExceptionFactory != null) + { + Exception exception = this.ExceptionFactory("UploadFileWithRequiredFile", response); + if (exception != null) throw exception; + } + + return response; + } + + /// + /// uploads an image (required) + /// + /// Thrown when fails to make API call + /// ID of pet to update + /// file to upload + /// Additional data to pass to server (optional) + /// Task of ApiResponse + public async System.Threading.Tasks.Task UploadFileWithRequiredFileAsync (long? petId, System.IO.Stream requiredFile, string additionalMetadata = null) + { + Org.OpenAPITools.Client.ApiResponse localVarResponse = await UploadFileWithRequiredFileAsyncWithHttpInfo(petId, requiredFile, additionalMetadata); + return localVarResponse.Data; + + } + + /// + /// uploads an image (required) + /// + /// Thrown when fails to make API call + /// ID of pet to update + /// file to upload + /// Additional data to pass to server (optional) + /// Task of ApiResponse (ApiResponse) + public async System.Threading.Tasks.Task> UploadFileWithRequiredFileAsyncWithHttpInfo (long? petId, System.IO.Stream requiredFile, string additionalMetadata = null) + { + // verify the required parameter 'petId' is set + if (petId == null) + throw new Org.OpenAPITools.Client.ApiException(400, "Missing required parameter 'petId' when calling PetApi->UploadFileWithRequiredFile"); + // verify the required parameter 'requiredFile' is set + if (requiredFile == null) + throw new Org.OpenAPITools.Client.ApiException(400, "Missing required parameter 'requiredFile' when calling PetApi->UploadFileWithRequiredFile"); + + Org.OpenAPITools.Client.RequestOptions requestOptions = new Org.OpenAPITools.Client.RequestOptions(); + + String[] @contentTypes = new String[] { + "multipart/form-data" + }; + + // to determine the Accept header + String[] @accepts = new String[] { + "application/json" + }; + + foreach (var contentType in @contentTypes) + requestOptions.HeaderParameters.Add("Content-Type", contentType); + + foreach (var accept in @accepts) + requestOptions.HeaderParameters.Add("Accept", accept); + + if (petId != null) + requestOptions.PathParameters.Add("petId", Org.OpenAPITools.Client.ClientUtils.ParameterToString(petId)); // path parameter + if (additionalMetadata != null) + { + requestOptions.FormParameters.Add("additionalMetadata", Org.OpenAPITools.Client.ClientUtils.ParameterToString(additionalMetadata)); // form parameter + } + if (requiredFile != null) + { + requestOptions.FileParameters.Add("requiredFile", requiredFile); + } + + // authentication (petstore_auth) required + // oauth required + if (!String.IsNullOrEmpty(this.Configuration.AccessToken)) + { + requestOptions.HeaderParameters.Add("Authorization", "Bearer " + this.Configuration.AccessToken); + } + + // make the HTTP request + + var response = await this.AsynchronousClient.PostAsync("/fake/{petId}/uploadImageWithRequiredFile", requestOptions, this.Configuration); + + if (this.ExceptionFactory != null) + { + Exception exception = this.ExceptionFactory("UploadFileWithRequiredFile", response); + if (exception != null) throw exception; + } + + return response; + } + + } +} diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Api/StoreApi.cs b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Api/StoreApi.cs new file mode 100644 index 00000000000..1cde4e7715e --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Api/StoreApi.cs @@ -0,0 +1,775 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * OpenAPI spec version: 1.0.0 + * + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + + +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Linq; +using System.Net; +using System.Net.Mime; +using Org.OpenAPITools.Client; +using Org.OpenAPITools.Model; + +namespace Org.OpenAPITools.Api +{ + + /// + /// Represents a collection of functions to interact with the API endpoints + /// + public interface IStoreApiSync : IApiAccessor + { + #region Synchronous Operations + /// + /// Delete purchase order by ID + /// + /// + /// For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors + /// + /// Thrown when fails to make API call + /// ID of the order that needs to be deleted + /// + void DeleteOrder (string orderId); + + /// + /// Delete purchase order by ID + /// + /// + /// For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors + /// + /// Thrown when fails to make API call + /// ID of the order that needs to be deleted + /// ApiResponse of Object(void) + ApiResponse DeleteOrderWithHttpInfo (string orderId); + /// + /// Returns pet inventories by status + /// + /// + /// Returns a map of status codes to quantities + /// + /// Thrown when fails to make API call + /// Dictionary<string, int?> + Dictionary GetInventory (); + + /// + /// Returns pet inventories by status + /// + /// + /// Returns a map of status codes to quantities + /// + /// Thrown when fails to make API call + /// ApiResponse of Dictionary<string, int?> + ApiResponse> GetInventoryWithHttpInfo (); + /// + /// Find purchase order by ID + /// + /// + /// For valid response try integer IDs with value <= 5 or > 10. Other values will generated exceptions + /// + /// Thrown when fails to make API call + /// ID of pet that needs to be fetched + /// Order + Order GetOrderById (long? orderId); + + /// + /// Find purchase order by ID + /// + /// + /// For valid response try integer IDs with value <= 5 or > 10. Other values will generated exceptions + /// + /// Thrown when fails to make API call + /// ID of pet that needs to be fetched + /// ApiResponse of Order + ApiResponse GetOrderByIdWithHttpInfo (long? orderId); + /// + /// Place an order for a pet + /// + /// + /// + /// + /// Thrown when fails to make API call + /// order placed for purchasing the pet + /// Order + Order PlaceOrder (Order order); + + /// + /// Place an order for a pet + /// + /// + /// + /// + /// Thrown when fails to make API call + /// order placed for purchasing the pet + /// ApiResponse of Order + ApiResponse PlaceOrderWithHttpInfo (Order order); + #endregion Synchronous Operations + } + + /// + /// Represents a collection of functions to interact with the API endpoints + /// + public interface IStoreApiAsync : IApiAccessor + { + #region Asynchronous Operations + /// + /// Delete purchase order by ID + /// + /// + /// For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors + /// + /// Thrown when fails to make API call + /// ID of the order that needs to be deleted + /// Task of void + System.Threading.Tasks.Task DeleteOrderAsync (string orderId); + + /// + /// Delete purchase order by ID + /// + /// + /// For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors + /// + /// Thrown when fails to make API call + /// ID of the order that needs to be deleted + /// Task of ApiResponse + System.Threading.Tasks.Task> DeleteOrderAsyncWithHttpInfo (string orderId); + /// + /// Returns pet inventories by status + /// + /// + /// Returns a map of status codes to quantities + /// + /// Thrown when fails to make API call + /// Task of Dictionary<string, int?> + System.Threading.Tasks.Task> GetInventoryAsync (); + + /// + /// Returns pet inventories by status + /// + /// + /// Returns a map of status codes to quantities + /// + /// Thrown when fails to make API call + /// Task of ApiResponse (Dictionary<string, int?>) + System.Threading.Tasks.Task>> GetInventoryAsyncWithHttpInfo (); + /// + /// Find purchase order by ID + /// + /// + /// For valid response try integer IDs with value <= 5 or > 10. Other values will generated exceptions + /// + /// Thrown when fails to make API call + /// ID of pet that needs to be fetched + /// Task of Order + System.Threading.Tasks.Task GetOrderByIdAsync (long? orderId); + + /// + /// Find purchase order by ID + /// + /// + /// For valid response try integer IDs with value <= 5 or > 10. Other values will generated exceptions + /// + /// Thrown when fails to make API call + /// ID of pet that needs to be fetched + /// Task of ApiResponse (Order) + System.Threading.Tasks.Task> GetOrderByIdAsyncWithHttpInfo (long? orderId); + /// + /// Place an order for a pet + /// + /// + /// + /// + /// Thrown when fails to make API call + /// order placed for purchasing the pet + /// Task of Order + System.Threading.Tasks.Task PlaceOrderAsync (Order order); + + /// + /// Place an order for a pet + /// + /// + /// + /// + /// Thrown when fails to make API call + /// order placed for purchasing the pet + /// Task of ApiResponse (Order) + System.Threading.Tasks.Task> PlaceOrderAsyncWithHttpInfo (Order order); + #endregion Asynchronous Operations + } + + public interface IStoreApi : IStoreApiSync, IStoreApiAsync + { + + } + + /// + /// Represents a collection of functions to interact with the API endpoints + /// + public partial class StoreApi : IStoreApi + { + private Org.OpenAPITools.Client.ExceptionFactory _exceptionFactory = (name, response) => null; + + /// + /// Initializes a new instance of the class. + /// + /// + public StoreApi() : this((string) null) + { + } + + /// + /// Initializes a new instance of the class. + /// + /// + public StoreApi(String basePath) + { + this.Configuration = Org.OpenAPITools.Client.Configuration.MergeConfigurations( + Org.OpenAPITools.Client.GlobalConfiguration.Instance, + new Org.OpenAPITools.Client.Configuration { BasePath = basePath } + ); + this.Client = new Org.OpenAPITools.Client.ApiClient(this.Configuration.BasePath); + this.AsynchronousClient = new Org.OpenAPITools.Client.ApiClient(this.Configuration.BasePath); + this.ExceptionFactory = Org.OpenAPITools.Client.Configuration.DefaultExceptionFactory; + } + + /// + /// Initializes a new instance of the class + /// using Configuration object + /// + /// An instance of Configuration + /// + public StoreApi(Org.OpenAPITools.Client.Configuration configuration) + { + if (configuration == null) throw new ArgumentNullException("configuration"); + + this.Configuration = Org.OpenAPITools.Client.Configuration.MergeConfigurations( + Org.OpenAPITools.Client.GlobalConfiguration.Instance, + configuration + ); + this.Client = new Org.OpenAPITools.Client.ApiClient(this.Configuration.BasePath); + this.AsynchronousClient = new Org.OpenAPITools.Client.ApiClient(this.Configuration.BasePath); + ExceptionFactory = Org.OpenAPITools.Client.Configuration.DefaultExceptionFactory; + } + + /// + /// Initializes a new instance of the class + /// using a Configuration object and client instance. + /// + /// The client interface for synchronous API access. + /// The client interface for asynchronous API access. + /// The configuration object. + public StoreApi(Org.OpenAPITools.Client.ISynchronousClient client,Org.OpenAPITools.Client.IAsynchronousClient asyncClient, Org.OpenAPITools.Client.IReadableConfiguration configuration) + { + if(client == null) throw new ArgumentNullException("client"); + if(asyncClient == null) throw new ArgumentNullException("asyncClient"); + if(configuration == null) throw new ArgumentNullException("configuration"); + + this.Client = client; + this.AsynchronousClient = asyncClient; + this.Configuration = configuration; + this.ExceptionFactory = Org.OpenAPITools.Client.Configuration.DefaultExceptionFactory; + } + + /// + /// The client for accessing this underlying API asynchronously. + /// + public Org.OpenAPITools.Client.IAsynchronousClient AsynchronousClient { get; set; } + + /// + /// The client for accessing this underlying API synchronously. + /// + public Org.OpenAPITools.Client.ISynchronousClient Client { get; set; } + + /// + /// Gets the base path of the API client. + /// + /// The base path + public String GetBasePath() + { + return this.Configuration.BasePath; + } + + /// + /// Gets or sets the configuration object + /// + /// An instance of the Configuration + public Org.OpenAPITools.Client.IReadableConfiguration Configuration {get; set;} + + /// + /// Provides a factory method hook for the creation of exceptions. + /// + public Org.OpenAPITools.Client.ExceptionFactory ExceptionFactory + { + get + { + if (_exceptionFactory != null && _exceptionFactory.GetInvocationList().Length > 1) + { + throw new InvalidOperationException("Multicast delegate for ExceptionFactory is unsupported."); + } + return _exceptionFactory; + } + set { _exceptionFactory = value; } + } + + /// + /// Delete purchase order by ID For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors + /// + /// Thrown when fails to make API call + /// ID of the order that needs to be deleted + /// + public void DeleteOrder (string orderId) + { + DeleteOrderWithHttpInfo(orderId); + } + + /// + /// Delete purchase order by ID For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors + /// + /// Thrown when fails to make API call + /// ID of the order that needs to be deleted + /// ApiResponse of Object(void) + public Org.OpenAPITools.Client.ApiResponse DeleteOrderWithHttpInfo (string orderId) + { + // verify the required parameter 'orderId' is set + if (orderId == null) + throw new Org.OpenAPITools.Client.ApiException(400, "Missing required parameter 'orderId' when calling StoreApi->DeleteOrder"); + + Org.OpenAPITools.Client.RequestOptions requestOptions = new Org.OpenAPITools.Client.RequestOptions(); + + String[] @contentTypes = new String[] { + }; + + // to determine the Accept header + String[] @accepts = new String[] { + }; + + foreach (var contentType in @contentTypes) + requestOptions.HeaderParameters.Add("Content-Type", contentType); + + foreach (var accept in @accepts) + requestOptions.HeaderParameters.Add("Accept", accept); + + if (orderId != null) + requestOptions.PathParameters.Add("order_id", Org.OpenAPITools.Client.ClientUtils.ParameterToString(orderId)); // path parameter + + + // make the HTTP request + + var response = this.Client.Delete("/store/order/{order_id}", requestOptions, this.Configuration); + + if (this.ExceptionFactory != null) + { + Exception exception = this.ExceptionFactory("DeleteOrder", response); + if (exception != null) throw exception; + } + + return response; + } + + /// + /// Delete purchase order by ID For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors + /// + /// Thrown when fails to make API call + /// ID of the order that needs to be deleted + /// Task of void + public async System.Threading.Tasks.Task DeleteOrderAsync (string orderId) + { + await DeleteOrderAsyncWithHttpInfo(orderId); + + } + + /// + /// Delete purchase order by ID For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors + /// + /// Thrown when fails to make API call + /// ID of the order that needs to be deleted + /// Task of ApiResponse + public async System.Threading.Tasks.Task> DeleteOrderAsyncWithHttpInfo (string orderId) + { + // verify the required parameter 'orderId' is set + if (orderId == null) + throw new Org.OpenAPITools.Client.ApiException(400, "Missing required parameter 'orderId' when calling StoreApi->DeleteOrder"); + + Org.OpenAPITools.Client.RequestOptions requestOptions = new Org.OpenAPITools.Client.RequestOptions(); + + String[] @contentTypes = new String[] { + }; + + // to determine the Accept header + String[] @accepts = new String[] { + }; + + foreach (var contentType in @contentTypes) + requestOptions.HeaderParameters.Add("Content-Type", contentType); + + foreach (var accept in @accepts) + requestOptions.HeaderParameters.Add("Accept", accept); + + if (orderId != null) + requestOptions.PathParameters.Add("order_id", Org.OpenAPITools.Client.ClientUtils.ParameterToString(orderId)); // path parameter + + + // make the HTTP request + + var response = await this.AsynchronousClient.DeleteAsync("/store/order/{order_id}", requestOptions, this.Configuration); + + if (this.ExceptionFactory != null) + { + Exception exception = this.ExceptionFactory("DeleteOrder", response); + if (exception != null) throw exception; + } + + return response; + } + + /// + /// Returns pet inventories by status Returns a map of status codes to quantities + /// + /// Thrown when fails to make API call + /// Dictionary<string, int?> + public Dictionary GetInventory () + { + Org.OpenAPITools.Client.ApiResponse> localVarResponse = GetInventoryWithHttpInfo(); + return localVarResponse.Data; + } + + /// + /// Returns pet inventories by status Returns a map of status codes to quantities + /// + /// Thrown when fails to make API call + /// ApiResponse of Dictionary<string, int?> + public Org.OpenAPITools.Client.ApiResponse< Dictionary > GetInventoryWithHttpInfo () + { + + Org.OpenAPITools.Client.RequestOptions requestOptions = new Org.OpenAPITools.Client.RequestOptions(); + + String[] @contentTypes = new String[] { + }; + + // to determine the Accept header + String[] @accepts = new String[] { + "application/json" + }; + + foreach (var contentType in @contentTypes) + requestOptions.HeaderParameters.Add("Content-Type", contentType); + + foreach (var accept in @accepts) + requestOptions.HeaderParameters.Add("Accept", accept); + + + // authentication (api_key) required + if (!String.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("api_key"))) + { + requestOptions.HeaderParameters.Add("api_key", this.Configuration.GetApiKeyWithPrefix("api_key")); + } + + // make the HTTP request + + var response = this.Client.Get< Dictionary >("/store/inventory", requestOptions, this.Configuration); + + if (this.ExceptionFactory != null) + { + Exception exception = this.ExceptionFactory("GetInventory", response); + if (exception != null) throw exception; + } + + return response; + } + + /// + /// Returns pet inventories by status Returns a map of status codes to quantities + /// + /// Thrown when fails to make API call + /// Task of Dictionary<string, int?> + public async System.Threading.Tasks.Task> GetInventoryAsync () + { + Org.OpenAPITools.Client.ApiResponse> localVarResponse = await GetInventoryAsyncWithHttpInfo(); + return localVarResponse.Data; + + } + + /// + /// Returns pet inventories by status Returns a map of status codes to quantities + /// + /// Thrown when fails to make API call + /// Task of ApiResponse (Dictionary<string, int?>) + public async System.Threading.Tasks.Task>> GetInventoryAsyncWithHttpInfo () + { + + Org.OpenAPITools.Client.RequestOptions requestOptions = new Org.OpenAPITools.Client.RequestOptions(); + + String[] @contentTypes = new String[] { + }; + + // to determine the Accept header + String[] @accepts = new String[] { + "application/json" + }; + + foreach (var contentType in @contentTypes) + requestOptions.HeaderParameters.Add("Content-Type", contentType); + + foreach (var accept in @accepts) + requestOptions.HeaderParameters.Add("Accept", accept); + + + // authentication (api_key) required + if (!String.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("api_key"))) + { + requestOptions.HeaderParameters.Add("api_key", this.Configuration.GetApiKeyWithPrefix("api_key")); + } + + // make the HTTP request + + var response = await this.AsynchronousClient.GetAsync>("/store/inventory", requestOptions, this.Configuration); + + if (this.ExceptionFactory != null) + { + Exception exception = this.ExceptionFactory("GetInventory", response); + if (exception != null) throw exception; + } + + return response; + } + + /// + /// Find purchase order by ID For valid response try integer IDs with value <= 5 or > 10. Other values will generated exceptions + /// + /// Thrown when fails to make API call + /// ID of pet that needs to be fetched + /// Order + public Order GetOrderById (long? orderId) + { + Org.OpenAPITools.Client.ApiResponse localVarResponse = GetOrderByIdWithHttpInfo(orderId); + return localVarResponse.Data; + } + + /// + /// Find purchase order by ID For valid response try integer IDs with value <= 5 or > 10. Other values will generated exceptions + /// + /// Thrown when fails to make API call + /// ID of pet that needs to be fetched + /// ApiResponse of Order + public Org.OpenAPITools.Client.ApiResponse< Order > GetOrderByIdWithHttpInfo (long? orderId) + { + // verify the required parameter 'orderId' is set + if (orderId == null) + throw new Org.OpenAPITools.Client.ApiException(400, "Missing required parameter 'orderId' when calling StoreApi->GetOrderById"); + + Org.OpenAPITools.Client.RequestOptions requestOptions = new Org.OpenAPITools.Client.RequestOptions(); + + String[] @contentTypes = new String[] { + }; + + // to determine the Accept header + String[] @accepts = new String[] { + "application/xml", + "application/json" + }; + + foreach (var contentType in @contentTypes) + requestOptions.HeaderParameters.Add("Content-Type", contentType); + + foreach (var accept in @accepts) + requestOptions.HeaderParameters.Add("Accept", accept); + + if (orderId != null) + requestOptions.PathParameters.Add("order_id", Org.OpenAPITools.Client.ClientUtils.ParameterToString(orderId)); // path parameter + + + // make the HTTP request + + var response = this.Client.Get< Order >("/store/order/{order_id}", requestOptions, this.Configuration); + + if (this.ExceptionFactory != null) + { + Exception exception = this.ExceptionFactory("GetOrderById", response); + if (exception != null) throw exception; + } + + return response; + } + + /// + /// Find purchase order by ID For valid response try integer IDs with value <= 5 or > 10. Other values will generated exceptions + /// + /// Thrown when fails to make API call + /// ID of pet that needs to be fetched + /// Task of Order + public async System.Threading.Tasks.Task GetOrderByIdAsync (long? orderId) + { + Org.OpenAPITools.Client.ApiResponse localVarResponse = await GetOrderByIdAsyncWithHttpInfo(orderId); + return localVarResponse.Data; + + } + + /// + /// Find purchase order by ID For valid response try integer IDs with value <= 5 or > 10. Other values will generated exceptions + /// + /// Thrown when fails to make API call + /// ID of pet that needs to be fetched + /// Task of ApiResponse (Order) + public async System.Threading.Tasks.Task> GetOrderByIdAsyncWithHttpInfo (long? orderId) + { + // verify the required parameter 'orderId' is set + if (orderId == null) + throw new Org.OpenAPITools.Client.ApiException(400, "Missing required parameter 'orderId' when calling StoreApi->GetOrderById"); + + Org.OpenAPITools.Client.RequestOptions requestOptions = new Org.OpenAPITools.Client.RequestOptions(); + + String[] @contentTypes = new String[] { + }; + + // to determine the Accept header + String[] @accepts = new String[] { + "application/xml", + "application/json" + }; + + foreach (var contentType in @contentTypes) + requestOptions.HeaderParameters.Add("Content-Type", contentType); + + foreach (var accept in @accepts) + requestOptions.HeaderParameters.Add("Accept", accept); + + if (orderId != null) + requestOptions.PathParameters.Add("order_id", Org.OpenAPITools.Client.ClientUtils.ParameterToString(orderId)); // path parameter + + + // make the HTTP request + + var response = await this.AsynchronousClient.GetAsync("/store/order/{order_id}", requestOptions, this.Configuration); + + if (this.ExceptionFactory != null) + { + Exception exception = this.ExceptionFactory("GetOrderById", response); + if (exception != null) throw exception; + } + + return response; + } + + /// + /// Place an order for a pet + /// + /// Thrown when fails to make API call + /// order placed for purchasing the pet + /// Order + public Order PlaceOrder (Order order) + { + Org.OpenAPITools.Client.ApiResponse localVarResponse = PlaceOrderWithHttpInfo(order); + return localVarResponse.Data; + } + + /// + /// Place an order for a pet + /// + /// Thrown when fails to make API call + /// order placed for purchasing the pet + /// ApiResponse of Order + public Org.OpenAPITools.Client.ApiResponse< Order > PlaceOrderWithHttpInfo (Order order) + { + // verify the required parameter 'order' is set + if (order == null) + throw new Org.OpenAPITools.Client.ApiException(400, "Missing required parameter 'order' when calling StoreApi->PlaceOrder"); + + Org.OpenAPITools.Client.RequestOptions requestOptions = new Org.OpenAPITools.Client.RequestOptions(); + + String[] @contentTypes = new String[] { + }; + + // to determine the Accept header + String[] @accepts = new String[] { + "application/xml", + "application/json" + }; + + foreach (var contentType in @contentTypes) + requestOptions.HeaderParameters.Add("Content-Type", contentType); + + foreach (var accept in @accepts) + requestOptions.HeaderParameters.Add("Accept", accept); + + requestOptions.Data = order; + + + // make the HTTP request + + var response = this.Client.Post< Order >("/store/order", requestOptions, this.Configuration); + + if (this.ExceptionFactory != null) + { + Exception exception = this.ExceptionFactory("PlaceOrder", response); + if (exception != null) throw exception; + } + + return response; + } + + /// + /// Place an order for a pet + /// + /// Thrown when fails to make API call + /// order placed for purchasing the pet + /// Task of Order + public async System.Threading.Tasks.Task PlaceOrderAsync (Order order) + { + Org.OpenAPITools.Client.ApiResponse localVarResponse = await PlaceOrderAsyncWithHttpInfo(order); + return localVarResponse.Data; + + } + + /// + /// Place an order for a pet + /// + /// Thrown when fails to make API call + /// order placed for purchasing the pet + /// Task of ApiResponse (Order) + public async System.Threading.Tasks.Task> PlaceOrderAsyncWithHttpInfo (Order order) + { + // verify the required parameter 'order' is set + if (order == null) + throw new Org.OpenAPITools.Client.ApiException(400, "Missing required parameter 'order' when calling StoreApi->PlaceOrder"); + + Org.OpenAPITools.Client.RequestOptions requestOptions = new Org.OpenAPITools.Client.RequestOptions(); + + String[] @contentTypes = new String[] { + }; + + // to determine the Accept header + String[] @accepts = new String[] { + "application/xml", + "application/json" + }; + + foreach (var contentType in @contentTypes) + requestOptions.HeaderParameters.Add("Content-Type", contentType); + + foreach (var accept in @accepts) + requestOptions.HeaderParameters.Add("Accept", accept); + + requestOptions.Data = order; + + + // make the HTTP request + + var response = await this.AsynchronousClient.PostAsync("/store/order", requestOptions, this.Configuration); + + if (this.ExceptionFactory != null) + { + Exception exception = this.ExceptionFactory("PlaceOrder", response); + if (exception != null) throw exception; + } + + return response; + } + + } +} diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Api/UserApi.cs b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Api/UserApi.cs new file mode 100644 index 00000000000..72f2b657179 --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Api/UserApi.cs @@ -0,0 +1,1435 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * OpenAPI spec version: 1.0.0 + * + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + + +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Linq; +using System.Net; +using System.Net.Mime; +using Org.OpenAPITools.Client; +using Org.OpenAPITools.Model; + +namespace Org.OpenAPITools.Api +{ + + /// + /// Represents a collection of functions to interact with the API endpoints + /// + public interface IUserApiSync : IApiAccessor + { + #region Synchronous Operations + /// + /// Create user + /// + /// + /// This can only be done by the logged in user. + /// + /// Thrown when fails to make API call + /// Created user object + /// + void CreateUser (User user); + + /// + /// Create user + /// + /// + /// This can only be done by the logged in user. + /// + /// Thrown when fails to make API call + /// Created user object + /// ApiResponse of Object(void) + ApiResponse CreateUserWithHttpInfo (User user); + /// + /// Creates list of users with given input array + /// + /// + /// + /// + /// Thrown when fails to make API call + /// List of user object + /// + void CreateUsersWithArrayInput (List user); + + /// + /// Creates list of users with given input array + /// + /// + /// + /// + /// Thrown when fails to make API call + /// List of user object + /// ApiResponse of Object(void) + ApiResponse CreateUsersWithArrayInputWithHttpInfo (List user); + /// + /// Creates list of users with given input array + /// + /// + /// + /// + /// Thrown when fails to make API call + /// List of user object + /// + void CreateUsersWithListInput (List user); + + /// + /// Creates list of users with given input array + /// + /// + /// + /// + /// Thrown when fails to make API call + /// List of user object + /// ApiResponse of Object(void) + ApiResponse CreateUsersWithListInputWithHttpInfo (List user); + /// + /// Delete user + /// + /// + /// This can only be done by the logged in user. + /// + /// Thrown when fails to make API call + /// The name that needs to be deleted + /// + void DeleteUser (string username); + + /// + /// Delete user + /// + /// + /// This can only be done by the logged in user. + /// + /// Thrown when fails to make API call + /// The name that needs to be deleted + /// ApiResponse of Object(void) + ApiResponse DeleteUserWithHttpInfo (string username); + /// + /// Get user by user name + /// + /// + /// + /// + /// Thrown when fails to make API call + /// The name that needs to be fetched. Use user1 for testing. + /// User + User GetUserByName (string username); + + /// + /// Get user by user name + /// + /// + /// + /// + /// Thrown when fails to make API call + /// The name that needs to be fetched. Use user1 for testing. + /// ApiResponse of User + ApiResponse GetUserByNameWithHttpInfo (string username); + /// + /// Logs user into the system + /// + /// + /// + /// + /// Thrown when fails to make API call + /// The user name for login + /// The password for login in clear text + /// string + string LoginUser (string username, string password); + + /// + /// Logs user into the system + /// + /// + /// + /// + /// Thrown when fails to make API call + /// The user name for login + /// The password for login in clear text + /// ApiResponse of string + ApiResponse LoginUserWithHttpInfo (string username, string password); + /// + /// Logs out current logged in user session + /// + /// + /// + /// + /// Thrown when fails to make API call + /// + void LogoutUser (); + + /// + /// Logs out current logged in user session + /// + /// + /// + /// + /// Thrown when fails to make API call + /// ApiResponse of Object(void) + ApiResponse LogoutUserWithHttpInfo (); + /// + /// Updated user + /// + /// + /// This can only be done by the logged in user. + /// + /// Thrown when fails to make API call + /// name that need to be deleted + /// Updated user object + /// + void UpdateUser (string username, User user); + + /// + /// Updated user + /// + /// + /// This can only be done by the logged in user. + /// + /// Thrown when fails to make API call + /// name that need to be deleted + /// Updated user object + /// ApiResponse of Object(void) + ApiResponse UpdateUserWithHttpInfo (string username, User user); + #endregion Synchronous Operations + } + + /// + /// Represents a collection of functions to interact with the API endpoints + /// + public interface IUserApiAsync : IApiAccessor + { + #region Asynchronous Operations + /// + /// Create user + /// + /// + /// This can only be done by the logged in user. + /// + /// Thrown when fails to make API call + /// Created user object + /// Task of void + System.Threading.Tasks.Task CreateUserAsync (User user); + + /// + /// Create user + /// + /// + /// This can only be done by the logged in user. + /// + /// Thrown when fails to make API call + /// Created user object + /// Task of ApiResponse + System.Threading.Tasks.Task> CreateUserAsyncWithHttpInfo (User user); + /// + /// Creates list of users with given input array + /// + /// + /// + /// + /// Thrown when fails to make API call + /// List of user object + /// Task of void + System.Threading.Tasks.Task CreateUsersWithArrayInputAsync (List user); + + /// + /// Creates list of users with given input array + /// + /// + /// + /// + /// Thrown when fails to make API call + /// List of user object + /// Task of ApiResponse + System.Threading.Tasks.Task> CreateUsersWithArrayInputAsyncWithHttpInfo (List user); + /// + /// Creates list of users with given input array + /// + /// + /// + /// + /// Thrown when fails to make API call + /// List of user object + /// Task of void + System.Threading.Tasks.Task CreateUsersWithListInputAsync (List user); + + /// + /// Creates list of users with given input array + /// + /// + /// + /// + /// Thrown when fails to make API call + /// List of user object + /// Task of ApiResponse + System.Threading.Tasks.Task> CreateUsersWithListInputAsyncWithHttpInfo (List user); + /// + /// Delete user + /// + /// + /// This can only be done by the logged in user. + /// + /// Thrown when fails to make API call + /// The name that needs to be deleted + /// Task of void + System.Threading.Tasks.Task DeleteUserAsync (string username); + + /// + /// Delete user + /// + /// + /// This can only be done by the logged in user. + /// + /// Thrown when fails to make API call + /// The name that needs to be deleted + /// Task of ApiResponse + System.Threading.Tasks.Task> DeleteUserAsyncWithHttpInfo (string username); + /// + /// Get user by user name + /// + /// + /// + /// + /// Thrown when fails to make API call + /// The name that needs to be fetched. Use user1 for testing. + /// Task of User + System.Threading.Tasks.Task GetUserByNameAsync (string username); + + /// + /// Get user by user name + /// + /// + /// + /// + /// Thrown when fails to make API call + /// The name that needs to be fetched. Use user1 for testing. + /// Task of ApiResponse (User) + System.Threading.Tasks.Task> GetUserByNameAsyncWithHttpInfo (string username); + /// + /// Logs user into the system + /// + /// + /// + /// + /// Thrown when fails to make API call + /// The user name for login + /// The password for login in clear text + /// Task of string + System.Threading.Tasks.Task LoginUserAsync (string username, string password); + + /// + /// Logs user into the system + /// + /// + /// + /// + /// Thrown when fails to make API call + /// The user name for login + /// The password for login in clear text + /// Task of ApiResponse (string) + System.Threading.Tasks.Task> LoginUserAsyncWithHttpInfo (string username, string password); + /// + /// Logs out current logged in user session + /// + /// + /// + /// + /// Thrown when fails to make API call + /// Task of void + System.Threading.Tasks.Task LogoutUserAsync (); + + /// + /// Logs out current logged in user session + /// + /// + /// + /// + /// Thrown when fails to make API call + /// Task of ApiResponse + System.Threading.Tasks.Task> LogoutUserAsyncWithHttpInfo (); + /// + /// Updated user + /// + /// + /// This can only be done by the logged in user. + /// + /// Thrown when fails to make API call + /// name that need to be deleted + /// Updated user object + /// Task of void + System.Threading.Tasks.Task UpdateUserAsync (string username, User user); + + /// + /// Updated user + /// + /// + /// This can only be done by the logged in user. + /// + /// Thrown when fails to make API call + /// name that need to be deleted + /// Updated user object + /// Task of ApiResponse + System.Threading.Tasks.Task> UpdateUserAsyncWithHttpInfo (string username, User user); + #endregion Asynchronous Operations + } + + public interface IUserApi : IUserApiSync, IUserApiAsync + { + + } + + /// + /// Represents a collection of functions to interact with the API endpoints + /// + public partial class UserApi : IUserApi + { + private Org.OpenAPITools.Client.ExceptionFactory _exceptionFactory = (name, response) => null; + + /// + /// Initializes a new instance of the class. + /// + /// + public UserApi() : this((string) null) + { + } + + /// + /// Initializes a new instance of the class. + /// + /// + public UserApi(String basePath) + { + this.Configuration = Org.OpenAPITools.Client.Configuration.MergeConfigurations( + Org.OpenAPITools.Client.GlobalConfiguration.Instance, + new Org.OpenAPITools.Client.Configuration { BasePath = basePath } + ); + this.Client = new Org.OpenAPITools.Client.ApiClient(this.Configuration.BasePath); + this.AsynchronousClient = new Org.OpenAPITools.Client.ApiClient(this.Configuration.BasePath); + this.ExceptionFactory = Org.OpenAPITools.Client.Configuration.DefaultExceptionFactory; + } + + /// + /// Initializes a new instance of the class + /// using Configuration object + /// + /// An instance of Configuration + /// + public UserApi(Org.OpenAPITools.Client.Configuration configuration) + { + if (configuration == null) throw new ArgumentNullException("configuration"); + + this.Configuration = Org.OpenAPITools.Client.Configuration.MergeConfigurations( + Org.OpenAPITools.Client.GlobalConfiguration.Instance, + configuration + ); + this.Client = new Org.OpenAPITools.Client.ApiClient(this.Configuration.BasePath); + this.AsynchronousClient = new Org.OpenAPITools.Client.ApiClient(this.Configuration.BasePath); + ExceptionFactory = Org.OpenAPITools.Client.Configuration.DefaultExceptionFactory; + } + + /// + /// Initializes a new instance of the class + /// using a Configuration object and client instance. + /// + /// The client interface for synchronous API access. + /// The client interface for asynchronous API access. + /// The configuration object. + public UserApi(Org.OpenAPITools.Client.ISynchronousClient client,Org.OpenAPITools.Client.IAsynchronousClient asyncClient, Org.OpenAPITools.Client.IReadableConfiguration configuration) + { + if(client == null) throw new ArgumentNullException("client"); + if(asyncClient == null) throw new ArgumentNullException("asyncClient"); + if(configuration == null) throw new ArgumentNullException("configuration"); + + this.Client = client; + this.AsynchronousClient = asyncClient; + this.Configuration = configuration; + this.ExceptionFactory = Org.OpenAPITools.Client.Configuration.DefaultExceptionFactory; + } + + /// + /// The client for accessing this underlying API asynchronously. + /// + public Org.OpenAPITools.Client.IAsynchronousClient AsynchronousClient { get; set; } + + /// + /// The client for accessing this underlying API synchronously. + /// + public Org.OpenAPITools.Client.ISynchronousClient Client { get; set; } + + /// + /// Gets the base path of the API client. + /// + /// The base path + public String GetBasePath() + { + return this.Configuration.BasePath; + } + + /// + /// Gets or sets the configuration object + /// + /// An instance of the Configuration + public Org.OpenAPITools.Client.IReadableConfiguration Configuration {get; set;} + + /// + /// Provides a factory method hook for the creation of exceptions. + /// + public Org.OpenAPITools.Client.ExceptionFactory ExceptionFactory + { + get + { + if (_exceptionFactory != null && _exceptionFactory.GetInvocationList().Length > 1) + { + throw new InvalidOperationException("Multicast delegate for ExceptionFactory is unsupported."); + } + return _exceptionFactory; + } + set { _exceptionFactory = value; } + } + + /// + /// Create user This can only be done by the logged in user. + /// + /// Thrown when fails to make API call + /// Created user object + /// + public void CreateUser (User user) + { + CreateUserWithHttpInfo(user); + } + + /// + /// Create user This can only be done by the logged in user. + /// + /// Thrown when fails to make API call + /// Created user object + /// ApiResponse of Object(void) + public Org.OpenAPITools.Client.ApiResponse CreateUserWithHttpInfo (User user) + { + // verify the required parameter 'user' is set + if (user == null) + throw new Org.OpenAPITools.Client.ApiException(400, "Missing required parameter 'user' when calling UserApi->CreateUser"); + + Org.OpenAPITools.Client.RequestOptions requestOptions = new Org.OpenAPITools.Client.RequestOptions(); + + String[] @contentTypes = new String[] { + }; + + // to determine the Accept header + String[] @accepts = new String[] { + }; + + foreach (var contentType in @contentTypes) + requestOptions.HeaderParameters.Add("Content-Type", contentType); + + foreach (var accept in @accepts) + requestOptions.HeaderParameters.Add("Accept", accept); + + requestOptions.Data = user; + + + // make the HTTP request + + var response = this.Client.Post("/user", requestOptions, this.Configuration); + + if (this.ExceptionFactory != null) + { + Exception exception = this.ExceptionFactory("CreateUser", response); + if (exception != null) throw exception; + } + + return response; + } + + /// + /// Create user This can only be done by the logged in user. + /// + /// Thrown when fails to make API call + /// Created user object + /// Task of void + public async System.Threading.Tasks.Task CreateUserAsync (User user) + { + await CreateUserAsyncWithHttpInfo(user); + + } + + /// + /// Create user This can only be done by the logged in user. + /// + /// Thrown when fails to make API call + /// Created user object + /// Task of ApiResponse + public async System.Threading.Tasks.Task> CreateUserAsyncWithHttpInfo (User user) + { + // verify the required parameter 'user' is set + if (user == null) + throw new Org.OpenAPITools.Client.ApiException(400, "Missing required parameter 'user' when calling UserApi->CreateUser"); + + Org.OpenAPITools.Client.RequestOptions requestOptions = new Org.OpenAPITools.Client.RequestOptions(); + + String[] @contentTypes = new String[] { + }; + + // to determine the Accept header + String[] @accepts = new String[] { + }; + + foreach (var contentType in @contentTypes) + requestOptions.HeaderParameters.Add("Content-Type", contentType); + + foreach (var accept in @accepts) + requestOptions.HeaderParameters.Add("Accept", accept); + + requestOptions.Data = user; + + + // make the HTTP request + + var response = await this.AsynchronousClient.PostAsync("/user", requestOptions, this.Configuration); + + if (this.ExceptionFactory != null) + { + Exception exception = this.ExceptionFactory("CreateUser", response); + if (exception != null) throw exception; + } + + return response; + } + + /// + /// Creates list of users with given input array + /// + /// Thrown when fails to make API call + /// List of user object + /// + public void CreateUsersWithArrayInput (List user) + { + CreateUsersWithArrayInputWithHttpInfo(user); + } + + /// + /// Creates list of users with given input array + /// + /// Thrown when fails to make API call + /// List of user object + /// ApiResponse of Object(void) + public Org.OpenAPITools.Client.ApiResponse CreateUsersWithArrayInputWithHttpInfo (List user) + { + // verify the required parameter 'user' is set + if (user == null) + throw new Org.OpenAPITools.Client.ApiException(400, "Missing required parameter 'user' when calling UserApi->CreateUsersWithArrayInput"); + + Org.OpenAPITools.Client.RequestOptions requestOptions = new Org.OpenAPITools.Client.RequestOptions(); + + String[] @contentTypes = new String[] { + }; + + // to determine the Accept header + String[] @accepts = new String[] { + }; + + foreach (var contentType in @contentTypes) + requestOptions.HeaderParameters.Add("Content-Type", contentType); + + foreach (var accept in @accepts) + requestOptions.HeaderParameters.Add("Accept", accept); + + requestOptions.Data = user; + + + // make the HTTP request + + var response = this.Client.Post("/user/createWithArray", requestOptions, this.Configuration); + + if (this.ExceptionFactory != null) + { + Exception exception = this.ExceptionFactory("CreateUsersWithArrayInput", response); + if (exception != null) throw exception; + } + + return response; + } + + /// + /// Creates list of users with given input array + /// + /// Thrown when fails to make API call + /// List of user object + /// Task of void + public async System.Threading.Tasks.Task CreateUsersWithArrayInputAsync (List user) + { + await CreateUsersWithArrayInputAsyncWithHttpInfo(user); + + } + + /// + /// Creates list of users with given input array + /// + /// Thrown when fails to make API call + /// List of user object + /// Task of ApiResponse + public async System.Threading.Tasks.Task> CreateUsersWithArrayInputAsyncWithHttpInfo (List user) + { + // verify the required parameter 'user' is set + if (user == null) + throw new Org.OpenAPITools.Client.ApiException(400, "Missing required parameter 'user' when calling UserApi->CreateUsersWithArrayInput"); + + Org.OpenAPITools.Client.RequestOptions requestOptions = new Org.OpenAPITools.Client.RequestOptions(); + + String[] @contentTypes = new String[] { + }; + + // to determine the Accept header + String[] @accepts = new String[] { + }; + + foreach (var contentType in @contentTypes) + requestOptions.HeaderParameters.Add("Content-Type", contentType); + + foreach (var accept in @accepts) + requestOptions.HeaderParameters.Add("Accept", accept); + + requestOptions.Data = user; + + + // make the HTTP request + + var response = await this.AsynchronousClient.PostAsync("/user/createWithArray", requestOptions, this.Configuration); + + if (this.ExceptionFactory != null) + { + Exception exception = this.ExceptionFactory("CreateUsersWithArrayInput", response); + if (exception != null) throw exception; + } + + return response; + } + + /// + /// Creates list of users with given input array + /// + /// Thrown when fails to make API call + /// List of user object + /// + public void CreateUsersWithListInput (List user) + { + CreateUsersWithListInputWithHttpInfo(user); + } + + /// + /// Creates list of users with given input array + /// + /// Thrown when fails to make API call + /// List of user object + /// ApiResponse of Object(void) + public Org.OpenAPITools.Client.ApiResponse CreateUsersWithListInputWithHttpInfo (List user) + { + // verify the required parameter 'user' is set + if (user == null) + throw new Org.OpenAPITools.Client.ApiException(400, "Missing required parameter 'user' when calling UserApi->CreateUsersWithListInput"); + + Org.OpenAPITools.Client.RequestOptions requestOptions = new Org.OpenAPITools.Client.RequestOptions(); + + String[] @contentTypes = new String[] { + }; + + // to determine the Accept header + String[] @accepts = new String[] { + }; + + foreach (var contentType in @contentTypes) + requestOptions.HeaderParameters.Add("Content-Type", contentType); + + foreach (var accept in @accepts) + requestOptions.HeaderParameters.Add("Accept", accept); + + requestOptions.Data = user; + + + // make the HTTP request + + var response = this.Client.Post("/user/createWithList", requestOptions, this.Configuration); + + if (this.ExceptionFactory != null) + { + Exception exception = this.ExceptionFactory("CreateUsersWithListInput", response); + if (exception != null) throw exception; + } + + return response; + } + + /// + /// Creates list of users with given input array + /// + /// Thrown when fails to make API call + /// List of user object + /// Task of void + public async System.Threading.Tasks.Task CreateUsersWithListInputAsync (List user) + { + await CreateUsersWithListInputAsyncWithHttpInfo(user); + + } + + /// + /// Creates list of users with given input array + /// + /// Thrown when fails to make API call + /// List of user object + /// Task of ApiResponse + public async System.Threading.Tasks.Task> CreateUsersWithListInputAsyncWithHttpInfo (List user) + { + // verify the required parameter 'user' is set + if (user == null) + throw new Org.OpenAPITools.Client.ApiException(400, "Missing required parameter 'user' when calling UserApi->CreateUsersWithListInput"); + + Org.OpenAPITools.Client.RequestOptions requestOptions = new Org.OpenAPITools.Client.RequestOptions(); + + String[] @contentTypes = new String[] { + }; + + // to determine the Accept header + String[] @accepts = new String[] { + }; + + foreach (var contentType in @contentTypes) + requestOptions.HeaderParameters.Add("Content-Type", contentType); + + foreach (var accept in @accepts) + requestOptions.HeaderParameters.Add("Accept", accept); + + requestOptions.Data = user; + + + // make the HTTP request + + var response = await this.AsynchronousClient.PostAsync("/user/createWithList", requestOptions, this.Configuration); + + if (this.ExceptionFactory != null) + { + Exception exception = this.ExceptionFactory("CreateUsersWithListInput", response); + if (exception != null) throw exception; + } + + return response; + } + + /// + /// Delete user This can only be done by the logged in user. + /// + /// Thrown when fails to make API call + /// The name that needs to be deleted + /// + public void DeleteUser (string username) + { + DeleteUserWithHttpInfo(username); + } + + /// + /// Delete user This can only be done by the logged in user. + /// + /// Thrown when fails to make API call + /// The name that needs to be deleted + /// ApiResponse of Object(void) + public Org.OpenAPITools.Client.ApiResponse DeleteUserWithHttpInfo (string username) + { + // verify the required parameter 'username' is set + if (username == null) + throw new Org.OpenAPITools.Client.ApiException(400, "Missing required parameter 'username' when calling UserApi->DeleteUser"); + + Org.OpenAPITools.Client.RequestOptions requestOptions = new Org.OpenAPITools.Client.RequestOptions(); + + String[] @contentTypes = new String[] { + }; + + // to determine the Accept header + String[] @accepts = new String[] { + }; + + foreach (var contentType in @contentTypes) + requestOptions.HeaderParameters.Add("Content-Type", contentType); + + foreach (var accept in @accepts) + requestOptions.HeaderParameters.Add("Accept", accept); + + if (username != null) + requestOptions.PathParameters.Add("username", Org.OpenAPITools.Client.ClientUtils.ParameterToString(username)); // path parameter + + + // make the HTTP request + + var response = this.Client.Delete("/user/{username}", requestOptions, this.Configuration); + + if (this.ExceptionFactory != null) + { + Exception exception = this.ExceptionFactory("DeleteUser", response); + if (exception != null) throw exception; + } + + return response; + } + + /// + /// Delete user This can only be done by the logged in user. + /// + /// Thrown when fails to make API call + /// The name that needs to be deleted + /// Task of void + public async System.Threading.Tasks.Task DeleteUserAsync (string username) + { + await DeleteUserAsyncWithHttpInfo(username); + + } + + /// + /// Delete user This can only be done by the logged in user. + /// + /// Thrown when fails to make API call + /// The name that needs to be deleted + /// Task of ApiResponse + public async System.Threading.Tasks.Task> DeleteUserAsyncWithHttpInfo (string username) + { + // verify the required parameter 'username' is set + if (username == null) + throw new Org.OpenAPITools.Client.ApiException(400, "Missing required parameter 'username' when calling UserApi->DeleteUser"); + + Org.OpenAPITools.Client.RequestOptions requestOptions = new Org.OpenAPITools.Client.RequestOptions(); + + String[] @contentTypes = new String[] { + }; + + // to determine the Accept header + String[] @accepts = new String[] { + }; + + foreach (var contentType in @contentTypes) + requestOptions.HeaderParameters.Add("Content-Type", contentType); + + foreach (var accept in @accepts) + requestOptions.HeaderParameters.Add("Accept", accept); + + if (username != null) + requestOptions.PathParameters.Add("username", Org.OpenAPITools.Client.ClientUtils.ParameterToString(username)); // path parameter + + + // make the HTTP request + + var response = await this.AsynchronousClient.DeleteAsync("/user/{username}", requestOptions, this.Configuration); + + if (this.ExceptionFactory != null) + { + Exception exception = this.ExceptionFactory("DeleteUser", response); + if (exception != null) throw exception; + } + + return response; + } + + /// + /// Get user by user name + /// + /// Thrown when fails to make API call + /// The name that needs to be fetched. Use user1 for testing. + /// User + public User GetUserByName (string username) + { + Org.OpenAPITools.Client.ApiResponse localVarResponse = GetUserByNameWithHttpInfo(username); + return localVarResponse.Data; + } + + /// + /// Get user by user name + /// + /// Thrown when fails to make API call + /// The name that needs to be fetched. Use user1 for testing. + /// ApiResponse of User + public Org.OpenAPITools.Client.ApiResponse< User > GetUserByNameWithHttpInfo (string username) + { + // verify the required parameter 'username' is set + if (username == null) + throw new Org.OpenAPITools.Client.ApiException(400, "Missing required parameter 'username' when calling UserApi->GetUserByName"); + + Org.OpenAPITools.Client.RequestOptions requestOptions = new Org.OpenAPITools.Client.RequestOptions(); + + String[] @contentTypes = new String[] { + }; + + // to determine the Accept header + String[] @accepts = new String[] { + "application/xml", + "application/json" + }; + + foreach (var contentType in @contentTypes) + requestOptions.HeaderParameters.Add("Content-Type", contentType); + + foreach (var accept in @accepts) + requestOptions.HeaderParameters.Add("Accept", accept); + + if (username != null) + requestOptions.PathParameters.Add("username", Org.OpenAPITools.Client.ClientUtils.ParameterToString(username)); // path parameter + + + // make the HTTP request + + var response = this.Client.Get< User >("/user/{username}", requestOptions, this.Configuration); + + if (this.ExceptionFactory != null) + { + Exception exception = this.ExceptionFactory("GetUserByName", response); + if (exception != null) throw exception; + } + + return response; + } + + /// + /// Get user by user name + /// + /// Thrown when fails to make API call + /// The name that needs to be fetched. Use user1 for testing. + /// Task of User + public async System.Threading.Tasks.Task GetUserByNameAsync (string username) + { + Org.OpenAPITools.Client.ApiResponse localVarResponse = await GetUserByNameAsyncWithHttpInfo(username); + return localVarResponse.Data; + + } + + /// + /// Get user by user name + /// + /// Thrown when fails to make API call + /// The name that needs to be fetched. Use user1 for testing. + /// Task of ApiResponse (User) + public async System.Threading.Tasks.Task> GetUserByNameAsyncWithHttpInfo (string username) + { + // verify the required parameter 'username' is set + if (username == null) + throw new Org.OpenAPITools.Client.ApiException(400, "Missing required parameter 'username' when calling UserApi->GetUserByName"); + + Org.OpenAPITools.Client.RequestOptions requestOptions = new Org.OpenAPITools.Client.RequestOptions(); + + String[] @contentTypes = new String[] { + }; + + // to determine the Accept header + String[] @accepts = new String[] { + "application/xml", + "application/json" + }; + + foreach (var contentType in @contentTypes) + requestOptions.HeaderParameters.Add("Content-Type", contentType); + + foreach (var accept in @accepts) + requestOptions.HeaderParameters.Add("Accept", accept); + + if (username != null) + requestOptions.PathParameters.Add("username", Org.OpenAPITools.Client.ClientUtils.ParameterToString(username)); // path parameter + + + // make the HTTP request + + var response = await this.AsynchronousClient.GetAsync("/user/{username}", requestOptions, this.Configuration); + + if (this.ExceptionFactory != null) + { + Exception exception = this.ExceptionFactory("GetUserByName", response); + if (exception != null) throw exception; + } + + return response; + } + + /// + /// Logs user into the system + /// + /// Thrown when fails to make API call + /// The user name for login + /// The password for login in clear text + /// string + public string LoginUser (string username, string password) + { + Org.OpenAPITools.Client.ApiResponse localVarResponse = LoginUserWithHttpInfo(username, password); + return localVarResponse.Data; + } + + /// + /// Logs user into the system + /// + /// Thrown when fails to make API call + /// The user name for login + /// The password for login in clear text + /// ApiResponse of string + public Org.OpenAPITools.Client.ApiResponse< string > LoginUserWithHttpInfo (string username, string password) + { + // verify the required parameter 'username' is set + if (username == null) + throw new Org.OpenAPITools.Client.ApiException(400, "Missing required parameter 'username' when calling UserApi->LoginUser"); + // verify the required parameter 'password' is set + if (password == null) + throw new Org.OpenAPITools.Client.ApiException(400, "Missing required parameter 'password' when calling UserApi->LoginUser"); + + Org.OpenAPITools.Client.RequestOptions requestOptions = new Org.OpenAPITools.Client.RequestOptions(); + + String[] @contentTypes = new String[] { + }; + + // to determine the Accept header + String[] @accepts = new String[] { + "application/xml", + "application/json" + }; + + foreach (var contentType in @contentTypes) + requestOptions.HeaderParameters.Add("Content-Type", contentType); + + foreach (var accept in @accepts) + requestOptions.HeaderParameters.Add("Accept", accept); + + if (username != null) + { + foreach (var kvp in Org.OpenAPITools.Client.ClientUtils.ParameterToMultiMap("", "username", username)) + { + foreach (var value in kvp.Value) + { + requestOptions.QueryParameters.Add(kvp.Key, value); + } + } + } + if (password != null) + { + foreach (var kvp in Org.OpenAPITools.Client.ClientUtils.ParameterToMultiMap("", "password", password)) + { + foreach (var value in kvp.Value) + { + requestOptions.QueryParameters.Add(kvp.Key, value); + } + } + } + + + // make the HTTP request + + var response = this.Client.Get< string >("/user/login", requestOptions, this.Configuration); + + if (this.ExceptionFactory != null) + { + Exception exception = this.ExceptionFactory("LoginUser", response); + if (exception != null) throw exception; + } + + return response; + } + + /// + /// Logs user into the system + /// + /// Thrown when fails to make API call + /// The user name for login + /// The password for login in clear text + /// Task of string + public async System.Threading.Tasks.Task LoginUserAsync (string username, string password) + { + Org.OpenAPITools.Client.ApiResponse localVarResponse = await LoginUserAsyncWithHttpInfo(username, password); + return localVarResponse.Data; + + } + + /// + /// Logs user into the system + /// + /// Thrown when fails to make API call + /// The user name for login + /// The password for login in clear text + /// Task of ApiResponse (string) + public async System.Threading.Tasks.Task> LoginUserAsyncWithHttpInfo (string username, string password) + { + // verify the required parameter 'username' is set + if (username == null) + throw new Org.OpenAPITools.Client.ApiException(400, "Missing required parameter 'username' when calling UserApi->LoginUser"); + // verify the required parameter 'password' is set + if (password == null) + throw new Org.OpenAPITools.Client.ApiException(400, "Missing required parameter 'password' when calling UserApi->LoginUser"); + + Org.OpenAPITools.Client.RequestOptions requestOptions = new Org.OpenAPITools.Client.RequestOptions(); + + String[] @contentTypes = new String[] { + }; + + // to determine the Accept header + String[] @accepts = new String[] { + "application/xml", + "application/json" + }; + + foreach (var contentType in @contentTypes) + requestOptions.HeaderParameters.Add("Content-Type", contentType); + + foreach (var accept in @accepts) + requestOptions.HeaderParameters.Add("Accept", accept); + + if (username != null) + { + foreach (var kvp in Org.OpenAPITools.Client.ClientUtils.ParameterToMultiMap("", "username", username)) + { + foreach (var value in kvp.Value) + { + requestOptions.QueryParameters.Add(kvp.Key, value); + } + } + } + if (password != null) + { + foreach (var kvp in Org.OpenAPITools.Client.ClientUtils.ParameterToMultiMap("", "password", password)) + { + foreach (var value in kvp.Value) + { + requestOptions.QueryParameters.Add(kvp.Key, value); + } + } + } + + + // make the HTTP request + + var response = await this.AsynchronousClient.GetAsync("/user/login", requestOptions, this.Configuration); + + if (this.ExceptionFactory != null) + { + Exception exception = this.ExceptionFactory("LoginUser", response); + if (exception != null) throw exception; + } + + return response; + } + + /// + /// Logs out current logged in user session + /// + /// Thrown when fails to make API call + /// + public void LogoutUser () + { + LogoutUserWithHttpInfo(); + } + + /// + /// Logs out current logged in user session + /// + /// Thrown when fails to make API call + /// ApiResponse of Object(void) + public Org.OpenAPITools.Client.ApiResponse LogoutUserWithHttpInfo () + { + + Org.OpenAPITools.Client.RequestOptions requestOptions = new Org.OpenAPITools.Client.RequestOptions(); + + String[] @contentTypes = new String[] { + }; + + // to determine the Accept header + String[] @accepts = new String[] { + }; + + foreach (var contentType in @contentTypes) + requestOptions.HeaderParameters.Add("Content-Type", contentType); + + foreach (var accept in @accepts) + requestOptions.HeaderParameters.Add("Accept", accept); + + + + // make the HTTP request + + var response = this.Client.Get("/user/logout", requestOptions, this.Configuration); + + if (this.ExceptionFactory != null) + { + Exception exception = this.ExceptionFactory("LogoutUser", response); + if (exception != null) throw exception; + } + + return response; + } + + /// + /// Logs out current logged in user session + /// + /// Thrown when fails to make API call + /// Task of void + public async System.Threading.Tasks.Task LogoutUserAsync () + { + await LogoutUserAsyncWithHttpInfo(); + + } + + /// + /// Logs out current logged in user session + /// + /// Thrown when fails to make API call + /// Task of ApiResponse + public async System.Threading.Tasks.Task> LogoutUserAsyncWithHttpInfo () + { + + Org.OpenAPITools.Client.RequestOptions requestOptions = new Org.OpenAPITools.Client.RequestOptions(); + + String[] @contentTypes = new String[] { + }; + + // to determine the Accept header + String[] @accepts = new String[] { + }; + + foreach (var contentType in @contentTypes) + requestOptions.HeaderParameters.Add("Content-Type", contentType); + + foreach (var accept in @accepts) + requestOptions.HeaderParameters.Add("Accept", accept); + + + + // make the HTTP request + + var response = await this.AsynchronousClient.GetAsync("/user/logout", requestOptions, this.Configuration); + + if (this.ExceptionFactory != null) + { + Exception exception = this.ExceptionFactory("LogoutUser", response); + if (exception != null) throw exception; + } + + return response; + } + + /// + /// Updated user This can only be done by the logged in user. + /// + /// Thrown when fails to make API call + /// name that need to be deleted + /// Updated user object + /// + public void UpdateUser (string username, User user) + { + UpdateUserWithHttpInfo(username, user); + } + + /// + /// Updated user This can only be done by the logged in user. + /// + /// Thrown when fails to make API call + /// name that need to be deleted + /// Updated user object + /// ApiResponse of Object(void) + public Org.OpenAPITools.Client.ApiResponse UpdateUserWithHttpInfo (string username, User user) + { + // verify the required parameter 'username' is set + if (username == null) + throw new Org.OpenAPITools.Client.ApiException(400, "Missing required parameter 'username' when calling UserApi->UpdateUser"); + // verify the required parameter 'user' is set + if (user == null) + throw new Org.OpenAPITools.Client.ApiException(400, "Missing required parameter 'user' when calling UserApi->UpdateUser"); + + Org.OpenAPITools.Client.RequestOptions requestOptions = new Org.OpenAPITools.Client.RequestOptions(); + + String[] @contentTypes = new String[] { + }; + + // to determine the Accept header + String[] @accepts = new String[] { + }; + + foreach (var contentType in @contentTypes) + requestOptions.HeaderParameters.Add("Content-Type", contentType); + + foreach (var accept in @accepts) + requestOptions.HeaderParameters.Add("Accept", accept); + + if (username != null) + requestOptions.PathParameters.Add("username", Org.OpenAPITools.Client.ClientUtils.ParameterToString(username)); // path parameter + requestOptions.Data = user; + + + // make the HTTP request + + var response = this.Client.Put("/user/{username}", requestOptions, this.Configuration); + + if (this.ExceptionFactory != null) + { + Exception exception = this.ExceptionFactory("UpdateUser", response); + if (exception != null) throw exception; + } + + return response; + } + + /// + /// Updated user This can only be done by the logged in user. + /// + /// Thrown when fails to make API call + /// name that need to be deleted + /// Updated user object + /// Task of void + public async System.Threading.Tasks.Task UpdateUserAsync (string username, User user) + { + await UpdateUserAsyncWithHttpInfo(username, user); + + } + + /// + /// Updated user This can only be done by the logged in user. + /// + /// Thrown when fails to make API call + /// name that need to be deleted + /// Updated user object + /// Task of ApiResponse + public async System.Threading.Tasks.Task> UpdateUserAsyncWithHttpInfo (string username, User user) + { + // verify the required parameter 'username' is set + if (username == null) + throw new Org.OpenAPITools.Client.ApiException(400, "Missing required parameter 'username' when calling UserApi->UpdateUser"); + // verify the required parameter 'user' is set + if (user == null) + throw new Org.OpenAPITools.Client.ApiException(400, "Missing required parameter 'user' when calling UserApi->UpdateUser"); + + Org.OpenAPITools.Client.RequestOptions requestOptions = new Org.OpenAPITools.Client.RequestOptions(); + + String[] @contentTypes = new String[] { + }; + + // to determine the Accept header + String[] @accepts = new String[] { + }; + + foreach (var contentType in @contentTypes) + requestOptions.HeaderParameters.Add("Content-Type", contentType); + + foreach (var accept in @accepts) + requestOptions.HeaderParameters.Add("Accept", accept); + + if (username != null) + requestOptions.PathParameters.Add("username", Org.OpenAPITools.Client.ClientUtils.ParameterToString(username)); // path parameter + requestOptions.Data = user; + + + // make the HTTP request + + var response = await this.AsynchronousClient.PutAsync("/user/{username}", requestOptions, this.Configuration); + + if (this.ExceptionFactory != null) + { + Exception exception = this.ExceptionFactory("UpdateUser", response); + if (exception != null) throw exception; + } + + return response; + } + + } +} diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Client/ApiClient.cs b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Client/ApiClient.cs new file mode 100644 index 00000000000..6e226c0cd8c --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Client/ApiClient.cs @@ -0,0 +1,503 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * OpenAPI spec version: 1.0.0 + * + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + + +using System; +using System.Collections; +using System.Collections.Generic; +using System.Globalization; +using System.Text.RegularExpressions; +using System.Threading.Tasks; +using System.IO; +using System.Web; +using System.Linq; +using System.Net; +using System.Text; +using Newtonsoft.Json; +using RestSharp; +using RestSharpMethod = RestSharp.Method; + +namespace Org.OpenAPITools.Client +{ + /// + /// Allows RestSharp to Serialize/Deserialize JSON using our custom logic, but only when ContentType is JSON. + /// + internal class CustomJsonCodec : RestSharp.Serializers.ISerializer, RestSharp.Deserializers.IDeserializer + { + private readonly IReadableConfiguration _configuration; + private readonly JsonSerializer _serializer; + private string _contentType = "application/json"; + private readonly JsonSerializerSettings _serializerSettings = new JsonSerializerSettings + { + // Swagger generated types generally hide default constructors. + ConstructorHandling = ConstructorHandling.AllowNonPublicDefaultConstructor + }; + + public CustomJsonCodec(IReadableConfiguration configuration) + { + _configuration = configuration; + _serializer = JsonSerializer.Create(_serializerSettings); + } + + public CustomJsonCodec(JsonSerializerSettings serializerSettings, IReadableConfiguration configuration) + { + _serializerSettings = serializerSettings; + _serializer = JsonSerializer.Create(_serializerSettings); + _configuration = configuration; + } + + public string Serialize(object obj) + { + using (var writer = new StringWriter()) + using (var jsonWriter = new JsonTextWriter(writer) + { + Formatting = Formatting.None, + DateFormatString = _configuration.DateTimeFormat + }) + { + _serializer.Serialize(jsonWriter, obj); + return writer.ToString(); + } + } + + public T Deserialize(IRestResponse response) + { + return (T) Deserialize(response, typeof(T)); + } + + /// + /// Deserialize the JSON string into a proper object. + /// + /// The HTTP response. + /// Object type. + /// Object representation of the JSON string. + internal object Deserialize(IRestResponse response, Type type) + { + IList headers = response.Headers; + if (type == typeof(byte[])) // return byte array + { + return response.RawBytes; + } + + // TODO: ? if (type.IsAssignableFrom(typeof(Stream))) + if (type == typeof(Stream)) + { + if (headers != null) + { + var filePath = String.IsNullOrEmpty(_configuration.TempFolderPath) + ? Path.GetTempPath() + : _configuration.TempFolderPath; + var regex = new Regex(@"Content-Disposition=.*filename=['""]?([^'""\s]+)['""]?$"); + foreach (var header in headers) + { + var match = regex.Match(header.ToString()); + if (match.Success) + { + string fileName = filePath + ClientUtils.SanitizeFilename(match.Groups[1].Value.Replace("\"", "").Replace("'", "")); + File.WriteAllBytes(fileName, response.RawBytes); + return new FileStream(fileName, FileMode.Open); + } + } + } + var stream = new MemoryStream(response.RawBytes); + return stream; + } + + if (type.Name.StartsWith("System.Nullable`1[[System.DateTime")) // return a datetime object + { + return DateTime.Parse(response.Content, null, System.Globalization.DateTimeStyles.RoundtripKind); + } + + if (type == typeof(String) || type.Name.StartsWith("System.Nullable")) // return primitive type + { + return ClientUtils.ConvertType(response.Content, type); + } + + // at this point, it must be a model (json) + try + { + return JsonConvert.DeserializeObject(response.Content, type, _serializerSettings); + } + catch (Exception e) + { + throw new ApiException(500, e.Message); + } + } + + public string RootElement { get; set; } + public string Namespace { get; set; } + public string DateFormat { get; set; } + + public string ContentType + { + get { return _contentType; } + set { throw new InvalidOperationException("Not allowed to set content type."); } + } + } + /// + /// Provides a default implementation of an Api client (both synchronous and asynchronous implementatios), + /// encapsulating general REST accessor use cases. + /// + public partial class ApiClient : ISynchronousClient, IAsynchronousClient + { + private readonly String _baseUrl; + + /// + /// Allows for extending request processing for generated code. + /// + /// The RestSharp request object + partial void InterceptRequest(IRestRequest request); + + /// + /// Allows for extending response processing for generated code. + /// + /// The RestSharp request object + /// The RestSharp response object + partial void InterceptResponse(IRestRequest request, IRestResponse response); + + /// + /// Initializes a new instance of the , defaulting to the global configurations' base url. + /// + public ApiClient() + { + _baseUrl = Org.OpenAPITools.Client.GlobalConfiguration.Instance.BasePath; + } + + /// + /// Initializes a new instance of the + /// + /// The target service's base path in URL format. + /// + public ApiClient(String basePath) + { + if (String.IsNullOrEmpty(basePath)) + throw new ArgumentException("basePath cannot be empty"); + + _baseUrl = basePath; + } + + /// + /// Constructs the RestSharp version of an http method + /// + /// Swagger Client Custom HttpMethod + /// RestSharp's HttpMethod instance. + /// + private RestSharpMethod Method(HttpMethod method) + { + RestSharpMethod other; + switch (method) + { + case HttpMethod.Get: + other = RestSharpMethod.GET; + break; + case HttpMethod.Post: + other = RestSharpMethod.POST; + break; + case HttpMethod.Put: + other = RestSharpMethod.PUT; + break; + case HttpMethod.Delete: + other = RestSharpMethod.DELETE; + break; + case HttpMethod.Head: + other = RestSharpMethod.HEAD; + break; + case HttpMethod.Options: + other = RestSharpMethod.OPTIONS; + break; + case HttpMethod.Patch: + other = RestSharpMethod.PATCH; + break; + default: + throw new ArgumentOutOfRangeException("method", method, null); + } + + return other; + } + + /// + /// Provides all logic for constructing a new RestSharp . + /// At this point, all information for querying the service is known. Here, it is simply + /// mapped into the RestSharp request. + /// + /// The http verb. + /// The target path (or resource). + /// The additional request options. + /// A per-request configuration object. It is assumed that any merge with + /// GlobalConfiguration has been done before calling this method. + /// [private] A new RestRequest instance. + /// + private RestRequest newRequest( + HttpMethod method, + String path, + RequestOptions options, + IReadableConfiguration configuration) + { + if (path == null) throw new ArgumentNullException("path"); + if (options == null) throw new ArgumentNullException("options"); + if (configuration == null) throw new ArgumentNullException("configuration"); + + RestRequest request = new RestRequest(path, Method(method)); + + if (options.PathParameters != null) + { + foreach (var pathParam in options.PathParameters) + { + request.AddParameter(pathParam.Key, pathParam.Value, ParameterType.UrlSegment); + } + } + + if (options.QueryParameters != null) + { + foreach (var queryParam in options.QueryParameters) + { + foreach (var value in queryParam.Value) + { + request.AddQueryParameter(queryParam.Key, value); + } + } + } + + if (options.HeaderParameters != null) + { + foreach (var headerParam in options.HeaderParameters) + { + foreach (var value in headerParam.Value) + { + request.AddHeader(headerParam.Key, value); + } + } + } + + if (options.FormParameters != null) + { + foreach (var formParam in options.FormParameters) + { + request.AddParameter(formParam.Key, formParam.Value); + } + } + + if (options.Data != null) + { + if (options.HeaderParameters != null) + { + var contentTypes = options.HeaderParameters["Content-Type"]; + if (contentTypes == null || contentTypes.Any(header => header.Contains("application/json"))) + { + request.RequestFormat = DataFormat.Json; + } + else + { + // TODO: Generated client user should add additional handlers. RestSharp only supports XML and JSON, with XML as default. + } + } + else + { + // Here, we'll assume JSON APIs are more common. XML can be forced by adding produces/consumes to openapi spec explicitly. + request.RequestFormat = DataFormat.Json; + } + + request.AddBody(options.Data); + } + + if (options.FileParameters != null) + { + foreach (var fileParam in options.FileParameters) + { + var bytes = ClientUtils.ReadAsBytes(fileParam.Value); + var fileStream = fileParam.Value as FileStream; + if (fileStream != null) + FileParameter.Create(fileParam.Key, bytes, System.IO.Path.GetFileName(fileStream.Name)); + else + FileParameter.Create(fileParam.Key, bytes, "no_file_name_provided"); + } + } + + if (options.Cookies != null && options.Cookies.Count > 0) + { + foreach (var cookie in options.Cookies) + { + request.AddCookie(cookie.Name, cookie.Value); + } + } + + return request; + } + + private ApiResponse toApiResponse(IRestResponse response) + { + T result = response.Data; + var transformed = new ApiResponse(response.StatusCode, new Multimap(), result) + { + ErrorText = response.ErrorMessage, + Cookies = new List() + }; + + if (response.Headers != null) + { + foreach (var responseHeader in response.Headers) + { + transformed.Headers.Add(responseHeader.Name, ClientUtils.ParameterToString(responseHeader.Value)); + } + } + + if (response.Cookies != null) + { + foreach (var responseCookies in response.Cookies) + { + transformed.Cookies.Add( + new Cookie( + responseCookies.Name, + responseCookies.Value, + responseCookies.Path, + responseCookies.Domain) + ); + } + } + + return transformed; + } + + private async Task> Exec(RestRequest req, IReadableConfiguration configuration) + { + RestClient client = new RestClient(_baseUrl); + + var codec = new CustomJsonCodec(configuration); + req.JsonSerializer = codec; + client.AddHandler(codec.ContentType, codec); + + client.Timeout = configuration.Timeout; + + if (configuration.UserAgent != null) + { + client.UserAgent = configuration.UserAgent; + } + + InterceptRequest(req); + var response = await client.ExecuteTaskAsync(req); + InterceptResponse(req, response); + + var result = toApiResponse(response); + if (response.ErrorMessage != null) + { + result.ErrorText = response.ErrorMessage; + } + + if (response.Cookies != null && response.Cookies.Count > 0) + { + if(result.Cookies == null) result.Cookies = new List(); + foreach (var restResponseCookie in response.Cookies) + { + var cookie = new Cookie( + restResponseCookie.Name, + restResponseCookie.Value, + restResponseCookie.Path, + restResponseCookie.Domain + ) + { + Comment = restResponseCookie.Comment, + CommentUri = restResponseCookie.CommentUri, + Discard = restResponseCookie.Discard, + Expired = restResponseCookie.Expired, + Expires = restResponseCookie.Expires, + HttpOnly = restResponseCookie.HttpOnly, + Port = restResponseCookie.Port, + Secure = restResponseCookie.Secure, + Version = restResponseCookie.Version + }; + + result.Cookies.Add(cookie); + } + } + return result; + } + + #region IAsynchronousClient + public async Task> GetAsync(string path, RequestOptions options, IReadableConfiguration configuration = null) + { + var config = configuration ?? GlobalConfiguration.Instance; + return await Exec(newRequest(HttpMethod.Get, path, options, config), config); + } + + public async Task> PostAsync(string path, RequestOptions options, IReadableConfiguration configuration = null) + { + var config = configuration ?? GlobalConfiguration.Instance; + return await Exec(newRequest(HttpMethod.Post, path, options, config), config); + } + + public async Task> PutAsync(string path, RequestOptions options, IReadableConfiguration configuration = null) + { + var config = configuration ?? GlobalConfiguration.Instance; + return await Exec(newRequest(HttpMethod.Put, path, options, config), config); + } + + public async Task> DeleteAsync(string path, RequestOptions options, IReadableConfiguration configuration = null) + { + var config = configuration ?? GlobalConfiguration.Instance; + return await Exec(newRequest(HttpMethod.Delete, path, options, config), config); + } + + public async Task> HeadAsync(string path, RequestOptions options, IReadableConfiguration configuration = null) + { + var config = configuration ?? GlobalConfiguration.Instance; + return await Exec(newRequest(HttpMethod.Head, path, options, config), config); + } + + public async Task> OptionsAsync(string path, RequestOptions options, IReadableConfiguration configuration = null) + { + var config = configuration ?? GlobalConfiguration.Instance; + return await Exec(newRequest(HttpMethod.Options, path, options, config), config); + } + + public async Task> PatchAsync(string path, RequestOptions options, IReadableConfiguration configuration = null) + { + var config = configuration ?? GlobalConfiguration.Instance; + return await Exec(newRequest(HttpMethod.Patch, path, options, config), config); + } + #endregion IAsynchronousClient + + #region ISynchronousClient + public ApiResponse Get(string path, RequestOptions options, IReadableConfiguration configuration = null) + { + return GetAsync(path, options, configuration).Result; + } + + public ApiResponse Post(string path, RequestOptions options, IReadableConfiguration configuration = null) + { + return PostAsync(path, options, configuration).Result; + } + + public ApiResponse Put(string path, RequestOptions options, IReadableConfiguration configuration = null) + { + return PutAsync(path, options, configuration).Result; + } + + public ApiResponse Delete(string path, RequestOptions options, IReadableConfiguration configuration = null) + { + return DeleteAsync(path, options, configuration).Result; + } + + public ApiResponse Head(string path, RequestOptions options, IReadableConfiguration configuration = null) + { + return HeadAsync(path, options, configuration).Result; + } + + public ApiResponse Options(string path, RequestOptions options, IReadableConfiguration configuration = null) + { + return OptionsAsync(path, options, configuration).Result; + } + + public ApiResponse Patch(string path, RequestOptions options, IReadableConfiguration configuration = null) + { + return PatchAsync(path, options, configuration).Result; + } + #endregion ISynchronousClient + } +} diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Client/ApiException.cs b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Client/ApiException.cs new file mode 100644 index 00000000000..c419432a04f --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Client/ApiException.cs @@ -0,0 +1,61 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * OpenAPI spec version: 1.0.0 + * + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + + +using System; + +namespace Org.OpenAPITools.Client +{ + /// + /// API Exception + /// + public class ApiException : Exception + { + /// + /// Gets or sets the error code (HTTP status code) + /// + /// The error code (HTTP status code). + public int ErrorCode { get; set; } + + /// + /// Gets or sets the error content (body json object) + /// + /// The error content (Http response body). + public dynamic ErrorContent { get; private set; } + + /// + /// Initializes a new instance of the class. + /// + public ApiException() {} + + /// + /// Initializes a new instance of the class. + /// + /// HTTP status code. + /// Error message. + public ApiException(int errorCode, string message) : base(message) + { + this.ErrorCode = errorCode; + } + + /// + /// Initializes a new instance of the class. + /// + /// HTTP status code. + /// Error message. + /// Error content. + public ApiException(int errorCode, string message, dynamic errorContent = null) : base(message) + { + this.ErrorCode = errorCode; + this.ErrorContent = errorContent; + } + } + +} diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Client/ApiResponse.cs b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Client/ApiResponse.cs new file mode 100644 index 00000000000..7d5adfe9954 --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Client/ApiResponse.cs @@ -0,0 +1,137 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * OpenAPI spec version: 1.0.0 + * + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + + +using System; +using System.Collections.Generic; +using System.Net; + +namespace Org.OpenAPITools.Client +{ + /// + /// Provides a non-generic contract for the ApiResponse wrapper. + /// + public interface IApiResponse + { + /// + /// The data type of + /// + Type ResponseType { get; } + + /// + /// The content of this response + /// + Object Content { get; } + + /// + /// Gets or sets the status code (HTTP status code) + /// + /// The status code. + HttpStatusCode StatusCode { get; } + + /// + /// Gets or sets the HTTP headers + /// + /// HTTP headers + Multimap Headers { get; } + + /// + /// Gets or sets any error text defined by the calling client. + /// + String ErrorText { get; set; } + + /// + /// Gets or sets any cookies passed along on the response. + /// + List Cookies { get; set; } + } + + /// + /// API Response + /// + public class ApiResponse : IApiResponse + { + #region Properties + + /// + /// Gets or sets the status code (HTTP status code) + /// + /// The status code. + public HttpStatusCode StatusCode { get; } + + /// + /// Gets or sets the HTTP headers + /// + /// HTTP headers + public Multimap Headers { get; } + + /// + /// Gets or sets the data (parsed HTTP body) + /// + /// The data. + public T Data { get; } + + /// + /// Gets or sets any error text defined by the calling client. + /// + public String ErrorText { get; set; } + + /// + /// Gets or sets any cookies passed along on the response. + /// + public List Cookies { get; set; } + + /// + /// The content of this response + /// + public Type ResponseType + { + get { return typeof(T); } + } + + /// + /// The data type of + /// + public object Content + { + get { return Data; } + } + + #endregion Properties + + #region Constructors + + /// + /// Initializes a new instance of the class. + /// + /// HTTP status code. + /// HTTP headers. + /// Data (parsed HTTP body) + public ApiResponse(HttpStatusCode statusCode, Multimap headers, T data) + { + StatusCode = statusCode; + Headers = headers; + Data = data; + } + + /// + /// Initializes a new instance of the class. + /// + /// HTTP status code. + /// Data (parsed HTTP body) + public ApiResponse(HttpStatusCode statusCode, T data) + { + StatusCode = statusCode; + Data = data; + } + + #endregion Constructors + } +} diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Client/ClientUtils.cs b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Client/ClientUtils.cs new file mode 100644 index 00000000000..a4dcda0ba2e --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Client/ClientUtils.cs @@ -0,0 +1,197 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * OpenAPI spec version: 1.0.0 + * + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + + +using System; +using System.Collections; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Net; +using System.Text; +using System.Text.RegularExpressions; +using System.Threading.Tasks; + +namespace Org.OpenAPITools.Client +{ + /// + /// Utility functions providing some benefit to API client consumers. + /// + public static class ClientUtils + { + /// + /// Sanitize filename by removing the path + /// + /// Filename + /// Filename + public static string SanitizeFilename(string filename) + { + Match match = Regex.Match(filename, @".*[/\\](.*)$"); + return match.Success ? match.Groups[1].Value : filename; + } + + /// + /// Convert params to key/value pairs. + /// Use collectionFormat to properly format lists and collections. + /// + /// The swagger-supported collection format, one of: csv, tsv, ssv, pipes, multi + /// Key name. + /// Value object. + /// A multimap of keys with 1..n associated values. + public static Multimap ParameterToMultiMap(string collectionFormat, string name, object value) + { + var parameters = new Multimap(); + + if (IsCollection(value) && collectionFormat == "multi") + { + var valueCollection = value as IEnumerable; + if (valueCollection != null) + { + foreach (var item in valueCollection) + { + parameters.Add(name, ParameterToString(item)); + } + } + } + else + { + parameters.Add(name, ParameterToString(value)); + } + + return parameters; + } + + /// + /// If parameter is DateTime, output in a formatted string (default ISO 8601), customizable with Configuration.DateTime. + /// If parameter is a list, join the list with ",". + /// Otherwise just return the string. + /// + /// The parameter (header, path, query, form). + /// An optional configuration instance, providing formatting options used in processing. + /// Formatted string. + public static string ParameterToString(object obj, IReadableConfiguration configuration = null) + { + if (obj is DateTime) + // Return a formatted date string - Can be customized with Configuration.DateTimeFormat + // Defaults to an ISO 8601, using the known as a Round-trip date/time pattern ("o") + // https://msdn.microsoft.com/en-us/library/az4se3k1(v=vs.110).aspx#Anchor_8 + // For example: 2009-06-15T13:45:30.0000000 + return ((DateTime)obj).ToString((configuration ?? GlobalConfiguration.Instance).DateTimeFormat); + else if (obj is DateTimeOffset) + // Return a formatted date string - Can be customized with Configuration.DateTimeFormat + // Defaults to an ISO 8601, using the known as a Round-trip date/time pattern ("o") + // https://msdn.microsoft.com/en-us/library/az4se3k1(v=vs.110).aspx#Anchor_8 + // For example: 2009-06-15T13:45:30.0000000 + return ((DateTimeOffset)obj).ToString((configuration ?? GlobalConfiguration.Instance).DateTimeFormat); + else + { + if (obj is IList) + { + var list = obj as IList; + var flattenedString = new StringBuilder(); + foreach (var param in list) + { + if (flattenedString.Length > 0) + flattenedString.Append(","); + flattenedString.Append(param); + } + return flattenedString.ToString(); + } + + return Convert.ToString (obj); + } + } + + /// + /// Check if generic object is a collection. + /// + /// + /// True if object is a collection type + private static bool IsCollection(object value) + { + return value is IList || value is ICollection; + } + + /// + /// URL encode a string + /// Credit/Ref: https://github.com/restsharp/RestSharp/blob/master/RestSharp/Extensions/StringExtensions.cs#L50 + /// + /// String to be URL encoded + /// Byte array + public static string UrlEncode(string input) + { + const int maxLength = 32766; + + if (input == null) + { + throw new ArgumentNullException("input"); + } + + if (input.Length <= maxLength) + { + return Uri.EscapeDataString(input); + } + + StringBuilder sb = new StringBuilder(input.Length * 2); + int index = 0; + + while (index < input.Length) + { + int length = Math.Min(input.Length - index, maxLength); + string subString = input.Substring(index, length); + + sb.Append(Uri.EscapeDataString(subString)); + index += subString.Length; + } + + return sb.ToString(); + } + + /// + /// Encode string in base64 format. + /// + /// String to be encoded. + /// Encoded string. + public static string Base64Encode(string text) + { + return System.Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes(text)); + } + + /// + /// Convert stream to byte array + /// + /// Input stream to be converted + /// Byte array + public static byte[] ReadAsBytes(Stream inputStream) + { + byte[] buf = new byte[16*1024]; + using (MemoryStream ms = new MemoryStream()) + { + int count; + while ((count = inputStream.Read(buf, 0, buf.Length)) > 0) + { + ms.Write(buf, 0, count); + } + return ms.ToArray(); + } + } + + /// + /// Dynamically cast the object into target type. + /// + /// Object to be casted + /// Target type + /// Casted object + public static dynamic ConvertType(dynamic fromObject, Type toObject) + { + return Convert.ChangeType(fromObject, toObject); +} + } +} \ No newline at end of file diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Client/Configuration.cs b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Client/Configuration.cs new file mode 100644 index 00000000000..461a43dc01a --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Client/Configuration.cs @@ -0,0 +1,395 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * OpenAPI spec version: 1.0.0 + * + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + + +using System; +using System.Reflection; +using System.Collections.Concurrent; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; + +namespace Org.OpenAPITools.Client +{ + /// + /// Represents a set of configuration settings + /// + public class Configuration : IReadableConfiguration + { + #region Constants + + /// + /// Version of the package. + /// + /// Version of the package. + public const string Version = "1.0.0"; + + /// + /// Identifier for ISO 8601 DateTime Format + /// + /// See https://msdn.microsoft.com/en-us/library/az4se3k1(v=vs.110).aspx#Anchor_8 for more information. + // ReSharper disable once InconsistentNaming + public const string ISO8601_DATETIME_FORMAT = "o"; + + #endregion Constants + + #region Static Members + + /// + /// Default creation of exceptions for a given method name and response object + /// + public static readonly ExceptionFactory DefaultExceptionFactory = (methodName, response) => + { + var status = (int)response.StatusCode; + if (status >= 400) + { + return new ApiException(status, + string.Format("Error calling {0}: {1}", methodName, response.Content), + response.Content); + } + if (status == 0) + { + return new ApiException(status, + string.Format("Error calling {0}: {1}", methodName, response.ErrorText), response.ErrorText); + } + return null; + }; + + #endregion Static Members + + #region Private Members + + /// + /// Defines the base path of the target API server. + /// Example: http://localhost:3000/v1/ + /// + private String _basePath; + + /// + /// Gets or sets the API key based on the authentication name. + /// This is the key and value comprising the "secret" for acessing an API. + /// + /// The API key. + private IDictionary _apiKey; + + /// + /// Gets or sets the prefix (e.g. Token) of the API key based on the authentication name. + /// + /// The prefix of the API key. + private IDictionary _apiKeyPrefix; + + private string _dateTimeFormat = ISO8601_DATETIME_FORMAT; + private string _tempFolderPath = Path.GetTempPath(); + + #endregion Private Members + + #region Constructors + + /// + /// Initializes a new instance of the class + /// + [System.Diagnostics.CodeAnalysis.SuppressMessage("ReSharper", "VirtualMemberCallInConstructor")] + public Configuration() + { + UserAgent = "OpenAPI-Generator/1.0.0/csharp"; + BasePath = "http://petstore.swagger.io:80/v2"; + DefaultHeader = new ConcurrentDictionary(); + ApiKey = new ConcurrentDictionary(); + ApiKeyPrefix = new ConcurrentDictionary(); + + // Setting Timeout has side effects (forces ApiClient creation). + Timeout = 100000; + } + + /// + /// Initializes a new instance of the class + /// + [System.Diagnostics.CodeAnalysis.SuppressMessage("ReSharper", "VirtualMemberCallInConstructor")] + public Configuration( + IDictionary defaultHeader, + IDictionary apiKey, + IDictionary apiKeyPrefix, + string basePath = "http://petstore.swagger.io:80/v2") : this() + { + if (string.IsNullOrWhiteSpace(basePath)) + throw new ArgumentException("The provided basePath is invalid.", "basePath"); + if (defaultHeader == null) + throw new ArgumentNullException("defaultHeader"); + if (apiKey == null) + throw new ArgumentNullException("apiKey"); + if (apiKeyPrefix == null) + throw new ArgumentNullException("apiKeyPrefix"); + + BasePath = basePath; + + foreach (var keyValuePair in defaultHeader) + { + DefaultHeader.Add(keyValuePair); + } + + foreach (var keyValuePair in apiKey) + { + ApiKey.Add(keyValuePair); + } + + foreach (var keyValuePair in apiKeyPrefix) + { + ApiKeyPrefix.Add(keyValuePair); + } + } + + #endregion Constructors + + #region Properties + + /// + /// Gets or sets the base path for API access. + /// + public virtual string BasePath { + get { return _basePath; } + set { + _basePath = value; + } + } + + /// + /// Gets or sets the default header. + /// + public virtual IDictionary DefaultHeader { get; set; } + + /// + /// Gets or sets the HTTP timeout (milliseconds) of ApiClient. Default to 100000 milliseconds. + /// + public virtual int Timeout { get; set; } + + /// + /// Gets or sets the HTTP user agent. + /// + /// Http user agent. + public virtual string UserAgent { get; set; } + + /// + /// Gets or sets the username (HTTP basic authentication). + /// + /// The username. + public virtual string Username { get; set; } + + /// + /// Gets or sets the password (HTTP basic authentication). + /// + /// The password. + public virtual string Password { get; set; } + + /// + /// Gets the API key with prefix. + /// + /// API key identifier (authentication scheme). + /// API key with prefix. + public string GetApiKeyWithPrefix(string apiKeyIdentifier) + { + string apiKeyValue; + ApiKey.TryGetValue (apiKeyIdentifier, out apiKeyValue); + string apiKeyPrefix; + if (ApiKeyPrefix.TryGetValue(apiKeyIdentifier, out apiKeyPrefix)) + { + return apiKeyPrefix + " " + apiKeyValue; + } + + return apiKeyValue; + } + + /// + /// Gets or sets the access token for OAuth2 authentication. + /// + /// This helper property simplifies code generation. + /// + /// The access token. + public virtual string AccessToken { get; set; } + + /// + /// Gets or sets the temporary folder path to store the files downloaded from the server. + /// + /// Folder path. + public virtual string TempFolderPath + { + get { return _tempFolderPath; } + + set + { + if (string.IsNullOrEmpty(value)) + { + _tempFolderPath = Path.GetTempPath(); + return; + } + + // create the directory if it does not exist + if (!Directory.Exists(value)) + { + Directory.CreateDirectory(value); + } + + // check if the path contains directory separator at the end + if (value[value.Length - 1] == Path.DirectorySeparatorChar) + { + _tempFolderPath = value; + } + else + { + _tempFolderPath = value + Path.DirectorySeparatorChar; + } + } + } + + /// + /// Gets or sets the the date time format used when serializing in the ApiClient + /// By default, it's set to ISO 8601 - "o", for others see: + /// https://msdn.microsoft.com/en-us/library/az4se3k1(v=vs.110).aspx + /// and https://msdn.microsoft.com/en-us/library/8kb3ddd4(v=vs.110).aspx + /// No validation is done to ensure that the string you're providing is valid + /// + /// The DateTimeFormat string + public virtual string DateTimeFormat + { + get { return _dateTimeFormat; } + set + { + if (string.IsNullOrEmpty(value)) + { + // Never allow a blank or null string, go back to the default + _dateTimeFormat = ISO8601_DATETIME_FORMAT; + return; + } + + // Caution, no validation when you choose date time format other than ISO 8601 + // Take a look at the above links + _dateTimeFormat = value; + } + } + + /// + /// Gets or sets the prefix (e.g. Token) of the API key based on the authentication name. + /// + /// Whatever you set here will be prepended to the value defined in AddApiKey. + /// + /// An example invocation here might be: + /// + /// ApiKeyPrefix["Authorization"] = "Bearer"; + /// + /// … where ApiKey["Authorization"] would then be used to set the value of your bearer token. + /// + /// + /// OAuth2 workflows should set tokens via AccessToken. + /// + /// + /// The prefix of the API key. + public virtual IDictionary ApiKeyPrefix + { + get { return _apiKeyPrefix; } + set + { + if (value == null) + { + throw new InvalidOperationException("ApiKeyPrefix collection may not be null."); + } + _apiKeyPrefix = value; + } + } + + /// + /// Gets or sets the API key based on the authentication name. + /// + /// The API key. + public virtual IDictionary ApiKey + { + get { return _apiKey; } + set + { + if (value == null) + { + throw new InvalidOperationException("ApiKey collection may not be null."); + } + _apiKey = value; + } + } + + #endregion Properties + + #region Methods + + /// + /// Returns a string with essential information for debugging. + /// + public static String ToDebugReport() + { + String report = "C# SDK (Org.OpenAPITools) Debug Report:\n"; + report += " OS: " + System.Environment.OSVersion + "\n"; + report += " .NET Framework Version: " + System.Environment.Version + "\n"; + report += " Version of the API: 1.0.0\n"; + report += " SDK Package Version: 1.0.0\n"; + + return report; + } + + /// + /// Add Api Key Header. + /// + /// Api Key name. + /// Api Key value. + /// + public void AddApiKey(string key, string value) + { + ApiKey[key] = value; + } + + /// + /// Sets the API key prefix. + /// + /// Api Key name. + /// Api Key value. + public void AddApiKeyPrefix(string key, string value) + { + ApiKeyPrefix[key] = value; + } + + #endregion Methods + + #region Static Members + public static IReadableConfiguration MergeConfigurations(IReadableConfiguration first, IReadableConfiguration second) + { + if (second == null) return first ?? GlobalConfiguration.Instance; + + Dictionary apiKey = first.ApiKey.ToDictionary(kvp => kvp.Key, kvp => kvp.Value); + Dictionary apiKeyPrefix = first.ApiKeyPrefix.ToDictionary(kvp => kvp.Key, kvp => kvp.Value); + Dictionary defaultHeader = first.DefaultHeader.ToDictionary(kvp => kvp.Key, kvp => kvp.Value); + + foreach (var kvp in second.ApiKey) apiKey[kvp.Key] = kvp.Value; + foreach (var kvp in second.ApiKeyPrefix) apiKeyPrefix[kvp.Key] = kvp.Value; + foreach (var kvp in second.DefaultHeader) defaultHeader[kvp.Key] = kvp.Value; + + var config = new Configuration + { + ApiKey = apiKey, + ApiKeyPrefix = apiKeyPrefix, + DefaultHeader = defaultHeader, + BasePath = second.BasePath ?? first.BasePath, + Timeout = second.Timeout, + UserAgent = second.UserAgent ?? first.UserAgent, + Username = second.Username ?? first.Username, + Password = second.Password ?? first.Password, + AccessToken = second.AccessToken ?? first.AccessToken, + TempFolderPath = second.TempFolderPath ?? first.TempFolderPath, + DateTimeFormat = second.DateTimeFormat ?? first.DateTimeFormat + }; + return config; + } + #endregion Static Members + } +} diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Client/ExceptionFactory.cs b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Client/ExceptionFactory.cs new file mode 100644 index 00000000000..6969e6cd321 --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Client/ExceptionFactory.cs @@ -0,0 +1,23 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * OpenAPI spec version: 1.0.0 + * + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + + +using System; + +namespace Org.OpenAPITools.Client +{ + /// + /// A delegate to ExceptionFactory method + /// + /// Method name + /// Response + /// Exceptions + public delegate Exception ExceptionFactory(string methodName, IApiResponse response); +} diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Client/GlobalConfiguration.cs b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Client/GlobalConfiguration.cs new file mode 100644 index 00000000000..3e118b15fa3 --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Client/GlobalConfiguration.cs @@ -0,0 +1,68 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * OpenAPI spec version: 1.0.0 + * + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + + +using System.Collections.Generic; + +namespace Org.OpenAPITools.Client +{ + /// + /// provides a compile-time extension point for globally configuring + /// API Clients. + /// + /// + /// A customized implementation via partial class may reside in another file and may + /// be excluded from automatic generation via a .openapi-generator-ignore file. + /// + public partial class GlobalConfiguration : Configuration + { + #region Private Members + + private static readonly object GlobalConfigSync = new { }; + private static IReadableConfiguration _globalConfiguration; + + #endregion Private Members + + #region Constructors + + /// + private GlobalConfiguration() + { + } + + /// + public GlobalConfiguration(IDictionary defaultHeader, IDictionary apiKey, IDictionary apiKeyPrefix, string basePath = "http://localhost:3000/api") : base(defaultHeader, apiKey, apiKeyPrefix, basePath) + { + } + + static GlobalConfiguration() + { + Instance = new GlobalConfiguration(); + } + + #endregion Constructors + + /// + /// Gets or sets the default Configuration. + /// + /// Configuration. + public static IReadableConfiguration Instance + { + get { return _globalConfiguration; } + set + { + lock (GlobalConfigSync) + { + _globalConfiguration = value; + } + } + } + } +} \ No newline at end of file diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Client/HttpMethod.cs b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Client/HttpMethod.cs new file mode 100644 index 00000000000..8efb98403b8 --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Client/HttpMethod.cs @@ -0,0 +1,27 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * OpenAPI spec version: 1.0.0 + * + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + + +namespace Org.OpenAPITools.Client +{ + /// + /// Http methods supported by swagger + /// + public enum HttpMethod + { + Get, + Post, + Put, + Delete, + Head, + Options, + Patch + } +} \ No newline at end of file diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Client/IApiAccessor.cs b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Client/IApiAccessor.cs new file mode 100644 index 00000000000..0fdb137c34c --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Client/IApiAccessor.cs @@ -0,0 +1,38 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * OpenAPI spec version: 1.0.0 + * + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + + +using System; + +namespace Org.OpenAPITools.Client +{ + /// + /// Represents configuration aspects required to interact with the API endpoints. + /// + public interface IApiAccessor + { + /// + /// Gets or sets the configuration object + /// + /// An instance of the Configuration + IReadableConfiguration Configuration {get; set;} + + /// + /// Gets the base path of the API client. + /// + /// The base path + String GetBasePath(); + + /// + /// Provides a factory method hook for the creation of exceptions. + /// + ExceptionFactory ExceptionFactory { get; set; } + } +} diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Client/IAsynchronousClient.cs b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Client/IAsynchronousClient.cs new file mode 100644 index 00000000000..fdd9f05c730 --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Client/IAsynchronousClient.cs @@ -0,0 +1,96 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * OpenAPI spec version: 1.0.0 + * + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + + + +using System; +using System.Threading.Tasks; + +namespace Org.OpenAPITools.Client +{ + /// + /// Contract for Asynchronous RESTful API interactions. + /// + /// This interface allows consumers to provide a custom API accessor client. + /// + public interface IAsynchronousClient + { + /// + /// Executes a non-blocking call to some using the GET http verb. + /// + /// The relative path to invoke. + /// The request parameters to pass along to the client. + /// Per-request configurable settings. + /// The return type. + /// A task eventually representing the response data, decorated with + Task> GetAsync(String path, RequestOptions options, IReadableConfiguration configuration = null); + + /// + /// Executes a non-blocking call to some using the POST http verb. + /// + /// The relative path to invoke. + /// The request parameters to pass along to the client. + /// Per-request configurable settings. + /// The return type. + /// A task eventually representing the response data, decorated with + Task> PostAsync(String path, RequestOptions options, IReadableConfiguration configuration = null); + + /// + /// Executes a non-blocking call to some using the PUT http verb. + /// + /// The relative path to invoke. + /// The request parameters to pass along to the client. + /// Per-request configurable settings. + /// The return type. + /// A task eventually representing the response data, decorated with + Task> PutAsync(String path, RequestOptions options, IReadableConfiguration configuration = null); + + /// + /// Executes a non-blocking call to some using the DELETE http verb. + /// + /// The relative path to invoke. + /// The request parameters to pass along to the client. + /// Per-request configurable settings. + /// The return type. + /// A task eventually representing the response data, decorated with + Task> DeleteAsync(String path, RequestOptions options, IReadableConfiguration configuration = null); + + /// + /// Executes a non-blocking call to some using the HEAD http verb. + /// + /// The relative path to invoke. + /// The request parameters to pass along to the client. + /// Per-request configurable settings. + /// The return type. + /// A task eventually representing the response data, decorated with + Task> HeadAsync(String path, RequestOptions options, IReadableConfiguration configuration = null); + + /// + /// Executes a non-blocking call to some using the OPTIONS http verb. + /// + /// The relative path to invoke. + /// The request parameters to pass along to the client. + /// Per-request configurable settings. + /// The return type. + /// A task eventually representing the response data, decorated with + Task> OptionsAsync(String path, RequestOptions options, IReadableConfiguration configuration = null); + + /// + /// Executes a non-blocking call to some using the PATCH http verb. + /// + /// The relative path to invoke. + /// The request parameters to pass along to the client. + /// Per-request configurable settings. + /// The return type. + /// A task eventually representing the response data, decorated with + Task> PatchAsync(String path, RequestOptions options, IReadableConfiguration configuration = null); + } +} + diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Client/IReadableConfiguration.cs b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Client/IReadableConfiguration.cs new file mode 100644 index 00000000000..76a5f5124fd --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Client/IReadableConfiguration.cs @@ -0,0 +1,94 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * OpenAPI spec version: 1.0.0 + * + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + + +using System.Collections.Generic; + +namespace Org.OpenAPITools.Client +{ + /// + /// Represents a readable-only configuration contract. + /// + public interface IReadableConfiguration + { + /// + /// Gets the access token. + /// + /// Access token. + string AccessToken { get; } + + /// + /// Gets the API key. + /// + /// API key. + IDictionary ApiKey { get; } + + /// + /// Gets the API key prefix. + /// + /// API key prefix. + IDictionary ApiKeyPrefix { get; } + + /// + /// Gets the base path. + /// + /// Base path. + string BasePath { get; } + + /// + /// Gets the date time format. + /// + /// Date time foramt. + string DateTimeFormat { get; } + + /// + /// Gets the default header. + /// + /// Default header. + IDictionary DefaultHeader { get; } + + /// + /// Gets the temp folder path. + /// + /// Temp folder path. + string TempFolderPath { get; } + + /// + /// Gets the HTTP connection timeout (in milliseconds) + /// + /// HTTP connection timeout. + int Timeout { get; } + + /// + /// Gets the user agent. + /// + /// User agent. + string UserAgent { get; } + + /// + /// Gets the username. + /// + /// Username. + string Username { get; } + + /// + /// Gets the password. + /// + /// Password. + string Password { get; } + + /// + /// Gets the API key with prefix. + /// + /// API key identifier (authentication scheme). + /// API key with prefix. + string GetApiKeyWithPrefix(string apiKeyIdentifier); + } +} diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Client/ISynchronousClient.cs b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Client/ISynchronousClient.cs new file mode 100644 index 00000000000..7b837ca506f --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Client/ISynchronousClient.cs @@ -0,0 +1,94 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * OpenAPI spec version: 1.0.0 + * + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + + +using System; +using System.IO; + +namespace Org.OpenAPITools.Client +{ + /// + /// Contract for Synchronous RESTful API interactions. + /// + /// This interface allows consumers to provide a custom API accessor client. + /// + public interface ISynchronousClient + { + /// + /// Executes a blocking call to some using the GET http verb. + /// + /// The relative path to invoke. + /// The request parameters to pass along to the client. + /// Per-request configurable settings. + /// The return type. + /// The response data, decorated with + ApiResponse Get(String path, RequestOptions options, IReadableConfiguration configuration = null); + + /// + /// Executes a blocking call to some using the POST http verb. + /// + /// The relative path to invoke. + /// The request parameters to pass along to the client. + /// Per-request configurable settings. + /// The return type. + /// The response data, decorated with + ApiResponse Post(String path, RequestOptions options, IReadableConfiguration configuration = null); + + /// + /// Executes a blocking call to some using the PUT http verb. + /// + /// The relative path to invoke. + /// The request parameters to pass along to the client. + /// Per-request configurable settings. + /// The return type. + /// The response data, decorated with + ApiResponse Put(String path, RequestOptions options, IReadableConfiguration configuration = null); + + /// + /// Executes a blocking call to some using the DELETE http verb. + /// + /// The relative path to invoke. + /// The request parameters to pass along to the client. + /// Per-request configurable settings. + /// The return type. + /// The response data, decorated with + ApiResponse Delete(String path, RequestOptions options, IReadableConfiguration configuration = null); + + /// + /// Executes a blocking call to some using the HEAD http verb. + /// + /// The relative path to invoke. + /// The request parameters to pass along to the client. + /// Per-request configurable settings. + /// The return type. + /// The response data, decorated with + ApiResponse Head(String path, RequestOptions options, IReadableConfiguration configuration = null); + + /// + /// Executes a blocking call to some using the OPTIONS http verb. + /// + /// The relative path to invoke. + /// The request parameters to pass along to the client. + /// Per-request configurable settings. + /// The return type. + /// The response data, decorated with + ApiResponse Options(String path, RequestOptions options, IReadableConfiguration configuration = null); + + /// + /// Executes a blocking call to some using the PATCH http verb. + /// + /// The relative path to invoke. + /// The request parameters to pass along to the client. + /// Per-request configurable settings. + /// The return type. + /// The response data, decorated with + ApiResponse Patch(String path, RequestOptions options, IReadableConfiguration configuration = null); + } +} \ No newline at end of file diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Client/Multimap.cs b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Client/Multimap.cs new file mode 100644 index 00000000000..38a73b02686 --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Client/Multimap.cs @@ -0,0 +1,196 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * OpenAPI spec version: 1.0.0 + * + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + + +using System; +using System.Collections; +using System.Collections.Concurrent; +using System.Collections.Generic; + +namespace Org.OpenAPITools.Client +{ + /// + /// A dictionary in which one key has many associated values. + /// + /// The type of the key + /// The type of the value associated with the key. + public class Multimap : IDictionary> + { + #region Private Fields + + private readonly ConcurrentDictionary> _dictionary = + new ConcurrentDictionary>(); + + #endregion Private Fields + + #region Enumerators + + public IEnumerator>> GetEnumerator() + { + return _dictionary.GetEnumerator(); + } + + IEnumerator IEnumerable.GetEnumerator() + { + return _dictionary.GetEnumerator(); + } + + #endregion Enumerators + + #region Public Members + + public void Add(KeyValuePair> item) + { + if (!TryAdd(item.Key, item.Value)) + throw new InvalidOperationException("Could not add values to Multimap."); + } + + public void Clear() + { + _dictionary.Clear(); + } + + public bool Contains(KeyValuePair> item) + { + throw new NotImplementedException(); + } + + public void CopyTo(KeyValuePair>[] array, int arrayIndex) + { + throw new NotImplementedException(); + } + + public bool Remove(KeyValuePair> item) + { + throw new NotImplementedException(); + } + + public int Count + { + get + { + return _dictionary.Count; + } + } + + public bool IsReadOnly + { + get + { + return false; + } + } + + public void Add(T key, IList value) + { + if (value != null && value.Count > 0) + { + IList list; + if (_dictionary.TryGetValue(key, out list)) + { + foreach (var k in value) list.Add(k); + } + else + { + list = new List(value); + if (!TryAdd(key, list)) + throw new InvalidOperationException("Could not add values to Multimap."); + } + } + } + + public bool ContainsKey(T key) + { + return _dictionary.ContainsKey(key); + } + + public bool Remove(T key) + { + IList list; + return TryRemove(key, out list); + } + + public bool TryGetValue(T key, out IList value) + { + return _dictionary.TryGetValue(key, out value); + } + + public IList this[T key] + { + get + { + return _dictionary[key]; + } + set { _dictionary[key] = value; } + } + + public ICollection Keys + { + get + { + return _dictionary.Keys; + } + } + + public ICollection> Values + { + get + { + return _dictionary.Values; + } + } + + public void CopyTo(Array array, int index) + { + ((ICollection) _dictionary).CopyTo(array, index); + } + + public void Add(T key, TValue value) + { + if (value != null) + { + IList list; + if (_dictionary.TryGetValue(key, out list)) + { + list.Add(value); + } + else + { + list = new List(); + list.Add(value); + if (!TryAdd(key, list)) + throw new InvalidOperationException("Could not add value to Multimap."); + } + } + } + + #endregion Public Members + + #region Private Members + + /** + * Helper method to encapsulate generator differences between dictioary types. + */ + private bool TryRemove(T key, out IList value) + { + return _dictionary.TryRemove(key, out value); + + } + + /** + * Helper method to encapsulate generator differences between dictioary types. + */ + private bool TryAdd(T key, IList value) + { + return _dictionary.TryAdd(key, value); + } + #endregion Private Members + } +} \ No newline at end of file diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Client/OpenAPIDateConverter.cs b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Client/OpenAPIDateConverter.cs new file mode 100644 index 00000000000..4f5c219d5c6 --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Client/OpenAPIDateConverter.cs @@ -0,0 +1,30 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * OpenAPI spec version: 1.0.0 + * + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + +using Newtonsoft.Json.Converters; + +namespace Org.OpenAPITools.Client +{ + /// + /// Formatter for 'date' openapi formats ss defined by full-date - RFC3339 + /// see https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md#data-types + /// + public class OpenAPIDateConverter : IsoDateTimeConverter + { + /// + /// Initializes a new instance of the class. + /// + public OpenAPIDateConverter() + { + // full-date = date-fullyear "-" date-month "-" date-mday + DateTimeFormat = "yyyy-MM-dd"; + } + } +} diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Client/RequestOptions.cs b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Client/RequestOptions.cs new file mode 100644 index 00000000000..3e7846f24e2 --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Client/RequestOptions.cs @@ -0,0 +1,75 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * OpenAPI spec version: 1.0.0 + * + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + + +using System; +using System.Collections.Generic; +using System.IO; +using System.Net; + +namespace Org.OpenAPITools.Client +{ + /// + /// A container for generalized request inputs. This type allows consumers to extend the request functionality + /// by abstracting away from the default (built-in) request framework (e.g. RestSharp). + /// + public class RequestOptions + { + /// + /// Parameters to be bound to path parts of the Request's URL + /// + public Dictionary PathParameters { get; set; } + + /// + /// Query parameters to be applied to the request. + /// Keys may have 1 or more values associated. + /// + public Multimap QueryParameters { get; set; } + + /// + /// Header parameters to be applied to to the request. + /// Keys may have 1 or more values associated. + /// + public Multimap HeaderParameters { get; set; } + + /// + /// Form parameters to be sent along with the request. + /// + public Dictionary FormParameters { get; set; } + + /// + /// File parameters to be sent along with the request. + /// + public Dictionary FileParameters { get; set; } + + /// + /// Cookies to be sent along with the request. + /// + public List Cookies { get; set; } + + /// + /// Any data associated with a request body. + /// + public Object Data { get; set; } + + /// + /// Constructs a new instance of + /// + public RequestOptions() + { + PathParameters = new Dictionary(); + QueryParameters = new Multimap(); + HeaderParameters = new Multimap(); + FormParameters = new Dictionary(); + FileParameters = new Dictionary(); + Cookies = new List(); + } + } +} \ No newline at end of file diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/AdditionalPropertiesClass.cs b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/AdditionalPropertiesClass.cs new file mode 100644 index 00000000000..59c2d5d047a --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/AdditionalPropertiesClass.cs @@ -0,0 +1,141 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * OpenAPI spec version: 1.0.0 + * + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + + +using System; +using System.Linq; +using System.IO; +using System.Text; +using System.Text.RegularExpressions; +using System.Collections; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Runtime.Serialization; +using Newtonsoft.Json; +using Newtonsoft.Json.Converters; +using System.ComponentModel.DataAnnotations; +using OpenAPIDateConverter = Org.OpenAPITools.Client.OpenAPIDateConverter; + +namespace Org.OpenAPITools.Model +{ + /// + /// AdditionalPropertiesClass + /// + [DataContract] + public partial class AdditionalPropertiesClass : IEquatable, IValidatableObject + { + /// + /// Initializes a new instance of the class. + /// + /// mapProperty. + /// mapOfMapProperty. + public AdditionalPropertiesClass(Dictionary mapProperty = default(Dictionary), Dictionary> mapOfMapProperty = default(Dictionary>)) + { + this.MapProperty = mapProperty; + this.MapOfMapProperty = mapOfMapProperty; + } + + /// + /// Gets or Sets MapProperty + /// + [DataMember(Name="map_property", EmitDefaultValue=false)] + public Dictionary MapProperty { get; set; } + + /// + /// Gets or Sets MapOfMapProperty + /// + [DataMember(Name="map_of_map_property", EmitDefaultValue=false)] + public Dictionary> MapOfMapProperty { get; set; } + + /// + /// Returns the string presentation of the object + /// + /// String presentation of the object + public override string ToString() + { + var sb = new StringBuilder(); + sb.Append("class AdditionalPropertiesClass {\n"); + sb.Append(" MapProperty: ").Append(MapProperty).Append("\n"); + sb.Append(" MapOfMapProperty: ").Append(MapOfMapProperty).Append("\n"); + sb.Append("}\n"); + return sb.ToString(); + } + + /// + /// Returns the JSON string presentation of the object + /// + /// JSON string presentation of the object + public virtual string ToJson() + { + return JsonConvert.SerializeObject(this, Formatting.Indented); + } + + /// + /// Returns true if objects are equal + /// + /// Object to be compared + /// Boolean + public override bool Equals(object input) + { + return this.Equals(input as AdditionalPropertiesClass); + } + + /// + /// Returns true if AdditionalPropertiesClass instances are equal + /// + /// Instance of AdditionalPropertiesClass to be compared + /// Boolean + public bool Equals(AdditionalPropertiesClass input) + { + if (input == null) + return false; + + return + ( + this.MapProperty == input.MapProperty || + this.MapProperty != null && + this.MapProperty.SequenceEqual(input.MapProperty) + ) && + ( + this.MapOfMapProperty == input.MapOfMapProperty || + this.MapOfMapProperty != null && + this.MapOfMapProperty.SequenceEqual(input.MapOfMapProperty) + ); + } + + /// + /// Gets the hash code + /// + /// Hash code + public override int GetHashCode() + { + unchecked // Overflow is fine, just wrap + { + int hashCode = 41; + if (this.MapProperty != null) + hashCode = hashCode * 59 + this.MapProperty.GetHashCode(); + if (this.MapOfMapProperty != null) + hashCode = hashCode * 59 + this.MapOfMapProperty.GetHashCode(); + return hashCode; + } + } + + /// + /// To validate all properties of the instance + /// + /// Validation context + /// Validation Result + IEnumerable IValidatableObject.Validate(ValidationContext validationContext) + { + yield break; + } + } + +} diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/Animal.cs b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/Animal.cs new file mode 100644 index 00000000000..ad48639ccba --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/Animal.cs @@ -0,0 +1,176 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * OpenAPI spec version: 1.0.0 + * + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + + +using System; +using System.Linq; +using System.IO; +using System.Text; +using System.Text.RegularExpressions; +using System.Collections; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Runtime.Serialization; +using Newtonsoft.Json; +using Newtonsoft.Json.Converters; +using JsonSubTypes; +using System.ComponentModel.DataAnnotations; +using OpenAPIDateConverter = Org.OpenAPITools.Client.OpenAPIDateConverter; + +namespace Org.OpenAPITools.Model +{ + /// + /// Animal + /// + [DataContract] + [JsonConverter(typeof(JsonSubtypes), "className")] + [JsonSubtypes.KnownSubType(typeof(Dog), "Dog")] + [JsonSubtypes.KnownSubType(typeof(Cat), "Cat")] + public partial class Animal : IEquatable, IValidatableObject + { + /// + /// Initializes a new instance of the class. + /// + [JsonConstructorAttribute] + protected Animal() { } + /// + /// Initializes a new instance of the class. + /// + /// className (required). + /// color (default to "red"). + public Animal(string className = default(string), string color = "red") + { + // to ensure "className" is required (not null) + if (className == null) + { + throw new InvalidDataException("className is a required property for Animal and cannot be null"); + } + else + { + this.ClassName = className; + } + // use default value if no "color" provided + if (color == null) + { + this.Color = "red"; + } + else + { + this.Color = color; + } + } + + /// + /// Gets or Sets ClassName + /// + [DataMember(Name="className", EmitDefaultValue=false)] + public string ClassName { get; set; } + + /// + /// Gets or Sets Color + /// + [DataMember(Name="color", EmitDefaultValue=false)] + public string Color { get; set; } + + /// + /// Returns the string presentation of the object + /// + /// String presentation of the object + public override string ToString() + { + var sb = new StringBuilder(); + sb.Append("class Animal {\n"); + sb.Append(" ClassName: ").Append(ClassName).Append("\n"); + sb.Append(" Color: ").Append(Color).Append("\n"); + sb.Append("}\n"); + return sb.ToString(); + } + + /// + /// Returns the JSON string presentation of the object + /// + /// JSON string presentation of the object + public virtual string ToJson() + { + return JsonConvert.SerializeObject(this, Formatting.Indented); + } + + /// + /// Returns true if objects are equal + /// + /// Object to be compared + /// Boolean + public override bool Equals(object input) + { + return this.Equals(input as Animal); + } + + /// + /// Returns true if Animal instances are equal + /// + /// Instance of Animal to be compared + /// Boolean + public bool Equals(Animal input) + { + if (input == null) + return false; + + return + ( + this.ClassName == input.ClassName || + (this.ClassName != null && + this.ClassName.Equals(input.ClassName)) + ) && + ( + this.Color == input.Color || + (this.Color != null && + this.Color.Equals(input.Color)) + ); + } + + /// + /// Gets the hash code + /// + /// Hash code + public override int GetHashCode() + { + unchecked // Overflow is fine, just wrap + { + int hashCode = 41; + if (this.ClassName != null) + hashCode = hashCode * 59 + this.ClassName.GetHashCode(); + if (this.Color != null) + hashCode = hashCode * 59 + this.Color.GetHashCode(); + return hashCode; + } + } + + /// + /// To validate all properties of the instance + /// + /// Validation context + /// Validation Result + IEnumerable IValidatableObject.Validate(ValidationContext validationContext) + { + return this.BaseValidate(validationContext); + } + + /// + /// To validate all properties of the instance + /// + /// Validation context + /// Validation Result + protected IEnumerable BaseValidate(ValidationContext validationContext) + { + yield break; + } + } + +} diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/AnimalFarm.cs b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/AnimalFarm.cs new file mode 100644 index 00000000000..b4ebc8d959c --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/AnimalFarm.cs @@ -0,0 +1,111 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * OpenAPI spec version: 1.0.0 + * + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + + +using System; +using System.Linq; +using System.IO; +using System.Text; +using System.Text.RegularExpressions; +using System.Collections; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Runtime.Serialization; +using Newtonsoft.Json; +using Newtonsoft.Json.Converters; +using System.ComponentModel.DataAnnotations; +using OpenAPIDateConverter = Org.OpenAPITools.Client.OpenAPIDateConverter; + +namespace Org.OpenAPITools.Model +{ + /// + /// AnimalFarm + /// + [DataContract] + public partial class AnimalFarm : List, IEquatable, IValidatableObject + { + /// + /// Initializes a new instance of the class. + /// + [JsonConstructorAttribute] + public AnimalFarm() : base() + { + } + + /// + /// Returns the string presentation of the object + /// + /// String presentation of the object + public override string ToString() + { + var sb = new StringBuilder(); + sb.Append("class AnimalFarm {\n"); + sb.Append(" ").Append(base.ToString().Replace("\n", "\n ")).Append("\n"); + sb.Append("}\n"); + return sb.ToString(); + } + + /// + /// Returns the JSON string presentation of the object + /// + /// JSON string presentation of the object + public string ToJson() + { + return JsonConvert.SerializeObject(this, Formatting.Indented); + } + + /// + /// Returns true if objects are equal + /// + /// Object to be compared + /// Boolean + public override bool Equals(object input) + { + return this.Equals(input as AnimalFarm); + } + + /// + /// Returns true if AnimalFarm instances are equal + /// + /// Instance of AnimalFarm to be compared + /// Boolean + public bool Equals(AnimalFarm input) + { + if (input == null) + return false; + + return base.Equals(input); + } + + /// + /// Gets the hash code + /// + /// Hash code + public override int GetHashCode() + { + unchecked // Overflow is fine, just wrap + { + int hashCode = base.GetHashCode(); + return hashCode; + } + } + + /// + /// To validate all properties of the instance + /// + /// Validation context + /// Validation Result + IEnumerable IValidatableObject.Validate(ValidationContext validationContext) + { + yield break; + } + } + +} diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/ApiResponse.cs b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/ApiResponse.cs new file mode 100644 index 00000000000..e5708098f2f --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/ApiResponse.cs @@ -0,0 +1,157 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * OpenAPI spec version: 1.0.0 + * + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + + +using System; +using System.Linq; +using System.IO; +using System.Text; +using System.Text.RegularExpressions; +using System.Collections; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Runtime.Serialization; +using Newtonsoft.Json; +using Newtonsoft.Json.Converters; +using System.ComponentModel.DataAnnotations; +using OpenAPIDateConverter = Org.OpenAPITools.Client.OpenAPIDateConverter; + +namespace Org.OpenAPITools.Model +{ + /// + /// ApiResponse + /// + [DataContract] + public partial class ApiResponse : IEquatable, IValidatableObject + { + /// + /// Initializes a new instance of the class. + /// + /// code. + /// type. + /// message. + public ApiResponse(int? code = default(int?), string type = default(string), string message = default(string)) + { + this.Code = code; + this.Type = type; + this.Message = message; + } + + /// + /// Gets or Sets Code + /// + [DataMember(Name="code", EmitDefaultValue=false)] + public int? Code { get; set; } + + /// + /// Gets or Sets Type + /// + [DataMember(Name="type", EmitDefaultValue=false)] + public string Type { get; set; } + + /// + /// Gets or Sets Message + /// + [DataMember(Name="message", EmitDefaultValue=false)] + public string Message { get; set; } + + /// + /// Returns the string presentation of the object + /// + /// String presentation of the object + public override string ToString() + { + var sb = new StringBuilder(); + sb.Append("class ApiResponse {\n"); + sb.Append(" Code: ").Append(Code).Append("\n"); + sb.Append(" Type: ").Append(Type).Append("\n"); + sb.Append(" Message: ").Append(Message).Append("\n"); + sb.Append("}\n"); + return sb.ToString(); + } + + /// + /// Returns the JSON string presentation of the object + /// + /// JSON string presentation of the object + public virtual string ToJson() + { + return JsonConvert.SerializeObject(this, Formatting.Indented); + } + + /// + /// Returns true if objects are equal + /// + /// Object to be compared + /// Boolean + public override bool Equals(object input) + { + return this.Equals(input as ApiResponse); + } + + /// + /// Returns true if ApiResponse instances are equal + /// + /// Instance of ApiResponse to be compared + /// Boolean + public bool Equals(ApiResponse input) + { + if (input == null) + return false; + + return + ( + this.Code == input.Code || + (this.Code != null && + this.Code.Equals(input.Code)) + ) && + ( + this.Type == input.Type || + (this.Type != null && + this.Type.Equals(input.Type)) + ) && + ( + this.Message == input.Message || + (this.Message != null && + this.Message.Equals(input.Message)) + ); + } + + /// + /// Gets the hash code + /// + /// Hash code + public override int GetHashCode() + { + unchecked // Overflow is fine, just wrap + { + int hashCode = 41; + if (this.Code != null) + hashCode = hashCode * 59 + this.Code.GetHashCode(); + if (this.Type != null) + hashCode = hashCode * 59 + this.Type.GetHashCode(); + if (this.Message != null) + hashCode = hashCode * 59 + this.Message.GetHashCode(); + return hashCode; + } + } + + /// + /// To validate all properties of the instance + /// + /// Validation context + /// Validation Result + IEnumerable IValidatableObject.Validate(ValidationContext validationContext) + { + yield break; + } + } + +} diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/ArrayOfArrayOfNumberOnly.cs b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/ArrayOfArrayOfNumberOnly.cs new file mode 100644 index 00000000000..a878980f831 --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/ArrayOfArrayOfNumberOnly.cs @@ -0,0 +1,125 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * OpenAPI spec version: 1.0.0 + * + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + + +using System; +using System.Linq; +using System.IO; +using System.Text; +using System.Text.RegularExpressions; +using System.Collections; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Runtime.Serialization; +using Newtonsoft.Json; +using Newtonsoft.Json.Converters; +using System.ComponentModel.DataAnnotations; +using OpenAPIDateConverter = Org.OpenAPITools.Client.OpenAPIDateConverter; + +namespace Org.OpenAPITools.Model +{ + /// + /// ArrayOfArrayOfNumberOnly + /// + [DataContract] + public partial class ArrayOfArrayOfNumberOnly : IEquatable, IValidatableObject + { + /// + /// Initializes a new instance of the class. + /// + /// arrayArrayNumber. + public ArrayOfArrayOfNumberOnly(List> arrayArrayNumber = default(List>)) + { + this.ArrayArrayNumber = arrayArrayNumber; + } + + /// + /// Gets or Sets ArrayArrayNumber + /// + [DataMember(Name="ArrayArrayNumber", EmitDefaultValue=false)] + public List> ArrayArrayNumber { get; set; } + + /// + /// Returns the string presentation of the object + /// + /// String presentation of the object + public override string ToString() + { + var sb = new StringBuilder(); + sb.Append("class ArrayOfArrayOfNumberOnly {\n"); + sb.Append(" ArrayArrayNumber: ").Append(ArrayArrayNumber).Append("\n"); + sb.Append("}\n"); + return sb.ToString(); + } + + /// + /// Returns the JSON string presentation of the object + /// + /// JSON string presentation of the object + public virtual string ToJson() + { + return JsonConvert.SerializeObject(this, Formatting.Indented); + } + + /// + /// Returns true if objects are equal + /// + /// Object to be compared + /// Boolean + public override bool Equals(object input) + { + return this.Equals(input as ArrayOfArrayOfNumberOnly); + } + + /// + /// Returns true if ArrayOfArrayOfNumberOnly instances are equal + /// + /// Instance of ArrayOfArrayOfNumberOnly to be compared + /// Boolean + public bool Equals(ArrayOfArrayOfNumberOnly input) + { + if (input == null) + return false; + + return + ( + this.ArrayArrayNumber == input.ArrayArrayNumber || + this.ArrayArrayNumber != null && + this.ArrayArrayNumber.SequenceEqual(input.ArrayArrayNumber) + ); + } + + /// + /// Gets the hash code + /// + /// Hash code + public override int GetHashCode() + { + unchecked // Overflow is fine, just wrap + { + int hashCode = 41; + if (this.ArrayArrayNumber != null) + hashCode = hashCode * 59 + this.ArrayArrayNumber.GetHashCode(); + return hashCode; + } + } + + /// + /// To validate all properties of the instance + /// + /// Validation context + /// Validation Result + IEnumerable IValidatableObject.Validate(ValidationContext validationContext) + { + yield break; + } + } + +} diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/ArrayOfNumberOnly.cs b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/ArrayOfNumberOnly.cs new file mode 100644 index 00000000000..d5947a34321 --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/ArrayOfNumberOnly.cs @@ -0,0 +1,125 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * OpenAPI spec version: 1.0.0 + * + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + + +using System; +using System.Linq; +using System.IO; +using System.Text; +using System.Text.RegularExpressions; +using System.Collections; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Runtime.Serialization; +using Newtonsoft.Json; +using Newtonsoft.Json.Converters; +using System.ComponentModel.DataAnnotations; +using OpenAPIDateConverter = Org.OpenAPITools.Client.OpenAPIDateConverter; + +namespace Org.OpenAPITools.Model +{ + /// + /// ArrayOfNumberOnly + /// + [DataContract] + public partial class ArrayOfNumberOnly : IEquatable, IValidatableObject + { + /// + /// Initializes a new instance of the class. + /// + /// arrayNumber. + public ArrayOfNumberOnly(List arrayNumber = default(List)) + { + this.ArrayNumber = arrayNumber; + } + + /// + /// Gets or Sets ArrayNumber + /// + [DataMember(Name="ArrayNumber", EmitDefaultValue=false)] + public List ArrayNumber { get; set; } + + /// + /// Returns the string presentation of the object + /// + /// String presentation of the object + public override string ToString() + { + var sb = new StringBuilder(); + sb.Append("class ArrayOfNumberOnly {\n"); + sb.Append(" ArrayNumber: ").Append(ArrayNumber).Append("\n"); + sb.Append("}\n"); + return sb.ToString(); + } + + /// + /// Returns the JSON string presentation of the object + /// + /// JSON string presentation of the object + public virtual string ToJson() + { + return JsonConvert.SerializeObject(this, Formatting.Indented); + } + + /// + /// Returns true if objects are equal + /// + /// Object to be compared + /// Boolean + public override bool Equals(object input) + { + return this.Equals(input as ArrayOfNumberOnly); + } + + /// + /// Returns true if ArrayOfNumberOnly instances are equal + /// + /// Instance of ArrayOfNumberOnly to be compared + /// Boolean + public bool Equals(ArrayOfNumberOnly input) + { + if (input == null) + return false; + + return + ( + this.ArrayNumber == input.ArrayNumber || + this.ArrayNumber != null && + this.ArrayNumber.SequenceEqual(input.ArrayNumber) + ); + } + + /// + /// Gets the hash code + /// + /// Hash code + public override int GetHashCode() + { + unchecked // Overflow is fine, just wrap + { + int hashCode = 41; + if (this.ArrayNumber != null) + hashCode = hashCode * 59 + this.ArrayNumber.GetHashCode(); + return hashCode; + } + } + + /// + /// To validate all properties of the instance + /// + /// Validation context + /// Validation Result + IEnumerable IValidatableObject.Validate(ValidationContext validationContext) + { + yield break; + } + } + +} diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/ArrayTest.cs b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/ArrayTest.cs new file mode 100644 index 00000000000..47d0d9d81c1 --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/ArrayTest.cs @@ -0,0 +1,157 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * OpenAPI spec version: 1.0.0 + * + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + + +using System; +using System.Linq; +using System.IO; +using System.Text; +using System.Text.RegularExpressions; +using System.Collections; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Runtime.Serialization; +using Newtonsoft.Json; +using Newtonsoft.Json.Converters; +using System.ComponentModel.DataAnnotations; +using OpenAPIDateConverter = Org.OpenAPITools.Client.OpenAPIDateConverter; + +namespace Org.OpenAPITools.Model +{ + /// + /// ArrayTest + /// + [DataContract] + public partial class ArrayTest : IEquatable, IValidatableObject + { + /// + /// Initializes a new instance of the class. + /// + /// arrayOfString. + /// arrayArrayOfInteger. + /// arrayArrayOfModel. + public ArrayTest(List arrayOfString = default(List), List> arrayArrayOfInteger = default(List>), List> arrayArrayOfModel = default(List>)) + { + this.ArrayOfString = arrayOfString; + this.ArrayArrayOfInteger = arrayArrayOfInteger; + this.ArrayArrayOfModel = arrayArrayOfModel; + } + + /// + /// Gets or Sets ArrayOfString + /// + [DataMember(Name="array_of_string", EmitDefaultValue=false)] + public List ArrayOfString { get; set; } + + /// + /// Gets or Sets ArrayArrayOfInteger + /// + [DataMember(Name="array_array_of_integer", EmitDefaultValue=false)] + public List> ArrayArrayOfInteger { get; set; } + + /// + /// Gets or Sets ArrayArrayOfModel + /// + [DataMember(Name="array_array_of_model", EmitDefaultValue=false)] + public List> ArrayArrayOfModel { get; set; } + + /// + /// Returns the string presentation of the object + /// + /// String presentation of the object + public override string ToString() + { + var sb = new StringBuilder(); + sb.Append("class ArrayTest {\n"); + sb.Append(" ArrayOfString: ").Append(ArrayOfString).Append("\n"); + sb.Append(" ArrayArrayOfInteger: ").Append(ArrayArrayOfInteger).Append("\n"); + sb.Append(" ArrayArrayOfModel: ").Append(ArrayArrayOfModel).Append("\n"); + sb.Append("}\n"); + return sb.ToString(); + } + + /// + /// Returns the JSON string presentation of the object + /// + /// JSON string presentation of the object + public virtual string ToJson() + { + return JsonConvert.SerializeObject(this, Formatting.Indented); + } + + /// + /// Returns true if objects are equal + /// + /// Object to be compared + /// Boolean + public override bool Equals(object input) + { + return this.Equals(input as ArrayTest); + } + + /// + /// Returns true if ArrayTest instances are equal + /// + /// Instance of ArrayTest to be compared + /// Boolean + public bool Equals(ArrayTest input) + { + if (input == null) + return false; + + return + ( + this.ArrayOfString == input.ArrayOfString || + this.ArrayOfString != null && + this.ArrayOfString.SequenceEqual(input.ArrayOfString) + ) && + ( + this.ArrayArrayOfInteger == input.ArrayArrayOfInteger || + this.ArrayArrayOfInteger != null && + this.ArrayArrayOfInteger.SequenceEqual(input.ArrayArrayOfInteger) + ) && + ( + this.ArrayArrayOfModel == input.ArrayArrayOfModel || + this.ArrayArrayOfModel != null && + this.ArrayArrayOfModel.SequenceEqual(input.ArrayArrayOfModel) + ); + } + + /// + /// Gets the hash code + /// + /// Hash code + public override int GetHashCode() + { + unchecked // Overflow is fine, just wrap + { + int hashCode = 41; + if (this.ArrayOfString != null) + hashCode = hashCode * 59 + this.ArrayOfString.GetHashCode(); + if (this.ArrayArrayOfInteger != null) + hashCode = hashCode * 59 + this.ArrayArrayOfInteger.GetHashCode(); + if (this.ArrayArrayOfModel != null) + hashCode = hashCode * 59 + this.ArrayArrayOfModel.GetHashCode(); + return hashCode; + } + } + + /// + /// To validate all properties of the instance + /// + /// Validation context + /// Validation Result + IEnumerable IValidatableObject.Validate(ValidationContext validationContext) + { + yield break; + } + } + +} diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/Capitalization.cs b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/Capitalization.cs new file mode 100644 index 00000000000..d4fd2c1490b --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/Capitalization.cs @@ -0,0 +1,206 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * OpenAPI spec version: 1.0.0 + * + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + + +using System; +using System.Linq; +using System.IO; +using System.Text; +using System.Text.RegularExpressions; +using System.Collections; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Runtime.Serialization; +using Newtonsoft.Json; +using Newtonsoft.Json.Converters; +using System.ComponentModel.DataAnnotations; +using OpenAPIDateConverter = Org.OpenAPITools.Client.OpenAPIDateConverter; + +namespace Org.OpenAPITools.Model +{ + /// + /// Capitalization + /// + [DataContract] + public partial class Capitalization : IEquatable, IValidatableObject + { + /// + /// Initializes a new instance of the class. + /// + /// smallCamel. + /// capitalCamel. + /// smallSnake. + /// capitalSnake. + /// sCAETHFlowPoints. + /// Name of the pet . + public Capitalization(string smallCamel = default(string), string capitalCamel = default(string), string smallSnake = default(string), string capitalSnake = default(string), string sCAETHFlowPoints = default(string), string aTTNAME = default(string)) + { + this.SmallCamel = smallCamel; + this.CapitalCamel = capitalCamel; + this.SmallSnake = smallSnake; + this.CapitalSnake = capitalSnake; + this.SCAETHFlowPoints = sCAETHFlowPoints; + this.ATT_NAME = aTTNAME; + } + + /// + /// Gets or Sets SmallCamel + /// + [DataMember(Name="smallCamel", EmitDefaultValue=false)] + public string SmallCamel { get; set; } + + /// + /// Gets or Sets CapitalCamel + /// + [DataMember(Name="CapitalCamel", EmitDefaultValue=false)] + public string CapitalCamel { get; set; } + + /// + /// Gets or Sets SmallSnake + /// + [DataMember(Name="small_Snake", EmitDefaultValue=false)] + public string SmallSnake { get; set; } + + /// + /// Gets or Sets CapitalSnake + /// + [DataMember(Name="Capital_Snake", EmitDefaultValue=false)] + public string CapitalSnake { get; set; } + + /// + /// Gets or Sets SCAETHFlowPoints + /// + [DataMember(Name="SCA_ETH_Flow_Points", EmitDefaultValue=false)] + public string SCAETHFlowPoints { get; set; } + + /// + /// Name of the pet + /// + /// Name of the pet + [DataMember(Name="ATT_NAME", EmitDefaultValue=false)] + public string ATT_NAME { get; set; } + + /// + /// Returns the string presentation of the object + /// + /// String presentation of the object + public override string ToString() + { + var sb = new StringBuilder(); + sb.Append("class Capitalization {\n"); + sb.Append(" SmallCamel: ").Append(SmallCamel).Append("\n"); + sb.Append(" CapitalCamel: ").Append(CapitalCamel).Append("\n"); + sb.Append(" SmallSnake: ").Append(SmallSnake).Append("\n"); + sb.Append(" CapitalSnake: ").Append(CapitalSnake).Append("\n"); + sb.Append(" SCAETHFlowPoints: ").Append(SCAETHFlowPoints).Append("\n"); + sb.Append(" ATT_NAME: ").Append(ATT_NAME).Append("\n"); + sb.Append("}\n"); + return sb.ToString(); + } + + /// + /// Returns the JSON string presentation of the object + /// + /// JSON string presentation of the object + public virtual string ToJson() + { + return JsonConvert.SerializeObject(this, Formatting.Indented); + } + + /// + /// Returns true if objects are equal + /// + /// Object to be compared + /// Boolean + public override bool Equals(object input) + { + return this.Equals(input as Capitalization); + } + + /// + /// Returns true if Capitalization instances are equal + /// + /// Instance of Capitalization to be compared + /// Boolean + public bool Equals(Capitalization input) + { + if (input == null) + return false; + + return + ( + this.SmallCamel == input.SmallCamel || + (this.SmallCamel != null && + this.SmallCamel.Equals(input.SmallCamel)) + ) && + ( + this.CapitalCamel == input.CapitalCamel || + (this.CapitalCamel != null && + this.CapitalCamel.Equals(input.CapitalCamel)) + ) && + ( + this.SmallSnake == input.SmallSnake || + (this.SmallSnake != null && + this.SmallSnake.Equals(input.SmallSnake)) + ) && + ( + this.CapitalSnake == input.CapitalSnake || + (this.CapitalSnake != null && + this.CapitalSnake.Equals(input.CapitalSnake)) + ) && + ( + this.SCAETHFlowPoints == input.SCAETHFlowPoints || + (this.SCAETHFlowPoints != null && + this.SCAETHFlowPoints.Equals(input.SCAETHFlowPoints)) + ) && + ( + this.ATT_NAME == input.ATT_NAME || + (this.ATT_NAME != null && + this.ATT_NAME.Equals(input.ATT_NAME)) + ); + } + + /// + /// Gets the hash code + /// + /// Hash code + public override int GetHashCode() + { + unchecked // Overflow is fine, just wrap + { + int hashCode = 41; + if (this.SmallCamel != null) + hashCode = hashCode * 59 + this.SmallCamel.GetHashCode(); + if (this.CapitalCamel != null) + hashCode = hashCode * 59 + this.CapitalCamel.GetHashCode(); + if (this.SmallSnake != null) + hashCode = hashCode * 59 + this.SmallSnake.GetHashCode(); + if (this.CapitalSnake != null) + hashCode = hashCode * 59 + this.CapitalSnake.GetHashCode(); + if (this.SCAETHFlowPoints != null) + hashCode = hashCode * 59 + this.SCAETHFlowPoints.GetHashCode(); + if (this.ATT_NAME != null) + hashCode = hashCode * 59 + this.ATT_NAME.GetHashCode(); + return hashCode; + } + } + + /// + /// To validate all properties of the instance + /// + /// Validation context + /// Validation Result + IEnumerable IValidatableObject.Validate(ValidationContext validationContext) + { + yield break; + } + } + +} diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/Cat.cs b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/Cat.cs new file mode 100644 index 00000000000..190a1695741 --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/Cat.cs @@ -0,0 +1,132 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * OpenAPI spec version: 1.0.0 + * + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + + +using System; +using System.Linq; +using System.IO; +using System.Text; +using System.Text.RegularExpressions; +using System.Collections; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Runtime.Serialization; +using Newtonsoft.Json; +using Newtonsoft.Json.Converters; +using System.ComponentModel.DataAnnotations; +using OpenAPIDateConverter = Org.OpenAPITools.Client.OpenAPIDateConverter; + +namespace Org.OpenAPITools.Model +{ + /// + /// Cat + /// + [DataContract] + public partial class Cat : Animal, IEquatable, IValidatableObject + { + /// + /// Initializes a new instance of the class. + /// + [JsonConstructorAttribute] + protected Cat() { } + /// + /// Initializes a new instance of the class. + /// + /// declawed. + public Cat(bool? declawed = default(bool?), string className = default(string), string color = "red") : base(className, color) + { + this.Declawed = declawed; + } + + /// + /// Gets or Sets Declawed + /// + [DataMember(Name="declawed", EmitDefaultValue=false)] + public bool? Declawed { get; set; } + + /// + /// Returns the string presentation of the object + /// + /// String presentation of the object + public override string ToString() + { + var sb = new StringBuilder(); + sb.Append("class Cat {\n"); + sb.Append(" ").Append(base.ToString().Replace("\n", "\n ")).Append("\n"); + sb.Append(" Declawed: ").Append(Declawed).Append("\n"); + sb.Append("}\n"); + return sb.ToString(); + } + + /// + /// Returns the JSON string presentation of the object + /// + /// JSON string presentation of the object + public override string ToJson() + { + return JsonConvert.SerializeObject(this, Formatting.Indented); + } + + /// + /// Returns true if objects are equal + /// + /// Object to be compared + /// Boolean + public override bool Equals(object input) + { + return this.Equals(input as Cat); + } + + /// + /// Returns true if Cat instances are equal + /// + /// Instance of Cat to be compared + /// Boolean + public bool Equals(Cat input) + { + if (input == null) + return false; + + return base.Equals(input) && + ( + this.Declawed == input.Declawed || + (this.Declawed != null && + this.Declawed.Equals(input.Declawed)) + ); + } + + /// + /// Gets the hash code + /// + /// Hash code + public override int GetHashCode() + { + unchecked // Overflow is fine, just wrap + { + int hashCode = base.GetHashCode(); + if (this.Declawed != null) + hashCode = hashCode * 59 + this.Declawed.GetHashCode(); + return hashCode; + } + } + + /// + /// To validate all properties of the instance + /// + /// Validation context + /// Validation Result + IEnumerable IValidatableObject.Validate(ValidationContext validationContext) + { + foreach(var x in BaseValidate(validationContext)) yield return x; + yield break; + } + } + +} diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/Category.cs b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/Category.cs new file mode 100644 index 00000000000..6fba39bdd03 --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/Category.cs @@ -0,0 +1,154 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * OpenAPI spec version: 1.0.0 + * + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + + +using System; +using System.Linq; +using System.IO; +using System.Text; +using System.Text.RegularExpressions; +using System.Collections; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Runtime.Serialization; +using Newtonsoft.Json; +using Newtonsoft.Json.Converters; +using System.ComponentModel.DataAnnotations; +using OpenAPIDateConverter = Org.OpenAPITools.Client.OpenAPIDateConverter; + +namespace Org.OpenAPITools.Model +{ + /// + /// Category + /// + [DataContract] + public partial class Category : IEquatable, IValidatableObject + { + /// + /// Initializes a new instance of the class. + /// + [JsonConstructorAttribute] + protected Category() { } + /// + /// Initializes a new instance of the class. + /// + /// id. + /// name (required) (default to "default-name"). + public Category(long? id = default(long?), string name = "default-name") + { + // to ensure "name" is required (not null) + if (name == null) + { + throw new InvalidDataException("name is a required property for Category and cannot be null"); + } + else + { + this.Name = name; + } + this.Id = id; + } + + /// + /// Gets or Sets Id + /// + [DataMember(Name="id", EmitDefaultValue=false)] + public long? Id { get; set; } + + /// + /// Gets or Sets Name + /// + [DataMember(Name="name", EmitDefaultValue=false)] + public string Name { get; set; } + + /// + /// Returns the string presentation of the object + /// + /// String presentation of the object + public override string ToString() + { + var sb = new StringBuilder(); + sb.Append("class Category {\n"); + sb.Append(" Id: ").Append(Id).Append("\n"); + sb.Append(" Name: ").Append(Name).Append("\n"); + sb.Append("}\n"); + return sb.ToString(); + } + + /// + /// Returns the JSON string presentation of the object + /// + /// JSON string presentation of the object + public virtual string ToJson() + { + return JsonConvert.SerializeObject(this, Formatting.Indented); + } + + /// + /// Returns true if objects are equal + /// + /// Object to be compared + /// Boolean + public override bool Equals(object input) + { + return this.Equals(input as Category); + } + + /// + /// Returns true if Category instances are equal + /// + /// Instance of Category to be compared + /// Boolean + public bool Equals(Category input) + { + if (input == null) + return false; + + return + ( + this.Id == input.Id || + (this.Id != null && + this.Id.Equals(input.Id)) + ) && + ( + this.Name == input.Name || + (this.Name != null && + this.Name.Equals(input.Name)) + ); + } + + /// + /// Gets the hash code + /// + /// Hash code + public override int GetHashCode() + { + unchecked // Overflow is fine, just wrap + { + int hashCode = 41; + if (this.Id != null) + hashCode = hashCode * 59 + this.Id.GetHashCode(); + if (this.Name != null) + hashCode = hashCode * 59 + this.Name.GetHashCode(); + return hashCode; + } + } + + /// + /// To validate all properties of the instance + /// + /// Validation context + /// Validation Result + IEnumerable IValidatableObject.Validate(ValidationContext validationContext) + { + yield break; + } + } + +} diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/ClassModel.cs b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/ClassModel.cs new file mode 100644 index 00000000000..65d25164aaa --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/ClassModel.cs @@ -0,0 +1,125 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * OpenAPI spec version: 1.0.0 + * + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + + +using System; +using System.Linq; +using System.IO; +using System.Text; +using System.Text.RegularExpressions; +using System.Collections; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Runtime.Serialization; +using Newtonsoft.Json; +using Newtonsoft.Json.Converters; +using System.ComponentModel.DataAnnotations; +using OpenAPIDateConverter = Org.OpenAPITools.Client.OpenAPIDateConverter; + +namespace Org.OpenAPITools.Model +{ + /// + /// Model for testing model with \"_class\" property + /// + [DataContract] + public partial class ClassModel : IEquatable, IValidatableObject + { + /// + /// Initializes a new instance of the class. + /// + /// _class. + public ClassModel(string _class = default(string)) + { + this.Class = _class; + } + + /// + /// Gets or Sets Class + /// + [DataMember(Name="_class", EmitDefaultValue=false)] + public string Class { get; set; } + + /// + /// Returns the string presentation of the object + /// + /// String presentation of the object + public override string ToString() + { + var sb = new StringBuilder(); + sb.Append("class ClassModel {\n"); + sb.Append(" Class: ").Append(Class).Append("\n"); + sb.Append("}\n"); + return sb.ToString(); + } + + /// + /// Returns the JSON string presentation of the object + /// + /// JSON string presentation of the object + public virtual string ToJson() + { + return JsonConvert.SerializeObject(this, Formatting.Indented); + } + + /// + /// Returns true if objects are equal + /// + /// Object to be compared + /// Boolean + public override bool Equals(object input) + { + return this.Equals(input as ClassModel); + } + + /// + /// Returns true if ClassModel instances are equal + /// + /// Instance of ClassModel to be compared + /// Boolean + public bool Equals(ClassModel input) + { + if (input == null) + return false; + + return + ( + this.Class == input.Class || + (this.Class != null && + this.Class.Equals(input.Class)) + ); + } + + /// + /// Gets the hash code + /// + /// Hash code + public override int GetHashCode() + { + unchecked // Overflow is fine, just wrap + { + int hashCode = 41; + if (this.Class != null) + hashCode = hashCode * 59 + this.Class.GetHashCode(); + return hashCode; + } + } + + /// + /// To validate all properties of the instance + /// + /// Validation context + /// Validation Result + IEnumerable IValidatableObject.Validate(ValidationContext validationContext) + { + yield break; + } + } + +} diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/Dog.cs b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/Dog.cs new file mode 100644 index 00000000000..bdc139d4ae8 --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/Dog.cs @@ -0,0 +1,132 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * OpenAPI spec version: 1.0.0 + * + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + + +using System; +using System.Linq; +using System.IO; +using System.Text; +using System.Text.RegularExpressions; +using System.Collections; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Runtime.Serialization; +using Newtonsoft.Json; +using Newtonsoft.Json.Converters; +using System.ComponentModel.DataAnnotations; +using OpenAPIDateConverter = Org.OpenAPITools.Client.OpenAPIDateConverter; + +namespace Org.OpenAPITools.Model +{ + /// + /// Dog + /// + [DataContract] + public partial class Dog : Animal, IEquatable, IValidatableObject + { + /// + /// Initializes a new instance of the class. + /// + [JsonConstructorAttribute] + protected Dog() { } + /// + /// Initializes a new instance of the class. + /// + /// breed. + public Dog(string breed = default(string), string className = default(string), string color = "red") : base(className, color) + { + this.Breed = breed; + } + + /// + /// Gets or Sets Breed + /// + [DataMember(Name="breed", EmitDefaultValue=false)] + public string Breed { get; set; } + + /// + /// Returns the string presentation of the object + /// + /// String presentation of the object + public override string ToString() + { + var sb = new StringBuilder(); + sb.Append("class Dog {\n"); + sb.Append(" ").Append(base.ToString().Replace("\n", "\n ")).Append("\n"); + sb.Append(" Breed: ").Append(Breed).Append("\n"); + sb.Append("}\n"); + return sb.ToString(); + } + + /// + /// Returns the JSON string presentation of the object + /// + /// JSON string presentation of the object + public override string ToJson() + { + return JsonConvert.SerializeObject(this, Formatting.Indented); + } + + /// + /// Returns true if objects are equal + /// + /// Object to be compared + /// Boolean + public override bool Equals(object input) + { + return this.Equals(input as Dog); + } + + /// + /// Returns true if Dog instances are equal + /// + /// Instance of Dog to be compared + /// Boolean + public bool Equals(Dog input) + { + if (input == null) + return false; + + return base.Equals(input) && + ( + this.Breed == input.Breed || + (this.Breed != null && + this.Breed.Equals(input.Breed)) + ); + } + + /// + /// Gets the hash code + /// + /// Hash code + public override int GetHashCode() + { + unchecked // Overflow is fine, just wrap + { + int hashCode = base.GetHashCode(); + if (this.Breed != null) + hashCode = hashCode * 59 + this.Breed.GetHashCode(); + return hashCode; + } + } + + /// + /// To validate all properties of the instance + /// + /// Validation context + /// Validation Result + IEnumerable IValidatableObject.Validate(ValidationContext validationContext) + { + foreach(var x in BaseValidate(validationContext)) yield return x; + yield break; + } + } + +} diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/EnumArrays.cs b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/EnumArrays.cs new file mode 100644 index 00000000000..3f5ed93d54b --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/EnumArrays.cs @@ -0,0 +1,182 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * OpenAPI spec version: 1.0.0 + * + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + + +using System; +using System.Linq; +using System.IO; +using System.Text; +using System.Text.RegularExpressions; +using System.Collections; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Runtime.Serialization; +using Newtonsoft.Json; +using Newtonsoft.Json.Converters; +using System.ComponentModel.DataAnnotations; +using OpenAPIDateConverter = Org.OpenAPITools.Client.OpenAPIDateConverter; + +namespace Org.OpenAPITools.Model +{ + /// + /// EnumArrays + /// + [DataContract] + public partial class EnumArrays : IEquatable, IValidatableObject + { + /// + /// Defines JustSymbol + /// + [JsonConverter(typeof(StringEnumConverter))] + public enum JustSymbolEnum + { + /// + /// Enum GreaterThanOrEqualTo for value: >= + /// + [EnumMember(Value = ">=")] + GreaterThanOrEqualTo = 1, + + /// + /// Enum Dollar for value: $ + /// + [EnumMember(Value = "$")] + Dollar = 2 + + } + + /// + /// Gets or Sets JustSymbol + /// + [DataMember(Name="just_symbol", EmitDefaultValue=false)] + public JustSymbolEnum? JustSymbol { get; set; } + /// + /// Defines ArrayEnum + /// + [JsonConverter(typeof(StringEnumConverter))] + public enum ArrayEnumEnum + { + /// + /// Enum Fish for value: fish + /// + [EnumMember(Value = "fish")] + Fish = 1, + + /// + /// Enum Crab for value: crab + /// + [EnumMember(Value = "crab")] + Crab = 2 + + } + + + /// + /// Gets or Sets ArrayEnum + /// + [DataMember(Name="array_enum", EmitDefaultValue=false)] + public List ArrayEnum { get; set; } + /// + /// Initializes a new instance of the class. + /// + /// justSymbol. + /// arrayEnum. + public EnumArrays(JustSymbolEnum? justSymbol = default(JustSymbolEnum?), List arrayEnum = default(List)) + { + this.JustSymbol = justSymbol; + this.ArrayEnum = arrayEnum; + } + + + + /// + /// Returns the string presentation of the object + /// + /// String presentation of the object + public override string ToString() + { + var sb = new StringBuilder(); + sb.Append("class EnumArrays {\n"); + sb.Append(" JustSymbol: ").Append(JustSymbol).Append("\n"); + sb.Append(" ArrayEnum: ").Append(ArrayEnum).Append("\n"); + sb.Append("}\n"); + return sb.ToString(); + } + + /// + /// Returns the JSON string presentation of the object + /// + /// JSON string presentation of the object + public virtual string ToJson() + { + return JsonConvert.SerializeObject(this, Formatting.Indented); + } + + /// + /// Returns true if objects are equal + /// + /// Object to be compared + /// Boolean + public override bool Equals(object input) + { + return this.Equals(input as EnumArrays); + } + + /// + /// Returns true if EnumArrays instances are equal + /// + /// Instance of EnumArrays to be compared + /// Boolean + public bool Equals(EnumArrays input) + { + if (input == null) + return false; + + return + ( + this.JustSymbol == input.JustSymbol || + (this.JustSymbol != null && + this.JustSymbol.Equals(input.JustSymbol)) + ) && + ( + this.ArrayEnum == input.ArrayEnum || + this.ArrayEnum != null && + this.ArrayEnum.SequenceEqual(input.ArrayEnum) + ); + } + + /// + /// Gets the hash code + /// + /// Hash code + public override int GetHashCode() + { + unchecked // Overflow is fine, just wrap + { + int hashCode = 41; + if (this.JustSymbol != null) + hashCode = hashCode * 59 + this.JustSymbol.GetHashCode(); + if (this.ArrayEnum != null) + hashCode = hashCode * 59 + this.ArrayEnum.GetHashCode(); + return hashCode; + } + } + + /// + /// To validate all properties of the instance + /// + /// Validation context + /// Validation Result + IEnumerable IValidatableObject.Validate(ValidationContext validationContext) + { + yield break; + } + } + +} diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/EnumClass.cs b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/EnumClass.cs new file mode 100644 index 00000000000..9773747578d --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/EnumClass.cs @@ -0,0 +1,56 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * OpenAPI spec version: 1.0.0 + * + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + + +using System; +using System.Linq; +using System.IO; +using System.Text; +using System.Text.RegularExpressions; +using System.Collections; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Runtime.Serialization; +using Newtonsoft.Json; +using Newtonsoft.Json.Converters; +using System.ComponentModel.DataAnnotations; +using OpenAPIDateConverter = Org.OpenAPITools.Client.OpenAPIDateConverter; + +namespace Org.OpenAPITools.Model +{ + /// + /// Defines EnumClass + /// + + [JsonConverter(typeof(StringEnumConverter))] + + public enum EnumClass + { + /// + /// Enum Abc for value: _abc + /// + [EnumMember(Value = "_abc")] + Abc = 1, + + /// + /// Enum Efg for value: -efg + /// + [EnumMember(Value = "-efg")] + Efg = 2, + + /// + /// Enum Xyz for value: (xyz) + /// + [EnumMember(Value = "(xyz)")] + Xyz = 3 + + } + +} diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/EnumTest.cs b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/EnumTest.cs new file mode 100644 index 00000000000..b092ad6e356 --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/EnumTest.cs @@ -0,0 +1,291 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * OpenAPI spec version: 1.0.0 + * + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + + +using System; +using System.Linq; +using System.IO; +using System.Text; +using System.Text.RegularExpressions; +using System.Collections; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Runtime.Serialization; +using Newtonsoft.Json; +using Newtonsoft.Json.Converters; +using System.ComponentModel.DataAnnotations; +using OpenAPIDateConverter = Org.OpenAPITools.Client.OpenAPIDateConverter; + +namespace Org.OpenAPITools.Model +{ + /// + /// EnumTest + /// + [DataContract] + public partial class EnumTest : IEquatable, IValidatableObject + { + /// + /// Defines EnumString + /// + [JsonConverter(typeof(StringEnumConverter))] + public enum EnumStringEnum + { + /// + /// Enum UPPER for value: UPPER + /// + [EnumMember(Value = "UPPER")] + UPPER = 1, + + /// + /// Enum Lower for value: lower + /// + [EnumMember(Value = "lower")] + Lower = 2, + + /// + /// Enum Empty for value: + /// + [EnumMember(Value = "")] + Empty = 3 + + } + + /// + /// Gets or Sets EnumString + /// + [DataMember(Name="enum_string", EmitDefaultValue=false)] + public EnumStringEnum? EnumString { get; set; } + /// + /// Defines EnumStringRequired + /// + [JsonConverter(typeof(StringEnumConverter))] + public enum EnumStringRequiredEnum + { + /// + /// Enum UPPER for value: UPPER + /// + [EnumMember(Value = "UPPER")] + UPPER = 1, + + /// + /// Enum Lower for value: lower + /// + [EnumMember(Value = "lower")] + Lower = 2, + + /// + /// Enum Empty for value: + /// + [EnumMember(Value = "")] + Empty = 3 + + } + + /// + /// Gets or Sets EnumStringRequired + /// + [DataMember(Name="enum_string_required", EmitDefaultValue=false)] + public EnumStringRequiredEnum EnumStringRequired { get; set; } + /// + /// Defines EnumInteger + /// + public enum EnumIntegerEnum + { + /// + /// Enum NUMBER_1 for value: 1 + /// + NUMBER_1 = 1, + + /// + /// Enum NUMBER_MINUS_1 for value: -1 + /// + NUMBER_MINUS_1 = -1 + + } + + /// + /// Gets or Sets EnumInteger + /// + [DataMember(Name="enum_integer", EmitDefaultValue=false)] + public EnumIntegerEnum? EnumInteger { get; set; } + /// + /// Defines EnumNumber + /// + [JsonConverter(typeof(StringEnumConverter))] + public enum EnumNumberEnum + { + /// + /// Enum NUMBER_1_DOT_1 for value: 1.1 + /// + [EnumMember(Value = "1.1")] + NUMBER_1_DOT_1 = 1, + + /// + /// Enum NUMBER_MINUS_1_DOT_2 for value: -1.2 + /// + [EnumMember(Value = "-1.2")] + NUMBER_MINUS_1_DOT_2 = 2 + + } + + /// + /// Gets or Sets EnumNumber + /// + [DataMember(Name="enum_number", EmitDefaultValue=false)] + public EnumNumberEnum? EnumNumber { get; set; } + /// + /// Gets or Sets OuterEnum + /// + [DataMember(Name="outerEnum", EmitDefaultValue=false)] + public OuterEnum? OuterEnum { get; set; } + /// + /// Initializes a new instance of the class. + /// + [JsonConstructorAttribute] + protected EnumTest() { } + /// + /// Initializes a new instance of the class. + /// + /// enumString. + /// enumStringRequired (required). + /// enumInteger. + /// enumNumber. + /// outerEnum. + public EnumTest(EnumStringEnum? enumString = default(EnumStringEnum?), EnumStringRequiredEnum enumStringRequired = default(EnumStringRequiredEnum), EnumIntegerEnum? enumInteger = default(EnumIntegerEnum?), EnumNumberEnum? enumNumber = default(EnumNumberEnum?), OuterEnum? outerEnum = default(OuterEnum?)) + { + // to ensure "enumStringRequired" is required (not null) + if (enumStringRequired == null) + { + throw new InvalidDataException("enumStringRequired is a required property for EnumTest and cannot be null"); + } + else + { + this.EnumStringRequired = enumStringRequired; + } + this.EnumString = enumString; + this.EnumInteger = enumInteger; + this.EnumNumber = enumNumber; + this.OuterEnum = outerEnum; + } + + + + + + + /// + /// Returns the string presentation of the object + /// + /// String presentation of the object + public override string ToString() + { + var sb = new StringBuilder(); + sb.Append("class EnumTest {\n"); + sb.Append(" EnumString: ").Append(EnumString).Append("\n"); + sb.Append(" EnumStringRequired: ").Append(EnumStringRequired).Append("\n"); + sb.Append(" EnumInteger: ").Append(EnumInteger).Append("\n"); + sb.Append(" EnumNumber: ").Append(EnumNumber).Append("\n"); + sb.Append(" OuterEnum: ").Append(OuterEnum).Append("\n"); + sb.Append("}\n"); + return sb.ToString(); + } + + /// + /// Returns the JSON string presentation of the object + /// + /// JSON string presentation of the object + public virtual string ToJson() + { + return JsonConvert.SerializeObject(this, Formatting.Indented); + } + + /// + /// Returns true if objects are equal + /// + /// Object to be compared + /// Boolean + public override bool Equals(object input) + { + return this.Equals(input as EnumTest); + } + + /// + /// Returns true if EnumTest instances are equal + /// + /// Instance of EnumTest to be compared + /// Boolean + public bool Equals(EnumTest input) + { + if (input == null) + return false; + + return + ( + this.EnumString == input.EnumString || + (this.EnumString != null && + this.EnumString.Equals(input.EnumString)) + ) && + ( + this.EnumStringRequired == input.EnumStringRequired || + (this.EnumStringRequired != null && + this.EnumStringRequired.Equals(input.EnumStringRequired)) + ) && + ( + this.EnumInteger == input.EnumInteger || + (this.EnumInteger != null && + this.EnumInteger.Equals(input.EnumInteger)) + ) && + ( + this.EnumNumber == input.EnumNumber || + (this.EnumNumber != null && + this.EnumNumber.Equals(input.EnumNumber)) + ) && + ( + this.OuterEnum == input.OuterEnum || + (this.OuterEnum != null && + this.OuterEnum.Equals(input.OuterEnum)) + ); + } + + /// + /// Gets the hash code + /// + /// Hash code + public override int GetHashCode() + { + unchecked // Overflow is fine, just wrap + { + int hashCode = 41; + if (this.EnumString != null) + hashCode = hashCode * 59 + this.EnumString.GetHashCode(); + if (this.EnumStringRequired != null) + hashCode = hashCode * 59 + this.EnumStringRequired.GetHashCode(); + if (this.EnumInteger != null) + hashCode = hashCode * 59 + this.EnumInteger.GetHashCode(); + if (this.EnumNumber != null) + hashCode = hashCode * 59 + this.EnumNumber.GetHashCode(); + if (this.OuterEnum != null) + hashCode = hashCode * 59 + this.OuterEnum.GetHashCode(); + return hashCode; + } + } + + /// + /// To validate all properties of the instance + /// + /// Validation context + /// Validation Result + IEnumerable IValidatableObject.Validate(ValidationContext validationContext) + { + yield break; + } + } + +} diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/File.cs b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/File.cs new file mode 100644 index 00000000000..7e594c1e949 --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/File.cs @@ -0,0 +1,126 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * OpenAPI spec version: 1.0.0 + * + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + + +using System; +using System.Linq; +using System.IO; +using System.Text; +using System.Text.RegularExpressions; +using System.Collections; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Runtime.Serialization; +using Newtonsoft.Json; +using Newtonsoft.Json.Converters; +using System.ComponentModel.DataAnnotations; +using OpenAPIDateConverter = Org.OpenAPITools.Client.OpenAPIDateConverter; + +namespace Org.OpenAPITools.Model +{ + /// + /// Must be named `File` for test. + /// + [DataContract] + public partial class File : IEquatable, IValidatableObject + { + /// + /// Initializes a new instance of the class. + /// + /// Test capitalization. + public File(string sourceURI = default(string)) + { + this.SourceURI = sourceURI; + } + + /// + /// Test capitalization + /// + /// Test capitalization + [DataMember(Name="sourceURI", EmitDefaultValue=false)] + public string SourceURI { get; set; } + + /// + /// Returns the string presentation of the object + /// + /// String presentation of the object + public override string ToString() + { + var sb = new StringBuilder(); + sb.Append("class File {\n"); + sb.Append(" SourceURI: ").Append(SourceURI).Append("\n"); + sb.Append("}\n"); + return sb.ToString(); + } + + /// + /// Returns the JSON string presentation of the object + /// + /// JSON string presentation of the object + public virtual string ToJson() + { + return JsonConvert.SerializeObject(this, Formatting.Indented); + } + + /// + /// Returns true if objects are equal + /// + /// Object to be compared + /// Boolean + public override bool Equals(object input) + { + return this.Equals(input as File); + } + + /// + /// Returns true if File instances are equal + /// + /// Instance of File to be compared + /// Boolean + public bool Equals(File input) + { + if (input == null) + return false; + + return + ( + this.SourceURI == input.SourceURI || + (this.SourceURI != null && + this.SourceURI.Equals(input.SourceURI)) + ); + } + + /// + /// Gets the hash code + /// + /// Hash code + public override int GetHashCode() + { + unchecked // Overflow is fine, just wrap + { + int hashCode = 41; + if (this.SourceURI != null) + hashCode = hashCode * 59 + this.SourceURI.GetHashCode(); + return hashCode; + } + } + + /// + /// To validate all properties of the instance + /// + /// Validation context + /// Validation Result + IEnumerable IValidatableObject.Validate(ValidationContext validationContext) + { + yield break; + } + } + +} diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/FileSchemaTestClass.cs b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/FileSchemaTestClass.cs new file mode 100644 index 00000000000..412c4bee813 --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/FileSchemaTestClass.cs @@ -0,0 +1,141 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * OpenAPI spec version: 1.0.0 + * + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + + +using System; +using System.Linq; +using System.IO; +using System.Text; +using System.Text.RegularExpressions; +using System.Collections; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Runtime.Serialization; +using Newtonsoft.Json; +using Newtonsoft.Json.Converters; +using System.ComponentModel.DataAnnotations; +using OpenAPIDateConverter = Org.OpenAPITools.Client.OpenAPIDateConverter; + +namespace Org.OpenAPITools.Model +{ + /// + /// FileSchemaTestClass + /// + [DataContract] + public partial class FileSchemaTestClass : IEquatable, IValidatableObject + { + /// + /// Initializes a new instance of the class. + /// + /// file. + /// files. + public FileSchemaTestClass(System.IO.Stream file = default(System.IO.Stream), List files = default(List)) + { + this.File = file; + this.Files = files; + } + + /// + /// Gets or Sets File + /// + [DataMember(Name="file", EmitDefaultValue=false)] + public System.IO.Stream File { get; set; } + + /// + /// Gets or Sets Files + /// + [DataMember(Name="files", EmitDefaultValue=false)] + public List Files { get; set; } + + /// + /// Returns the string presentation of the object + /// + /// String presentation of the object + public override string ToString() + { + var sb = new StringBuilder(); + sb.Append("class FileSchemaTestClass {\n"); + sb.Append(" File: ").Append(File).Append("\n"); + sb.Append(" Files: ").Append(Files).Append("\n"); + sb.Append("}\n"); + return sb.ToString(); + } + + /// + /// Returns the JSON string presentation of the object + /// + /// JSON string presentation of the object + public virtual string ToJson() + { + return JsonConvert.SerializeObject(this, Formatting.Indented); + } + + /// + /// Returns true if objects are equal + /// + /// Object to be compared + /// Boolean + public override bool Equals(object input) + { + return this.Equals(input as FileSchemaTestClass); + } + + /// + /// Returns true if FileSchemaTestClass instances are equal + /// + /// Instance of FileSchemaTestClass to be compared + /// Boolean + public bool Equals(FileSchemaTestClass input) + { + if (input == null) + return false; + + return + ( + this.File == input.File || + (this.File != null && + this.File.Equals(input.File)) + ) && + ( + this.Files == input.Files || + this.Files != null && + this.Files.SequenceEqual(input.Files) + ); + } + + /// + /// Gets the hash code + /// + /// Hash code + public override int GetHashCode() + { + unchecked // Overflow is fine, just wrap + { + int hashCode = 41; + if (this.File != null) + hashCode = hashCode * 59 + this.File.GetHashCode(); + if (this.Files != null) + hashCode = hashCode * 59 + this.Files.GetHashCode(); + return hashCode; + } + } + + /// + /// To validate all properties of the instance + /// + /// Validation context + /// Validation Result + IEnumerable IValidatableObject.Validate(ValidationContext validationContext) + { + yield break; + } + } + +} diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/FormatTest.cs b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/FormatTest.cs new file mode 100644 index 00000000000..0a6425d0950 --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/FormatTest.cs @@ -0,0 +1,434 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * OpenAPI spec version: 1.0.0 + * + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + + +using System; +using System.Linq; +using System.IO; +using System.Text; +using System.Text.RegularExpressions; +using System.Collections; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Runtime.Serialization; +using Newtonsoft.Json; +using Newtonsoft.Json.Converters; +using System.ComponentModel.DataAnnotations; +using OpenAPIDateConverter = Org.OpenAPITools.Client.OpenAPIDateConverter; + +namespace Org.OpenAPITools.Model +{ + /// + /// FormatTest + /// + [DataContract] + public partial class FormatTest : IEquatable, IValidatableObject + { + /// + /// Initializes a new instance of the class. + /// + [JsonConstructorAttribute] + protected FormatTest() { } + /// + /// Initializes a new instance of the class. + /// + /// integer. + /// int32. + /// int64. + /// number (required). + /// _float. + /// _double. + /// _string. + /// _byte (required). + /// binary. + /// date (required). + /// dateTime. + /// uuid. + /// password (required). + public FormatTest(int? integer = default(int?), int? int32 = default(int?), long? int64 = default(long?), decimal? number = default(decimal?), float? _float = default(float?), double? _double = default(double?), string _string = default(string), byte[] _byte = default(byte[]), System.IO.Stream binary = default(System.IO.Stream), DateTime? date = default(DateTime?), DateTime? dateTime = default(DateTime?), Guid? uuid = default(Guid?), string password = default(string)) + { + // to ensure "number" is required (not null) + if (number == null) + { + throw new InvalidDataException("number is a required property for FormatTest and cannot be null"); + } + else + { + this.Number = number; + } + // to ensure "_byte" is required (not null) + if (_byte == null) + { + throw new InvalidDataException("_byte is a required property for FormatTest and cannot be null"); + } + else + { + this.Byte = _byte; + } + // to ensure "date" is required (not null) + if (date == null) + { + throw new InvalidDataException("date is a required property for FormatTest and cannot be null"); + } + else + { + this.Date = date; + } + // to ensure "password" is required (not null) + if (password == null) + { + throw new InvalidDataException("password is a required property for FormatTest and cannot be null"); + } + else + { + this.Password = password; + } + this.Integer = integer; + this.Int32 = int32; + this.Int64 = int64; + this.Float = _float; + this.Double = _double; + this.String = _string; + this.Binary = binary; + this.DateTime = dateTime; + this.Uuid = uuid; + } + + /// + /// Gets or Sets Integer + /// + [DataMember(Name="integer", EmitDefaultValue=false)] + public int? Integer { get; set; } + + /// + /// Gets or Sets Int32 + /// + [DataMember(Name="int32", EmitDefaultValue=false)] + public int? Int32 { get; set; } + + /// + /// Gets or Sets Int64 + /// + [DataMember(Name="int64", EmitDefaultValue=false)] + public long? Int64 { get; set; } + + /// + /// Gets or Sets Number + /// + [DataMember(Name="number", EmitDefaultValue=false)] + public decimal? Number { get; set; } + + /// + /// Gets or Sets Float + /// + [DataMember(Name="float", EmitDefaultValue=false)] + public float? Float { get; set; } + + /// + /// Gets or Sets Double + /// + [DataMember(Name="double", EmitDefaultValue=false)] + public double? Double { get; set; } + + /// + /// Gets or Sets String + /// + [DataMember(Name="string", EmitDefaultValue=false)] + public string String { get; set; } + + /// + /// Gets or Sets Byte + /// + [DataMember(Name="byte", EmitDefaultValue=false)] + public byte[] Byte { get; set; } + + /// + /// Gets or Sets Binary + /// + [DataMember(Name="binary", EmitDefaultValue=false)] + public System.IO.Stream Binary { get; set; } + + /// + /// Gets or Sets Date + /// + [DataMember(Name="date", EmitDefaultValue=false)] + [JsonConverter(typeof(OpenAPIDateConverter))] + public DateTime? Date { get; set; } + + /// + /// Gets or Sets DateTime + /// + [DataMember(Name="dateTime", EmitDefaultValue=false)] + public DateTime? DateTime { get; set; } + + /// + /// Gets or Sets Uuid + /// + [DataMember(Name="uuid", EmitDefaultValue=false)] + public Guid? Uuid { get; set; } + + /// + /// Gets or Sets Password + /// + [DataMember(Name="password", EmitDefaultValue=false)] + public string Password { get; set; } + + /// + /// Returns the string presentation of the object + /// + /// String presentation of the object + public override string ToString() + { + var sb = new StringBuilder(); + sb.Append("class FormatTest {\n"); + sb.Append(" Integer: ").Append(Integer).Append("\n"); + sb.Append(" Int32: ").Append(Int32).Append("\n"); + sb.Append(" Int64: ").Append(Int64).Append("\n"); + sb.Append(" Number: ").Append(Number).Append("\n"); + sb.Append(" Float: ").Append(Float).Append("\n"); + sb.Append(" Double: ").Append(Double).Append("\n"); + sb.Append(" String: ").Append(String).Append("\n"); + sb.Append(" Byte: ").Append(Byte).Append("\n"); + sb.Append(" Binary: ").Append(Binary).Append("\n"); + sb.Append(" Date: ").Append(Date).Append("\n"); + sb.Append(" DateTime: ").Append(DateTime).Append("\n"); + sb.Append(" Uuid: ").Append(Uuid).Append("\n"); + sb.Append(" Password: ").Append(Password).Append("\n"); + sb.Append("}\n"); + return sb.ToString(); + } + + /// + /// Returns the JSON string presentation of the object + /// + /// JSON string presentation of the object + public virtual string ToJson() + { + return JsonConvert.SerializeObject(this, Formatting.Indented); + } + + /// + /// Returns true if objects are equal + /// + /// Object to be compared + /// Boolean + public override bool Equals(object input) + { + return this.Equals(input as FormatTest); + } + + /// + /// Returns true if FormatTest instances are equal + /// + /// Instance of FormatTest to be compared + /// Boolean + public bool Equals(FormatTest input) + { + if (input == null) + return false; + + return + ( + this.Integer == input.Integer || + (this.Integer != null && + this.Integer.Equals(input.Integer)) + ) && + ( + this.Int32 == input.Int32 || + (this.Int32 != null && + this.Int32.Equals(input.Int32)) + ) && + ( + this.Int64 == input.Int64 || + (this.Int64 != null && + this.Int64.Equals(input.Int64)) + ) && + ( + this.Number == input.Number || + (this.Number != null && + this.Number.Equals(input.Number)) + ) && + ( + this.Float == input.Float || + (this.Float != null && + this.Float.Equals(input.Float)) + ) && + ( + this.Double == input.Double || + (this.Double != null && + this.Double.Equals(input.Double)) + ) && + ( + this.String == input.String || + (this.String != null && + this.String.Equals(input.String)) + ) && + ( + this.Byte == input.Byte || + (this.Byte != null && + this.Byte.Equals(input.Byte)) + ) && + ( + this.Binary == input.Binary || + (this.Binary != null && + this.Binary.Equals(input.Binary)) + ) && + ( + this.Date == input.Date || + (this.Date != null && + this.Date.Equals(input.Date)) + ) && + ( + this.DateTime == input.DateTime || + (this.DateTime != null && + this.DateTime.Equals(input.DateTime)) + ) && + ( + this.Uuid == input.Uuid || + (this.Uuid != null && + this.Uuid.Equals(input.Uuid)) + ) && + ( + this.Password == input.Password || + (this.Password != null && + this.Password.Equals(input.Password)) + ); + } + + /// + /// Gets the hash code + /// + /// Hash code + public override int GetHashCode() + { + unchecked // Overflow is fine, just wrap + { + int hashCode = 41; + if (this.Integer != null) + hashCode = hashCode * 59 + this.Integer.GetHashCode(); + if (this.Int32 != null) + hashCode = hashCode * 59 + this.Int32.GetHashCode(); + if (this.Int64 != null) + hashCode = hashCode * 59 + this.Int64.GetHashCode(); + if (this.Number != null) + hashCode = hashCode * 59 + this.Number.GetHashCode(); + if (this.Float != null) + hashCode = hashCode * 59 + this.Float.GetHashCode(); + if (this.Double != null) + hashCode = hashCode * 59 + this.Double.GetHashCode(); + if (this.String != null) + hashCode = hashCode * 59 + this.String.GetHashCode(); + if (this.Byte != null) + hashCode = hashCode * 59 + this.Byte.GetHashCode(); + if (this.Binary != null) + hashCode = hashCode * 59 + this.Binary.GetHashCode(); + if (this.Date != null) + hashCode = hashCode * 59 + this.Date.GetHashCode(); + if (this.DateTime != null) + hashCode = hashCode * 59 + this.DateTime.GetHashCode(); + if (this.Uuid != null) + hashCode = hashCode * 59 + this.Uuid.GetHashCode(); + if (this.Password != null) + hashCode = hashCode * 59 + this.Password.GetHashCode(); + return hashCode; + } + } + + /// + /// To validate all properties of the instance + /// + /// Validation context + /// Validation Result + IEnumerable IValidatableObject.Validate(ValidationContext validationContext) + { + // Integer (int?) maximum + if(this.Integer > (int?)100) + { + yield return new System.ComponentModel.DataAnnotations.ValidationResult("Invalid value for Integer, must be a value less than or equal to 100.", new [] { "Integer" }); + } + + // Integer (int?) minimum + if(this.Integer < (int?)10) + { + yield return new System.ComponentModel.DataAnnotations.ValidationResult("Invalid value for Integer, must be a value greater than or equal to 10.", new [] { "Integer" }); + } + + // Int32 (int?) maximum + if(this.Int32 > (int?)200) + { + yield return new System.ComponentModel.DataAnnotations.ValidationResult("Invalid value for Int32, must be a value less than or equal to 200.", new [] { "Int32" }); + } + + // Int32 (int?) minimum + if(this.Int32 < (int?)20) + { + yield return new System.ComponentModel.DataAnnotations.ValidationResult("Invalid value for Int32, must be a value greater than or equal to 20.", new [] { "Int32" }); + } + + // Number (decimal?) maximum + if(this.Number > (decimal?)543.2) + { + yield return new System.ComponentModel.DataAnnotations.ValidationResult("Invalid value for Number, must be a value less than or equal to 543.2.", new [] { "Number" }); + } + + // Number (decimal?) minimum + if(this.Number < (decimal?)32.1) + { + yield return new System.ComponentModel.DataAnnotations.ValidationResult("Invalid value for Number, must be a value greater than or equal to 32.1.", new [] { "Number" }); + } + + // Float (float?) maximum + if(this.Float > (float?)987.6) + { + yield return new System.ComponentModel.DataAnnotations.ValidationResult("Invalid value for Float, must be a value less than or equal to 987.6.", new [] { "Float" }); + } + + // Float (float?) minimum + if(this.Float < (float?)54.3) + { + yield return new System.ComponentModel.DataAnnotations.ValidationResult("Invalid value for Float, must be a value greater than or equal to 54.3.", new [] { "Float" }); + } + + // Double (double?) maximum + if(this.Double > (double?)123.4) + { + yield return new System.ComponentModel.DataAnnotations.ValidationResult("Invalid value for Double, must be a value less than or equal to 123.4.", new [] { "Double" }); + } + + // Double (double?) minimum + if(this.Double < (double?)67.8) + { + yield return new System.ComponentModel.DataAnnotations.ValidationResult("Invalid value for Double, must be a value greater than or equal to 67.8.", new [] { "Double" }); + } + + // String (string) pattern + Regex regexString = new Regex(@"[a-z]", RegexOptions.CultureInvariant | RegexOptions.IgnoreCase); + if (false == regexString.Match(this.String).Success) + { + yield return new System.ComponentModel.DataAnnotations.ValidationResult("Invalid value for String, must match a pattern of " + regexString, new [] { "String" }); + } + + // Password (string) maxLength + if(this.Password != null && this.Password.Length > 64) + { + yield return new System.ComponentModel.DataAnnotations.ValidationResult("Invalid value for Password, length must be less than 64.", new [] { "Password" }); + } + + // Password (string) minLength + if(this.Password != null && this.Password.Length < 10) + { + yield return new System.ComponentModel.DataAnnotations.ValidationResult("Invalid value for Password, length must be greater than 10.", new [] { "Password" }); + } + + yield break; + } + } + +} diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/HasOnlyReadOnly.cs b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/HasOnlyReadOnly.cs new file mode 100644 index 00000000000..30cce0327d5 --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/HasOnlyReadOnly.cs @@ -0,0 +1,138 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * OpenAPI spec version: 1.0.0 + * + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + + +using System; +using System.Linq; +using System.IO; +using System.Text; +using System.Text.RegularExpressions; +using System.Collections; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Runtime.Serialization; +using Newtonsoft.Json; +using Newtonsoft.Json.Converters; +using System.ComponentModel.DataAnnotations; +using OpenAPIDateConverter = Org.OpenAPITools.Client.OpenAPIDateConverter; + +namespace Org.OpenAPITools.Model +{ + /// + /// HasOnlyReadOnly + /// + [DataContract] + public partial class HasOnlyReadOnly : IEquatable, IValidatableObject + { + /// + /// Initializes a new instance of the class. + /// + [JsonConstructorAttribute] + public HasOnlyReadOnly() + { + } + + /// + /// Gets or Sets Bar + /// + [DataMember(Name="bar", EmitDefaultValue=false)] + public string Bar { get; private set; } + + /// + /// Gets or Sets Foo + /// + [DataMember(Name="foo", EmitDefaultValue=false)] + public string Foo { get; private set; } + + /// + /// Returns the string presentation of the object + /// + /// String presentation of the object + public override string ToString() + { + var sb = new StringBuilder(); + sb.Append("class HasOnlyReadOnly {\n"); + sb.Append(" Bar: ").Append(Bar).Append("\n"); + sb.Append(" Foo: ").Append(Foo).Append("\n"); + sb.Append("}\n"); + return sb.ToString(); + } + + /// + /// Returns the JSON string presentation of the object + /// + /// JSON string presentation of the object + public virtual string ToJson() + { + return JsonConvert.SerializeObject(this, Formatting.Indented); + } + + /// + /// Returns true if objects are equal + /// + /// Object to be compared + /// Boolean + public override bool Equals(object input) + { + return this.Equals(input as HasOnlyReadOnly); + } + + /// + /// Returns true if HasOnlyReadOnly instances are equal + /// + /// Instance of HasOnlyReadOnly to be compared + /// Boolean + public bool Equals(HasOnlyReadOnly input) + { + if (input == null) + return false; + + return + ( + this.Bar == input.Bar || + (this.Bar != null && + this.Bar.Equals(input.Bar)) + ) && + ( + this.Foo == input.Foo || + (this.Foo != null && + this.Foo.Equals(input.Foo)) + ); + } + + /// + /// Gets the hash code + /// + /// Hash code + public override int GetHashCode() + { + unchecked // Overflow is fine, just wrap + { + int hashCode = 41; + if (this.Bar != null) + hashCode = hashCode * 59 + this.Bar.GetHashCode(); + if (this.Foo != null) + hashCode = hashCode * 59 + this.Foo.GetHashCode(); + return hashCode; + } + } + + /// + /// To validate all properties of the instance + /// + /// Validation context + /// Validation Result + IEnumerable IValidatableObject.Validate(ValidationContext validationContext) + { + yield break; + } + } + +} diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/List.cs b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/List.cs new file mode 100644 index 00000000000..c5c9e46d63c --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/List.cs @@ -0,0 +1,125 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * OpenAPI spec version: 1.0.0 + * + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + + +using System; +using System.Linq; +using System.IO; +using System.Text; +using System.Text.RegularExpressions; +using System.Collections; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Runtime.Serialization; +using Newtonsoft.Json; +using Newtonsoft.Json.Converters; +using System.ComponentModel.DataAnnotations; +using OpenAPIDateConverter = Org.OpenAPITools.Client.OpenAPIDateConverter; + +namespace Org.OpenAPITools.Model +{ + /// + /// List + /// + [DataContract] + public partial class List : IEquatable, IValidatableObject + { + /// + /// Initializes a new instance of the class. + /// + /// _123list. + public List(string _123list = default(string)) + { + this._123List = _123list; + } + + /// + /// Gets or Sets _123List + /// + [DataMember(Name="123-list", EmitDefaultValue=false)] + public string _123List { get; set; } + + /// + /// Returns the string presentation of the object + /// + /// String presentation of the object + public override string ToString() + { + var sb = new StringBuilder(); + sb.Append("class List {\n"); + sb.Append(" _123List: ").Append(_123List).Append("\n"); + sb.Append("}\n"); + return sb.ToString(); + } + + /// + /// Returns the JSON string presentation of the object + /// + /// JSON string presentation of the object + public virtual string ToJson() + { + return JsonConvert.SerializeObject(this, Formatting.Indented); + } + + /// + /// Returns true if objects are equal + /// + /// Object to be compared + /// Boolean + public override bool Equals(object input) + { + return this.Equals(input as List); + } + + /// + /// Returns true if List instances are equal + /// + /// Instance of List to be compared + /// Boolean + public bool Equals(List input) + { + if (input == null) + return false; + + return + ( + this._123List == input._123List || + (this._123List != null && + this._123List.Equals(input._123List)) + ); + } + + /// + /// Gets the hash code + /// + /// Hash code + public override int GetHashCode() + { + unchecked // Overflow is fine, just wrap + { + int hashCode = 41; + if (this._123List != null) + hashCode = hashCode * 59 + this._123List.GetHashCode(); + return hashCode; + } + } + + /// + /// To validate all properties of the instance + /// + /// Validation context + /// Validation Result + IEnumerable IValidatableObject.Validate(ValidationContext validationContext) + { + yield break; + } + } + +} diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/MapTest.cs b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/MapTest.cs new file mode 100644 index 00000000000..ff1bcfc2205 --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/MapTest.cs @@ -0,0 +1,194 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * OpenAPI spec version: 1.0.0 + * + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + + +using System; +using System.Linq; +using System.IO; +using System.Text; +using System.Text.RegularExpressions; +using System.Collections; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Runtime.Serialization; +using Newtonsoft.Json; +using Newtonsoft.Json.Converters; +using System.ComponentModel.DataAnnotations; +using OpenAPIDateConverter = Org.OpenAPITools.Client.OpenAPIDateConverter; + +namespace Org.OpenAPITools.Model +{ + /// + /// MapTest + /// + [DataContract] + public partial class MapTest : IEquatable, IValidatableObject + { + /// + /// Defines Inner + /// + [JsonConverter(typeof(StringEnumConverter))] + public enum InnerEnum + { + /// + /// Enum UPPER for value: UPPER + /// + [EnumMember(Value = "UPPER")] + UPPER = 1, + + /// + /// Enum Lower for value: lower + /// + [EnumMember(Value = "lower")] + Lower = 2 + + } + + + /// + /// Gets or Sets MapOfEnumString + /// + [DataMember(Name="map_of_enum_string", EmitDefaultValue=false)] + public Dictionary MapOfEnumString { get; set; } + /// + /// Initializes a new instance of the class. + /// + /// mapMapOfString. + /// mapOfEnumString. + /// directMap. + /// indirectMap. + public MapTest(Dictionary> mapMapOfString = default(Dictionary>), Dictionary mapOfEnumString = default(Dictionary), Dictionary directMap = default(Dictionary), Dictionary indirectMap = default(Dictionary)) + { + this.MapMapOfString = mapMapOfString; + this.MapOfEnumString = mapOfEnumString; + this.DirectMap = directMap; + this.IndirectMap = indirectMap; + } + + /// + /// Gets or Sets MapMapOfString + /// + [DataMember(Name="map_map_of_string", EmitDefaultValue=false)] + public Dictionary> MapMapOfString { get; set; } + + + /// + /// Gets or Sets DirectMap + /// + [DataMember(Name="direct_map", EmitDefaultValue=false)] + public Dictionary DirectMap { get; set; } + + /// + /// Gets or Sets IndirectMap + /// + [DataMember(Name="indirect_map", EmitDefaultValue=false)] + public Dictionary IndirectMap { get; set; } + + /// + /// Returns the string presentation of the object + /// + /// String presentation of the object + public override string ToString() + { + var sb = new StringBuilder(); + sb.Append("class MapTest {\n"); + sb.Append(" MapMapOfString: ").Append(MapMapOfString).Append("\n"); + sb.Append(" MapOfEnumString: ").Append(MapOfEnumString).Append("\n"); + sb.Append(" DirectMap: ").Append(DirectMap).Append("\n"); + sb.Append(" IndirectMap: ").Append(IndirectMap).Append("\n"); + sb.Append("}\n"); + return sb.ToString(); + } + + /// + /// Returns the JSON string presentation of the object + /// + /// JSON string presentation of the object + public virtual string ToJson() + { + return JsonConvert.SerializeObject(this, Formatting.Indented); + } + + /// + /// Returns true if objects are equal + /// + /// Object to be compared + /// Boolean + public override bool Equals(object input) + { + return this.Equals(input as MapTest); + } + + /// + /// Returns true if MapTest instances are equal + /// + /// Instance of MapTest to be compared + /// Boolean + public bool Equals(MapTest input) + { + if (input == null) + return false; + + return + ( + this.MapMapOfString == input.MapMapOfString || + this.MapMapOfString != null && + this.MapMapOfString.SequenceEqual(input.MapMapOfString) + ) && + ( + this.MapOfEnumString == input.MapOfEnumString || + this.MapOfEnumString != null && + this.MapOfEnumString.SequenceEqual(input.MapOfEnumString) + ) && + ( + this.DirectMap == input.DirectMap || + this.DirectMap != null && + this.DirectMap.SequenceEqual(input.DirectMap) + ) && + ( + this.IndirectMap == input.IndirectMap || + this.IndirectMap != null && + this.IndirectMap.SequenceEqual(input.IndirectMap) + ); + } + + /// + /// Gets the hash code + /// + /// Hash code + public override int GetHashCode() + { + unchecked // Overflow is fine, just wrap + { + int hashCode = 41; + if (this.MapMapOfString != null) + hashCode = hashCode * 59 + this.MapMapOfString.GetHashCode(); + if (this.MapOfEnumString != null) + hashCode = hashCode * 59 + this.MapOfEnumString.GetHashCode(); + if (this.DirectMap != null) + hashCode = hashCode * 59 + this.DirectMap.GetHashCode(); + if (this.IndirectMap != null) + hashCode = hashCode * 59 + this.IndirectMap.GetHashCode(); + return hashCode; + } + } + + /// + /// To validate all properties of the instance + /// + /// Validation context + /// Validation Result + IEnumerable IValidatableObject.Validate(ValidationContext validationContext) + { + yield break; + } + } + +} diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/MixedPropertiesAndAdditionalPropertiesClass.cs b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/MixedPropertiesAndAdditionalPropertiesClass.cs new file mode 100644 index 00000000000..e729c3292ea --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/MixedPropertiesAndAdditionalPropertiesClass.cs @@ -0,0 +1,157 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * OpenAPI spec version: 1.0.0 + * + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + + +using System; +using System.Linq; +using System.IO; +using System.Text; +using System.Text.RegularExpressions; +using System.Collections; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Runtime.Serialization; +using Newtonsoft.Json; +using Newtonsoft.Json.Converters; +using System.ComponentModel.DataAnnotations; +using OpenAPIDateConverter = Org.OpenAPITools.Client.OpenAPIDateConverter; + +namespace Org.OpenAPITools.Model +{ + /// + /// MixedPropertiesAndAdditionalPropertiesClass + /// + [DataContract] + public partial class MixedPropertiesAndAdditionalPropertiesClass : IEquatable, IValidatableObject + { + /// + /// Initializes a new instance of the class. + /// + /// uuid. + /// dateTime. + /// map. + public MixedPropertiesAndAdditionalPropertiesClass(Guid? uuid = default(Guid?), DateTime? dateTime = default(DateTime?), Dictionary map = default(Dictionary)) + { + this.Uuid = uuid; + this.DateTime = dateTime; + this.Map = map; + } + + /// + /// Gets or Sets Uuid + /// + [DataMember(Name="uuid", EmitDefaultValue=false)] + public Guid? Uuid { get; set; } + + /// + /// Gets or Sets DateTime + /// + [DataMember(Name="dateTime", EmitDefaultValue=false)] + public DateTime? DateTime { get; set; } + + /// + /// Gets or Sets Map + /// + [DataMember(Name="map", EmitDefaultValue=false)] + public Dictionary Map { get; set; } + + /// + /// Returns the string presentation of the object + /// + /// String presentation of the object + public override string ToString() + { + var sb = new StringBuilder(); + sb.Append("class MixedPropertiesAndAdditionalPropertiesClass {\n"); + sb.Append(" Uuid: ").Append(Uuid).Append("\n"); + sb.Append(" DateTime: ").Append(DateTime).Append("\n"); + sb.Append(" Map: ").Append(Map).Append("\n"); + sb.Append("}\n"); + return sb.ToString(); + } + + /// + /// Returns the JSON string presentation of the object + /// + /// JSON string presentation of the object + public virtual string ToJson() + { + return JsonConvert.SerializeObject(this, Formatting.Indented); + } + + /// + /// Returns true if objects are equal + /// + /// Object to be compared + /// Boolean + public override bool Equals(object input) + { + return this.Equals(input as MixedPropertiesAndAdditionalPropertiesClass); + } + + /// + /// Returns true if MixedPropertiesAndAdditionalPropertiesClass instances are equal + /// + /// Instance of MixedPropertiesAndAdditionalPropertiesClass to be compared + /// Boolean + public bool Equals(MixedPropertiesAndAdditionalPropertiesClass input) + { + if (input == null) + return false; + + return + ( + this.Uuid == input.Uuid || + (this.Uuid != null && + this.Uuid.Equals(input.Uuid)) + ) && + ( + this.DateTime == input.DateTime || + (this.DateTime != null && + this.DateTime.Equals(input.DateTime)) + ) && + ( + this.Map == input.Map || + this.Map != null && + this.Map.SequenceEqual(input.Map) + ); + } + + /// + /// Gets the hash code + /// + /// Hash code + public override int GetHashCode() + { + unchecked // Overflow is fine, just wrap + { + int hashCode = 41; + if (this.Uuid != null) + hashCode = hashCode * 59 + this.Uuid.GetHashCode(); + if (this.DateTime != null) + hashCode = hashCode * 59 + this.DateTime.GetHashCode(); + if (this.Map != null) + hashCode = hashCode * 59 + this.Map.GetHashCode(); + return hashCode; + } + } + + /// + /// To validate all properties of the instance + /// + /// Validation context + /// Validation Result + IEnumerable IValidatableObject.Validate(ValidationContext validationContext) + { + yield break; + } + } + +} diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/Model200Response.cs b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/Model200Response.cs new file mode 100644 index 00000000000..76ab8f4e7fe --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/Model200Response.cs @@ -0,0 +1,141 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * OpenAPI spec version: 1.0.0 + * + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + + +using System; +using System.Linq; +using System.IO; +using System.Text; +using System.Text.RegularExpressions; +using System.Collections; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Runtime.Serialization; +using Newtonsoft.Json; +using Newtonsoft.Json.Converters; +using System.ComponentModel.DataAnnotations; +using OpenAPIDateConverter = Org.OpenAPITools.Client.OpenAPIDateConverter; + +namespace Org.OpenAPITools.Model +{ + /// + /// Model for testing model name starting with number + /// + [DataContract] + public partial class Model200Response : IEquatable, IValidatableObject + { + /// + /// Initializes a new instance of the class. + /// + /// name. + /// _class. + public Model200Response(int? name = default(int?), string _class = default(string)) + { + this.Name = name; + this.Class = _class; + } + + /// + /// Gets or Sets Name + /// + [DataMember(Name="name", EmitDefaultValue=false)] + public int? Name { get; set; } + + /// + /// Gets or Sets Class + /// + [DataMember(Name="class", EmitDefaultValue=false)] + public string Class { get; set; } + + /// + /// Returns the string presentation of the object + /// + /// String presentation of the object + public override string ToString() + { + var sb = new StringBuilder(); + sb.Append("class Model200Response {\n"); + sb.Append(" Name: ").Append(Name).Append("\n"); + sb.Append(" Class: ").Append(Class).Append("\n"); + sb.Append("}\n"); + return sb.ToString(); + } + + /// + /// Returns the JSON string presentation of the object + /// + /// JSON string presentation of the object + public virtual string ToJson() + { + return JsonConvert.SerializeObject(this, Formatting.Indented); + } + + /// + /// Returns true if objects are equal + /// + /// Object to be compared + /// Boolean + public override bool Equals(object input) + { + return this.Equals(input as Model200Response); + } + + /// + /// Returns true if Model200Response instances are equal + /// + /// Instance of Model200Response to be compared + /// Boolean + public bool Equals(Model200Response input) + { + if (input == null) + return false; + + return + ( + this.Name == input.Name || + (this.Name != null && + this.Name.Equals(input.Name)) + ) && + ( + this.Class == input.Class || + (this.Class != null && + this.Class.Equals(input.Class)) + ); + } + + /// + /// Gets the hash code + /// + /// Hash code + public override int GetHashCode() + { + unchecked // Overflow is fine, just wrap + { + int hashCode = 41; + if (this.Name != null) + hashCode = hashCode * 59 + this.Name.GetHashCode(); + if (this.Class != null) + hashCode = hashCode * 59 + this.Class.GetHashCode(); + return hashCode; + } + } + + /// + /// To validate all properties of the instance + /// + /// Validation context + /// Validation Result + IEnumerable IValidatableObject.Validate(ValidationContext validationContext) + { + yield break; + } + } + +} diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/ModelClient.cs b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/ModelClient.cs new file mode 100644 index 00000000000..aa6ac6675b1 --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/ModelClient.cs @@ -0,0 +1,125 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * OpenAPI spec version: 1.0.0 + * + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + + +using System; +using System.Linq; +using System.IO; +using System.Text; +using System.Text.RegularExpressions; +using System.Collections; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Runtime.Serialization; +using Newtonsoft.Json; +using Newtonsoft.Json.Converters; +using System.ComponentModel.DataAnnotations; +using OpenAPIDateConverter = Org.OpenAPITools.Client.OpenAPIDateConverter; + +namespace Org.OpenAPITools.Model +{ + /// + /// ModelClient + /// + [DataContract] + public partial class ModelClient : IEquatable, IValidatableObject + { + /// + /// Initializes a new instance of the class. + /// + /// _client. + public ModelClient(string _client = default(string)) + { + this.__Client = _client; + } + + /// + /// Gets or Sets __Client + /// + [DataMember(Name="client", EmitDefaultValue=false)] + public string __Client { get; set; } + + /// + /// Returns the string presentation of the object + /// + /// String presentation of the object + public override string ToString() + { + var sb = new StringBuilder(); + sb.Append("class ModelClient {\n"); + sb.Append(" __Client: ").Append(__Client).Append("\n"); + sb.Append("}\n"); + return sb.ToString(); + } + + /// + /// Returns the JSON string presentation of the object + /// + /// JSON string presentation of the object + public virtual string ToJson() + { + return JsonConvert.SerializeObject(this, Formatting.Indented); + } + + /// + /// Returns true if objects are equal + /// + /// Object to be compared + /// Boolean + public override bool Equals(object input) + { + return this.Equals(input as ModelClient); + } + + /// + /// Returns true if ModelClient instances are equal + /// + /// Instance of ModelClient to be compared + /// Boolean + public bool Equals(ModelClient input) + { + if (input == null) + return false; + + return + ( + this.__Client == input.__Client || + (this.__Client != null && + this.__Client.Equals(input.__Client)) + ); + } + + /// + /// Gets the hash code + /// + /// Hash code + public override int GetHashCode() + { + unchecked // Overflow is fine, just wrap + { + int hashCode = 41; + if (this.__Client != null) + hashCode = hashCode * 59 + this.__Client.GetHashCode(); + return hashCode; + } + } + + /// + /// To validate all properties of the instance + /// + /// Validation context + /// Validation Result + IEnumerable IValidatableObject.Validate(ValidationContext validationContext) + { + yield break; + } + } + +} diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/Name.cs b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/Name.cs new file mode 100644 index 00000000000..db42ccc28be --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/Name.cs @@ -0,0 +1,182 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * OpenAPI spec version: 1.0.0 + * + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + + +using System; +using System.Linq; +using System.IO; +using System.Text; +using System.Text.RegularExpressions; +using System.Collections; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Runtime.Serialization; +using Newtonsoft.Json; +using Newtonsoft.Json.Converters; +using System.ComponentModel.DataAnnotations; +using OpenAPIDateConverter = Org.OpenAPITools.Client.OpenAPIDateConverter; + +namespace Org.OpenAPITools.Model +{ + /// + /// Model for testing model name same as property name + /// + [DataContract] + public partial class Name : IEquatable, IValidatableObject + { + /// + /// Initializes a new instance of the class. + /// + [JsonConstructorAttribute] + protected Name() { } + /// + /// Initializes a new instance of the class. + /// + /// name (required). + /// property. + public Name(int? name = default(int?), string property = default(string)) + { + // to ensure "name" is required (not null) + if (name == null) + { + throw new InvalidDataException("name is a required property for Name and cannot be null"); + } + else + { + this._Name = name; + } + this.Property = property; + } + + /// + /// Gets or Sets _Name + /// + [DataMember(Name="name", EmitDefaultValue=false)] + public int? _Name { get; set; } + + /// + /// Gets or Sets SnakeCase + /// + [DataMember(Name="snake_case", EmitDefaultValue=false)] + public int? SnakeCase { get; private set; } + + /// + /// Gets or Sets Property + /// + [DataMember(Name="property", EmitDefaultValue=false)] + public string Property { get; set; } + + /// + /// Gets or Sets _123Number + /// + [DataMember(Name="123Number", EmitDefaultValue=false)] + public int? _123Number { get; private set; } + + /// + /// Returns the string presentation of the object + /// + /// String presentation of the object + public override string ToString() + { + var sb = new StringBuilder(); + sb.Append("class Name {\n"); + sb.Append(" _Name: ").Append(_Name).Append("\n"); + sb.Append(" SnakeCase: ").Append(SnakeCase).Append("\n"); + sb.Append(" Property: ").Append(Property).Append("\n"); + sb.Append(" _123Number: ").Append(_123Number).Append("\n"); + sb.Append("}\n"); + return sb.ToString(); + } + + /// + /// Returns the JSON string presentation of the object + /// + /// JSON string presentation of the object + public virtual string ToJson() + { + return JsonConvert.SerializeObject(this, Formatting.Indented); + } + + /// + /// Returns true if objects are equal + /// + /// Object to be compared + /// Boolean + public override bool Equals(object input) + { + return this.Equals(input as Name); + } + + /// + /// Returns true if Name instances are equal + /// + /// Instance of Name to be compared + /// Boolean + public bool Equals(Name input) + { + if (input == null) + return false; + + return + ( + this._Name == input._Name || + (this._Name != null && + this._Name.Equals(input._Name)) + ) && + ( + this.SnakeCase == input.SnakeCase || + (this.SnakeCase != null && + this.SnakeCase.Equals(input.SnakeCase)) + ) && + ( + this.Property == input.Property || + (this.Property != null && + this.Property.Equals(input.Property)) + ) && + ( + this._123Number == input._123Number || + (this._123Number != null && + this._123Number.Equals(input._123Number)) + ); + } + + /// + /// Gets the hash code + /// + /// Hash code + public override int GetHashCode() + { + unchecked // Overflow is fine, just wrap + { + int hashCode = 41; + if (this._Name != null) + hashCode = hashCode * 59 + this._Name.GetHashCode(); + if (this.SnakeCase != null) + hashCode = hashCode * 59 + this.SnakeCase.GetHashCode(); + if (this.Property != null) + hashCode = hashCode * 59 + this.Property.GetHashCode(); + if (this._123Number != null) + hashCode = hashCode * 59 + this._123Number.GetHashCode(); + return hashCode; + } + } + + /// + /// To validate all properties of the instance + /// + /// Validation context + /// Validation Result + IEnumerable IValidatableObject.Validate(ValidationContext validationContext) + { + yield break; + } + } + +} diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/NumberOnly.cs b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/NumberOnly.cs new file mode 100644 index 00000000000..5003ae89c25 --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/NumberOnly.cs @@ -0,0 +1,125 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * OpenAPI spec version: 1.0.0 + * + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + + +using System; +using System.Linq; +using System.IO; +using System.Text; +using System.Text.RegularExpressions; +using System.Collections; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Runtime.Serialization; +using Newtonsoft.Json; +using Newtonsoft.Json.Converters; +using System.ComponentModel.DataAnnotations; +using OpenAPIDateConverter = Org.OpenAPITools.Client.OpenAPIDateConverter; + +namespace Org.OpenAPITools.Model +{ + /// + /// NumberOnly + /// + [DataContract] + public partial class NumberOnly : IEquatable, IValidatableObject + { + /// + /// Initializes a new instance of the class. + /// + /// justNumber. + public NumberOnly(decimal? justNumber = default(decimal?)) + { + this.JustNumber = justNumber; + } + + /// + /// Gets or Sets JustNumber + /// + [DataMember(Name="JustNumber", EmitDefaultValue=false)] + public decimal? JustNumber { get; set; } + + /// + /// Returns the string presentation of the object + /// + /// String presentation of the object + public override string ToString() + { + var sb = new StringBuilder(); + sb.Append("class NumberOnly {\n"); + sb.Append(" JustNumber: ").Append(JustNumber).Append("\n"); + sb.Append("}\n"); + return sb.ToString(); + } + + /// + /// Returns the JSON string presentation of the object + /// + /// JSON string presentation of the object + public virtual string ToJson() + { + return JsonConvert.SerializeObject(this, Formatting.Indented); + } + + /// + /// Returns true if objects are equal + /// + /// Object to be compared + /// Boolean + public override bool Equals(object input) + { + return this.Equals(input as NumberOnly); + } + + /// + /// Returns true if NumberOnly instances are equal + /// + /// Instance of NumberOnly to be compared + /// Boolean + public bool Equals(NumberOnly input) + { + if (input == null) + return false; + + return + ( + this.JustNumber == input.JustNumber || + (this.JustNumber != null && + this.JustNumber.Equals(input.JustNumber)) + ); + } + + /// + /// Gets the hash code + /// + /// Hash code + public override int GetHashCode() + { + unchecked // Overflow is fine, just wrap + { + int hashCode = 41; + if (this.JustNumber != null) + hashCode = hashCode * 59 + this.JustNumber.GetHashCode(); + return hashCode; + } + } + + /// + /// To validate all properties of the instance + /// + /// Validation context + /// Validation Result + IEnumerable IValidatableObject.Validate(ValidationContext validationContext) + { + yield break; + } + } + +} diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/Order.cs b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/Order.cs new file mode 100644 index 00000000000..8499d39783a --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/Order.cs @@ -0,0 +1,241 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * OpenAPI spec version: 1.0.0 + * + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + + +using System; +using System.Linq; +using System.IO; +using System.Text; +using System.Text.RegularExpressions; +using System.Collections; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Runtime.Serialization; +using Newtonsoft.Json; +using Newtonsoft.Json.Converters; +using System.ComponentModel.DataAnnotations; +using OpenAPIDateConverter = Org.OpenAPITools.Client.OpenAPIDateConverter; + +namespace Org.OpenAPITools.Model +{ + /// + /// Order + /// + [DataContract] + public partial class Order : IEquatable, IValidatableObject + { + /// + /// Order Status + /// + /// Order Status + [JsonConverter(typeof(StringEnumConverter))] + public enum StatusEnum + { + /// + /// Enum Placed for value: placed + /// + [EnumMember(Value = "placed")] + Placed = 1, + + /// + /// Enum Approved for value: approved + /// + [EnumMember(Value = "approved")] + Approved = 2, + + /// + /// Enum Delivered for value: delivered + /// + [EnumMember(Value = "delivered")] + Delivered = 3 + + } + + /// + /// Order Status + /// + /// Order Status + [DataMember(Name="status", EmitDefaultValue=false)] + public StatusEnum? Status { get; set; } + /// + /// Initializes a new instance of the class. + /// + /// id. + /// petId. + /// quantity. + /// shipDate. + /// Order Status. + /// complete (default to false). + public Order(long? id = default(long?), long? petId = default(long?), int? quantity = default(int?), DateTime? shipDate = default(DateTime?), StatusEnum? status = default(StatusEnum?), bool? complete = false) + { + this.Id = id; + this.PetId = petId; + this.Quantity = quantity; + this.ShipDate = shipDate; + this.Status = status; + // use default value if no "complete" provided + if (complete == null) + { + this.Complete = false; + } + else + { + this.Complete = complete; + } + } + + /// + /// Gets or Sets Id + /// + [DataMember(Name="id", EmitDefaultValue=false)] + public long? Id { get; set; } + + /// + /// Gets or Sets PetId + /// + [DataMember(Name="petId", EmitDefaultValue=false)] + public long? PetId { get; set; } + + /// + /// Gets or Sets Quantity + /// + [DataMember(Name="quantity", EmitDefaultValue=false)] + public int? Quantity { get; set; } + + /// + /// Gets or Sets ShipDate + /// + [DataMember(Name="shipDate", EmitDefaultValue=false)] + public DateTime? ShipDate { get; set; } + + + /// + /// Gets or Sets Complete + /// + [DataMember(Name="complete", EmitDefaultValue=false)] + public bool? Complete { get; set; } + + /// + /// Returns the string presentation of the object + /// + /// String presentation of the object + public override string ToString() + { + var sb = new StringBuilder(); + sb.Append("class Order {\n"); + sb.Append(" Id: ").Append(Id).Append("\n"); + sb.Append(" PetId: ").Append(PetId).Append("\n"); + sb.Append(" Quantity: ").Append(Quantity).Append("\n"); + sb.Append(" ShipDate: ").Append(ShipDate).Append("\n"); + sb.Append(" Status: ").Append(Status).Append("\n"); + sb.Append(" Complete: ").Append(Complete).Append("\n"); + sb.Append("}\n"); + return sb.ToString(); + } + + /// + /// Returns the JSON string presentation of the object + /// + /// JSON string presentation of the object + public virtual string ToJson() + { + return JsonConvert.SerializeObject(this, Formatting.Indented); + } + + /// + /// Returns true if objects are equal + /// + /// Object to be compared + /// Boolean + public override bool Equals(object input) + { + return this.Equals(input as Order); + } + + /// + /// Returns true if Order instances are equal + /// + /// Instance of Order to be compared + /// Boolean + public bool Equals(Order input) + { + if (input == null) + return false; + + return + ( + this.Id == input.Id || + (this.Id != null && + this.Id.Equals(input.Id)) + ) && + ( + this.PetId == input.PetId || + (this.PetId != null && + this.PetId.Equals(input.PetId)) + ) && + ( + this.Quantity == input.Quantity || + (this.Quantity != null && + this.Quantity.Equals(input.Quantity)) + ) && + ( + this.ShipDate == input.ShipDate || + (this.ShipDate != null && + this.ShipDate.Equals(input.ShipDate)) + ) && + ( + this.Status == input.Status || + (this.Status != null && + this.Status.Equals(input.Status)) + ) && + ( + this.Complete == input.Complete || + (this.Complete != null && + this.Complete.Equals(input.Complete)) + ); + } + + /// + /// Gets the hash code + /// + /// Hash code + public override int GetHashCode() + { + unchecked // Overflow is fine, just wrap + { + int hashCode = 41; + if (this.Id != null) + hashCode = hashCode * 59 + this.Id.GetHashCode(); + if (this.PetId != null) + hashCode = hashCode * 59 + this.PetId.GetHashCode(); + if (this.Quantity != null) + hashCode = hashCode * 59 + this.Quantity.GetHashCode(); + if (this.ShipDate != null) + hashCode = hashCode * 59 + this.ShipDate.GetHashCode(); + if (this.Status != null) + hashCode = hashCode * 59 + this.Status.GetHashCode(); + if (this.Complete != null) + hashCode = hashCode * 59 + this.Complete.GetHashCode(); + return hashCode; + } + } + + /// + /// To validate all properties of the instance + /// + /// Validation context + /// Validation Result + IEnumerable IValidatableObject.Validate(ValidationContext validationContext) + { + yield break; + } + } + +} diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/OuterComposite.cs b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/OuterComposite.cs new file mode 100644 index 00000000000..26c75891edc --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/OuterComposite.cs @@ -0,0 +1,157 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * OpenAPI spec version: 1.0.0 + * + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + + +using System; +using System.Linq; +using System.IO; +using System.Text; +using System.Text.RegularExpressions; +using System.Collections; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Runtime.Serialization; +using Newtonsoft.Json; +using Newtonsoft.Json.Converters; +using System.ComponentModel.DataAnnotations; +using OpenAPIDateConverter = Org.OpenAPITools.Client.OpenAPIDateConverter; + +namespace Org.OpenAPITools.Model +{ + /// + /// OuterComposite + /// + [DataContract] + public partial class OuterComposite : IEquatable, IValidatableObject + { + /// + /// Initializes a new instance of the class. + /// + /// myNumber. + /// myString. + /// myBoolean. + public OuterComposite(decimal? myNumber = default(decimal?), string myString = default(string), bool? myBoolean = default(bool?)) + { + this.MyNumber = myNumber; + this.MyString = myString; + this.MyBoolean = myBoolean; + } + + /// + /// Gets or Sets MyNumber + /// + [DataMember(Name="my_number", EmitDefaultValue=false)] + public decimal? MyNumber { get; set; } + + /// + /// Gets or Sets MyString + /// + [DataMember(Name="my_string", EmitDefaultValue=false)] + public string MyString { get; set; } + + /// + /// Gets or Sets MyBoolean + /// + [DataMember(Name="my_boolean", EmitDefaultValue=false)] + public bool? MyBoolean { get; set; } + + /// + /// Returns the string presentation of the object + /// + /// String presentation of the object + public override string ToString() + { + var sb = new StringBuilder(); + sb.Append("class OuterComposite {\n"); + sb.Append(" MyNumber: ").Append(MyNumber).Append("\n"); + sb.Append(" MyString: ").Append(MyString).Append("\n"); + sb.Append(" MyBoolean: ").Append(MyBoolean).Append("\n"); + sb.Append("}\n"); + return sb.ToString(); + } + + /// + /// Returns the JSON string presentation of the object + /// + /// JSON string presentation of the object + public virtual string ToJson() + { + return JsonConvert.SerializeObject(this, Formatting.Indented); + } + + /// + /// Returns true if objects are equal + /// + /// Object to be compared + /// Boolean + public override bool Equals(object input) + { + return this.Equals(input as OuterComposite); + } + + /// + /// Returns true if OuterComposite instances are equal + /// + /// Instance of OuterComposite to be compared + /// Boolean + public bool Equals(OuterComposite input) + { + if (input == null) + return false; + + return + ( + this.MyNumber == input.MyNumber || + (this.MyNumber != null && + this.MyNumber.Equals(input.MyNumber)) + ) && + ( + this.MyString == input.MyString || + (this.MyString != null && + this.MyString.Equals(input.MyString)) + ) && + ( + this.MyBoolean == input.MyBoolean || + (this.MyBoolean != null && + this.MyBoolean.Equals(input.MyBoolean)) + ); + } + + /// + /// Gets the hash code + /// + /// Hash code + public override int GetHashCode() + { + unchecked // Overflow is fine, just wrap + { + int hashCode = 41; + if (this.MyNumber != null) + hashCode = hashCode * 59 + this.MyNumber.GetHashCode(); + if (this.MyString != null) + hashCode = hashCode * 59 + this.MyString.GetHashCode(); + if (this.MyBoolean != null) + hashCode = hashCode * 59 + this.MyBoolean.GetHashCode(); + return hashCode; + } + } + + /// + /// To validate all properties of the instance + /// + /// Validation context + /// Validation Result + IEnumerable IValidatableObject.Validate(ValidationContext validationContext) + { + yield break; + } + } + +} diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/OuterEnum.cs b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/OuterEnum.cs new file mode 100644 index 00000000000..ad5b4ae6d6d --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/OuterEnum.cs @@ -0,0 +1,56 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * OpenAPI spec version: 1.0.0 + * + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + + +using System; +using System.Linq; +using System.IO; +using System.Text; +using System.Text.RegularExpressions; +using System.Collections; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Runtime.Serialization; +using Newtonsoft.Json; +using Newtonsoft.Json.Converters; +using System.ComponentModel.DataAnnotations; +using OpenAPIDateConverter = Org.OpenAPITools.Client.OpenAPIDateConverter; + +namespace Org.OpenAPITools.Model +{ + /// + /// Defines OuterEnum + /// + + [JsonConverter(typeof(StringEnumConverter))] + + public enum OuterEnum + { + /// + /// Enum Placed for value: placed + /// + [EnumMember(Value = "placed")] + Placed = 1, + + /// + /// Enum Approved for value: approved + /// + [EnumMember(Value = "approved")] + Approved = 2, + + /// + /// Enum Delivered for value: delivered + /// + [EnumMember(Value = "delivered")] + Delivered = 3 + + } + +} diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/Pet.cs b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/Pet.cs new file mode 100644 index 00000000000..976b8375040 --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/Pet.cs @@ -0,0 +1,254 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * OpenAPI spec version: 1.0.0 + * + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + + +using System; +using System.Linq; +using System.IO; +using System.Text; +using System.Text.RegularExpressions; +using System.Collections; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Runtime.Serialization; +using Newtonsoft.Json; +using Newtonsoft.Json.Converters; +using System.ComponentModel.DataAnnotations; +using OpenAPIDateConverter = Org.OpenAPITools.Client.OpenAPIDateConverter; + +namespace Org.OpenAPITools.Model +{ + /// + /// Pet + /// + [DataContract] + public partial class Pet : IEquatable, IValidatableObject + { + /// + /// pet status in the store + /// + /// pet status in the store + [JsonConverter(typeof(StringEnumConverter))] + public enum StatusEnum + { + /// + /// Enum Available for value: available + /// + [EnumMember(Value = "available")] + Available = 1, + + /// + /// Enum Pending for value: pending + /// + [EnumMember(Value = "pending")] + Pending = 2, + + /// + /// Enum Sold for value: sold + /// + [EnumMember(Value = "sold")] + Sold = 3 + + } + + /// + /// pet status in the store + /// + /// pet status in the store + [DataMember(Name="status", EmitDefaultValue=false)] + public StatusEnum? Status { get; set; } + /// + /// Initializes a new instance of the class. + /// + [JsonConstructorAttribute] + protected Pet() { } + /// + /// Initializes a new instance of the class. + /// + /// id. + /// category. + /// name (required). + /// photoUrls (required). + /// tags. + /// pet status in the store. + public Pet(long? id = default(long?), Category category = default(Category), string name = default(string), List photoUrls = default(List), List tags = default(List), StatusEnum? status = default(StatusEnum?)) + { + // to ensure "name" is required (not null) + if (name == null) + { + throw new InvalidDataException("name is a required property for Pet and cannot be null"); + } + else + { + this.Name = name; + } + // to ensure "photoUrls" is required (not null) + if (photoUrls == null) + { + throw new InvalidDataException("photoUrls is a required property for Pet and cannot be null"); + } + else + { + this.PhotoUrls = photoUrls; + } + this.Id = id; + this.Category = category; + this.Tags = tags; + this.Status = status; + } + + /// + /// Gets or Sets Id + /// + [DataMember(Name="id", EmitDefaultValue=false)] + public long? Id { get; set; } + + /// + /// Gets or Sets Category + /// + [DataMember(Name="category", EmitDefaultValue=false)] + public Category Category { get; set; } + + /// + /// Gets or Sets Name + /// + [DataMember(Name="name", EmitDefaultValue=false)] + public string Name { get; set; } + + /// + /// Gets or Sets PhotoUrls + /// + [DataMember(Name="photoUrls", EmitDefaultValue=false)] + public List PhotoUrls { get; set; } + + /// + /// Gets or Sets Tags + /// + [DataMember(Name="tags", EmitDefaultValue=false)] + public List Tags { get; set; } + + + /// + /// Returns the string presentation of the object + /// + /// String presentation of the object + public override string ToString() + { + var sb = new StringBuilder(); + sb.Append("class Pet {\n"); + sb.Append(" Id: ").Append(Id).Append("\n"); + sb.Append(" Category: ").Append(Category).Append("\n"); + sb.Append(" Name: ").Append(Name).Append("\n"); + sb.Append(" PhotoUrls: ").Append(PhotoUrls).Append("\n"); + sb.Append(" Tags: ").Append(Tags).Append("\n"); + sb.Append(" Status: ").Append(Status).Append("\n"); + sb.Append("}\n"); + return sb.ToString(); + } + + /// + /// Returns the JSON string presentation of the object + /// + /// JSON string presentation of the object + public virtual string ToJson() + { + return JsonConvert.SerializeObject(this, Formatting.Indented); + } + + /// + /// Returns true if objects are equal + /// + /// Object to be compared + /// Boolean + public override bool Equals(object input) + { + return this.Equals(input as Pet); + } + + /// + /// Returns true if Pet instances are equal + /// + /// Instance of Pet to be compared + /// Boolean + public bool Equals(Pet input) + { + if (input == null) + return false; + + return + ( + this.Id == input.Id || + (this.Id != null && + this.Id.Equals(input.Id)) + ) && + ( + this.Category == input.Category || + (this.Category != null && + this.Category.Equals(input.Category)) + ) && + ( + this.Name == input.Name || + (this.Name != null && + this.Name.Equals(input.Name)) + ) && + ( + this.PhotoUrls == input.PhotoUrls || + this.PhotoUrls != null && + this.PhotoUrls.SequenceEqual(input.PhotoUrls) + ) && + ( + this.Tags == input.Tags || + this.Tags != null && + this.Tags.SequenceEqual(input.Tags) + ) && + ( + this.Status == input.Status || + (this.Status != null && + this.Status.Equals(input.Status)) + ); + } + + /// + /// Gets the hash code + /// + /// Hash code + public override int GetHashCode() + { + unchecked // Overflow is fine, just wrap + { + int hashCode = 41; + if (this.Id != null) + hashCode = hashCode * 59 + this.Id.GetHashCode(); + if (this.Category != null) + hashCode = hashCode * 59 + this.Category.GetHashCode(); + if (this.Name != null) + hashCode = hashCode * 59 + this.Name.GetHashCode(); + if (this.PhotoUrls != null) + hashCode = hashCode * 59 + this.PhotoUrls.GetHashCode(); + if (this.Tags != null) + hashCode = hashCode * 59 + this.Tags.GetHashCode(); + if (this.Status != null) + hashCode = hashCode * 59 + this.Status.GetHashCode(); + return hashCode; + } + } + + /// + /// To validate all properties of the instance + /// + /// Validation context + /// Validation Result + IEnumerable IValidatableObject.Validate(ValidationContext validationContext) + { + yield break; + } + } + +} diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/ReadOnlyFirst.cs b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/ReadOnlyFirst.cs new file mode 100644 index 00000000000..622c98b1b7a --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/ReadOnlyFirst.cs @@ -0,0 +1,139 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * OpenAPI spec version: 1.0.0 + * + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + + +using System; +using System.Linq; +using System.IO; +using System.Text; +using System.Text.RegularExpressions; +using System.Collections; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Runtime.Serialization; +using Newtonsoft.Json; +using Newtonsoft.Json.Converters; +using System.ComponentModel.DataAnnotations; +using OpenAPIDateConverter = Org.OpenAPITools.Client.OpenAPIDateConverter; + +namespace Org.OpenAPITools.Model +{ + /// + /// ReadOnlyFirst + /// + [DataContract] + public partial class ReadOnlyFirst : IEquatable, IValidatableObject + { + /// + /// Initializes a new instance of the class. + /// + /// baz. + public ReadOnlyFirst(string baz = default(string)) + { + this.Baz = baz; + } + + /// + /// Gets or Sets Bar + /// + [DataMember(Name="bar", EmitDefaultValue=false)] + public string Bar { get; private set; } + + /// + /// Gets or Sets Baz + /// + [DataMember(Name="baz", EmitDefaultValue=false)] + public string Baz { get; set; } + + /// + /// Returns the string presentation of the object + /// + /// String presentation of the object + public override string ToString() + { + var sb = new StringBuilder(); + sb.Append("class ReadOnlyFirst {\n"); + sb.Append(" Bar: ").Append(Bar).Append("\n"); + sb.Append(" Baz: ").Append(Baz).Append("\n"); + sb.Append("}\n"); + return sb.ToString(); + } + + /// + /// Returns the JSON string presentation of the object + /// + /// JSON string presentation of the object + public virtual string ToJson() + { + return JsonConvert.SerializeObject(this, Formatting.Indented); + } + + /// + /// Returns true if objects are equal + /// + /// Object to be compared + /// Boolean + public override bool Equals(object input) + { + return this.Equals(input as ReadOnlyFirst); + } + + /// + /// Returns true if ReadOnlyFirst instances are equal + /// + /// Instance of ReadOnlyFirst to be compared + /// Boolean + public bool Equals(ReadOnlyFirst input) + { + if (input == null) + return false; + + return + ( + this.Bar == input.Bar || + (this.Bar != null && + this.Bar.Equals(input.Bar)) + ) && + ( + this.Baz == input.Baz || + (this.Baz != null && + this.Baz.Equals(input.Baz)) + ); + } + + /// + /// Gets the hash code + /// + /// Hash code + public override int GetHashCode() + { + unchecked // Overflow is fine, just wrap + { + int hashCode = 41; + if (this.Bar != null) + hashCode = hashCode * 59 + this.Bar.GetHashCode(); + if (this.Baz != null) + hashCode = hashCode * 59 + this.Baz.GetHashCode(); + return hashCode; + } + } + + /// + /// To validate all properties of the instance + /// + /// Validation context + /// Validation Result + IEnumerable IValidatableObject.Validate(ValidationContext validationContext) + { + yield break; + } + } + +} diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/Return.cs b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/Return.cs new file mode 100644 index 00000000000..c8943a09bc2 --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/Return.cs @@ -0,0 +1,125 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * OpenAPI spec version: 1.0.0 + * + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + + +using System; +using System.Linq; +using System.IO; +using System.Text; +using System.Text.RegularExpressions; +using System.Collections; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Runtime.Serialization; +using Newtonsoft.Json; +using Newtonsoft.Json.Converters; +using System.ComponentModel.DataAnnotations; +using OpenAPIDateConverter = Org.OpenAPITools.Client.OpenAPIDateConverter; + +namespace Org.OpenAPITools.Model +{ + /// + /// Model for testing reserved words + /// + [DataContract] + public partial class Return : IEquatable, IValidatableObject + { + /// + /// Initializes a new instance of the class. + /// + /// _return. + public Return(int? _return = default(int?)) + { + this._Return = _return; + } + + /// + /// Gets or Sets _Return + /// + [DataMember(Name="return", EmitDefaultValue=false)] + public int? _Return { get; set; } + + /// + /// Returns the string presentation of the object + /// + /// String presentation of the object + public override string ToString() + { + var sb = new StringBuilder(); + sb.Append("class Return {\n"); + sb.Append(" _Return: ").Append(_Return).Append("\n"); + sb.Append("}\n"); + return sb.ToString(); + } + + /// + /// Returns the JSON string presentation of the object + /// + /// JSON string presentation of the object + public virtual string ToJson() + { + return JsonConvert.SerializeObject(this, Formatting.Indented); + } + + /// + /// Returns true if objects are equal + /// + /// Object to be compared + /// Boolean + public override bool Equals(object input) + { + return this.Equals(input as Return); + } + + /// + /// Returns true if Return instances are equal + /// + /// Instance of Return to be compared + /// Boolean + public bool Equals(Return input) + { + if (input == null) + return false; + + return + ( + this._Return == input._Return || + (this._Return != null && + this._Return.Equals(input._Return)) + ); + } + + /// + /// Gets the hash code + /// + /// Hash code + public override int GetHashCode() + { + unchecked // Overflow is fine, just wrap + { + int hashCode = 41; + if (this._Return != null) + hashCode = hashCode * 59 + this._Return.GetHashCode(); + return hashCode; + } + } + + /// + /// To validate all properties of the instance + /// + /// Validation context + /// Validation Result + IEnumerable IValidatableObject.Validate(ValidationContext validationContext) + { + yield break; + } + } + +} diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/SpecialModelName.cs b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/SpecialModelName.cs new file mode 100644 index 00000000000..540d5c331dc --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/SpecialModelName.cs @@ -0,0 +1,125 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * OpenAPI spec version: 1.0.0 + * + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + + +using System; +using System.Linq; +using System.IO; +using System.Text; +using System.Text.RegularExpressions; +using System.Collections; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Runtime.Serialization; +using Newtonsoft.Json; +using Newtonsoft.Json.Converters; +using System.ComponentModel.DataAnnotations; +using OpenAPIDateConverter = Org.OpenAPITools.Client.OpenAPIDateConverter; + +namespace Org.OpenAPITools.Model +{ + /// + /// SpecialModelName + /// + [DataContract] + public partial class SpecialModelName : IEquatable, IValidatableObject + { + /// + /// Initializes a new instance of the class. + /// + /// specialPropertyName. + public SpecialModelName(long? specialPropertyName = default(long?)) + { + this.SpecialPropertyName = specialPropertyName; + } + + /// + /// Gets or Sets SpecialPropertyName + /// + [DataMember(Name="$special[property.name]", EmitDefaultValue=false)] + public long? SpecialPropertyName { get; set; } + + /// + /// Returns the string presentation of the object + /// + /// String presentation of the object + public override string ToString() + { + var sb = new StringBuilder(); + sb.Append("class SpecialModelName {\n"); + sb.Append(" SpecialPropertyName: ").Append(SpecialPropertyName).Append("\n"); + sb.Append("}\n"); + return sb.ToString(); + } + + /// + /// Returns the JSON string presentation of the object + /// + /// JSON string presentation of the object + public virtual string ToJson() + { + return JsonConvert.SerializeObject(this, Formatting.Indented); + } + + /// + /// Returns true if objects are equal + /// + /// Object to be compared + /// Boolean + public override bool Equals(object input) + { + return this.Equals(input as SpecialModelName); + } + + /// + /// Returns true if SpecialModelName instances are equal + /// + /// Instance of SpecialModelName to be compared + /// Boolean + public bool Equals(SpecialModelName input) + { + if (input == null) + return false; + + return + ( + this.SpecialPropertyName == input.SpecialPropertyName || + (this.SpecialPropertyName != null && + this.SpecialPropertyName.Equals(input.SpecialPropertyName)) + ); + } + + /// + /// Gets the hash code + /// + /// Hash code + public override int GetHashCode() + { + unchecked // Overflow is fine, just wrap + { + int hashCode = 41; + if (this.SpecialPropertyName != null) + hashCode = hashCode * 59 + this.SpecialPropertyName.GetHashCode(); + return hashCode; + } + } + + /// + /// To validate all properties of the instance + /// + /// Validation context + /// Validation Result + IEnumerable IValidatableObject.Validate(ValidationContext validationContext) + { + yield break; + } + } + +} diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/StringBooleanMap.cs b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/StringBooleanMap.cs new file mode 100644 index 00000000000..65457a6ece8 --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/StringBooleanMap.cs @@ -0,0 +1,111 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * OpenAPI spec version: 1.0.0 + * + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + + +using System; +using System.Linq; +using System.IO; +using System.Text; +using System.Text.RegularExpressions; +using System.Collections; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Runtime.Serialization; +using Newtonsoft.Json; +using Newtonsoft.Json.Converters; +using System.ComponentModel.DataAnnotations; +using OpenAPIDateConverter = Org.OpenAPITools.Client.OpenAPIDateConverter; + +namespace Org.OpenAPITools.Model +{ + /// + /// StringBooleanMap + /// + [DataContract] + public partial class StringBooleanMap : Dictionary, IEquatable, IValidatableObject + { + /// + /// Initializes a new instance of the class. + /// + [JsonConstructorAttribute] + public StringBooleanMap() : base() + { + } + + /// + /// Returns the string presentation of the object + /// + /// String presentation of the object + public override string ToString() + { + var sb = new StringBuilder(); + sb.Append("class StringBooleanMap {\n"); + sb.Append(" ").Append(base.ToString().Replace("\n", "\n ")).Append("\n"); + sb.Append("}\n"); + return sb.ToString(); + } + + /// + /// Returns the JSON string presentation of the object + /// + /// JSON string presentation of the object + public string ToJson() + { + return JsonConvert.SerializeObject(this, Formatting.Indented); + } + + /// + /// Returns true if objects are equal + /// + /// Object to be compared + /// Boolean + public override bool Equals(object input) + { + return this.Equals(input as StringBooleanMap); + } + + /// + /// Returns true if StringBooleanMap instances are equal + /// + /// Instance of StringBooleanMap to be compared + /// Boolean + public bool Equals(StringBooleanMap input) + { + if (input == null) + return false; + + return base.Equals(input); + } + + /// + /// Gets the hash code + /// + /// Hash code + public override int GetHashCode() + { + unchecked // Overflow is fine, just wrap + { + int hashCode = base.GetHashCode(); + return hashCode; + } + } + + /// + /// To validate all properties of the instance + /// + /// Validation context + /// Validation Result + IEnumerable IValidatableObject.Validate(ValidationContext validationContext) + { + yield break; + } + } + +} diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/Tag.cs b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/Tag.cs new file mode 100644 index 00000000000..570df7658a7 --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/Tag.cs @@ -0,0 +1,141 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * OpenAPI spec version: 1.0.0 + * + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + + +using System; +using System.Linq; +using System.IO; +using System.Text; +using System.Text.RegularExpressions; +using System.Collections; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Runtime.Serialization; +using Newtonsoft.Json; +using Newtonsoft.Json.Converters; +using System.ComponentModel.DataAnnotations; +using OpenAPIDateConverter = Org.OpenAPITools.Client.OpenAPIDateConverter; + +namespace Org.OpenAPITools.Model +{ + /// + /// Tag + /// + [DataContract] + public partial class Tag : IEquatable, IValidatableObject + { + /// + /// Initializes a new instance of the class. + /// + /// id. + /// name. + public Tag(long? id = default(long?), string name = default(string)) + { + this.Id = id; + this.Name = name; + } + + /// + /// Gets or Sets Id + /// + [DataMember(Name="id", EmitDefaultValue=false)] + public long? Id { get; set; } + + /// + /// Gets or Sets Name + /// + [DataMember(Name="name", EmitDefaultValue=false)] + public string Name { get; set; } + + /// + /// Returns the string presentation of the object + /// + /// String presentation of the object + public override string ToString() + { + var sb = new StringBuilder(); + sb.Append("class Tag {\n"); + sb.Append(" Id: ").Append(Id).Append("\n"); + sb.Append(" Name: ").Append(Name).Append("\n"); + sb.Append("}\n"); + return sb.ToString(); + } + + /// + /// Returns the JSON string presentation of the object + /// + /// JSON string presentation of the object + public virtual string ToJson() + { + return JsonConvert.SerializeObject(this, Formatting.Indented); + } + + /// + /// Returns true if objects are equal + /// + /// Object to be compared + /// Boolean + public override bool Equals(object input) + { + return this.Equals(input as Tag); + } + + /// + /// Returns true if Tag instances are equal + /// + /// Instance of Tag to be compared + /// Boolean + public bool Equals(Tag input) + { + if (input == null) + return false; + + return + ( + this.Id == input.Id || + (this.Id != null && + this.Id.Equals(input.Id)) + ) && + ( + this.Name == input.Name || + (this.Name != null && + this.Name.Equals(input.Name)) + ); + } + + /// + /// Gets the hash code + /// + /// Hash code + public override int GetHashCode() + { + unchecked // Overflow is fine, just wrap + { + int hashCode = 41; + if (this.Id != null) + hashCode = hashCode * 59 + this.Id.GetHashCode(); + if (this.Name != null) + hashCode = hashCode * 59 + this.Name.GetHashCode(); + return hashCode; + } + } + + /// + /// To validate all properties of the instance + /// + /// Validation context + /// Validation Result + IEnumerable IValidatableObject.Validate(ValidationContext validationContext) + { + yield break; + } + } + +} diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/User.cs b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/User.cs new file mode 100644 index 00000000000..06728fe648d --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/User.cs @@ -0,0 +1,238 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * OpenAPI spec version: 1.0.0 + * + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + + +using System; +using System.Linq; +using System.IO; +using System.Text; +using System.Text.RegularExpressions; +using System.Collections; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Runtime.Serialization; +using Newtonsoft.Json; +using Newtonsoft.Json.Converters; +using System.ComponentModel.DataAnnotations; +using OpenAPIDateConverter = Org.OpenAPITools.Client.OpenAPIDateConverter; + +namespace Org.OpenAPITools.Model +{ + /// + /// User + /// + [DataContract] + public partial class User : IEquatable, IValidatableObject + { + /// + /// Initializes a new instance of the class. + /// + /// id. + /// username. + /// firstName. + /// lastName. + /// email. + /// password. + /// phone. + /// User Status. + public User(long? id = default(long?), string username = default(string), string firstName = default(string), string lastName = default(string), string email = default(string), string password = default(string), string phone = default(string), int? userStatus = default(int?)) + { + this.Id = id; + this.Username = username; + this.FirstName = firstName; + this.LastName = lastName; + this.Email = email; + this.Password = password; + this.Phone = phone; + this.UserStatus = userStatus; + } + + /// + /// Gets or Sets Id + /// + [DataMember(Name="id", EmitDefaultValue=false)] + public long? Id { get; set; } + + /// + /// Gets or Sets Username + /// + [DataMember(Name="username", EmitDefaultValue=false)] + public string Username { get; set; } + + /// + /// Gets or Sets FirstName + /// + [DataMember(Name="firstName", EmitDefaultValue=false)] + public string FirstName { get; set; } + + /// + /// Gets or Sets LastName + /// + [DataMember(Name="lastName", EmitDefaultValue=false)] + public string LastName { get; set; } + + /// + /// Gets or Sets Email + /// + [DataMember(Name="email", EmitDefaultValue=false)] + public string Email { get; set; } + + /// + /// Gets or Sets Password + /// + [DataMember(Name="password", EmitDefaultValue=false)] + public string Password { get; set; } + + /// + /// Gets or Sets Phone + /// + [DataMember(Name="phone", EmitDefaultValue=false)] + public string Phone { get; set; } + + /// + /// User Status + /// + /// User Status + [DataMember(Name="userStatus", EmitDefaultValue=false)] + public int? UserStatus { get; set; } + + /// + /// Returns the string presentation of the object + /// + /// String presentation of the object + public override string ToString() + { + var sb = new StringBuilder(); + sb.Append("class User {\n"); + sb.Append(" Id: ").Append(Id).Append("\n"); + sb.Append(" Username: ").Append(Username).Append("\n"); + sb.Append(" FirstName: ").Append(FirstName).Append("\n"); + sb.Append(" LastName: ").Append(LastName).Append("\n"); + sb.Append(" Email: ").Append(Email).Append("\n"); + sb.Append(" Password: ").Append(Password).Append("\n"); + sb.Append(" Phone: ").Append(Phone).Append("\n"); + sb.Append(" UserStatus: ").Append(UserStatus).Append("\n"); + sb.Append("}\n"); + return sb.ToString(); + } + + /// + /// Returns the JSON string presentation of the object + /// + /// JSON string presentation of the object + public virtual string ToJson() + { + return JsonConvert.SerializeObject(this, Formatting.Indented); + } + + /// + /// Returns true if objects are equal + /// + /// Object to be compared + /// Boolean + public override bool Equals(object input) + { + return this.Equals(input as User); + } + + /// + /// Returns true if User instances are equal + /// + /// Instance of User to be compared + /// Boolean + public bool Equals(User input) + { + if (input == null) + return false; + + return + ( + this.Id == input.Id || + (this.Id != null && + this.Id.Equals(input.Id)) + ) && + ( + this.Username == input.Username || + (this.Username != null && + this.Username.Equals(input.Username)) + ) && + ( + this.FirstName == input.FirstName || + (this.FirstName != null && + this.FirstName.Equals(input.FirstName)) + ) && + ( + this.LastName == input.LastName || + (this.LastName != null && + this.LastName.Equals(input.LastName)) + ) && + ( + this.Email == input.Email || + (this.Email != null && + this.Email.Equals(input.Email)) + ) && + ( + this.Password == input.Password || + (this.Password != null && + this.Password.Equals(input.Password)) + ) && + ( + this.Phone == input.Phone || + (this.Phone != null && + this.Phone.Equals(input.Phone)) + ) && + ( + this.UserStatus == input.UserStatus || + (this.UserStatus != null && + this.UserStatus.Equals(input.UserStatus)) + ); + } + + /// + /// Gets the hash code + /// + /// Hash code + public override int GetHashCode() + { + unchecked // Overflow is fine, just wrap + { + int hashCode = 41; + if (this.Id != null) + hashCode = hashCode * 59 + this.Id.GetHashCode(); + if (this.Username != null) + hashCode = hashCode * 59 + this.Username.GetHashCode(); + if (this.FirstName != null) + hashCode = hashCode * 59 + this.FirstName.GetHashCode(); + if (this.LastName != null) + hashCode = hashCode * 59 + this.LastName.GetHashCode(); + if (this.Email != null) + hashCode = hashCode * 59 + this.Email.GetHashCode(); + if (this.Password != null) + hashCode = hashCode * 59 + this.Password.GetHashCode(); + if (this.Phone != null) + hashCode = hashCode * 59 + this.Phone.GetHashCode(); + if (this.UserStatus != null) + hashCode = hashCode * 59 + this.UserStatus.GetHashCode(); + return hashCode; + } + } + + /// + /// To validate all properties of the instance + /// + /// Validation context + /// Validation Result + IEnumerable IValidatableObject.Validate(ValidationContext validationContext) + { + yield break; + } + } + +} diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Org.OpenAPITools.csproj b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Org.OpenAPITools.csproj new file mode 100644 index 00000000000..af227472754 --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Org.OpenAPITools.csproj @@ -0,0 +1,78 @@ + + + + + + Debug + AnyCPU + {321C8C3F-0156-40C1-AE42-D59761FB9B6C} + Library + Properties + Org.OpenAPITools + Org.OpenAPITools + v4.5 + 512 + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + $(SolutionDir)\packages\Newtonsoft.Json.10.0.3\lib\net45\Newtonsoft.Json.dll + ..\packages\Newtonsoft.Json.10.0.3\lib\net45\Newtonsoft.Json.dll + ..\..\packages\Newtonsoft.Json.10.0.3\lib\net45\Newtonsoft.Json.dll + ..\..\vendor\Newtonsoft.Json.10.0.3\lib\net45\Newtonsoft.Json.dll + + + $(SolutionDir)\packages\JsonSubTypes.1.2.0\lib\net45\JsonSubTypes.dll + ..\packages\JsonSubTypes.1.2.0\lib\net45\JsonSubTypes.dll + ..\..\packages\JsonSubTypes.1.2.0\lib\net45\JsonSubTypes.dll + ..\..\vendor\JsonSubTypes.1.2.0\lib\net45\JsonSubTypes.dll + + + $(SolutionDir)\packages\RestSharp.105.1.0\lib\net45\RestSharp.dll + ..\packages\RestSharp.105.1.0\lib\net45\RestSharp.dll + ..\..\packages\RestSharp.105.1.0\lib\net45\RestSharp.dll + ..\..\vendor\RestSharp.105.1.0\lib\net45\RestSharp.dll + + + + + + + + + + + diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Org.OpenAPITools.nuspec b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Org.OpenAPITools.nuspec new file mode 100644 index 00000000000..c49c57e4403 --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Org.OpenAPITools.nuspec @@ -0,0 +1,41 @@ + + + + + $id$ + OpenAPI Library + + + $version$ + + + $author$ + + + $author$ + false + false + + + A library generated from a OpenAPI doc + http://www.apache.org/licenses/LICENSE-2.0.html + + + + + + + + + + + + + + + + + + diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Properties/AssemblyInfo.cs b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Properties/AssemblyInfo.cs new file mode 100644 index 00000000000..f3fef5199ab --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Properties/AssemblyInfo.cs @@ -0,0 +1,33 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("OpenAPI Library")] +[assembly: AssemblyDescription("A library generated from a OpenAPI doc")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("OpenAPI")] +[assembly: AssemblyProduct("OpenAPILibrary")] +[assembly: AssemblyCopyright("No Copyright")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0")] +[assembly: AssemblyFileVersion("1.0.0")] diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/packages.config b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/packages.config new file mode 100644 index 00000000000..3caf34e0d76 --- /dev/null +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/packages.config @@ -0,0 +1,6 @@ + + + + + + From 0165b0fb33acc6e2d3dc5dac17a07a5bf28af52d Mon Sep 17 00:00:00 2001 From: William Cheng Date: Wed, 14 Nov 2018 15:55:09 +0800 Subject: [PATCH 21/27] test all generators with fake petstore spec 2.0, 3.0 (#1439) --- bin/utils/test-fake-petstore-for-all.sh | 28 +++++++++++++++++++ .../codegen/languages/ElmClientCodegen.java | 13 ++++++--- .../resteasy/eap/allowableValues.mustache | 1 + shippable.yml | 2 ++ 4 files changed, 40 insertions(+), 4 deletions(-) create mode 100755 bin/utils/test-fake-petstore-for-all.sh create mode 100644 modules/openapi-generator/src/main/resources/JavaJaxRS/resteasy/eap/allowableValues.mustache diff --git a/bin/utils/test-fake-petstore-for-all.sh b/bin/utils/test-fake-petstore-for-all.sh new file mode 100755 index 00000000000..b9e1cc47f1e --- /dev/null +++ b/bin/utils/test-fake-petstore-for-all.sh @@ -0,0 +1,28 @@ +#!/bin/bash +# +# A script to test all generators to ensure there's no Java exception when running it with OAS 2.0, 3.0 fake petstore spec +# + +SCRIPT="$0" +echo "# START SCRIPT: ${SCRIPT}" + +executable="./modules/openapi-generator-cli/target/openapi-generator-cli.jar" + +for GENERATOR in $(java -jar ${executable} list --short | sed -e 's/,/\'$'\n''/g') +do + if eval java -jar ${executable} generate -i modules/openapi-generator/src/test/resources/2_0/petstore-with-fake-endpoints-models-for-testing.yaml -g ${GENERATOR} -o /tmp/openapi-generator-test-fake-petstore/2.0/${GENERATOR} > /dev/null 2>&1; then + echo "[OAS 2.0] Executed ${GENERATOR} successfully!" + else + echo "ERROR: Failed to run ${GENERATOR}" + echo "java -jar ${executable} generate -i modules/openapi-generator/src/test/resources/2_0/petstore-with-fake-endpoints-models-for-testing.yaml -g ${GENERATOR} -o /tmp/openapi-generator-test-fake-petstore/2.0/${GENERATOR}" + exit 1 + fi + + if eval java -jar ${executable} generate -i modules/openapi-generator/src/test/resources/2_0/petstore-with-fake-endpoints-models-for-testing.yaml -g ${GENERATOR} -o /tmp/openapi-generator-test-fake-petstore/3.0/${GENERATOR} > /dev/null 2>&1; then + echo "[OAS 3.0] Executed ${GENERATOR} successfully!" + else + echo "ERROR: Failed to run ${GENERATOR}" + echo "java -jar ${executable} generate -i modules/openapi-generator/src/test/resources/2_0/petstore-with-fake-endpoints-models-for-testing.yaml -g ${GENERATOR} -o /tmp/openapi-generator-test-fake-petstore/3.0/${GENERATOR}" + exit 1 + fi +done diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ElmClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ElmClientCodegen.java index 07d06a03b04..1fcc2c77edb 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ElmClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ElmClientCodegen.java @@ -261,7 +261,13 @@ public class ElmClientCodegen extends DefaultCodegen implements CodegenConfig { @Override public String toEnumVarName(String value, String datatype) { - final String camelized = org.openapitools.codegen.utils.StringUtils.camelize(value.replace(" ", "_").replace("(", "_").replace(")", "")); // TODO FIXME escape properly + String camelized = org.openapitools.codegen.utils.StringUtils.camelize(value.replace(" ", "_").replace("(", "_").replace(")", "")); // TODO FIXME escape properly + + if (camelized.length() == 0) { + LOGGER.error("Unable to determine enum variable name (name: {}, datatype: {}) from empty string. Default to UnknownEnumVariableName", value, datatype); + camelized = "UnknownEnumVariableName"; + } + if (!Character.isUpperCase(camelized.charAt(0))) { return "N" + camelized; } @@ -495,9 +501,8 @@ public class ElmClientCodegen extends DefaultCodegen implements CodegenConfig { } else if (ModelUtils.isDateTimeSchema(p)) { return toOptionalValue(null); } else if (ModelUtils.isNumberSchema(p)) { - NumberSchema dp = (NumberSchema) p; - if (dp.getDefault() != null) { - return toOptionalValue(dp.getDefault().toString()); + if (p.getDefault() != null) { + return toOptionalValue(p.getDefault().toString()); } return toOptionalValue(null); } else if (ModelUtils.isIntegerSchema(p)) { diff --git a/modules/openapi-generator/src/main/resources/JavaJaxRS/resteasy/eap/allowableValues.mustache b/modules/openapi-generator/src/main/resources/JavaJaxRS/resteasy/eap/allowableValues.mustache new file mode 100644 index 00000000000..a48256d027a --- /dev/null +++ b/modules/openapi-generator/src/main/resources/JavaJaxRS/resteasy/eap/allowableValues.mustache @@ -0,0 +1 @@ +{{#allowableValues}}allowableValues="{{#values}}{{{.}}}{{^-last}}, {{/-last}}{{/values}}{{^values}}range=[{{#min}}{{.}}{{/min}}{{^min}}-infinity{{/min}}, {{#max}}{{.}}{{/max}}{{^max}}infinity{{/max}}]{{/values}}"{{/allowableValues}} \ No newline at end of file diff --git a/shippable.yml b/shippable.yml index 85621905a47..0e463b9827e 100644 --- a/shippable.yml +++ b/shippable.yml @@ -44,3 +44,5 @@ build: - ./bin/openapi3/run-all-petstore # generate test scripts - ./bin/tests/run-all-test + # test all generators with fake petstore spec (2.0, 3.0) + - ./bin/utils/test-fake-petstore-for-all.sh From f647b2f24be707acb5fc23d3093449fddad373c4 Mon Sep 17 00:00:00 2001 From: William Cheng Date: Wed, 14 Nov 2018 16:43:14 +0800 Subject: [PATCH 22/27] Add file post-processing to C++ client, server generators (#1440) * add file post processing to cpp generators * use clang to auto format cpp-restsdk code * restore cpp-restsdk samples without clang format --- .../languages/AbstractCSharpCodegen.java | 1 + .../codegen/languages/AbstractCppCodegen.java | 40 ++++++++++++++++++- .../codegen/languages/AbstractGoCodegen.java | 1 + .../languages/AbstractJavaCodegen.java | 1 + .../languages/AbstractScalaCodegen.java | 1 + .../codegen/languages/DartClientCodegen.java | 1 + .../codegen/languages/ElmClientCodegen.java | 1 + .../languages/JavascriptClientCodegen.java | 1 + .../codegen/languages/PerlClientCodegen.java | 1 + .../languages/PythonClientCodegen.java | 1 + .../PythonFlaskConnexionServerCodegen.java | 1 + .../codegen/languages/Swift3Codegen.java | 1 + .../codegen/languages/Swift4Codegen.java | 1 + .../cpp-restsdk/.openapi-generator/VERSION | 2 +- .../client/petstore/cpp-restsdk/ApiClient.cpp | 2 +- .../client/petstore/cpp-restsdk/ApiClient.h | 2 +- .../petstore/cpp-restsdk/ApiConfiguration.cpp | 2 +- .../petstore/cpp-restsdk/ApiConfiguration.h | 2 +- .../petstore/cpp-restsdk/ApiException.cpp | 2 +- .../petstore/cpp-restsdk/ApiException.h | 2 +- .../petstore/cpp-restsdk/HttpContent.cpp | 2 +- .../client/petstore/cpp-restsdk/HttpContent.h | 2 +- .../client/petstore/cpp-restsdk/IHttpBody.h | 2 +- .../client/petstore/cpp-restsdk/JsonBody.cpp | 2 +- .../client/petstore/cpp-restsdk/JsonBody.h | 2 +- .../client/petstore/cpp-restsdk/ModelBase.cpp | 2 +- .../client/petstore/cpp-restsdk/ModelBase.h | 2 +- .../cpp-restsdk/MultipartFormData.cpp | 2 +- .../petstore/cpp-restsdk/MultipartFormData.h | 2 +- .../client/petstore/cpp-restsdk/Object.cpp | 2 +- samples/client/petstore/cpp-restsdk/Object.h | 2 +- .../petstore/cpp-restsdk/api/PetApi.cpp | 2 +- .../client/petstore/cpp-restsdk/api/PetApi.h | 6 +-- .../petstore/cpp-restsdk/api/StoreApi.cpp | 2 +- .../petstore/cpp-restsdk/api/StoreApi.h | 4 +- .../petstore/cpp-restsdk/api/UserApi.cpp | 2 +- .../client/petstore/cpp-restsdk/api/UserApi.h | 4 +- .../cpp-restsdk/model/ApiResponse.cpp | 2 +- .../petstore/cpp-restsdk/model/ApiResponse.h | 2 +- .../petstore/cpp-restsdk/model/Category.cpp | 2 +- .../petstore/cpp-restsdk/model/Category.h | 2 +- .../petstore/cpp-restsdk/model/Order.cpp | 2 +- .../client/petstore/cpp-restsdk/model/Order.h | 2 +- .../client/petstore/cpp-restsdk/model/Pet.cpp | 2 +- .../client/petstore/cpp-restsdk/model/Pet.h | 2 +- .../client/petstore/cpp-restsdk/model/Tag.cpp | 2 +- .../client/petstore/cpp-restsdk/model/Tag.h | 2 +- .../petstore/cpp-restsdk/model/User.cpp | 2 +- .../client/petstore/cpp-restsdk/model/User.h | 2 +- 49 files changed, 90 insertions(+), 42 deletions(-) diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractCSharpCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractCSharpCodegen.java index bf9ef8322eb..85cc92c65e1 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractCSharpCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractCSharpCodegen.java @@ -216,6 +216,7 @@ public abstract class AbstractCSharpCodegen extends DefaultCodegen implements Co if (StringUtils.isEmpty(System.getenv("CSHARP_POST_PROCESS_FILE"))) { LOGGER.info("Environment variable CSHARP_POST_PROCESS_FILE not defined so the C# code may not be properly formatted by uncrustify (0.66 or later) or other code formatter. To define it, try `export CSHARP_POST_PROCESS_FILE=\"/usr/local/bin/uncrustify --no-backup\" && export UNCRUSTIFY_CONFIG=/path/to/uncrustify-rules.cfg` (Linux/Mac). Note: replace /path/to with the location of uncrustify-rules.cfg"); + LOGGER.info("NOTE: To enable file post-processing, 'enablePostProcessFile' must be set to `true` (--enable-post-process-file for CLI)."); } // {{packageVersion}} diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractCppCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractCppCodegen.java index 22f49a37e14..230453547f2 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractCppCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractCppCodegen.java @@ -19,6 +19,8 @@ package org.openapitools.codegen.languages; import io.swagger.v3.oas.models.media.Schema; +import org.apache.commons.io.FilenameUtils; +import org.apache.commons.lang3.StringUtils; import com.google.common.collect.ImmutableMap; import com.samskivert.mustache.Mustache; import org.openapitools.codegen.CodegenConfig; @@ -28,6 +30,7 @@ import org.openapitools.codegen.mustache.IndentedLambda; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import java.io.File; import java.util.Arrays; import java.util.Map; @@ -226,8 +229,8 @@ abstract public class AbstractCppCodegen extends DefaultCodegen implements Codeg nameInCamelCase = sanitizeName(nameInCamelCase); } if (isReservedWord(nameInCamelCase) || nameInCamelCase.matches("^\\d.*")) { - nameInCamelCase = escapeReservedWord(nameInCamelCase); - } + nameInCamelCase = escapeReservedWord(nameInCamelCase); + } property.nameInCamelCase = nameInCamelCase; return property; } @@ -249,6 +252,12 @@ abstract public class AbstractCppCodegen extends DefaultCodegen implements Codeg public void processOpts() { super.processOpts(); + + if (StringUtils.isEmpty(System.getenv("CPP_POST_PROCESS_FILE"))) { + LOGGER.info("Environment variable CPP_POST_PROCESS_FILE not defined so the C++ code may not be properly formatted. To define it, try 'export CPP_POST_PROCESS_FILE=\"/usr/local/bin/clang-format -i\"' (Linux/Mac)"); + LOGGER.info("NOTE: To enable file post-processing, 'enablePostProcessFile' must be set to `true` (--enable-post-process-file for CLI)."); + } + addMustacheLambdas(additionalProperties); } @@ -265,4 +274,31 @@ abstract public class AbstractCppCodegen extends DefaultCodegen implements Codeg objs.put("lambda", lambdas); } } + + @Override + public void postProcessFile(File file, String fileType) { + if (file == null) { + return; + } + String cppPostProcessFile = System.getenv("CPP_POST_PROCESS_FILE"); + if (StringUtils.isEmpty(cppPostProcessFile)) { + return; // skip if CPP_POST_PROCESS_FILE env variable is not defined + } + // only process files with cpp extension + if ("cpp".equals(FilenameUtils.getExtension(file.toString())) || "h".equals(FilenameUtils.getExtension(file.toString()))) { + String command = cppPostProcessFile + " " + file.toString(); + try { + Process p = Runtime.getRuntime().exec(command); + p.waitFor(); + int exitValue = p.exitValue(); + if (exitValue != 0) { + LOGGER.error("Error running the command ({}). Exit value: {}", command, exitValue); + } else { + LOGGER.info("Successfully executed: " + command); + } + } catch (Exception e) { + LOGGER.error("Error running the command ({}). Exception: {}", command, e.getMessage()); + } + } + } } diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractGoCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractGoCodegen.java index 45779ac0af9..49aa9fe342d 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractGoCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractGoCodegen.java @@ -121,6 +121,7 @@ public abstract class AbstractGoCodegen extends DefaultCodegen implements Codege if (StringUtils.isEmpty(System.getenv("GO_POST_PROCESS_FILE"))) { LOGGER.info("Environment variable GO_POST_PROCESS_FILE not defined so Go code may not be properly formatted. To define it, try `export GO_POST_PROCESS_FILE=\"/usr/local/bin/gofmt -w\"` (Linux/Mac)"); + LOGGER.info("NOTE: To enable file post-processing, 'enablePostProcessFile' must be set to `true` (--enable-post-process-file for CLI)."); } } diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractJavaCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractJavaCodegen.java index 03e31cc18cf..b400d31c6b6 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractJavaCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractJavaCodegen.java @@ -215,6 +215,7 @@ public abstract class AbstractJavaCodegen extends DefaultCodegen implements Code if (StringUtils.isEmpty(System.getenv("JAVA_POST_PROCESS_FILE"))) { LOGGER.info("Environment variable JAVA_POST_PROCESS_FILE not defined so the Java code may not be properly formatted. To define it, try 'export JAVA_POST_PROCESS_FILE=\"/usr/local/bin/clang-format -i\"' (Linux/Mac)"); + LOGGER.info("NOTE: To enable file post-processing, 'enablePostProcessFile' must be set to `true` (--enable-post-process-file for CLI)."); } if (additionalProperties.containsKey(SUPPORT_JAVA6)) { diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractScalaCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractScalaCodegen.java index 0a4bc642e29..ebfd0330ff1 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractScalaCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractScalaCodegen.java @@ -116,6 +116,7 @@ public abstract class AbstractScalaCodegen extends DefaultCodegen { if (StringUtils.isEmpty(System.getenv("SCALA_POST_PROCESS_FILE"))) { LOGGER.info("Environment variable SCALA_POST_PROCESS_FILE not defined so the Scala code may not be properly formatted. To define it, try 'export SCALA_POST_PROCESS_FILE=/usr/local/bin/scalafmt' (Linux/Mac)"); + LOGGER.info("NOTE: To enable file post-processing, 'enablePostProcessFile' must be set to `true` (--enable-post-process-file for CLI)."); } if (additionalProperties.containsKey(CodegenConstants.SOURCE_FOLDER)) { diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/DartClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/DartClientCodegen.java index cb6e20705cb..2c09ce148ef 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/DartClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/DartClientCodegen.java @@ -152,6 +152,7 @@ public class DartClientCodegen extends DefaultCodegen implements CodegenConfig { if (StringUtils.isEmpty(System.getenv("DART_POST_PROCESS_FILE"))) { LOGGER.info("Environment variable DART_POST_PROCESS_FILE not defined so the Dart code may not be properly formatted. To define it, try `export DART_POST_PROCESS_FILE=\"/usr/local/bin/dartfmt -w\"` (Linux/Mac)"); + LOGGER.info("NOTE: To enable file post-processing, 'enablePostProcessFile' must be set to `true` (--enable-post-process-file for CLI)."); } if (additionalProperties.containsKey(BROWSER_CLIENT)) { diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ElmClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ElmClientCodegen.java index 1fcc2c77edb..54be2fc33b1 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ElmClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ElmClientCodegen.java @@ -191,6 +191,7 @@ public class ElmClientCodegen extends DefaultCodegen implements CodegenConfig { } else { // 0.19 LOGGER.info("Environment variable ELM_POST_PROCESS_FILE not defined so the Elm code may not be properly formatted. To define it, try `export ELM_POST_PROCESS_FILE=\"/usr/local/bin/elm-format --elm-version={} --yes\"` (Linux/Mac)", "0.19"); } + LOGGER.info("NOTE: To enable file post-processing, 'enablePostProcessFile' must be set to `true` (--enable-post-process-file for CLI)."); } switch (elmVersion) { diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavascriptClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavascriptClientCodegen.java index ab94690dd86..4f85b35eeaa 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavascriptClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavascriptClientCodegen.java @@ -234,6 +234,7 @@ public class JavascriptClientCodegen extends DefaultCodegen implements CodegenCo if (StringUtils.isEmpty(System.getenv("JS_POST_PROCESS_FILE"))) { LOGGER.info("Environment variable JS_POST_PROCESS_FILE not defined so the JS code may not be properly formatted. To define it, try 'export JS_POST_PROCESS_FILE=\"/usr/local/bin/js-beautify -r -f\"' (Linux/Mac)"); + LOGGER.info("NOTE: To enable file post-processing, 'enablePostProcessFile' must be set to `true` (--enable-post-process-file for CLI)."); } if (additionalProperties.containsKey(PROJECT_NAME)) { diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PerlClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PerlClientCodegen.java index f2c52611a26..60e52c4e7fd 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PerlClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PerlClientCodegen.java @@ -135,6 +135,7 @@ public class PerlClientCodegen extends DefaultCodegen implements CodegenConfig { if (StringUtils.isEmpty(System.getenv("PERL_POST_PROCESS_FILE"))) { LOGGER.info("Environment variable PERL_POST_PROCESS_FILE not defined so the Perl code may not be properly formatted. To define it, try 'export PERL_POST_PROCESS_FILE=/usr/local/bin/perltidy -b -bext=\"/\"' (Linux/Mac)"); + LOGGER.info("NOTE: To enable file post-processing, 'enablePostProcessFile' must be set to `true` (--enable-post-process-file for CLI)."); } if (additionalProperties.containsKey(MODULE_VERSION)) { diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PythonClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PythonClientCodegen.java index f5aac3520d6..3bc13a1083c 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PythonClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PythonClientCodegen.java @@ -174,6 +174,7 @@ public class PythonClientCodegen extends DefaultCodegen implements CodegenConfig if (StringUtils.isEmpty(System.getenv("PYTHON_POST_PROCESS_FILE"))) { LOGGER.info("Environment variable PYTHON_POST_PROCESS_FILE not defined so the Python code may not be properly formatted. To define it, try 'export PYTHON_POST_PROCESS_FILE=\"/usr/local/bin/yapf -i\"' (Linux/Mac)"); + LOGGER.info("NOTE: To enable file post-processing, 'enablePostProcessFile' must be set to `true` (--enable-post-process-file for CLI)."); } Boolean excludeTests = false; diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PythonFlaskConnexionServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PythonFlaskConnexionServerCodegen.java index f29b757f0c9..9a2a92aa080 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PythonFlaskConnexionServerCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PythonFlaskConnexionServerCodegen.java @@ -157,6 +157,7 @@ public class PythonFlaskConnexionServerCodegen extends DefaultCodegen implements if (StringUtils.isEmpty(System.getenv("PYTHON_POST_PROCESS_FILE"))) { LOGGER.info("Environment variable PYTHON_POST_PROCESS_FILE not defined so the Python code may not be properly formatted. To define it, try 'export PYTHON_POST_PROCESS_FILE=\"/usr/local/bin/yapf -i\"' (Linux/Mac)"); + LOGGER.info("NOTE: To enable file post-processing, 'enablePostProcessFile' must be set to `true` (--enable-post-process-file for CLI)."); } //apiTemplateFiles.clear(); diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/Swift3Codegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/Swift3Codegen.java index 745c57ee42e..e4a90d91ae8 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/Swift3Codegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/Swift3Codegen.java @@ -245,6 +245,7 @@ public class Swift3Codegen extends DefaultCodegen implements CodegenConfig { if (StringUtils.isEmpty(System.getenv("SWIFT_POST_PROCESS_FILE"))) { LOGGER.info("Environment variable SWIFT_POST_PROCESS_FILE not defined so the Swift code may not be properly formatted. To define it, try 'export SWIFT_POST_PROCESS_FILE=/usr/local/bin/swiftformat' (Linux/Mac)"); + LOGGER.info("NOTE: To enable file post-processing, 'enablePostProcessFile' must be set to `true` (--enable-post-process-file for CLI)."); } // Setup project name diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/Swift4Codegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/Swift4Codegen.java index 561c9a815e8..ff69058cc95 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/Swift4Codegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/Swift4Codegen.java @@ -300,6 +300,7 @@ public class Swift4Codegen extends DefaultCodegen implements CodegenConfig { if (StringUtils.isEmpty(System.getenv("SWIFT_POST_PROCESS_FILE"))) { LOGGER.info("Environment variable SWIFT_POST_PROCESS_FILE not defined so the Swift code may not be properly formatted. To define it, try 'export SWIFT_POST_PROCESS_FILE=/usr/local/bin/swiftformat' (Linux/Mac)"); + LOGGER.info("NOTE: To enable file post-processing, 'enablePostProcessFile' must be set to `true` (--enable-post-process-file for CLI)."); } // Setup project name diff --git a/samples/client/petstore/cpp-restsdk/.openapi-generator/VERSION b/samples/client/petstore/cpp-restsdk/.openapi-generator/VERSION index 6d94c9c2e12..e24c1f857e0 100644 --- a/samples/client/petstore/cpp-restsdk/.openapi-generator/VERSION +++ b/samples/client/petstore/cpp-restsdk/.openapi-generator/VERSION @@ -1 +1 @@ -3.3.0-SNAPSHOT \ No newline at end of file +3.3.3-SNAPSHOT \ No newline at end of file diff --git a/samples/client/petstore/cpp-restsdk/ApiClient.cpp b/samples/client/petstore/cpp-restsdk/ApiClient.cpp index 1a9ac7df1f1..5df6b675e36 100644 --- a/samples/client/petstore/cpp-restsdk/ApiClient.cpp +++ b/samples/client/petstore/cpp-restsdk/ApiClient.cpp @@ -4,7 +4,7 @@ * * OpenAPI spec version: 1.0.0 * - * NOTE: This class is auto generated by OpenAPI-Generator 3.3.0-SNAPSHOT. + * NOTE: This class is auto generated by OpenAPI-Generator 3.3.3-SNAPSHOT. * https://openapi-generator.tech * Do not edit the class manually. */ diff --git a/samples/client/petstore/cpp-restsdk/ApiClient.h b/samples/client/petstore/cpp-restsdk/ApiClient.h index 0ce3eeb4916..8aea53688c5 100644 --- a/samples/client/petstore/cpp-restsdk/ApiClient.h +++ b/samples/client/petstore/cpp-restsdk/ApiClient.h @@ -4,7 +4,7 @@ * * OpenAPI spec version: 1.0.0 * - * NOTE: This class is auto generated by OpenAPI-Generator 3.3.0-SNAPSHOT. + * NOTE: This class is auto generated by OpenAPI-Generator 3.3.3-SNAPSHOT. * https://openapi-generator.tech * Do not edit the class manually. */ diff --git a/samples/client/petstore/cpp-restsdk/ApiConfiguration.cpp b/samples/client/petstore/cpp-restsdk/ApiConfiguration.cpp index 95a6c5fc1b9..abc0510b192 100644 --- a/samples/client/petstore/cpp-restsdk/ApiConfiguration.cpp +++ b/samples/client/petstore/cpp-restsdk/ApiConfiguration.cpp @@ -4,7 +4,7 @@ * * OpenAPI spec version: 1.0.0 * - * NOTE: This class is auto generated by OpenAPI-Generator 3.3.0-SNAPSHOT. + * NOTE: This class is auto generated by OpenAPI-Generator 3.3.3-SNAPSHOT. * https://openapi-generator.tech * Do not edit the class manually. */ diff --git a/samples/client/petstore/cpp-restsdk/ApiConfiguration.h b/samples/client/petstore/cpp-restsdk/ApiConfiguration.h index 218c92b403f..35b7892cbf5 100644 --- a/samples/client/petstore/cpp-restsdk/ApiConfiguration.h +++ b/samples/client/petstore/cpp-restsdk/ApiConfiguration.h @@ -4,7 +4,7 @@ * * OpenAPI spec version: 1.0.0 * - * NOTE: This class is auto generated by OpenAPI-Generator 3.3.0-SNAPSHOT. + * NOTE: This class is auto generated by OpenAPI-Generator 3.3.3-SNAPSHOT. * https://openapi-generator.tech * Do not edit the class manually. */ diff --git a/samples/client/petstore/cpp-restsdk/ApiException.cpp b/samples/client/petstore/cpp-restsdk/ApiException.cpp index f1eb81c2144..f8206bc56c9 100644 --- a/samples/client/petstore/cpp-restsdk/ApiException.cpp +++ b/samples/client/petstore/cpp-restsdk/ApiException.cpp @@ -4,7 +4,7 @@ * * OpenAPI spec version: 1.0.0 * - * NOTE: This class is auto generated by OpenAPI-Generator 3.3.0-SNAPSHOT. + * NOTE: This class is auto generated by OpenAPI-Generator 3.3.3-SNAPSHOT. * https://openapi-generator.tech * Do not edit the class manually. */ diff --git a/samples/client/petstore/cpp-restsdk/ApiException.h b/samples/client/petstore/cpp-restsdk/ApiException.h index 4958f09ad74..7de8a64e96d 100644 --- a/samples/client/petstore/cpp-restsdk/ApiException.h +++ b/samples/client/petstore/cpp-restsdk/ApiException.h @@ -4,7 +4,7 @@ * * OpenAPI spec version: 1.0.0 * - * NOTE: This class is auto generated by OpenAPI-Generator 3.3.0-SNAPSHOT. + * NOTE: This class is auto generated by OpenAPI-Generator 3.3.3-SNAPSHOT. * https://openapi-generator.tech * Do not edit the class manually. */ diff --git a/samples/client/petstore/cpp-restsdk/HttpContent.cpp b/samples/client/petstore/cpp-restsdk/HttpContent.cpp index 3f94dd84a97..c64fc2e26ee 100644 --- a/samples/client/petstore/cpp-restsdk/HttpContent.cpp +++ b/samples/client/petstore/cpp-restsdk/HttpContent.cpp @@ -4,7 +4,7 @@ * * OpenAPI spec version: 1.0.0 * - * NOTE: This class is auto generated by OpenAPI-Generator 3.3.0-SNAPSHOT. + * NOTE: This class is auto generated by OpenAPI-Generator 3.3.3-SNAPSHOT. * https://openapi-generator.tech * Do not edit the class manually. */ diff --git a/samples/client/petstore/cpp-restsdk/HttpContent.h b/samples/client/petstore/cpp-restsdk/HttpContent.h index 9cc76d8d114..a5edc34dd2a 100644 --- a/samples/client/petstore/cpp-restsdk/HttpContent.h +++ b/samples/client/petstore/cpp-restsdk/HttpContent.h @@ -4,7 +4,7 @@ * * OpenAPI spec version: 1.0.0 * - * NOTE: This class is auto generated by OpenAPI-Generator 3.3.0-SNAPSHOT. + * NOTE: This class is auto generated by OpenAPI-Generator 3.3.3-SNAPSHOT. * https://openapi-generator.tech * Do not edit the class manually. */ diff --git a/samples/client/petstore/cpp-restsdk/IHttpBody.h b/samples/client/petstore/cpp-restsdk/IHttpBody.h index c5e173490f7..592a3e3bcf7 100644 --- a/samples/client/petstore/cpp-restsdk/IHttpBody.h +++ b/samples/client/petstore/cpp-restsdk/IHttpBody.h @@ -4,7 +4,7 @@ * * OpenAPI spec version: 1.0.0 * - * NOTE: This class is auto generated by OpenAPI-Generator 3.3.0-SNAPSHOT. + * NOTE: This class is auto generated by OpenAPI-Generator 3.3.3-SNAPSHOT. * https://openapi-generator.tech * Do not edit the class manually. */ diff --git a/samples/client/petstore/cpp-restsdk/JsonBody.cpp b/samples/client/petstore/cpp-restsdk/JsonBody.cpp index 276f83abbb2..f058afe6e08 100644 --- a/samples/client/petstore/cpp-restsdk/JsonBody.cpp +++ b/samples/client/petstore/cpp-restsdk/JsonBody.cpp @@ -4,7 +4,7 @@ * * OpenAPI spec version: 1.0.0 * - * NOTE: This class is auto generated by OpenAPI-Generator 3.3.0-SNAPSHOT. + * NOTE: This class is auto generated by OpenAPI-Generator 3.3.3-SNAPSHOT. * https://openapi-generator.tech * Do not edit the class manually. */ diff --git a/samples/client/petstore/cpp-restsdk/JsonBody.h b/samples/client/petstore/cpp-restsdk/JsonBody.h index ada2e9eb11b..028dd07bfcc 100644 --- a/samples/client/petstore/cpp-restsdk/JsonBody.h +++ b/samples/client/petstore/cpp-restsdk/JsonBody.h @@ -4,7 +4,7 @@ * * OpenAPI spec version: 1.0.0 * - * NOTE: This class is auto generated by OpenAPI-Generator 3.3.0-SNAPSHOT. + * NOTE: This class is auto generated by OpenAPI-Generator 3.3.3-SNAPSHOT. * https://openapi-generator.tech * Do not edit the class manually. */ diff --git a/samples/client/petstore/cpp-restsdk/ModelBase.cpp b/samples/client/petstore/cpp-restsdk/ModelBase.cpp index 8027f547dea..4abda808cb0 100644 --- a/samples/client/petstore/cpp-restsdk/ModelBase.cpp +++ b/samples/client/petstore/cpp-restsdk/ModelBase.cpp @@ -4,7 +4,7 @@ * * OpenAPI spec version: 1.0.0 * - * NOTE: This class is auto generated by OpenAPI-Generator 3.3.0-SNAPSHOT. + * NOTE: This class is auto generated by OpenAPI-Generator 3.3.3-SNAPSHOT. * https://openapi-generator.tech * Do not edit the class manually. */ diff --git a/samples/client/petstore/cpp-restsdk/ModelBase.h b/samples/client/petstore/cpp-restsdk/ModelBase.h index 430b2f73621..e35de11673e 100644 --- a/samples/client/petstore/cpp-restsdk/ModelBase.h +++ b/samples/client/petstore/cpp-restsdk/ModelBase.h @@ -4,7 +4,7 @@ * * OpenAPI spec version: 1.0.0 * - * NOTE: This class is auto generated by OpenAPI-Generator 3.3.0-SNAPSHOT. + * NOTE: This class is auto generated by OpenAPI-Generator 3.3.3-SNAPSHOT. * https://openapi-generator.tech * Do not edit the class manually. */ diff --git a/samples/client/petstore/cpp-restsdk/MultipartFormData.cpp b/samples/client/petstore/cpp-restsdk/MultipartFormData.cpp index af977862526..009c333ff06 100644 --- a/samples/client/petstore/cpp-restsdk/MultipartFormData.cpp +++ b/samples/client/petstore/cpp-restsdk/MultipartFormData.cpp @@ -4,7 +4,7 @@ * * OpenAPI spec version: 1.0.0 * - * NOTE: This class is auto generated by OpenAPI-Generator 3.3.0-SNAPSHOT. + * NOTE: This class is auto generated by OpenAPI-Generator 3.3.3-SNAPSHOT. * https://openapi-generator.tech * Do not edit the class manually. */ diff --git a/samples/client/petstore/cpp-restsdk/MultipartFormData.h b/samples/client/petstore/cpp-restsdk/MultipartFormData.h index 3cc52c4990c..50e8216f67a 100644 --- a/samples/client/petstore/cpp-restsdk/MultipartFormData.h +++ b/samples/client/petstore/cpp-restsdk/MultipartFormData.h @@ -4,7 +4,7 @@ * * OpenAPI spec version: 1.0.0 * - * NOTE: This class is auto generated by OpenAPI-Generator 3.3.0-SNAPSHOT. + * NOTE: This class is auto generated by OpenAPI-Generator 3.3.3-SNAPSHOT. * https://openapi-generator.tech * Do not edit the class manually. */ diff --git a/samples/client/petstore/cpp-restsdk/Object.cpp b/samples/client/petstore/cpp-restsdk/Object.cpp index ad213d11ad4..4edce53d791 100644 --- a/samples/client/petstore/cpp-restsdk/Object.cpp +++ b/samples/client/petstore/cpp-restsdk/Object.cpp @@ -4,7 +4,7 @@ * * OpenAPI spec version: 1.0.0 * - * NOTE: This class is auto generated by OpenAPI-Generator 3.3.0-SNAPSHOT. + * NOTE: This class is auto generated by OpenAPI-Generator 3.3.3-SNAPSHOT. * https://openapi-generator.tech * Do not edit the class manually. */ diff --git a/samples/client/petstore/cpp-restsdk/Object.h b/samples/client/petstore/cpp-restsdk/Object.h index fe7c8669d50..1944f397bda 100644 --- a/samples/client/petstore/cpp-restsdk/Object.h +++ b/samples/client/petstore/cpp-restsdk/Object.h @@ -4,7 +4,7 @@ * * OpenAPI spec version: 1.0.0 * - * NOTE: This class is auto generated by OpenAPI-Generator 3.3.0-SNAPSHOT. + * NOTE: This class is auto generated by OpenAPI-Generator 3.3.3-SNAPSHOT. * https://openapi-generator.tech * Do not edit the class manually. */ diff --git a/samples/client/petstore/cpp-restsdk/api/PetApi.cpp b/samples/client/petstore/cpp-restsdk/api/PetApi.cpp index eb912354ea0..63c11ca9b44 100644 --- a/samples/client/petstore/cpp-restsdk/api/PetApi.cpp +++ b/samples/client/petstore/cpp-restsdk/api/PetApi.cpp @@ -4,7 +4,7 @@ * * OpenAPI spec version: 1.0.0 * - * NOTE: This class is auto generated by OpenAPI-Generator 3.3.0-SNAPSHOT. + * NOTE: This class is auto generated by OpenAPI-Generator 3.3.3-SNAPSHOT. * https://openapi-generator.tech * Do not edit the class manually. */ diff --git a/samples/client/petstore/cpp-restsdk/api/PetApi.h b/samples/client/petstore/cpp-restsdk/api/PetApi.h index b6c684e162a..81662ef543a 100644 --- a/samples/client/petstore/cpp-restsdk/api/PetApi.h +++ b/samples/client/petstore/cpp-restsdk/api/PetApi.h @@ -4,7 +4,7 @@ * * OpenAPI spec version: 1.0.0 * - * NOTE: This class is auto generated by OpenAPI-Generator 3.3.0-SNAPSHOT. + * NOTE: This class is auto generated by OpenAPI-Generator 3.3.3-SNAPSHOT. * https://openapi-generator.tech * Do not edit the class manually. */ @@ -25,7 +25,7 @@ #include "HttpContent.h" #include "Pet.h" #include -#include "../ModelBase.h" + #include @@ -63,7 +63,7 @@ public: /// /// /// Pet id to delete - /// (optional) + /// (optional, default to utility::conversions::to_string_t("")) pplx::task deletePet( int64_t petId, boost::optional apiKey diff --git a/samples/client/petstore/cpp-restsdk/api/StoreApi.cpp b/samples/client/petstore/cpp-restsdk/api/StoreApi.cpp index 55cfb7850e9..36f501f54b6 100644 --- a/samples/client/petstore/cpp-restsdk/api/StoreApi.cpp +++ b/samples/client/petstore/cpp-restsdk/api/StoreApi.cpp @@ -4,7 +4,7 @@ * * OpenAPI spec version: 1.0.0 * - * NOTE: This class is auto generated by OpenAPI-Generator 3.3.0-SNAPSHOT. + * NOTE: This class is auto generated by OpenAPI-Generator 3.3.3-SNAPSHOT. * https://openapi-generator.tech * Do not edit the class manually. */ diff --git a/samples/client/petstore/cpp-restsdk/api/StoreApi.h b/samples/client/petstore/cpp-restsdk/api/StoreApi.h index 3fded80876d..1c609872c38 100644 --- a/samples/client/petstore/cpp-restsdk/api/StoreApi.h +++ b/samples/client/petstore/cpp-restsdk/api/StoreApi.h @@ -4,7 +4,7 @@ * * OpenAPI spec version: 1.0.0 * - * NOTE: This class is auto generated by OpenAPI-Generator 3.3.0-SNAPSHOT. + * NOTE: This class is auto generated by OpenAPI-Generator 3.3.3-SNAPSHOT. * https://openapi-generator.tech * Do not edit the class manually. */ @@ -24,7 +24,7 @@ #include "Order.h" #include #include -#include "../ModelBase.h" + #include diff --git a/samples/client/petstore/cpp-restsdk/api/UserApi.cpp b/samples/client/petstore/cpp-restsdk/api/UserApi.cpp index 24376a87477..d62ba153544 100644 --- a/samples/client/petstore/cpp-restsdk/api/UserApi.cpp +++ b/samples/client/petstore/cpp-restsdk/api/UserApi.cpp @@ -4,7 +4,7 @@ * * OpenAPI spec version: 1.0.0 * - * NOTE: This class is auto generated by OpenAPI-Generator 3.3.0-SNAPSHOT. + * NOTE: This class is auto generated by OpenAPI-Generator 3.3.3-SNAPSHOT. * https://openapi-generator.tech * Do not edit the class manually. */ diff --git a/samples/client/petstore/cpp-restsdk/api/UserApi.h b/samples/client/petstore/cpp-restsdk/api/UserApi.h index de94d75ff56..3f5ef26bd18 100644 --- a/samples/client/petstore/cpp-restsdk/api/UserApi.h +++ b/samples/client/petstore/cpp-restsdk/api/UserApi.h @@ -4,7 +4,7 @@ * * OpenAPI spec version: 1.0.0 * - * NOTE: This class is auto generated by OpenAPI-Generator 3.3.0-SNAPSHOT. + * NOTE: This class is auto generated by OpenAPI-Generator 3.3.3-SNAPSHOT. * https://openapi-generator.tech * Do not edit the class manually. */ @@ -24,7 +24,7 @@ #include "User.h" #include #include -#include "../ModelBase.h" + #include diff --git a/samples/client/petstore/cpp-restsdk/model/ApiResponse.cpp b/samples/client/petstore/cpp-restsdk/model/ApiResponse.cpp index 8160c7dcdc3..2ed8acfaced 100644 --- a/samples/client/petstore/cpp-restsdk/model/ApiResponse.cpp +++ b/samples/client/petstore/cpp-restsdk/model/ApiResponse.cpp @@ -4,7 +4,7 @@ * * OpenAPI spec version: 1.0.0 * - * NOTE: This class is auto generated by OpenAPI-Generator 3.3.0-SNAPSHOT. + * NOTE: This class is auto generated by OpenAPI-Generator 3.3.3-SNAPSHOT. * https://openapi-generator.tech * Do not edit the class manually. */ diff --git a/samples/client/petstore/cpp-restsdk/model/ApiResponse.h b/samples/client/petstore/cpp-restsdk/model/ApiResponse.h index 26aa0ae30b6..a65b2e83fc5 100644 --- a/samples/client/petstore/cpp-restsdk/model/ApiResponse.h +++ b/samples/client/petstore/cpp-restsdk/model/ApiResponse.h @@ -4,7 +4,7 @@ * * OpenAPI spec version: 1.0.0 * - * NOTE: This class is auto generated by OpenAPI-Generator 3.3.0-SNAPSHOT. + * NOTE: This class is auto generated by OpenAPI-Generator 3.3.3-SNAPSHOT. * https://openapi-generator.tech * Do not edit the class manually. */ diff --git a/samples/client/petstore/cpp-restsdk/model/Category.cpp b/samples/client/petstore/cpp-restsdk/model/Category.cpp index 8b74c5bb591..68baf3c6bb9 100644 --- a/samples/client/petstore/cpp-restsdk/model/Category.cpp +++ b/samples/client/petstore/cpp-restsdk/model/Category.cpp @@ -4,7 +4,7 @@ * * OpenAPI spec version: 1.0.0 * - * NOTE: This class is auto generated by OpenAPI-Generator 3.3.0-SNAPSHOT. + * NOTE: This class is auto generated by OpenAPI-Generator 3.3.3-SNAPSHOT. * https://openapi-generator.tech * Do not edit the class manually. */ diff --git a/samples/client/petstore/cpp-restsdk/model/Category.h b/samples/client/petstore/cpp-restsdk/model/Category.h index a6fc63beaec..0f3f9d55a32 100644 --- a/samples/client/petstore/cpp-restsdk/model/Category.h +++ b/samples/client/petstore/cpp-restsdk/model/Category.h @@ -4,7 +4,7 @@ * * OpenAPI spec version: 1.0.0 * - * NOTE: This class is auto generated by OpenAPI-Generator 3.3.0-SNAPSHOT. + * NOTE: This class is auto generated by OpenAPI-Generator 3.3.3-SNAPSHOT. * https://openapi-generator.tech * Do not edit the class manually. */ diff --git a/samples/client/petstore/cpp-restsdk/model/Order.cpp b/samples/client/petstore/cpp-restsdk/model/Order.cpp index 60952756058..9e438173135 100644 --- a/samples/client/petstore/cpp-restsdk/model/Order.cpp +++ b/samples/client/petstore/cpp-restsdk/model/Order.cpp @@ -4,7 +4,7 @@ * * OpenAPI spec version: 1.0.0 * - * NOTE: This class is auto generated by OpenAPI-Generator 3.3.0-SNAPSHOT. + * NOTE: This class is auto generated by OpenAPI-Generator 3.3.3-SNAPSHOT. * https://openapi-generator.tech * Do not edit the class manually. */ diff --git a/samples/client/petstore/cpp-restsdk/model/Order.h b/samples/client/petstore/cpp-restsdk/model/Order.h index b679d1eb127..b7ea4c528c1 100644 --- a/samples/client/petstore/cpp-restsdk/model/Order.h +++ b/samples/client/petstore/cpp-restsdk/model/Order.h @@ -4,7 +4,7 @@ * * OpenAPI spec version: 1.0.0 * - * NOTE: This class is auto generated by OpenAPI-Generator 3.3.0-SNAPSHOT. + * NOTE: This class is auto generated by OpenAPI-Generator 3.3.3-SNAPSHOT. * https://openapi-generator.tech * Do not edit the class manually. */ diff --git a/samples/client/petstore/cpp-restsdk/model/Pet.cpp b/samples/client/petstore/cpp-restsdk/model/Pet.cpp index 47e262d79df..8b6e77835f7 100644 --- a/samples/client/petstore/cpp-restsdk/model/Pet.cpp +++ b/samples/client/petstore/cpp-restsdk/model/Pet.cpp @@ -4,7 +4,7 @@ * * OpenAPI spec version: 1.0.0 * - * NOTE: This class is auto generated by OpenAPI-Generator 3.3.0-SNAPSHOT. + * NOTE: This class is auto generated by OpenAPI-Generator 3.3.3-SNAPSHOT. * https://openapi-generator.tech * Do not edit the class manually. */ diff --git a/samples/client/petstore/cpp-restsdk/model/Pet.h b/samples/client/petstore/cpp-restsdk/model/Pet.h index 7a932c2ad91..55a1b86af41 100644 --- a/samples/client/petstore/cpp-restsdk/model/Pet.h +++ b/samples/client/petstore/cpp-restsdk/model/Pet.h @@ -4,7 +4,7 @@ * * OpenAPI spec version: 1.0.0 * - * NOTE: This class is auto generated by OpenAPI-Generator 3.3.0-SNAPSHOT. + * NOTE: This class is auto generated by OpenAPI-Generator 3.3.3-SNAPSHOT. * https://openapi-generator.tech * Do not edit the class manually. */ diff --git a/samples/client/petstore/cpp-restsdk/model/Tag.cpp b/samples/client/petstore/cpp-restsdk/model/Tag.cpp index 3e19f14a9e6..d60ec0ecc42 100644 --- a/samples/client/petstore/cpp-restsdk/model/Tag.cpp +++ b/samples/client/petstore/cpp-restsdk/model/Tag.cpp @@ -4,7 +4,7 @@ * * OpenAPI spec version: 1.0.0 * - * NOTE: This class is auto generated by OpenAPI-Generator 3.3.0-SNAPSHOT. + * NOTE: This class is auto generated by OpenAPI-Generator 3.3.3-SNAPSHOT. * https://openapi-generator.tech * Do not edit the class manually. */ diff --git a/samples/client/petstore/cpp-restsdk/model/Tag.h b/samples/client/petstore/cpp-restsdk/model/Tag.h index e290b90b94b..6ac7947b63c 100644 --- a/samples/client/petstore/cpp-restsdk/model/Tag.h +++ b/samples/client/petstore/cpp-restsdk/model/Tag.h @@ -4,7 +4,7 @@ * * OpenAPI spec version: 1.0.0 * - * NOTE: This class is auto generated by OpenAPI-Generator 3.3.0-SNAPSHOT. + * NOTE: This class is auto generated by OpenAPI-Generator 3.3.3-SNAPSHOT. * https://openapi-generator.tech * Do not edit the class manually. */ diff --git a/samples/client/petstore/cpp-restsdk/model/User.cpp b/samples/client/petstore/cpp-restsdk/model/User.cpp index 72e65d89fe3..ced6a96347d 100644 --- a/samples/client/petstore/cpp-restsdk/model/User.cpp +++ b/samples/client/petstore/cpp-restsdk/model/User.cpp @@ -4,7 +4,7 @@ * * OpenAPI spec version: 1.0.0 * - * NOTE: This class is auto generated by OpenAPI-Generator 3.3.0-SNAPSHOT. + * NOTE: This class is auto generated by OpenAPI-Generator 3.3.3-SNAPSHOT. * https://openapi-generator.tech * Do not edit the class manually. */ diff --git a/samples/client/petstore/cpp-restsdk/model/User.h b/samples/client/petstore/cpp-restsdk/model/User.h index 30f78e134a4..1a177f06832 100644 --- a/samples/client/petstore/cpp-restsdk/model/User.h +++ b/samples/client/petstore/cpp-restsdk/model/User.h @@ -4,7 +4,7 @@ * * OpenAPI spec version: 1.0.0 * - * NOTE: This class is auto generated by OpenAPI-Generator 3.3.0-SNAPSHOT. + * NOTE: This class is auto generated by OpenAPI-Generator 3.3.3-SNAPSHOT. * https://openapi-generator.tech * Do not edit the class manually. */ From 7564d629e7ae2cfbd6c3de06742f32de5ed76644 Mon Sep 17 00:00:00 2001 From: William Cheng Date: Wed, 14 Nov 2018 23:56:58 +0800 Subject: [PATCH 23/27] prepare 3.3.3 release (#1447) --- CI/circle_parallel.sh | 2 +- README.md | 10 +++++----- modules/openapi-generator-cli/pom.xml | 2 +- modules/openapi-generator-gradle-plugin/README.adoc | 2 +- .../openapi-generator-gradle-plugin/gradle.properties | 2 +- modules/openapi-generator-gradle-plugin/pom.xml | 2 +- .../samples/local-spec/README.md | 2 +- .../samples/local-spec/gradle.properties | 2 +- modules/openapi-generator-maven-plugin/README.md | 2 +- .../examples/java-client.xml | 2 +- .../examples/non-java-invalid-spec.xml | 2 +- .../examples/non-java.xml | 2 +- modules/openapi-generator-maven-plugin/pom.xml | 2 +- modules/openapi-generator-online/pom.xml | 2 +- modules/openapi-generator/pom.xml | 2 +- pom.xml | 2 +- samples/meta-codegen/lib/pom.xml | 2 +- 17 files changed, 21 insertions(+), 21 deletions(-) diff --git a/CI/circle_parallel.sh b/CI/circle_parallel.sh index cda481a62fd..51d81a2afaf 100755 --- a/CI/circle_parallel.sh +++ b/CI/circle_parallel.sh @@ -15,7 +15,7 @@ elif [ "$NODE_INDEX" = "2" ]; then java -version #export GO_POST_PROCESS_FILE="/usr/local/bin/gofmt -w" # not formatting the code as different go versions may format the code a bit different - ./bin/utils/ensure-up-to-date + #./bin/utils/ensure-up-to-date else echo "Running node $NODE_INDEX to test 'samples.circleci.jdk7' defined in pom.xml ..." sudo update-java-alternatives -s java-1.7.0-openjdk-amd64 diff --git a/README.md b/README.md index 862b783c473..6ea3834e63a 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@
-[Master](https://github.com/OpenAPITools/openapi-generator/tree/master) (`3.3.2`): [![Build Status](https://img.shields.io/travis/OpenAPITools/openapi-generator/master.svg?label=Integration%20Test)](https://travis-ci.org/OpenAPITools/openapi-generator) +[Master](https://github.com/OpenAPITools/openapi-generator/tree/master) (`3.3.3`): [![Build Status](https://img.shields.io/travis/OpenAPITools/openapi-generator/master.svg?label=Integration%20Test)](https://travis-ci.org/OpenAPITools/openapi-generator) [![Integration Test2](https://circleci.com/gh/OpenAPITools/openapi-generator.svg?style=shield)](https://circleci.com/gh/OpenAPITools/openapi-generator) [![Run Status](https://api.shippable.com/projects/5af6bf74e790f4070084a115/badge?branch=master)](https://app.shippable.com/github/OpenAPITools/openapi-generator) [![Windows Test](https://ci.appveyor.com/api/projects/status/github/openapitools/openapi-generator?branch=master&svg=true&passingText=Windows%20Test%20-%20OK&failingText=Windows%20Test%20-%20Fails)](https://ci.appveyor.com/project/WilliamCheng/openapi-generator-wh2wu) @@ -91,7 +91,7 @@ OpenAPI Generator Version | Release Date | Notes 4.0.0 (upcoming major release) [SNAPSHOT](https://oss.sonatype.org/content/repositories/snapshots/org/openapitools/openapi-generator-cli/4.0.0-SNAPSHOT/)| TBD | Major release with breaking changes (no fallback) 3.4.0 (upcoming minor release) [SNAPSHOT](https://oss.sonatype.org/content/repositories/snapshots/org/openapitools/openapi-generator-cli/3.4.0-SNAPSHOT/)| 01.11.2018 | Minor release (breaking changes with fallbacks) 3.3.3 (current master, upcoming patch release) [SNAPSHOT](https://oss.sonatype.org/content/repositories/snapshots/org/openapitools/openapi-generator-cli/3.3.3-SNAPSHOT/) | 15.11.2018 | Bugfix release -[3.3.2](https://github.com/OpenAPITools/openapi-generator/releases/tag/v3.3.2) (latest stable release) | 31.10.2018 | Bugfix release +[3.3.3](https://github.com/OpenAPITools/openapi-generator/releases/tag/v3.3.3) (latest stable release) | 15.11.2018 | Bugfix release OpenAPI Spec compatibility: 1.0, 1.1, 1.2, 2.0, 3.0 @@ -147,16 +147,16 @@ See the different versions of the [openapi-generator-cli](https://mvnrepository. If you're looking for the latest stable version, you can grab it directly from Maven.org (Java 8 runtime at a minimum): -JAR location: `http://central.maven.org/maven2/org/openapitools/openapi-generator-cli/3.3.2/openapi-generator-cli-3.3.2.jar` +JAR location: `http://central.maven.org/maven2/org/openapitools/openapi-generator-cli/3.3.3/openapi-generator-cli-3.3.3.jar` For **Mac/Linux** users: ```sh -wget http://central.maven.org/maven2/org/openapitools/openapi-generator-cli/3.3.2/openapi-generator-cli-3.3.2.jar -O openapi-generator-cli.jar +wget http://central.maven.org/maven2/org/openapitools/openapi-generator-cli/3.3.3/openapi-generator-cli-3.3.3.jar -O openapi-generator-cli.jar ``` For **Windows** users, you will need to install [wget](http://gnuwin32.sourceforge.net/packages/wget.htm) or you can use Invoke-WebRequest in PowerShell (3.0+), e.g. ``` -Invoke-WebRequest -OutFile openapi-generator-cli.jar http://central.maven.org/maven2/org/openapitools/openapi-generator-cli/3.3.2/openapi-generator-cli-3.3.2.jar +Invoke-WebRequest -OutFile openapi-generator-cli.jar http://central.maven.org/maven2/org/openapitools/openapi-generator-cli/3.3.3/openapi-generator-cli-3.3.3.jar ``` After downloading the JAR, run `java -jar openapi-generator-cli.jar help` to show the usage. diff --git a/modules/openapi-generator-cli/pom.xml b/modules/openapi-generator-cli/pom.xml index bb6575cbf6d..f9e19b77fdf 100644 --- a/modules/openapi-generator-cli/pom.xml +++ b/modules/openapi-generator-cli/pom.xml @@ -3,7 +3,7 @@ org.openapitools openapi-generator-project - 3.3.3-SNAPSHOT + 3.3.3 ../.. 4.0.0 diff --git a/modules/openapi-generator-gradle-plugin/README.adoc b/modules/openapi-generator-gradle-plugin/README.adoc index 2ad4d3300a6..125c57d898e 100644 --- a/modules/openapi-generator-gradle-plugin/README.adoc +++ b/modules/openapi-generator-gradle-plugin/README.adoc @@ -48,7 +48,7 @@ buildscript { mavenCentral() } dependencies { - classpath "org.openapitools:openapi-generator-gradle-plugin:3.3.2" + classpath "org.openapitools:openapi-generator-gradle-plugin:3.3.3" } } diff --git a/modules/openapi-generator-gradle-plugin/gradle.properties b/modules/openapi-generator-gradle-plugin/gradle.properties index 475db6de067..0adbed9ff11 100644 --- a/modules/openapi-generator-gradle-plugin/gradle.properties +++ b/modules/openapi-generator-gradle-plugin/gradle.properties @@ -1,4 +1,4 @@ -openApiGeneratorVersion=3.3.3-SNAPSHOT +openApiGeneratorVersion=3.3.3 # BEGIN placeholders # these are just placeholders to allow contributors to build directly diff --git a/modules/openapi-generator-gradle-plugin/pom.xml b/modules/openapi-generator-gradle-plugin/pom.xml index 169ff2630b3..e9218d80daa 100644 --- a/modules/openapi-generator-gradle-plugin/pom.xml +++ b/modules/openapi-generator-gradle-plugin/pom.xml @@ -3,7 +3,7 @@ org.openapitools openapi-generator-project - 3.3.3-SNAPSHOT + 3.3.3 ../.. 4.0.0 diff --git a/modules/openapi-generator-gradle-plugin/samples/local-spec/README.md b/modules/openapi-generator-gradle-plugin/samples/local-spec/README.md index 13ff3f21216..10cb62d4dc3 100644 --- a/modules/openapi-generator-gradle-plugin/samples/local-spec/README.md +++ b/modules/openapi-generator-gradle-plugin/samples/local-spec/README.md @@ -17,5 +17,5 @@ gradle generateGoWithInvalidSpec The samples can be tested against other versions of the plugin using the `openApiGeneratorVersion` property. For example: ```bash -gradle -PopenApiGeneratorVersion=3.3.2 openApiValidate +gradle -PopenApiGeneratorVersion=3.3.3 openApiValidate ``` diff --git a/modules/openapi-generator-gradle-plugin/samples/local-spec/gradle.properties b/modules/openapi-generator-gradle-plugin/samples/local-spec/gradle.properties index 409dcc65ff7..4647aca3d0f 100644 --- a/modules/openapi-generator-gradle-plugin/samples/local-spec/gradle.properties +++ b/modules/openapi-generator-gradle-plugin/samples/local-spec/gradle.properties @@ -1 +1 @@ -openApiGeneratorVersion=3.3.2 +openApiGeneratorVersion=3.3.3 diff --git a/modules/openapi-generator-maven-plugin/README.md b/modules/openapi-generator-maven-plugin/README.md index 378ecf8b687..897961c3a3d 100644 --- a/modules/openapi-generator-maven-plugin/README.md +++ b/modules/openapi-generator-maven-plugin/README.md @@ -11,7 +11,7 @@ Add to your `build->plugins` section (default phase is `generate-sources` phase) org.openapitools openapi-generator-maven-plugin - 3.3.2 + 3.3.3 diff --git a/modules/openapi-generator-maven-plugin/examples/java-client.xml b/modules/openapi-generator-maven-plugin/examples/java-client.xml index f7e8d52f95f..e41920227ec 100644 --- a/modules/openapi-generator-maven-plugin/examples/java-client.xml +++ b/modules/openapi-generator-maven-plugin/examples/java-client.xml @@ -12,7 +12,7 @@ org.openapitools openapi-generator-maven-plugin - 3.3.2 + 3.3.3 diff --git a/modules/openapi-generator-maven-plugin/examples/non-java-invalid-spec.xml b/modules/openapi-generator-maven-plugin/examples/non-java-invalid-spec.xml index 315e08ef00e..75d399a4904 100644 --- a/modules/openapi-generator-maven-plugin/examples/non-java-invalid-spec.xml +++ b/modules/openapi-generator-maven-plugin/examples/non-java-invalid-spec.xml @@ -12,7 +12,7 @@ org.openapitools openapi-generator-maven-plugin - 3.3.2 + 3.3.3 diff --git a/modules/openapi-generator-maven-plugin/examples/non-java.xml b/modules/openapi-generator-maven-plugin/examples/non-java.xml index 689cfdab2d6..d1bf8af649c 100644 --- a/modules/openapi-generator-maven-plugin/examples/non-java.xml +++ b/modules/openapi-generator-maven-plugin/examples/non-java.xml @@ -12,7 +12,7 @@ org.openapitools openapi-generator-maven-plugin - 3.3.2 + 3.3.3 diff --git a/modules/openapi-generator-maven-plugin/pom.xml b/modules/openapi-generator-maven-plugin/pom.xml index c22f5180546..1407d9cb599 100644 --- a/modules/openapi-generator-maven-plugin/pom.xml +++ b/modules/openapi-generator-maven-plugin/pom.xml @@ -4,7 +4,7 @@ org.openapitools openapi-generator-project - 3.3.3-SNAPSHOT + 3.3.3 ../.. openapi-generator-maven-plugin diff --git a/modules/openapi-generator-online/pom.xml b/modules/openapi-generator-online/pom.xml index b6367a90903..1f457f365a8 100644 --- a/modules/openapi-generator-online/pom.xml +++ b/modules/openapi-generator-online/pom.xml @@ -3,7 +3,7 @@ org.openapitools openapi-generator-project - 3.3.3-SNAPSHOT + 3.3.3 ../.. openapi-generator-online diff --git a/modules/openapi-generator/pom.xml b/modules/openapi-generator/pom.xml index f0f2f933212..b745425aa1c 100644 --- a/modules/openapi-generator/pom.xml +++ b/modules/openapi-generator/pom.xml @@ -3,7 +3,7 @@ org.openapitools openapi-generator-project - 3.3.3-SNAPSHOT + 3.3.3 ../.. 4.0.0 diff --git a/pom.xml b/pom.xml index 589afaf479f..d86d25e0e4e 100644 --- a/pom.xml +++ b/pom.xml @@ -9,7 +9,7 @@ openapi-generator-project pom openapi-generator-project - 3.3.3-SNAPSHOT + 3.3.3 https://github.com/openapitools/openapi-generator scm:git:git@github.com:openapitools/openapi-generator.git diff --git a/samples/meta-codegen/lib/pom.xml b/samples/meta-codegen/lib/pom.xml index 2732bc80a79..57195b534d4 100644 --- a/samples/meta-codegen/lib/pom.xml +++ b/samples/meta-codegen/lib/pom.xml @@ -116,7 +116,7 @@ UTF-8 - 3.3.3-SNAPSHOT + 3.3.3 1.0.0 4.8.1 From 653601bef2891468bd087805fba6052e184603d5 Mon Sep 17 00:00:00 2001 From: James Addyman Date: Thu, 15 Nov 2018 02:20:39 +0000 Subject: [PATCH 24/27] Fix #1424 [SWIFT4] Date Encoding Issues (#1442) Ensure the same date format string is used throughout the generated code (use the one set in Configuration.swift). Ensure the same date formatter options are used when encoding dates as well as decoding dates. If a consumer has set their own date formatter on CodableHelper, use that when encoding dates too. Adds DateFormatTests to the SWIFT4 unit tests. Updates the SWIFT4 petstore samples --- .../resources/swift4/CodableHelper.mustache | 4 +- .../main/resources/swift4/Extensions.mustache | 14 ++- .../Classes/OpenAPIs/APIs/FakeAPI.swift | 15 ++- .../Classes/OpenAPIs/CodableHelper.swift | 4 +- .../Classes/OpenAPIs/Extensions.swift | 14 ++- .../SwaggerClient.xcodeproj/project.pbxproj | 4 + .../SwaggerClientTests/DateFormatTests.swift | 113 ++++++++++++++++++ .../objcCompatible/.openapi-generator/VERSION | 2 +- .../Classes/OpenAPIs/APIs.swift | 8 +- .../Classes/OpenAPIs/APIs/FakeAPI.swift | 57 +++++++++ .../OpenAPIs/AlamofireImplementations.swift | 4 +- .../Classes/OpenAPIs/CodableHelper.swift | 6 +- .../Classes/OpenAPIs/Configuration.swift | 2 +- .../Classes/OpenAPIs/Extensions.swift | 14 ++- .../Classes/OpenAPIs/Models.swift | 6 +- .../Classes/OpenAPIs/Models/Category.swift | 4 +- .../Classes/OpenAPIs/Models/MapTest.swift | 4 +- .../promisekit/.openapi-generator/VERSION | 2 +- .../Classes/OpenAPIs/APIs.swift | 8 +- .../Classes/OpenAPIs/APIs/FakeAPI.swift | 79 ++++++++++++ .../OpenAPIs/AlamofireImplementations.swift | 4 +- .../Classes/OpenAPIs/CodableHelper.swift | 6 +- .../Classes/OpenAPIs/Configuration.swift | 2 +- .../Classes/OpenAPIs/Extensions.swift | 14 ++- .../Classes/OpenAPIs/Models.swift | 6 +- .../Classes/OpenAPIs/Models/Category.swift | 4 +- .../Classes/OpenAPIs/Models/MapTest.swift | 4 +- .../swift4/rxswift/.openapi-generator/VERSION | 2 +- .../Classes/OpenAPIs/APIs.swift | 8 +- .../Classes/OpenAPIs/APIs/FakeAPI.swift | 81 +++++++++++++ .../OpenAPIs/AlamofireImplementations.swift | 4 +- .../Classes/OpenAPIs/CodableHelper.swift | 6 +- .../Classes/OpenAPIs/Configuration.swift | 2 +- .../Classes/OpenAPIs/Extensions.swift | 14 ++- .../Classes/OpenAPIs/Models.swift | 6 +- .../Classes/OpenAPIs/Models/Category.swift | 4 +- .../Classes/OpenAPIs/Models/MapTest.swift | 4 +- .../unwrapRequired/.openapi-generator/VERSION | 2 +- .../Classes/OpenAPIs/APIs.swift | 8 +- .../Classes/OpenAPIs/APIs/FakeAPI.swift | 57 +++++++++ .../OpenAPIs/AlamofireImplementations.swift | 4 +- .../Classes/OpenAPIs/CodableHelper.swift | 6 +- .../Classes/OpenAPIs/Configuration.swift | 2 +- .../Classes/OpenAPIs/Extensions.swift | 14 ++- .../Classes/OpenAPIs/Models.swift | 6 +- .../Classes/OpenAPIs/Models/Category.swift | 2 +- .../Classes/OpenAPIs/Models/MapTest.swift | 4 +- 47 files changed, 538 insertions(+), 102 deletions(-) create mode 100644 samples/client/petstore/swift4/default/SwaggerClientTests/SwaggerClientTests/DateFormatTests.swift diff --git a/modules/openapi-generator/src/main/resources/swift4/CodableHelper.mustache b/modules/openapi-generator/src/main/resources/swift4/CodableHelper.mustache index e9d28accdf4..584de8c3d57 100644 --- a/modules/openapi-generator/src/main/resources/swift4/CodableHelper.mustache +++ b/modules/openapi-generator/src/main/resources/swift4/CodableHelper.mustache @@ -26,7 +26,7 @@ open class CodableHelper { formatter.calendar = Calendar(identifier: .iso8601) formatter.locale = Locale(identifier: "en_US_POSIX") formatter.timeZone = TimeZone(secondsFromGMT: 0) - formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSXXXXX" + formatter.dateFormat = Configuration.dateFormat decoder.dateDecodingStrategy = .formatted(formatter) } @@ -55,7 +55,7 @@ open class CodableHelper { formatter.calendar = Calendar(identifier: .iso8601) formatter.locale = Locale(identifier: "en_US_POSIX") formatter.timeZone = TimeZone(secondsFromGMT: 0) - formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSXXXXX" + formatter.dateFormat = Configuration.dateFormat encoder.dateEncodingStrategy = .formatted(formatter) } diff --git a/modules/openapi-generator/src/main/resources/swift4/Extensions.mustache b/modules/openapi-generator/src/main/resources/swift4/Extensions.mustache index 7f5e1c1f739..61d55e8afec 100644 --- a/modules/openapi-generator/src/main/resources/swift4/Extensions.mustache +++ b/modules/openapi-generator/src/main/resources/swift4/Extensions.mustache @@ -67,10 +67,16 @@ extension Data: JSONEncodable { } private let dateFormatter: DateFormatter = { - let fmt = DateFormatter() - fmt.dateFormat = Configuration.dateFormat - fmt.locale = Locale(identifier: "en_US_POSIX") - return fmt + if let formatter = CodableHelper.dateformatter { + return formatter + } else { + let formatter = DateFormatter() + formatter.calendar = Calendar(identifier: .iso8601) + formatter.locale = Locale(identifier: "en_US_POSIX") + formatter.timeZone = TimeZone(secondsFromGMT: 0) + formatter.dateFormat = Configuration.dateFormat + return formatter + } }() extension Date: JSONEncodable { diff --git a/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/APIs/FakeAPI.swift b/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/APIs/FakeAPI.swift index 02b129d41ef..a209a492192 100644 --- a/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/APIs/FakeAPI.swift +++ b/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/APIs/FakeAPI.swift @@ -455,13 +455,16 @@ open class FakeAPI { /** Fake endpoint to test group parameters (optional) + - parameter requiredStringGroup: (query) Required String in group parameters + - parameter requiredBooleanGroup: (header) Required Boolean in group parameters + - parameter requiredInt64Group: (query) Required Integer in group parameters - parameter stringGroup: (query) String in group parameters (optional) - parameter booleanGroup: (header) Boolean in group parameters (optional) - parameter int64Group: (query) Integer in group parameters (optional) - parameter completion: completion handler to receive the data and the error objects */ - open class func testGroupParameters(stringGroup: Int? = nil, booleanGroup: Bool? = nil, int64Group: Int64? = nil, completion: @escaping ((_ data: Void?,_ error: Error?) -> Void)) { - testGroupParametersWithRequestBuilder(stringGroup: stringGroup, booleanGroup: booleanGroup, int64Group: int64Group).execute { (response, error) -> Void in + open class func testGroupParameters(requiredStringGroup: Int, requiredBooleanGroup: Bool, requiredInt64Group: Int64, stringGroup: Int? = nil, booleanGroup: Bool? = nil, int64Group: Int64? = nil, completion: @escaping ((_ data: Void?,_ error: Error?) -> Void)) { + testGroupParametersWithRequestBuilder(requiredStringGroup: requiredStringGroup, requiredBooleanGroup: requiredBooleanGroup, requiredInt64Group: requiredInt64Group, stringGroup: stringGroup, booleanGroup: booleanGroup, int64Group: int64Group).execute { (response, error) -> Void in if error == nil { completion((), error) } else { @@ -475,22 +478,28 @@ open class FakeAPI { Fake endpoint to test group parameters (optional) - DELETE /fake - Fake endpoint to test group parameters (optional) + - parameter requiredStringGroup: (query) Required String in group parameters + - parameter requiredBooleanGroup: (header) Required Boolean in group parameters + - parameter requiredInt64Group: (query) Required Integer in group parameters - parameter stringGroup: (query) String in group parameters (optional) - parameter booleanGroup: (header) Boolean in group parameters (optional) - parameter int64Group: (query) Integer in group parameters (optional) - returns: RequestBuilder */ - open class func testGroupParametersWithRequestBuilder(stringGroup: Int? = nil, booleanGroup: Bool? = nil, int64Group: Int64? = nil) -> RequestBuilder { + open class func testGroupParametersWithRequestBuilder(requiredStringGroup: Int, requiredBooleanGroup: Bool, requiredInt64Group: Int64, stringGroup: Int? = nil, booleanGroup: Bool? = nil, int64Group: Int64? = nil) -> RequestBuilder { let path = "/fake" let URLString = PetstoreClientAPI.basePath + path let parameters: [String:Any]? = nil var url = URLComponents(string: URLString) url?.queryItems = APIHelper.mapValuesToQueryItems([ + "required_string_group": requiredStringGroup.encodeToJSON(), + "required_int64_group": requiredInt64Group.encodeToJSON(), "string_group": stringGroup?.encodeToJSON(), "int64_group": int64Group?.encodeToJSON() ]) let nillableHeaders: [String: Any?] = [ + "required_boolean_group": requiredBooleanGroup, "boolean_group": booleanGroup ] let headerParameters = APIHelper.rejectNilHeaders(nillableHeaders) diff --git a/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/CodableHelper.swift b/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/CodableHelper.swift index e9d28accdf4..584de8c3d57 100644 --- a/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/CodableHelper.swift +++ b/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/CodableHelper.swift @@ -26,7 +26,7 @@ open class CodableHelper { formatter.calendar = Calendar(identifier: .iso8601) formatter.locale = Locale(identifier: "en_US_POSIX") formatter.timeZone = TimeZone(secondsFromGMT: 0) - formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSXXXXX" + formatter.dateFormat = Configuration.dateFormat decoder.dateDecodingStrategy = .formatted(formatter) } @@ -55,7 +55,7 @@ open class CodableHelper { formatter.calendar = Calendar(identifier: .iso8601) formatter.locale = Locale(identifier: "en_US_POSIX") formatter.timeZone = TimeZone(secondsFromGMT: 0) - formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSXXXXX" + formatter.dateFormat = Configuration.dateFormat encoder.dateEncodingStrategy = .formatted(formatter) } diff --git a/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Extensions.swift b/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Extensions.swift index abe218b4e7a..8bf1829ba80 100644 --- a/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Extensions.swift +++ b/samples/client/petstore/swift4/default/PetstoreClient/Classes/OpenAPIs/Extensions.swift @@ -66,10 +66,16 @@ extension Data: JSONEncodable { } private let dateFormatter: DateFormatter = { - let fmt = DateFormatter() - fmt.dateFormat = Configuration.dateFormat - fmt.locale = Locale(identifier: "en_US_POSIX") - return fmt + if let formatter = CodableHelper.dateformatter { + return formatter + } else { + let formatter = DateFormatter() + formatter.calendar = Calendar(identifier: .iso8601) + formatter.locale = Locale(identifier: "en_US_POSIX") + formatter.timeZone = TimeZone(secondsFromGMT: 0) + formatter.dateFormat = Configuration.dateFormat + return formatter + } }() extension Date: JSONEncodable { diff --git a/samples/client/petstore/swift4/default/SwaggerClientTests/SwaggerClient.xcodeproj/project.pbxproj b/samples/client/petstore/swift4/default/SwaggerClientTests/SwaggerClient.xcodeproj/project.pbxproj index 583e008421f..2c13537f84c 100644 --- a/samples/client/petstore/swift4/default/SwaggerClientTests/SwaggerClient.xcodeproj/project.pbxproj +++ b/samples/client/petstore/swift4/default/SwaggerClientTests/SwaggerClient.xcodeproj/project.pbxproj @@ -7,6 +7,7 @@ objects = { /* Begin PBXBuildFile section */ + 1A501F48219C3DC600F372F6 /* DateFormatTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1A501F47219C3DC600F372F6 /* DateFormatTests.swift */; }; 54DA06C1D70D78EC0EC72B61 /* Pods_SwaggerClientTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F65B6638217EDDC99D103B16 /* Pods_SwaggerClientTests.framework */; }; 6D4EFB951C692C6300B96B06 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6D4EFB941C692C6300B96B06 /* AppDelegate.swift */; }; 6D4EFB971C692C6300B96B06 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6D4EFB961C692C6300B96B06 /* ViewController.swift */; }; @@ -30,6 +31,7 @@ /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ + 1A501F47219C3DC600F372F6 /* DateFormatTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DateFormatTests.swift; sourceTree = ""; }; 289E8A9E9C0BB66AD190C7C6 /* Pods-SwaggerClientTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SwaggerClientTests.debug.xcconfig"; path = "Pods/Target Support Files/Pods-SwaggerClientTests/Pods-SwaggerClientTests.debug.xcconfig"; sourceTree = ""; }; 6D4EFB911C692C6300B96B06 /* SwaggerClient.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = SwaggerClient.app; sourceTree = BUILT_PRODUCTS_DIR; }; 6D4EFB941C692C6300B96B06 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; @@ -132,6 +134,7 @@ 6D4EFBB41C693BE200B96B06 /* PetAPITests.swift */, 6D4EFBB61C693BED00B96B06 /* StoreAPITests.swift */, 6D4EFBB81C693BFC00B96B06 /* UserAPITests.swift */, + 1A501F47219C3DC600F372F6 /* DateFormatTests.swift */, ); path = SwaggerClientTests; sourceTree = ""; @@ -360,6 +363,7 @@ files = ( 6D4EFBB71C693BED00B96B06 /* StoreAPITests.swift in Sources */, 6D4EFBB91C693BFC00B96B06 /* UserAPITests.swift in Sources */, + 1A501F48219C3DC600F372F6 /* DateFormatTests.swift in Sources */, 6D4EFBB51C693BE200B96B06 /* PetAPITests.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; diff --git a/samples/client/petstore/swift4/default/SwaggerClientTests/SwaggerClientTests/DateFormatTests.swift b/samples/client/petstore/swift4/default/SwaggerClientTests/SwaggerClientTests/DateFormatTests.swift new file mode 100644 index 00000000000..978417c3586 --- /dev/null +++ b/samples/client/petstore/swift4/default/SwaggerClientTests/SwaggerClientTests/DateFormatTests.swift @@ -0,0 +1,113 @@ +// +// DateFormatTests.swift +// SwaggerClientTests +// +// Created by James on 14/11/2018. +// Copyright © 2018 Swagger. All rights reserved. +// + +import Foundation +import XCTest +@testable import PetstoreClient +@testable import SwaggerClient + +class DateFormatTests: XCTestCase { + + struct DateTest: Codable { + let date: Date + } + + override func setUp() { + super.setUp() + // Put setup code here. This method is called before the invocation of each test method in the class. + } + + override func tearDown() { + // Put teardown code here. This method is called after the invocation of each test method in the class. + super.tearDown() + } + + func testEncodeToJSONAlwaysResultsInUTCEncodedDate() { + var dateComponents = DateComponents() + dateComponents.calendar = Calendar(identifier: .gregorian) + dateComponents.year = 2018 + dateComponents.month = 11 + dateComponents.day = 14 + dateComponents.hour = 11 + dateComponents.minute = 35 + dateComponents.second = 43 + dateComponents.nanosecond = 500 + + // Testing a date with a timezone of +00:00 (UTC) + dateComponents.timeZone = TimeZone(secondsFromGMT: 0) + XCTAssert(dateComponents.isValidDate) + + guard let utcDate = dateComponents.date else { + XCTFail("Couldn't get a valid date") + return + } + + var encodedDate = utcDate.encodeToJSON() as! String + XCTAssert(encodedDate.hasSuffix("Z")) + + // test with a positive timzone offset from UTC + dateComponents.timeZone = TimeZone(secondsFromGMT: 60 * 60) // +01:00 + XCTAssert(dateComponents.isValidDate) + + guard let nonUTCDate1 = dateComponents.date else { + XCTFail("Couldn't get a valid date") + return + } + + encodedDate = nonUTCDate1.encodeToJSON() as! String + XCTAssert(encodedDate.hasSuffix("Z")) + + // test with a negative timzone offset from UTC + dateComponents.timeZone = TimeZone(secondsFromGMT: -(60 * 60)) // -01:00 + XCTAssert(dateComponents.isValidDate) + + guard let nonUTCDate2 = dateComponents.date else { + XCTFail("Couldn't get a valid date") + return + } + + encodedDate = nonUTCDate2.encodeToJSON() as! String + XCTAssert(encodedDate.hasSuffix("Z")) + } + + func testCodableAlwaysResultsInUTCEncodedDate() { + let jsonData = "{\"date\":\"1970-01-01T00:00:00.000Z\"}".data(using: .utf8)! + let decodeResult = CodableHelper.decode(DateTest.self, from: jsonData) + XCTAssert(decodeResult.decodableObj != nil && decodeResult.error == nil) + + var dateComponents = DateComponents() + dateComponents.calendar = Calendar(identifier: .gregorian) + dateComponents.year = 1970 + dateComponents.month = 01 + dateComponents.day = 01 + dateComponents.hour = 00 + dateComponents.minute = 00 + dateComponents.second = 00 + + // Testing a date with a timezone of +00:00 (UTC) + dateComponents.timeZone = TimeZone(secondsFromGMT: 0) + XCTAssert(dateComponents.isValidDate) + + guard let date = dateComponents.date else { + XCTFail("Couldn't get a valid date") + return + } + + let dateTest = DateTest(date: date) + let encodeResult = CodableHelper.encode(dateTest) + XCTAssert(encodeResult.data != nil && encodeResult.error == nil) + guard let jsonString = String(data: encodeResult.data!, encoding: .utf8) else { + XCTFail("Unable to convert encoded data to string.") + return + } + + let exampleJSONString = "{\"date\":\"1970-01-01T00:00:00.000Z\"}" + XCTAssert(jsonString == exampleJSONString, "Encoded JSON String: \(jsonString) should match: \(exampleJSONString)") + } + +} diff --git a/samples/client/petstore/swift4/objcCompatible/.openapi-generator/VERSION b/samples/client/petstore/swift4/objcCompatible/.openapi-generator/VERSION index 6d94c9c2e12..e24c1f857e0 100644 --- a/samples/client/petstore/swift4/objcCompatible/.openapi-generator/VERSION +++ b/samples/client/petstore/swift4/objcCompatible/.openapi-generator/VERSION @@ -1 +1 @@ -3.3.0-SNAPSHOT \ No newline at end of file +3.3.3-SNAPSHOT \ No newline at end of file diff --git a/samples/client/petstore/swift4/objcCompatible/PetstoreClient/Classes/OpenAPIs/APIs.swift b/samples/client/petstore/swift4/objcCompatible/PetstoreClient/Classes/OpenAPIs/APIs.swift index 8cae3aacfe5..2890bffa274 100644 --- a/samples/client/petstore/swift4/objcCompatible/PetstoreClient/Classes/OpenAPIs/APIs.swift +++ b/samples/client/petstore/swift4/objcCompatible/PetstoreClient/Classes/OpenAPIs/APIs.swift @@ -7,10 +7,10 @@ import Foundation open class PetstoreClientAPI { - open static var basePath = "http://petstore.swagger.io:80/v2" - open static var credential: URLCredential? - open static var customHeaders: [String:String] = [:] - open static var requestBuilderFactory: RequestBuilderFactory = AlamofireRequestBuilderFactory() + public static var basePath = "http://petstore.swagger.io:80/v2" + public static var credential: URLCredential? + public static var customHeaders: [String:String] = [:] + public static var requestBuilderFactory: RequestBuilderFactory = AlamofireRequestBuilderFactory() } open class RequestBuilder { diff --git a/samples/client/petstore/swift4/objcCompatible/PetstoreClient/Classes/OpenAPIs/APIs/FakeAPI.swift b/samples/client/petstore/swift4/objcCompatible/PetstoreClient/Classes/OpenAPIs/APIs/FakeAPI.swift index 7dc52cc3b00..a209a492192 100644 --- a/samples/client/petstore/swift4/objcCompatible/PetstoreClient/Classes/OpenAPIs/APIs/FakeAPI.swift +++ b/samples/client/petstore/swift4/objcCompatible/PetstoreClient/Classes/OpenAPIs/APIs/FakeAPI.swift @@ -452,6 +452,63 @@ open class FakeAPI { return requestBuilder.init(method: "GET", URLString: (url?.string ?? URLString), parameters: parameters, isBody: false, headers: headerParameters) } + /** + Fake endpoint to test group parameters (optional) + + - parameter requiredStringGroup: (query) Required String in group parameters + - parameter requiredBooleanGroup: (header) Required Boolean in group parameters + - parameter requiredInt64Group: (query) Required Integer in group parameters + - parameter stringGroup: (query) String in group parameters (optional) + - parameter booleanGroup: (header) Boolean in group parameters (optional) + - parameter int64Group: (query) Integer in group parameters (optional) + - parameter completion: completion handler to receive the data and the error objects + */ + open class func testGroupParameters(requiredStringGroup: Int, requiredBooleanGroup: Bool, requiredInt64Group: Int64, stringGroup: Int? = nil, booleanGroup: Bool? = nil, int64Group: Int64? = nil, completion: @escaping ((_ data: Void?,_ error: Error?) -> Void)) { + testGroupParametersWithRequestBuilder(requiredStringGroup: requiredStringGroup, requiredBooleanGroup: requiredBooleanGroup, requiredInt64Group: requiredInt64Group, stringGroup: stringGroup, booleanGroup: booleanGroup, int64Group: int64Group).execute { (response, error) -> Void in + if error == nil { + completion((), error) + } else { + completion(nil, error) + } + } + } + + + /** + Fake endpoint to test group parameters (optional) + - DELETE /fake + - Fake endpoint to test group parameters (optional) + - parameter requiredStringGroup: (query) Required String in group parameters + - parameter requiredBooleanGroup: (header) Required Boolean in group parameters + - parameter requiredInt64Group: (query) Required Integer in group parameters + - parameter stringGroup: (query) String in group parameters (optional) + - parameter booleanGroup: (header) Boolean in group parameters (optional) + - parameter int64Group: (query) Integer in group parameters (optional) + - returns: RequestBuilder + */ + open class func testGroupParametersWithRequestBuilder(requiredStringGroup: Int, requiredBooleanGroup: Bool, requiredInt64Group: Int64, stringGroup: Int? = nil, booleanGroup: Bool? = nil, int64Group: Int64? = nil) -> RequestBuilder { + let path = "/fake" + let URLString = PetstoreClientAPI.basePath + path + let parameters: [String:Any]? = nil + + var url = URLComponents(string: URLString) + url?.queryItems = APIHelper.mapValuesToQueryItems([ + "required_string_group": requiredStringGroup.encodeToJSON(), + "required_int64_group": requiredInt64Group.encodeToJSON(), + "string_group": stringGroup?.encodeToJSON(), + "int64_group": int64Group?.encodeToJSON() + ]) + let nillableHeaders: [String: Any?] = [ + "required_boolean_group": requiredBooleanGroup, + "boolean_group": booleanGroup + ] + let headerParameters = APIHelper.rejectNilHeaders(nillableHeaders) + + let requestBuilder: RequestBuilder.Type = PetstoreClientAPI.requestBuilderFactory.getNonDecodableBuilder() + + return requestBuilder.init(method: "DELETE", URLString: (url?.string ?? URLString), parameters: parameters, isBody: false, headers: headerParameters) + } + /** test inline additionalProperties diff --git a/samples/client/petstore/swift4/objcCompatible/PetstoreClient/Classes/OpenAPIs/AlamofireImplementations.swift b/samples/client/petstore/swift4/objcCompatible/PetstoreClient/Classes/OpenAPIs/AlamofireImplementations.swift index 2ade78f5a61..ac14f72c7d0 100644 --- a/samples/client/petstore/swift4/objcCompatible/PetstoreClient/Classes/OpenAPIs/AlamofireImplementations.swift +++ b/samples/client/petstore/swift4/objcCompatible/PetstoreClient/Classes/OpenAPIs/AlamofireImplementations.swift @@ -154,7 +154,7 @@ open class AlamofireRequestBuilder: RequestBuilder { if stringResponse.result.isFailure { completion( nil, - ErrorResponse.error(stringResponse.response?.statusCode ?? 500, stringResponse.data, stringResponse.result.error as Error!) + ErrorResponse.error(stringResponse.response?.statusCode ?? 500, stringResponse.data, stringResponse.result.error!) ) return } @@ -356,7 +356,7 @@ open class AlamofireDecodableRequestBuilder: AlamofireRequestBuilde if stringResponse.result.isFailure { completion( nil, - ErrorResponse.error(stringResponse.response?.statusCode ?? 500, stringResponse.data, stringResponse.result.error as Error!) + ErrorResponse.error(stringResponse.response?.statusCode ?? 500, stringResponse.data, stringResponse.result.error!) ) return } diff --git a/samples/client/petstore/swift4/objcCompatible/PetstoreClient/Classes/OpenAPIs/CodableHelper.swift b/samples/client/petstore/swift4/objcCompatible/PetstoreClient/Classes/OpenAPIs/CodableHelper.swift index bd72d81846d..584de8c3d57 100644 --- a/samples/client/petstore/swift4/objcCompatible/PetstoreClient/Classes/OpenAPIs/CodableHelper.swift +++ b/samples/client/petstore/swift4/objcCompatible/PetstoreClient/Classes/OpenAPIs/CodableHelper.swift @@ -11,7 +11,7 @@ public typealias EncodeResult = (data: Data?, error: Error?) open class CodableHelper { - open static var dateformatter: DateFormatter? + public static var dateformatter: DateFormatter? open class func decode(_ type: T.Type, from data: Data) -> (decodableObj: T?, error: Error?) where T : Decodable { var returnedDecodable: T? = nil @@ -26,7 +26,7 @@ open class CodableHelper { formatter.calendar = Calendar(identifier: .iso8601) formatter.locale = Locale(identifier: "en_US_POSIX") formatter.timeZone = TimeZone(secondsFromGMT: 0) - formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSXXXXX" + formatter.dateFormat = Configuration.dateFormat decoder.dateDecodingStrategy = .formatted(formatter) } @@ -55,7 +55,7 @@ open class CodableHelper { formatter.calendar = Calendar(identifier: .iso8601) formatter.locale = Locale(identifier: "en_US_POSIX") formatter.timeZone = TimeZone(secondsFromGMT: 0) - formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSXXXXX" + formatter.dateFormat = Configuration.dateFormat encoder.dateEncodingStrategy = .formatted(formatter) } diff --git a/samples/client/petstore/swift4/objcCompatible/PetstoreClient/Classes/OpenAPIs/Configuration.swift b/samples/client/petstore/swift4/objcCompatible/PetstoreClient/Classes/OpenAPIs/Configuration.swift index f8180752b67..516590da5d9 100644 --- a/samples/client/petstore/swift4/objcCompatible/PetstoreClient/Classes/OpenAPIs/Configuration.swift +++ b/samples/client/petstore/swift4/objcCompatible/PetstoreClient/Classes/OpenAPIs/Configuration.swift @@ -10,6 +10,6 @@ open class Configuration { // This value is used to configure the date formatter that is used to serialize dates into JSON format. // You must set it prior to encoding any dates, and it will only be read once. - open static var dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSZZZZZ" + public static var dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSZZZZZ" } \ No newline at end of file diff --git a/samples/client/petstore/swift4/objcCompatible/PetstoreClient/Classes/OpenAPIs/Extensions.swift b/samples/client/petstore/swift4/objcCompatible/PetstoreClient/Classes/OpenAPIs/Extensions.swift index abe218b4e7a..8bf1829ba80 100644 --- a/samples/client/petstore/swift4/objcCompatible/PetstoreClient/Classes/OpenAPIs/Extensions.swift +++ b/samples/client/petstore/swift4/objcCompatible/PetstoreClient/Classes/OpenAPIs/Extensions.swift @@ -66,10 +66,16 @@ extension Data: JSONEncodable { } private let dateFormatter: DateFormatter = { - let fmt = DateFormatter() - fmt.dateFormat = Configuration.dateFormat - fmt.locale = Locale(identifier: "en_US_POSIX") - return fmt + if let formatter = CodableHelper.dateformatter { + return formatter + } else { + let formatter = DateFormatter() + formatter.calendar = Calendar(identifier: .iso8601) + formatter.locale = Locale(identifier: "en_US_POSIX") + formatter.timeZone = TimeZone(secondsFromGMT: 0) + formatter.dateFormat = Configuration.dateFormat + return formatter + } }() extension Date: JSONEncodable { diff --git a/samples/client/petstore/swift4/objcCompatible/PetstoreClient/Classes/OpenAPIs/Models.swift b/samples/client/petstore/swift4/objcCompatible/PetstoreClient/Classes/OpenAPIs/Models.swift index 42f8186ae4a..40856389035 100644 --- a/samples/client/petstore/swift4/objcCompatible/PetstoreClient/Classes/OpenAPIs/Models.swift +++ b/samples/client/petstore/swift4/objcCompatible/PetstoreClient/Classes/OpenAPIs/Models.swift @@ -15,9 +15,9 @@ public enum ErrorResponse : Error { } open class Response { - open let statusCode: Int - open let header: [String: String] - open let body: T? + public let statusCode: Int + public let header: [String: String] + public let body: T? public init(statusCode: Int, header: [String: String], body: T?) { self.statusCode = statusCode diff --git a/samples/client/petstore/swift4/objcCompatible/PetstoreClient/Classes/OpenAPIs/Models/Category.swift b/samples/client/petstore/swift4/objcCompatible/PetstoreClient/Classes/OpenAPIs/Models/Category.swift index c27be481ecf..10f625e35b0 100644 --- a/samples/client/petstore/swift4/objcCompatible/PetstoreClient/Classes/OpenAPIs/Models/Category.swift +++ b/samples/client/petstore/swift4/objcCompatible/PetstoreClient/Classes/OpenAPIs/Models/Category.swift @@ -17,9 +17,9 @@ public struct Category: Codable { return _id.map({ return NSNumber(value: $0) }) } } - public var name: String? + public var name: String = "default-name" - public init(_id: Int64?, name: String?) { + public init(_id: Int64?, name: String) { self._id = _id self.name = name } diff --git a/samples/client/petstore/swift4/objcCompatible/PetstoreClient/Classes/OpenAPIs/Models/MapTest.swift b/samples/client/petstore/swift4/objcCompatible/PetstoreClient/Classes/OpenAPIs/Models/MapTest.swift index 2d3a45d35a0..392c1e44383 100644 --- a/samples/client/petstore/swift4/objcCompatible/PetstoreClient/Classes/OpenAPIs/Models/MapTest.swift +++ b/samples/client/petstore/swift4/objcCompatible/PetstoreClient/Classes/OpenAPIs/Models/MapTest.swift @@ -18,9 +18,9 @@ public struct MapTest: Codable { public var mapMapOfString: [String:[String:String]]? public var mapOfEnumString: [String:String]? public var directMap: [String:Bool]? - public var indirectMap: StringBooleanMap? + public var indirectMap: [String:Bool]? - public init(mapMapOfString: [String:[String:String]]?, mapOfEnumString: [String:String]?, directMap: [String:Bool]?, indirectMap: StringBooleanMap?) { + public init(mapMapOfString: [String:[String:String]]?, mapOfEnumString: [String:String]?, directMap: [String:Bool]?, indirectMap: [String:Bool]?) { self.mapMapOfString = mapMapOfString self.mapOfEnumString = mapOfEnumString self.directMap = directMap diff --git a/samples/client/petstore/swift4/promisekit/.openapi-generator/VERSION b/samples/client/petstore/swift4/promisekit/.openapi-generator/VERSION index 6d94c9c2e12..e24c1f857e0 100644 --- a/samples/client/petstore/swift4/promisekit/.openapi-generator/VERSION +++ b/samples/client/petstore/swift4/promisekit/.openapi-generator/VERSION @@ -1 +1 @@ -3.3.0-SNAPSHOT \ No newline at end of file +3.3.3-SNAPSHOT \ No newline at end of file diff --git a/samples/client/petstore/swift4/promisekit/PetstoreClient/Classes/OpenAPIs/APIs.swift b/samples/client/petstore/swift4/promisekit/PetstoreClient/Classes/OpenAPIs/APIs.swift index 8cae3aacfe5..2890bffa274 100644 --- a/samples/client/petstore/swift4/promisekit/PetstoreClient/Classes/OpenAPIs/APIs.swift +++ b/samples/client/petstore/swift4/promisekit/PetstoreClient/Classes/OpenAPIs/APIs.swift @@ -7,10 +7,10 @@ import Foundation open class PetstoreClientAPI { - open static var basePath = "http://petstore.swagger.io:80/v2" - open static var credential: URLCredential? - open static var customHeaders: [String:String] = [:] - open static var requestBuilderFactory: RequestBuilderFactory = AlamofireRequestBuilderFactory() + public static var basePath = "http://petstore.swagger.io:80/v2" + public static var credential: URLCredential? + public static var customHeaders: [String:String] = [:] + public static var requestBuilderFactory: RequestBuilderFactory = AlamofireRequestBuilderFactory() } open class RequestBuilder { diff --git a/samples/client/petstore/swift4/promisekit/PetstoreClient/Classes/OpenAPIs/APIs/FakeAPI.swift b/samples/client/petstore/swift4/promisekit/PetstoreClient/Classes/OpenAPIs/APIs/FakeAPI.swift index ea2799c3411..2256dc531cb 100644 --- a/samples/client/petstore/swift4/promisekit/PetstoreClient/Classes/OpenAPIs/APIs/FakeAPI.swift +++ b/samples/client/petstore/swift4/promisekit/PetstoreClient/Classes/OpenAPIs/APIs/FakeAPI.swift @@ -621,6 +621,85 @@ open class FakeAPI { return requestBuilder.init(method: "GET", URLString: (url?.string ?? URLString), parameters: parameters, isBody: false, headers: headerParameters) } + /** + Fake endpoint to test group parameters (optional) + + - parameter requiredStringGroup: (query) Required String in group parameters + - parameter requiredBooleanGroup: (header) Required Boolean in group parameters + - parameter requiredInt64Group: (query) Required Integer in group parameters + - parameter stringGroup: (query) String in group parameters (optional) + - parameter booleanGroup: (header) Boolean in group parameters (optional) + - parameter int64Group: (query) Integer in group parameters (optional) + - parameter completion: completion handler to receive the data and the error objects + */ + open class func testGroupParameters(requiredStringGroup: Int, requiredBooleanGroup: Bool, requiredInt64Group: Int64, stringGroup: Int? = nil, booleanGroup: Bool? = nil, int64Group: Int64? = nil, completion: @escaping ((_ data: Void?,_ error: Error?) -> Void)) { + testGroupParametersWithRequestBuilder(requiredStringGroup: requiredStringGroup, requiredBooleanGroup: requiredBooleanGroup, requiredInt64Group: requiredInt64Group, stringGroup: stringGroup, booleanGroup: booleanGroup, int64Group: int64Group).execute { (response, error) -> Void in + if error == nil { + completion((), error) + } else { + completion(nil, error) + } + } + } + + /** + Fake endpoint to test group parameters (optional) + + - parameter requiredStringGroup: (query) Required String in group parameters + - parameter requiredBooleanGroup: (header) Required Boolean in group parameters + - parameter requiredInt64Group: (query) Required Integer in group parameters + - parameter stringGroup: (query) String in group parameters (optional) + - parameter booleanGroup: (header) Boolean in group parameters (optional) + - parameter int64Group: (query) Integer in group parameters (optional) + - returns: Promise + */ + open class func testGroupParameters( requiredStringGroup: Int, requiredBooleanGroup: Bool, requiredInt64Group: Int64, stringGroup: Int? = nil, booleanGroup: Bool? = nil, int64Group: Int64? = nil) -> Promise { + let deferred = Promise.pending() + testGroupParameters(requiredStringGroup: requiredStringGroup, requiredBooleanGroup: requiredBooleanGroup, requiredInt64Group: requiredInt64Group, stringGroup: stringGroup, booleanGroup: booleanGroup, int64Group: int64Group) { data, error in + if let error = error { + deferred.reject(error) + } else { + deferred.fulfill(data!) + } + } + return deferred.promise + } + + /** + Fake endpoint to test group parameters (optional) + - DELETE /fake + - Fake endpoint to test group parameters (optional) + - parameter requiredStringGroup: (query) Required String in group parameters + - parameter requiredBooleanGroup: (header) Required Boolean in group parameters + - parameter requiredInt64Group: (query) Required Integer in group parameters + - parameter stringGroup: (query) String in group parameters (optional) + - parameter booleanGroup: (header) Boolean in group parameters (optional) + - parameter int64Group: (query) Integer in group parameters (optional) + - returns: RequestBuilder + */ + open class func testGroupParametersWithRequestBuilder(requiredStringGroup: Int, requiredBooleanGroup: Bool, requiredInt64Group: Int64, stringGroup: Int? = nil, booleanGroup: Bool? = nil, int64Group: Int64? = nil) -> RequestBuilder { + let path = "/fake" + let URLString = PetstoreClientAPI.basePath + path + let parameters: [String:Any]? = nil + + var url = URLComponents(string: URLString) + url?.queryItems = APIHelper.mapValuesToQueryItems([ + "required_string_group": requiredStringGroup.encodeToJSON(), + "required_int64_group": requiredInt64Group.encodeToJSON(), + "string_group": stringGroup?.encodeToJSON(), + "int64_group": int64Group?.encodeToJSON() + ]) + let nillableHeaders: [String: Any?] = [ + "required_boolean_group": requiredBooleanGroup, + "boolean_group": booleanGroup + ] + let headerParameters = APIHelper.rejectNilHeaders(nillableHeaders) + + let requestBuilder: RequestBuilder.Type = PetstoreClientAPI.requestBuilderFactory.getNonDecodableBuilder() + + return requestBuilder.init(method: "DELETE", URLString: (url?.string ?? URLString), parameters: parameters, isBody: false, headers: headerParameters) + } + /** test inline additionalProperties diff --git a/samples/client/petstore/swift4/promisekit/PetstoreClient/Classes/OpenAPIs/AlamofireImplementations.swift b/samples/client/petstore/swift4/promisekit/PetstoreClient/Classes/OpenAPIs/AlamofireImplementations.swift index 2ade78f5a61..ac14f72c7d0 100644 --- a/samples/client/petstore/swift4/promisekit/PetstoreClient/Classes/OpenAPIs/AlamofireImplementations.swift +++ b/samples/client/petstore/swift4/promisekit/PetstoreClient/Classes/OpenAPIs/AlamofireImplementations.swift @@ -154,7 +154,7 @@ open class AlamofireRequestBuilder: RequestBuilder { if stringResponse.result.isFailure { completion( nil, - ErrorResponse.error(stringResponse.response?.statusCode ?? 500, stringResponse.data, stringResponse.result.error as Error!) + ErrorResponse.error(stringResponse.response?.statusCode ?? 500, stringResponse.data, stringResponse.result.error!) ) return } @@ -356,7 +356,7 @@ open class AlamofireDecodableRequestBuilder: AlamofireRequestBuilde if stringResponse.result.isFailure { completion( nil, - ErrorResponse.error(stringResponse.response?.statusCode ?? 500, stringResponse.data, stringResponse.result.error as Error!) + ErrorResponse.error(stringResponse.response?.statusCode ?? 500, stringResponse.data, stringResponse.result.error!) ) return } diff --git a/samples/client/petstore/swift4/promisekit/PetstoreClient/Classes/OpenAPIs/CodableHelper.swift b/samples/client/petstore/swift4/promisekit/PetstoreClient/Classes/OpenAPIs/CodableHelper.swift index bd72d81846d..584de8c3d57 100644 --- a/samples/client/petstore/swift4/promisekit/PetstoreClient/Classes/OpenAPIs/CodableHelper.swift +++ b/samples/client/petstore/swift4/promisekit/PetstoreClient/Classes/OpenAPIs/CodableHelper.swift @@ -11,7 +11,7 @@ public typealias EncodeResult = (data: Data?, error: Error?) open class CodableHelper { - open static var dateformatter: DateFormatter? + public static var dateformatter: DateFormatter? open class func decode(_ type: T.Type, from data: Data) -> (decodableObj: T?, error: Error?) where T : Decodable { var returnedDecodable: T? = nil @@ -26,7 +26,7 @@ open class CodableHelper { formatter.calendar = Calendar(identifier: .iso8601) formatter.locale = Locale(identifier: "en_US_POSIX") formatter.timeZone = TimeZone(secondsFromGMT: 0) - formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSXXXXX" + formatter.dateFormat = Configuration.dateFormat decoder.dateDecodingStrategy = .formatted(formatter) } @@ -55,7 +55,7 @@ open class CodableHelper { formatter.calendar = Calendar(identifier: .iso8601) formatter.locale = Locale(identifier: "en_US_POSIX") formatter.timeZone = TimeZone(secondsFromGMT: 0) - formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSXXXXX" + formatter.dateFormat = Configuration.dateFormat encoder.dateEncodingStrategy = .formatted(formatter) } diff --git a/samples/client/petstore/swift4/promisekit/PetstoreClient/Classes/OpenAPIs/Configuration.swift b/samples/client/petstore/swift4/promisekit/PetstoreClient/Classes/OpenAPIs/Configuration.swift index f8180752b67..516590da5d9 100644 --- a/samples/client/petstore/swift4/promisekit/PetstoreClient/Classes/OpenAPIs/Configuration.swift +++ b/samples/client/petstore/swift4/promisekit/PetstoreClient/Classes/OpenAPIs/Configuration.swift @@ -10,6 +10,6 @@ open class Configuration { // This value is used to configure the date formatter that is used to serialize dates into JSON format. // You must set it prior to encoding any dates, and it will only be read once. - open static var dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSZZZZZ" + public static var dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSZZZZZ" } \ No newline at end of file diff --git a/samples/client/petstore/swift4/promisekit/PetstoreClient/Classes/OpenAPIs/Extensions.swift b/samples/client/petstore/swift4/promisekit/PetstoreClient/Classes/OpenAPIs/Extensions.swift index eb03b10eb47..97a90f9af49 100644 --- a/samples/client/petstore/swift4/promisekit/PetstoreClient/Classes/OpenAPIs/Extensions.swift +++ b/samples/client/petstore/swift4/promisekit/PetstoreClient/Classes/OpenAPIs/Extensions.swift @@ -67,10 +67,16 @@ extension Data: JSONEncodable { } private let dateFormatter: DateFormatter = { - let fmt = DateFormatter() - fmt.dateFormat = Configuration.dateFormat - fmt.locale = Locale(identifier: "en_US_POSIX") - return fmt + if let formatter = CodableHelper.dateformatter { + return formatter + } else { + let formatter = DateFormatter() + formatter.calendar = Calendar(identifier: .iso8601) + formatter.locale = Locale(identifier: "en_US_POSIX") + formatter.timeZone = TimeZone(secondsFromGMT: 0) + formatter.dateFormat = Configuration.dateFormat + return formatter + } }() extension Date: JSONEncodable { diff --git a/samples/client/petstore/swift4/promisekit/PetstoreClient/Classes/OpenAPIs/Models.swift b/samples/client/petstore/swift4/promisekit/PetstoreClient/Classes/OpenAPIs/Models.swift index 42f8186ae4a..40856389035 100644 --- a/samples/client/petstore/swift4/promisekit/PetstoreClient/Classes/OpenAPIs/Models.swift +++ b/samples/client/petstore/swift4/promisekit/PetstoreClient/Classes/OpenAPIs/Models.swift @@ -15,9 +15,9 @@ public enum ErrorResponse : Error { } open class Response { - open let statusCode: Int - open let header: [String: String] - open let body: T? + public let statusCode: Int + public let header: [String: String] + public let body: T? public init(statusCode: Int, header: [String: String], body: T?) { self.statusCode = statusCode diff --git a/samples/client/petstore/swift4/promisekit/PetstoreClient/Classes/OpenAPIs/Models/Category.swift b/samples/client/petstore/swift4/promisekit/PetstoreClient/Classes/OpenAPIs/Models/Category.swift index 77fba95c1d7..afdc89b6dd0 100644 --- a/samples/client/petstore/swift4/promisekit/PetstoreClient/Classes/OpenAPIs/Models/Category.swift +++ b/samples/client/petstore/swift4/promisekit/PetstoreClient/Classes/OpenAPIs/Models/Category.swift @@ -12,9 +12,9 @@ import Foundation public struct Category: Codable { public var _id: Int64? - public var name: String? + public var name: String = "default-name" - public init(_id: Int64?, name: String?) { + public init(_id: Int64?, name: String) { self._id = _id self.name = name } diff --git a/samples/client/petstore/swift4/promisekit/PetstoreClient/Classes/OpenAPIs/Models/MapTest.swift b/samples/client/petstore/swift4/promisekit/PetstoreClient/Classes/OpenAPIs/Models/MapTest.swift index 2d3a45d35a0..392c1e44383 100644 --- a/samples/client/petstore/swift4/promisekit/PetstoreClient/Classes/OpenAPIs/Models/MapTest.swift +++ b/samples/client/petstore/swift4/promisekit/PetstoreClient/Classes/OpenAPIs/Models/MapTest.swift @@ -18,9 +18,9 @@ public struct MapTest: Codable { public var mapMapOfString: [String:[String:String]]? public var mapOfEnumString: [String:String]? public var directMap: [String:Bool]? - public var indirectMap: StringBooleanMap? + public var indirectMap: [String:Bool]? - public init(mapMapOfString: [String:[String:String]]?, mapOfEnumString: [String:String]?, directMap: [String:Bool]?, indirectMap: StringBooleanMap?) { + public init(mapMapOfString: [String:[String:String]]?, mapOfEnumString: [String:String]?, directMap: [String:Bool]?, indirectMap: [String:Bool]?) { self.mapMapOfString = mapMapOfString self.mapOfEnumString = mapOfEnumString self.directMap = directMap diff --git a/samples/client/petstore/swift4/rxswift/.openapi-generator/VERSION b/samples/client/petstore/swift4/rxswift/.openapi-generator/VERSION index 6d94c9c2e12..e24c1f857e0 100644 --- a/samples/client/petstore/swift4/rxswift/.openapi-generator/VERSION +++ b/samples/client/petstore/swift4/rxswift/.openapi-generator/VERSION @@ -1 +1 @@ -3.3.0-SNAPSHOT \ No newline at end of file +3.3.3-SNAPSHOT \ No newline at end of file diff --git a/samples/client/petstore/swift4/rxswift/PetstoreClient/Classes/OpenAPIs/APIs.swift b/samples/client/petstore/swift4/rxswift/PetstoreClient/Classes/OpenAPIs/APIs.swift index 8cae3aacfe5..2890bffa274 100644 --- a/samples/client/petstore/swift4/rxswift/PetstoreClient/Classes/OpenAPIs/APIs.swift +++ b/samples/client/petstore/swift4/rxswift/PetstoreClient/Classes/OpenAPIs/APIs.swift @@ -7,10 +7,10 @@ import Foundation open class PetstoreClientAPI { - open static var basePath = "http://petstore.swagger.io:80/v2" - open static var credential: URLCredential? - open static var customHeaders: [String:String] = [:] - open static var requestBuilderFactory: RequestBuilderFactory = AlamofireRequestBuilderFactory() + public static var basePath = "http://petstore.swagger.io:80/v2" + public static var credential: URLCredential? + public static var customHeaders: [String:String] = [:] + public static var requestBuilderFactory: RequestBuilderFactory = AlamofireRequestBuilderFactory() } open class RequestBuilder { diff --git a/samples/client/petstore/swift4/rxswift/PetstoreClient/Classes/OpenAPIs/APIs/FakeAPI.swift b/samples/client/petstore/swift4/rxswift/PetstoreClient/Classes/OpenAPIs/APIs/FakeAPI.swift index 415cdf8c231..8a7431a3b9b 100644 --- a/samples/client/petstore/swift4/rxswift/PetstoreClient/Classes/OpenAPIs/APIs/FakeAPI.swift +++ b/samples/client/petstore/swift4/rxswift/PetstoreClient/Classes/OpenAPIs/APIs/FakeAPI.swift @@ -639,6 +639,87 @@ open class FakeAPI { return requestBuilder.init(method: "GET", URLString: (url?.string ?? URLString), parameters: parameters, isBody: false, headers: headerParameters) } + /** + Fake endpoint to test group parameters (optional) + + - parameter requiredStringGroup: (query) Required String in group parameters + - parameter requiredBooleanGroup: (header) Required Boolean in group parameters + - parameter requiredInt64Group: (query) Required Integer in group parameters + - parameter stringGroup: (query) String in group parameters (optional) + - parameter booleanGroup: (header) Boolean in group parameters (optional) + - parameter int64Group: (query) Integer in group parameters (optional) + - parameter completion: completion handler to receive the data and the error objects + */ + open class func testGroupParameters(requiredStringGroup: Int, requiredBooleanGroup: Bool, requiredInt64Group: Int64, stringGroup: Int? = nil, booleanGroup: Bool? = nil, int64Group: Int64? = nil, completion: @escaping ((_ data: Void?,_ error: Error?) -> Void)) { + testGroupParametersWithRequestBuilder(requiredStringGroup: requiredStringGroup, requiredBooleanGroup: requiredBooleanGroup, requiredInt64Group: requiredInt64Group, stringGroup: stringGroup, booleanGroup: booleanGroup, int64Group: int64Group).execute { (response, error) -> Void in + if error == nil { + completion((), error) + } else { + completion(nil, error) + } + } + } + + /** + Fake endpoint to test group parameters (optional) + + - parameter requiredStringGroup: (query) Required String in group parameters + - parameter requiredBooleanGroup: (header) Required Boolean in group parameters + - parameter requiredInt64Group: (query) Required Integer in group parameters + - parameter stringGroup: (query) String in group parameters (optional) + - parameter booleanGroup: (header) Boolean in group parameters (optional) + - parameter int64Group: (query) Integer in group parameters (optional) + - returns: Observable + */ + open class func testGroupParameters(requiredStringGroup: Int, requiredBooleanGroup: Bool, requiredInt64Group: Int64, stringGroup: Int? = nil, booleanGroup: Bool? = nil, int64Group: Int64? = nil) -> Observable { + return Observable.create { observer -> Disposable in + testGroupParameters(requiredStringGroup: requiredStringGroup, requiredBooleanGroup: requiredBooleanGroup, requiredInt64Group: requiredInt64Group, stringGroup: stringGroup, booleanGroup: booleanGroup, int64Group: int64Group) { data, error in + if let error = error { + observer.on(.error(error)) + } else { + observer.on(.next(data!)) + } + observer.on(.completed) + } + return Disposables.create() + } + } + + /** + Fake endpoint to test group parameters (optional) + - DELETE /fake + - Fake endpoint to test group parameters (optional) + - parameter requiredStringGroup: (query) Required String in group parameters + - parameter requiredBooleanGroup: (header) Required Boolean in group parameters + - parameter requiredInt64Group: (query) Required Integer in group parameters + - parameter stringGroup: (query) String in group parameters (optional) + - parameter booleanGroup: (header) Boolean in group parameters (optional) + - parameter int64Group: (query) Integer in group parameters (optional) + - returns: RequestBuilder + */ + open class func testGroupParametersWithRequestBuilder(requiredStringGroup: Int, requiredBooleanGroup: Bool, requiredInt64Group: Int64, stringGroup: Int? = nil, booleanGroup: Bool? = nil, int64Group: Int64? = nil) -> RequestBuilder { + let path = "/fake" + let URLString = PetstoreClientAPI.basePath + path + let parameters: [String:Any]? = nil + + var url = URLComponents(string: URLString) + url?.queryItems = APIHelper.mapValuesToQueryItems([ + "required_string_group": requiredStringGroup.encodeToJSON(), + "required_int64_group": requiredInt64Group.encodeToJSON(), + "string_group": stringGroup?.encodeToJSON(), + "int64_group": int64Group?.encodeToJSON() + ]) + let nillableHeaders: [String: Any?] = [ + "required_boolean_group": requiredBooleanGroup, + "boolean_group": booleanGroup + ] + let headerParameters = APIHelper.rejectNilHeaders(nillableHeaders) + + let requestBuilder: RequestBuilder.Type = PetstoreClientAPI.requestBuilderFactory.getNonDecodableBuilder() + + return requestBuilder.init(method: "DELETE", URLString: (url?.string ?? URLString), parameters: parameters, isBody: false, headers: headerParameters) + } + /** test inline additionalProperties diff --git a/samples/client/petstore/swift4/rxswift/PetstoreClient/Classes/OpenAPIs/AlamofireImplementations.swift b/samples/client/petstore/swift4/rxswift/PetstoreClient/Classes/OpenAPIs/AlamofireImplementations.swift index 2ade78f5a61..ac14f72c7d0 100644 --- a/samples/client/petstore/swift4/rxswift/PetstoreClient/Classes/OpenAPIs/AlamofireImplementations.swift +++ b/samples/client/petstore/swift4/rxswift/PetstoreClient/Classes/OpenAPIs/AlamofireImplementations.swift @@ -154,7 +154,7 @@ open class AlamofireRequestBuilder: RequestBuilder { if stringResponse.result.isFailure { completion( nil, - ErrorResponse.error(stringResponse.response?.statusCode ?? 500, stringResponse.data, stringResponse.result.error as Error!) + ErrorResponse.error(stringResponse.response?.statusCode ?? 500, stringResponse.data, stringResponse.result.error!) ) return } @@ -356,7 +356,7 @@ open class AlamofireDecodableRequestBuilder: AlamofireRequestBuilde if stringResponse.result.isFailure { completion( nil, - ErrorResponse.error(stringResponse.response?.statusCode ?? 500, stringResponse.data, stringResponse.result.error as Error!) + ErrorResponse.error(stringResponse.response?.statusCode ?? 500, stringResponse.data, stringResponse.result.error!) ) return } diff --git a/samples/client/petstore/swift4/rxswift/PetstoreClient/Classes/OpenAPIs/CodableHelper.swift b/samples/client/petstore/swift4/rxswift/PetstoreClient/Classes/OpenAPIs/CodableHelper.swift index bd72d81846d..584de8c3d57 100644 --- a/samples/client/petstore/swift4/rxswift/PetstoreClient/Classes/OpenAPIs/CodableHelper.swift +++ b/samples/client/petstore/swift4/rxswift/PetstoreClient/Classes/OpenAPIs/CodableHelper.swift @@ -11,7 +11,7 @@ public typealias EncodeResult = (data: Data?, error: Error?) open class CodableHelper { - open static var dateformatter: DateFormatter? + public static var dateformatter: DateFormatter? open class func decode(_ type: T.Type, from data: Data) -> (decodableObj: T?, error: Error?) where T : Decodable { var returnedDecodable: T? = nil @@ -26,7 +26,7 @@ open class CodableHelper { formatter.calendar = Calendar(identifier: .iso8601) formatter.locale = Locale(identifier: "en_US_POSIX") formatter.timeZone = TimeZone(secondsFromGMT: 0) - formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSXXXXX" + formatter.dateFormat = Configuration.dateFormat decoder.dateDecodingStrategy = .formatted(formatter) } @@ -55,7 +55,7 @@ open class CodableHelper { formatter.calendar = Calendar(identifier: .iso8601) formatter.locale = Locale(identifier: "en_US_POSIX") formatter.timeZone = TimeZone(secondsFromGMT: 0) - formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSXXXXX" + formatter.dateFormat = Configuration.dateFormat encoder.dateEncodingStrategy = .formatted(formatter) } diff --git a/samples/client/petstore/swift4/rxswift/PetstoreClient/Classes/OpenAPIs/Configuration.swift b/samples/client/petstore/swift4/rxswift/PetstoreClient/Classes/OpenAPIs/Configuration.swift index f8180752b67..516590da5d9 100644 --- a/samples/client/petstore/swift4/rxswift/PetstoreClient/Classes/OpenAPIs/Configuration.swift +++ b/samples/client/petstore/swift4/rxswift/PetstoreClient/Classes/OpenAPIs/Configuration.swift @@ -10,6 +10,6 @@ open class Configuration { // This value is used to configure the date formatter that is used to serialize dates into JSON format. // You must set it prior to encoding any dates, and it will only be read once. - open static var dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSZZZZZ" + public static var dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSZZZZZ" } \ No newline at end of file diff --git a/samples/client/petstore/swift4/rxswift/PetstoreClient/Classes/OpenAPIs/Extensions.swift b/samples/client/petstore/swift4/rxswift/PetstoreClient/Classes/OpenAPIs/Extensions.swift index abe218b4e7a..8bf1829ba80 100644 --- a/samples/client/petstore/swift4/rxswift/PetstoreClient/Classes/OpenAPIs/Extensions.swift +++ b/samples/client/petstore/swift4/rxswift/PetstoreClient/Classes/OpenAPIs/Extensions.swift @@ -66,10 +66,16 @@ extension Data: JSONEncodable { } private let dateFormatter: DateFormatter = { - let fmt = DateFormatter() - fmt.dateFormat = Configuration.dateFormat - fmt.locale = Locale(identifier: "en_US_POSIX") - return fmt + if let formatter = CodableHelper.dateformatter { + return formatter + } else { + let formatter = DateFormatter() + formatter.calendar = Calendar(identifier: .iso8601) + formatter.locale = Locale(identifier: "en_US_POSIX") + formatter.timeZone = TimeZone(secondsFromGMT: 0) + formatter.dateFormat = Configuration.dateFormat + return formatter + } }() extension Date: JSONEncodable { diff --git a/samples/client/petstore/swift4/rxswift/PetstoreClient/Classes/OpenAPIs/Models.swift b/samples/client/petstore/swift4/rxswift/PetstoreClient/Classes/OpenAPIs/Models.swift index 42f8186ae4a..40856389035 100644 --- a/samples/client/petstore/swift4/rxswift/PetstoreClient/Classes/OpenAPIs/Models.swift +++ b/samples/client/petstore/swift4/rxswift/PetstoreClient/Classes/OpenAPIs/Models.swift @@ -15,9 +15,9 @@ public enum ErrorResponse : Error { } open class Response { - open let statusCode: Int - open let header: [String: String] - open let body: T? + public let statusCode: Int + public let header: [String: String] + public let body: T? public init(statusCode: Int, header: [String: String], body: T?) { self.statusCode = statusCode diff --git a/samples/client/petstore/swift4/rxswift/PetstoreClient/Classes/OpenAPIs/Models/Category.swift b/samples/client/petstore/swift4/rxswift/PetstoreClient/Classes/OpenAPIs/Models/Category.swift index 77fba95c1d7..afdc89b6dd0 100644 --- a/samples/client/petstore/swift4/rxswift/PetstoreClient/Classes/OpenAPIs/Models/Category.swift +++ b/samples/client/petstore/swift4/rxswift/PetstoreClient/Classes/OpenAPIs/Models/Category.swift @@ -12,9 +12,9 @@ import Foundation public struct Category: Codable { public var _id: Int64? - public var name: String? + public var name: String = "default-name" - public init(_id: Int64?, name: String?) { + public init(_id: Int64?, name: String) { self._id = _id self.name = name } diff --git a/samples/client/petstore/swift4/rxswift/PetstoreClient/Classes/OpenAPIs/Models/MapTest.swift b/samples/client/petstore/swift4/rxswift/PetstoreClient/Classes/OpenAPIs/Models/MapTest.swift index 2d3a45d35a0..392c1e44383 100644 --- a/samples/client/petstore/swift4/rxswift/PetstoreClient/Classes/OpenAPIs/Models/MapTest.swift +++ b/samples/client/petstore/swift4/rxswift/PetstoreClient/Classes/OpenAPIs/Models/MapTest.swift @@ -18,9 +18,9 @@ public struct MapTest: Codable { public var mapMapOfString: [String:[String:String]]? public var mapOfEnumString: [String:String]? public var directMap: [String:Bool]? - public var indirectMap: StringBooleanMap? + public var indirectMap: [String:Bool]? - public init(mapMapOfString: [String:[String:String]]?, mapOfEnumString: [String:String]?, directMap: [String:Bool]?, indirectMap: StringBooleanMap?) { + public init(mapMapOfString: [String:[String:String]]?, mapOfEnumString: [String:String]?, directMap: [String:Bool]?, indirectMap: [String:Bool]?) { self.mapMapOfString = mapMapOfString self.mapOfEnumString = mapOfEnumString self.directMap = directMap diff --git a/samples/client/petstore/swift4/unwrapRequired/.openapi-generator/VERSION b/samples/client/petstore/swift4/unwrapRequired/.openapi-generator/VERSION index 6d94c9c2e12..e24c1f857e0 100644 --- a/samples/client/petstore/swift4/unwrapRequired/.openapi-generator/VERSION +++ b/samples/client/petstore/swift4/unwrapRequired/.openapi-generator/VERSION @@ -1 +1 @@ -3.3.0-SNAPSHOT \ No newline at end of file +3.3.3-SNAPSHOT \ No newline at end of file diff --git a/samples/client/petstore/swift4/unwrapRequired/PetstoreClient/Classes/OpenAPIs/APIs.swift b/samples/client/petstore/swift4/unwrapRequired/PetstoreClient/Classes/OpenAPIs/APIs.swift index 8cae3aacfe5..2890bffa274 100644 --- a/samples/client/petstore/swift4/unwrapRequired/PetstoreClient/Classes/OpenAPIs/APIs.swift +++ b/samples/client/petstore/swift4/unwrapRequired/PetstoreClient/Classes/OpenAPIs/APIs.swift @@ -7,10 +7,10 @@ import Foundation open class PetstoreClientAPI { - open static var basePath = "http://petstore.swagger.io:80/v2" - open static var credential: URLCredential? - open static var customHeaders: [String:String] = [:] - open static var requestBuilderFactory: RequestBuilderFactory = AlamofireRequestBuilderFactory() + public static var basePath = "http://petstore.swagger.io:80/v2" + public static var credential: URLCredential? + public static var customHeaders: [String:String] = [:] + public static var requestBuilderFactory: RequestBuilderFactory = AlamofireRequestBuilderFactory() } open class RequestBuilder { diff --git a/samples/client/petstore/swift4/unwrapRequired/PetstoreClient/Classes/OpenAPIs/APIs/FakeAPI.swift b/samples/client/petstore/swift4/unwrapRequired/PetstoreClient/Classes/OpenAPIs/APIs/FakeAPI.swift index 7dc52cc3b00..a209a492192 100644 --- a/samples/client/petstore/swift4/unwrapRequired/PetstoreClient/Classes/OpenAPIs/APIs/FakeAPI.swift +++ b/samples/client/petstore/swift4/unwrapRequired/PetstoreClient/Classes/OpenAPIs/APIs/FakeAPI.swift @@ -452,6 +452,63 @@ open class FakeAPI { return requestBuilder.init(method: "GET", URLString: (url?.string ?? URLString), parameters: parameters, isBody: false, headers: headerParameters) } + /** + Fake endpoint to test group parameters (optional) + + - parameter requiredStringGroup: (query) Required String in group parameters + - parameter requiredBooleanGroup: (header) Required Boolean in group parameters + - parameter requiredInt64Group: (query) Required Integer in group parameters + - parameter stringGroup: (query) String in group parameters (optional) + - parameter booleanGroup: (header) Boolean in group parameters (optional) + - parameter int64Group: (query) Integer in group parameters (optional) + - parameter completion: completion handler to receive the data and the error objects + */ + open class func testGroupParameters(requiredStringGroup: Int, requiredBooleanGroup: Bool, requiredInt64Group: Int64, stringGroup: Int? = nil, booleanGroup: Bool? = nil, int64Group: Int64? = nil, completion: @escaping ((_ data: Void?,_ error: Error?) -> Void)) { + testGroupParametersWithRequestBuilder(requiredStringGroup: requiredStringGroup, requiredBooleanGroup: requiredBooleanGroup, requiredInt64Group: requiredInt64Group, stringGroup: stringGroup, booleanGroup: booleanGroup, int64Group: int64Group).execute { (response, error) -> Void in + if error == nil { + completion((), error) + } else { + completion(nil, error) + } + } + } + + + /** + Fake endpoint to test group parameters (optional) + - DELETE /fake + - Fake endpoint to test group parameters (optional) + - parameter requiredStringGroup: (query) Required String in group parameters + - parameter requiredBooleanGroup: (header) Required Boolean in group parameters + - parameter requiredInt64Group: (query) Required Integer in group parameters + - parameter stringGroup: (query) String in group parameters (optional) + - parameter booleanGroup: (header) Boolean in group parameters (optional) + - parameter int64Group: (query) Integer in group parameters (optional) + - returns: RequestBuilder + */ + open class func testGroupParametersWithRequestBuilder(requiredStringGroup: Int, requiredBooleanGroup: Bool, requiredInt64Group: Int64, stringGroup: Int? = nil, booleanGroup: Bool? = nil, int64Group: Int64? = nil) -> RequestBuilder { + let path = "/fake" + let URLString = PetstoreClientAPI.basePath + path + let parameters: [String:Any]? = nil + + var url = URLComponents(string: URLString) + url?.queryItems = APIHelper.mapValuesToQueryItems([ + "required_string_group": requiredStringGroup.encodeToJSON(), + "required_int64_group": requiredInt64Group.encodeToJSON(), + "string_group": stringGroup?.encodeToJSON(), + "int64_group": int64Group?.encodeToJSON() + ]) + let nillableHeaders: [String: Any?] = [ + "required_boolean_group": requiredBooleanGroup, + "boolean_group": booleanGroup + ] + let headerParameters = APIHelper.rejectNilHeaders(nillableHeaders) + + let requestBuilder: RequestBuilder.Type = PetstoreClientAPI.requestBuilderFactory.getNonDecodableBuilder() + + return requestBuilder.init(method: "DELETE", URLString: (url?.string ?? URLString), parameters: parameters, isBody: false, headers: headerParameters) + } + /** test inline additionalProperties diff --git a/samples/client/petstore/swift4/unwrapRequired/PetstoreClient/Classes/OpenAPIs/AlamofireImplementations.swift b/samples/client/petstore/swift4/unwrapRequired/PetstoreClient/Classes/OpenAPIs/AlamofireImplementations.swift index 2ade78f5a61..ac14f72c7d0 100644 --- a/samples/client/petstore/swift4/unwrapRequired/PetstoreClient/Classes/OpenAPIs/AlamofireImplementations.swift +++ b/samples/client/petstore/swift4/unwrapRequired/PetstoreClient/Classes/OpenAPIs/AlamofireImplementations.swift @@ -154,7 +154,7 @@ open class AlamofireRequestBuilder: RequestBuilder { if stringResponse.result.isFailure { completion( nil, - ErrorResponse.error(stringResponse.response?.statusCode ?? 500, stringResponse.data, stringResponse.result.error as Error!) + ErrorResponse.error(stringResponse.response?.statusCode ?? 500, stringResponse.data, stringResponse.result.error!) ) return } @@ -356,7 +356,7 @@ open class AlamofireDecodableRequestBuilder: AlamofireRequestBuilde if stringResponse.result.isFailure { completion( nil, - ErrorResponse.error(stringResponse.response?.statusCode ?? 500, stringResponse.data, stringResponse.result.error as Error!) + ErrorResponse.error(stringResponse.response?.statusCode ?? 500, stringResponse.data, stringResponse.result.error!) ) return } diff --git a/samples/client/petstore/swift4/unwrapRequired/PetstoreClient/Classes/OpenAPIs/CodableHelper.swift b/samples/client/petstore/swift4/unwrapRequired/PetstoreClient/Classes/OpenAPIs/CodableHelper.swift index bd72d81846d..584de8c3d57 100644 --- a/samples/client/petstore/swift4/unwrapRequired/PetstoreClient/Classes/OpenAPIs/CodableHelper.swift +++ b/samples/client/petstore/swift4/unwrapRequired/PetstoreClient/Classes/OpenAPIs/CodableHelper.swift @@ -11,7 +11,7 @@ public typealias EncodeResult = (data: Data?, error: Error?) open class CodableHelper { - open static var dateformatter: DateFormatter? + public static var dateformatter: DateFormatter? open class func decode(_ type: T.Type, from data: Data) -> (decodableObj: T?, error: Error?) where T : Decodable { var returnedDecodable: T? = nil @@ -26,7 +26,7 @@ open class CodableHelper { formatter.calendar = Calendar(identifier: .iso8601) formatter.locale = Locale(identifier: "en_US_POSIX") formatter.timeZone = TimeZone(secondsFromGMT: 0) - formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSXXXXX" + formatter.dateFormat = Configuration.dateFormat decoder.dateDecodingStrategy = .formatted(formatter) } @@ -55,7 +55,7 @@ open class CodableHelper { formatter.calendar = Calendar(identifier: .iso8601) formatter.locale = Locale(identifier: "en_US_POSIX") formatter.timeZone = TimeZone(secondsFromGMT: 0) - formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSXXXXX" + formatter.dateFormat = Configuration.dateFormat encoder.dateEncodingStrategy = .formatted(formatter) } diff --git a/samples/client/petstore/swift4/unwrapRequired/PetstoreClient/Classes/OpenAPIs/Configuration.swift b/samples/client/petstore/swift4/unwrapRequired/PetstoreClient/Classes/OpenAPIs/Configuration.swift index f8180752b67..516590da5d9 100644 --- a/samples/client/petstore/swift4/unwrapRequired/PetstoreClient/Classes/OpenAPIs/Configuration.swift +++ b/samples/client/petstore/swift4/unwrapRequired/PetstoreClient/Classes/OpenAPIs/Configuration.swift @@ -10,6 +10,6 @@ open class Configuration { // This value is used to configure the date formatter that is used to serialize dates into JSON format. // You must set it prior to encoding any dates, and it will only be read once. - open static var dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSZZZZZ" + public static var dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSZZZZZ" } \ No newline at end of file diff --git a/samples/client/petstore/swift4/unwrapRequired/PetstoreClient/Classes/OpenAPIs/Extensions.swift b/samples/client/petstore/swift4/unwrapRequired/PetstoreClient/Classes/OpenAPIs/Extensions.swift index abe218b4e7a..8bf1829ba80 100644 --- a/samples/client/petstore/swift4/unwrapRequired/PetstoreClient/Classes/OpenAPIs/Extensions.swift +++ b/samples/client/petstore/swift4/unwrapRequired/PetstoreClient/Classes/OpenAPIs/Extensions.swift @@ -66,10 +66,16 @@ extension Data: JSONEncodable { } private let dateFormatter: DateFormatter = { - let fmt = DateFormatter() - fmt.dateFormat = Configuration.dateFormat - fmt.locale = Locale(identifier: "en_US_POSIX") - return fmt + if let formatter = CodableHelper.dateformatter { + return formatter + } else { + let formatter = DateFormatter() + formatter.calendar = Calendar(identifier: .iso8601) + formatter.locale = Locale(identifier: "en_US_POSIX") + formatter.timeZone = TimeZone(secondsFromGMT: 0) + formatter.dateFormat = Configuration.dateFormat + return formatter + } }() extension Date: JSONEncodable { diff --git a/samples/client/petstore/swift4/unwrapRequired/PetstoreClient/Classes/OpenAPIs/Models.swift b/samples/client/petstore/swift4/unwrapRequired/PetstoreClient/Classes/OpenAPIs/Models.swift index 42f8186ae4a..40856389035 100644 --- a/samples/client/petstore/swift4/unwrapRequired/PetstoreClient/Classes/OpenAPIs/Models.swift +++ b/samples/client/petstore/swift4/unwrapRequired/PetstoreClient/Classes/OpenAPIs/Models.swift @@ -15,9 +15,9 @@ public enum ErrorResponse : Error { } open class Response { - open let statusCode: Int - open let header: [String: String] - open let body: T? + public let statusCode: Int + public let header: [String: String] + public let body: T? public init(statusCode: Int, header: [String: String], body: T?) { self.statusCode = statusCode diff --git a/samples/client/petstore/swift4/unwrapRequired/PetstoreClient/Classes/OpenAPIs/Models/Category.swift b/samples/client/petstore/swift4/unwrapRequired/PetstoreClient/Classes/OpenAPIs/Models/Category.swift index 77fba95c1d7..f369f382d3f 100644 --- a/samples/client/petstore/swift4/unwrapRequired/PetstoreClient/Classes/OpenAPIs/Models/Category.swift +++ b/samples/client/petstore/swift4/unwrapRequired/PetstoreClient/Classes/OpenAPIs/Models/Category.swift @@ -12,7 +12,7 @@ import Foundation public struct Category: Codable { public var _id: Int64? - public var name: String? + public var name: String? = "default-name" public init(_id: Int64?, name: String?) { self._id = _id diff --git a/samples/client/petstore/swift4/unwrapRequired/PetstoreClient/Classes/OpenAPIs/Models/MapTest.swift b/samples/client/petstore/swift4/unwrapRequired/PetstoreClient/Classes/OpenAPIs/Models/MapTest.swift index 2d3a45d35a0..392c1e44383 100644 --- a/samples/client/petstore/swift4/unwrapRequired/PetstoreClient/Classes/OpenAPIs/Models/MapTest.swift +++ b/samples/client/petstore/swift4/unwrapRequired/PetstoreClient/Classes/OpenAPIs/Models/MapTest.swift @@ -18,9 +18,9 @@ public struct MapTest: Codable { public var mapMapOfString: [String:[String:String]]? public var mapOfEnumString: [String:String]? public var directMap: [String:Bool]? - public var indirectMap: StringBooleanMap? + public var indirectMap: [String:Bool]? - public init(mapMapOfString: [String:[String:String]]?, mapOfEnumString: [String:String]?, directMap: [String:Bool]?, indirectMap: StringBooleanMap?) { + public init(mapMapOfString: [String:[String:String]]?, mapOfEnumString: [String:String]?, directMap: [String:Bool]?, indirectMap: [String:Bool]?) { self.mapMapOfString = mapMapOfString self.mapOfEnumString = mapOfEnumString self.directMap = directMap From e5c0d227ab2d1e6dc51c92f473aaaeb35d38b0b3 Mon Sep 17 00:00:00 2001 From: William Cheng Date: Thu, 15 Nov 2018 11:39:14 +0800 Subject: [PATCH 25/27] force deployment --- .travis.yml | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/.travis.yml b/.travis.yml index 7c52b26d12e..adcdac65ac1 100644 --- a/.travis.yml +++ b/.travis.yml @@ -115,18 +115,19 @@ install: script: # fail fast - set -e - # fail if templates/generators contain carriage return '\r' - - /bin/bash ./bin/utils/detect_carriage_return.sh - # fail if generators contain merge conflicts - - /bin/bash ./bin/utils/detect_merge_conflict.sh - # fail if generators contain tab '\t' - - /bin/bash ./bin/utils/detect_tab_in_java_class.sh - # run integration tests defined in maven pom.xml - - ./run-in-docker.sh mvn --quiet --batch-mode clean install - - mvn --quiet --batch-mode verify -Psamples + # # fail if templates/generators contain carriage return '\r' + # - /bin/bash ./bin/utils/detect_carriage_return.sh + # # fail if generators contain merge conflicts + # - /bin/bash ./bin/utils/detect_merge_conflict.sh + # # fail if generators contain tab '\t' + # - /bin/bash ./bin/utils/detect_tab_in_java_class.sh + # # run integration tests defined in maven pom.xml + # - ./run-in-docker.sh mvn --quiet --batch-mode clean install + # - mvn --quiet --batch-mode verify -Psamples after_success: # push to maven repo - - if [ $SONATYPE_USERNAME ] && [ -z $TRAVIS_TAG ] && [ "$TRAVIS_PULL_REQUEST" == "false" ]; then + - echo "SONATYPE_USERNAME=$SONATYPE_USERNAME, TRAVIS_TAG=$TRAVIS_TAG, TRAVIS_PULL_REQUEST=$TRAVIS_PULL_REQUEST" + - if [ $SONATYPE_USERNAME ] && [ "$TRAVIS_PULL_REQUEST" == "false" ]; then if [ "$TRAVIS_BRANCH" = "master" ]; then mvn clean deploy -DskipTests=true -B -U -P release --settings CI/settings.xml; echo "Finished mvn clean deploy for $TRAVIS_BRANCH"; From 31d992873468e4b1025655a2cd3d596eaaedd4da Mon Sep 17 00:00:00 2001 From: William Cheng Date: Thu, 15 Nov 2018 12:25:14 +0800 Subject: [PATCH 26/27] Revert "force deployment" This reverts commit e5c0d227ab2d1e6dc51c92f473aaaeb35d38b0b3. --- .travis.yml | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/.travis.yml b/.travis.yml index adcdac65ac1..7c52b26d12e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -115,19 +115,18 @@ install: script: # fail fast - set -e - # # fail if templates/generators contain carriage return '\r' - # - /bin/bash ./bin/utils/detect_carriage_return.sh - # # fail if generators contain merge conflicts - # - /bin/bash ./bin/utils/detect_merge_conflict.sh - # # fail if generators contain tab '\t' - # - /bin/bash ./bin/utils/detect_tab_in_java_class.sh - # # run integration tests defined in maven pom.xml - # - ./run-in-docker.sh mvn --quiet --batch-mode clean install - # - mvn --quiet --batch-mode verify -Psamples + # fail if templates/generators contain carriage return '\r' + - /bin/bash ./bin/utils/detect_carriage_return.sh + # fail if generators contain merge conflicts + - /bin/bash ./bin/utils/detect_merge_conflict.sh + # fail if generators contain tab '\t' + - /bin/bash ./bin/utils/detect_tab_in_java_class.sh + # run integration tests defined in maven pom.xml + - ./run-in-docker.sh mvn --quiet --batch-mode clean install + - mvn --quiet --batch-mode verify -Psamples after_success: # push to maven repo - - echo "SONATYPE_USERNAME=$SONATYPE_USERNAME, TRAVIS_TAG=$TRAVIS_TAG, TRAVIS_PULL_REQUEST=$TRAVIS_PULL_REQUEST" - - if [ $SONATYPE_USERNAME ] && [ "$TRAVIS_PULL_REQUEST" == "false" ]; then + - if [ $SONATYPE_USERNAME ] && [ -z $TRAVIS_TAG ] && [ "$TRAVIS_PULL_REQUEST" == "false" ]; then if [ "$TRAVIS_BRANCH" = "master" ]; then mvn clean deploy -DskipTests=true -B -U -P release --settings CI/settings.xml; echo "Finished mvn clean deploy for $TRAVIS_BRANCH"; From 8d9542207a49c9ed4f372b44ced1a3b55a875b65 Mon Sep 17 00:00:00 2001 From: William Cheng Date: Thu, 15 Nov 2018 16:21:15 +0800 Subject: [PATCH 27/27] Prepare 3.3.4 snapshot (#1450) * change version to 3.3.4-snapshot * updat readme * update samples --- CI/circle_parallel.sh | 2 +- README.md | 10 ++-------- modules/openapi-generator-cli/pom.xml | 2 +- .../openapi-generator-gradle-plugin/gradle.properties | 2 +- modules/openapi-generator-gradle-plugin/pom.xml | 2 +- modules/openapi-generator-maven-plugin/pom.xml | 2 +- modules/openapi-generator-online/pom.xml | 2 +- modules/openapi-generator/pom.xml | 2 +- pom.xml | 2 +- .../csharp/OpenAPIClient/.openapi-generator/VERSION | 2 +- .../petstore/go/go-petstore/.openapi-generator/VERSION | 2 +- .../haskell-http-client/.openapi-generator/VERSION | 2 +- .../petstore/java/feign/.openapi-generator/VERSION | 2 +- .../petstore/java/feign10x/.openapi-generator/VERSION | 2 +- .../java/google-api-client/.openapi-generator/VERSION | 2 +- .../petstore/java/jersey1/.openapi-generator/VERSION | 2 +- .../java/jersey2-java6/.openapi-generator/VERSION | 2 +- .../java/jersey2-java8/.openapi-generator/VERSION | 2 +- .../petstore/java/jersey2/.openapi-generator/VERSION | 2 +- .../.openapi-generator/VERSION | 2 +- .../java/okhttp-gson/.openapi-generator/VERSION | 2 +- .../java/rest-assured/.openapi-generator/VERSION | 2 +- .../petstore/java/resteasy/.openapi-generator/VERSION | 2 +- .../resttemplate-withXml/.openapi-generator/VERSION | 2 +- .../java/resttemplate/.openapi-generator/VERSION | 2 +- .../petstore/java/retrofit/.openapi-generator/VERSION | 2 +- .../java/retrofit2-play24/.openapi-generator/VERSION | 2 +- .../java/retrofit2-play25/.openapi-generator/VERSION | 2 +- .../java/retrofit2-play26/.openapi-generator/VERSION | 2 +- .../petstore/java/retrofit2/.openapi-generator/VERSION | 2 +- .../java/retrofit2rx/.openapi-generator/VERSION | 2 +- .../java/retrofit2rx2/.openapi-generator/VERSION | 2 +- .../petstore/java/vertx/.openapi-generator/VERSION | 2 +- .../petstore/java/webclient/.openapi-generator/VERSION | 2 +- .../petstore/kotlin-string/.openapi-generator/VERSION | 2 +- .../kotlin-threetenbp/.openapi-generator/VERSION | 2 +- .../client/petstore/kotlin/.openapi-generator/VERSION | 2 +- .../php/OpenAPIClient-php/.openapi-generator/VERSION | 2 +- .../php/OpenAPIClient-php/lib/Api/AnotherFakeApi.php | 2 +- .../petstore/php/OpenAPIClient-php/lib/Api/FakeApi.php | 2 +- .../lib/Api/FakeClassnameTags123Api.php | 2 +- .../petstore/php/OpenAPIClient-php/lib/Api/PetApi.php | 2 +- .../php/OpenAPIClient-php/lib/Api/StoreApi.php | 2 +- .../petstore/php/OpenAPIClient-php/lib/Api/UserApi.php | 2 +- .../php/OpenAPIClient-php/lib/ApiException.php | 2 +- .../php/OpenAPIClient-php/lib/Configuration.php | 2 +- .../php/OpenAPIClient-php/lib/HeaderSelector.php | 2 +- .../lib/Model/AdditionalPropertiesClass.php | 2 +- .../php/OpenAPIClient-php/lib/Model/Animal.php | 2 +- .../php/OpenAPIClient-php/lib/Model/AnimalFarm.php | 2 +- .../php/OpenAPIClient-php/lib/Model/ApiResponse.php | 2 +- .../lib/Model/ArrayOfArrayOfNumberOnly.php | 2 +- .../OpenAPIClient-php/lib/Model/ArrayOfNumberOnly.php | 2 +- .../php/OpenAPIClient-php/lib/Model/ArrayTest.php | 2 +- .../php/OpenAPIClient-php/lib/Model/Capitalization.php | 2 +- .../petstore/php/OpenAPIClient-php/lib/Model/Cat.php | 2 +- .../php/OpenAPIClient-php/lib/Model/Category.php | 2 +- .../php/OpenAPIClient-php/lib/Model/ClassModel.php | 2 +- .../php/OpenAPIClient-php/lib/Model/Client.php | 2 +- .../petstore/php/OpenAPIClient-php/lib/Model/Dog.php | 2 +- .../php/OpenAPIClient-php/lib/Model/EnumArrays.php | 2 +- .../php/OpenAPIClient-php/lib/Model/EnumClass.php | 2 +- .../php/OpenAPIClient-php/lib/Model/EnumTest.php | 2 +- .../petstore/php/OpenAPIClient-php/lib/Model/File.php | 2 +- .../lib/Model/FileSchemaTestClass.php | 2 +- .../php/OpenAPIClient-php/lib/Model/FormatTest.php | 2 +- .../OpenAPIClient-php/lib/Model/HasOnlyReadOnly.php | 2 +- .../php/OpenAPIClient-php/lib/Model/MapTest.php | 2 +- .../MixedPropertiesAndAdditionalPropertiesClass.php | 2 +- .../OpenAPIClient-php/lib/Model/Model200Response.php | 2 +- .../php/OpenAPIClient-php/lib/Model/ModelInterface.php | 2 +- .../php/OpenAPIClient-php/lib/Model/ModelList.php | 2 +- .../php/OpenAPIClient-php/lib/Model/ModelReturn.php | 2 +- .../petstore/php/OpenAPIClient-php/lib/Model/Name.php | 2 +- .../php/OpenAPIClient-php/lib/Model/NumberOnly.php | 2 +- .../petstore/php/OpenAPIClient-php/lib/Model/Order.php | 2 +- .../php/OpenAPIClient-php/lib/Model/OuterComposite.php | 2 +- .../php/OpenAPIClient-php/lib/Model/OuterEnum.php | 2 +- .../petstore/php/OpenAPIClient-php/lib/Model/Pet.php | 2 +- .../php/OpenAPIClient-php/lib/Model/ReadOnlyFirst.php | 2 +- .../OpenAPIClient-php/lib/Model/SpecialModelName.php | 2 +- .../OpenAPIClient-php/lib/Model/StringBooleanMap.php | 2 +- .../petstore/php/OpenAPIClient-php/lib/Model/Tag.php | 2 +- .../petstore/php/OpenAPIClient-php/lib/Model/User.php | 2 +- .../php/OpenAPIClient-php/lib/ObjectSerializer.php | 2 +- .../OpenAPIClient-php/test/Api/AnotherFakeApiTest.php | 2 +- .../php/OpenAPIClient-php/test/Api/FakeApiTest.php | 2 +- .../test/Api/FakeClassnameTags123ApiTest.php | 2 +- .../php/OpenAPIClient-php/test/Api/PetApiTest.php | 2 +- .../php/OpenAPIClient-php/test/Api/StoreApiTest.php | 2 +- .../php/OpenAPIClient-php/test/Api/UserApiTest.php | 2 +- .../test/Model/AdditionalPropertiesClassTest.php | 2 +- .../OpenAPIClient-php/test/Model/AnimalFarmTest.php | 2 +- .../php/OpenAPIClient-php/test/Model/AnimalTest.php | 2 +- .../OpenAPIClient-php/test/Model/ApiResponseTest.php | 2 +- .../test/Model/ArrayOfArrayOfNumberOnlyTest.php | 2 +- .../test/Model/ArrayOfNumberOnlyTest.php | 2 +- .../php/OpenAPIClient-php/test/Model/ArrayTestTest.php | 2 +- .../test/Model/CapitalizationTest.php | 2 +- .../php/OpenAPIClient-php/test/Model/CatTest.php | 2 +- .../php/OpenAPIClient-php/test/Model/CategoryTest.php | 2 +- .../OpenAPIClient-php/test/Model/ClassModelTest.php | 2 +- .../php/OpenAPIClient-php/test/Model/ClientTest.php | 2 +- .../php/OpenAPIClient-php/test/Model/DogTest.php | 2 +- .../OpenAPIClient-php/test/Model/EnumArraysTest.php | 2 +- .../php/OpenAPIClient-php/test/Model/EnumClassTest.php | 2 +- .../php/OpenAPIClient-php/test/Model/EnumTestTest.php | 2 +- .../test/Model/FileSchemaTestClassTest.php | 2 +- .../php/OpenAPIClient-php/test/Model/FileTest.php | 2 +- .../OpenAPIClient-php/test/Model/FormatTestTest.php | 2 +- .../test/Model/HasOnlyReadOnlyTest.php | 2 +- .../php/OpenAPIClient-php/test/Model/MapTestTest.php | 2 +- ...MixedPropertiesAndAdditionalPropertiesClassTest.php | 2 +- .../test/Model/Model200ResponseTest.php | 2 +- .../php/OpenAPIClient-php/test/Model/ModelListTest.php | 2 +- .../OpenAPIClient-php/test/Model/ModelReturnTest.php | 2 +- .../php/OpenAPIClient-php/test/Model/NameTest.php | 2 +- .../OpenAPIClient-php/test/Model/NumberOnlyTest.php | 2 +- .../php/OpenAPIClient-php/test/Model/OrderTest.php | 2 +- .../test/Model/OuterCompositeTest.php | 2 +- .../php/OpenAPIClient-php/test/Model/OuterEnumTest.php | 2 +- .../php/OpenAPIClient-php/test/Model/PetTest.php | 2 +- .../OpenAPIClient-php/test/Model/ReadOnlyFirstTest.php | 2 +- .../test/Model/SpecialModelNameTest.php | 2 +- .../test/Model/StringBooleanMapTest.php | 2 +- .../php/OpenAPIClient-php/test/Model/TagTest.php | 2 +- .../php/OpenAPIClient-php/test/Model/UserTest.php | 2 +- .../client/petstore/ruby/.openapi-generator/VERSION | 2 +- samples/client/petstore/ruby/lib/petstore.rb | 2 +- .../petstore/ruby/lib/petstore/api/another_fake_api.rb | 2 +- .../petstore/ruby/lib/petstore/api/default_api.rb | 2 +- .../client/petstore/ruby/lib/petstore/api/fake_api.rb | 2 +- .../lib/petstore/api/fake_classname_tags123_api.rb | 2 +- .../client/petstore/ruby/lib/petstore/api/pet_api.rb | 2 +- .../client/petstore/ruby/lib/petstore/api/store_api.rb | 2 +- .../client/petstore/ruby/lib/petstore/api/user_api.rb | 2 +- .../client/petstore/ruby/lib/petstore/api_client.rb | 2 +- samples/client/petstore/ruby/lib/petstore/api_error.rb | 2 +- .../client/petstore/ruby/lib/petstore/configuration.rb | 2 +- .../lib/petstore/models/additional_properties_class.rb | 2 +- .../client/petstore/ruby/lib/petstore/models/animal.rb | 2 +- .../petstore/ruby/lib/petstore/models/animal_farm.rb | 2 +- .../petstore/ruby/lib/petstore/models/api_response.rb | 2 +- .../petstore/models/array_of_array_of_number_only.rb | 2 +- .../ruby/lib/petstore/models/array_of_number_only.rb | 2 +- .../petstore/ruby/lib/petstore/models/array_test.rb | 2 +- .../ruby/lib/petstore/models/capitalization.rb | 2 +- .../client/petstore/ruby/lib/petstore/models/cat.rb | 2 +- .../petstore/ruby/lib/petstore/models/category.rb | 2 +- .../petstore/ruby/lib/petstore/models/class_model.rb | 2 +- .../client/petstore/ruby/lib/petstore/models/client.rb | 2 +- .../client/petstore/ruby/lib/petstore/models/dog.rb | 2 +- .../petstore/ruby/lib/petstore/models/enum_arrays.rb | 2 +- .../petstore/ruby/lib/petstore/models/enum_class.rb | 2 +- .../petstore/ruby/lib/petstore/models/enum_test.rb | 2 +- .../client/petstore/ruby/lib/petstore/models/file.rb | 2 +- .../ruby/lib/petstore/models/file_schema_test_class.rb | 2 +- .../client/petstore/ruby/lib/petstore/models/foo.rb | 2 +- .../petstore/ruby/lib/petstore/models/format_test.rb | 2 +- .../ruby/lib/petstore/models/has_only_read_only.rb | 2 +- .../lib/petstore/models/inline_response_default.rb | 2 +- .../client/petstore/ruby/lib/petstore/models/list.rb | 2 +- .../petstore/ruby/lib/petstore/models/map_test.rb | 2 +- ...mixed_properties_and_additional_properties_class.rb | 2 +- .../ruby/lib/petstore/models/model200_response.rb | 2 +- .../petstore/ruby/lib/petstore/models/model_return.rb | 2 +- .../client/petstore/ruby/lib/petstore/models/name.rb | 2 +- .../petstore/ruby/lib/petstore/models/number_only.rb | 2 +- .../client/petstore/ruby/lib/petstore/models/order.rb | 2 +- .../ruby/lib/petstore/models/outer_composite.rb | 2 +- .../petstore/ruby/lib/petstore/models/outer_enum.rb | 2 +- .../client/petstore/ruby/lib/petstore/models/pet.rb | 2 +- .../ruby/lib/petstore/models/read_only_first.rb | 2 +- .../ruby/lib/petstore/models/special_model_name.rb | 2 +- .../ruby/lib/petstore/models/string_boolean_map.rb | 2 +- .../client/petstore/ruby/lib/petstore/models/tag.rb | 2 +- .../client/petstore/ruby/lib/petstore/models/user.rb | 2 +- samples/client/petstore/ruby/lib/petstore/version.rb | 2 +- samples/client/petstore/ruby/petstore.gemspec | 2 +- .../petstore/spring-cloud/.openapi-generator/VERSION | 2 +- .../src/main/java/org/openapitools/api/PetApi.java | 2 +- .../src/main/java/org/openapitools/api/StoreApi.java | 2 +- .../src/main/java/org/openapitools/api/UserApi.java | 2 +- .../petstore/spring-stubs/.openapi-generator/VERSION | 2 +- .../src/main/java/org/openapitools/api/PetApi.java | 2 +- .../src/main/java/org/openapitools/api/StoreApi.java | 2 +- .../src/main/java/org/openapitools/api/UserApi.java | 2 +- .../default/.openapi-generator/VERSION | 2 +- .../npm/.openapi-generator/VERSION | 2 +- .../with-interfaces/.openapi-generator/VERSION | 2 +- .../npm/.openapi-generator/VERSION | 2 +- .../npm/.openapi-generator/VERSION | 2 +- .../builds/default/.openapi-generator/VERSION | 2 +- .../builds/with-npm/.openapi-generator/VERSION | 2 +- .../builds/default/.openapi-generator/VERSION | 2 +- .../builds/with-npm/.openapi-generator/VERSION | 2 +- .../builds/default/.openapi-generator/VERSION | 2 +- .../builds/es6-target/.openapi-generator/VERSION | 2 +- .../builds/with-interfaces/.openapi-generator/VERSION | 2 +- .../builds/with-npm-version/.openapi-generator/VERSION | 2 +- .../typescript-inversify/.openapi-generator/VERSION | 2 +- .../typescript-node/default/.openapi-generator/VERSION | 2 +- .../typescript-node/npm/.openapi-generator/VERSION | 2 +- samples/meta-codegen/lib/pom.xml | 2 +- samples/meta-codegen/usage/.openapi-generator/VERSION | 2 +- .../php/OpenAPIClient-php/.openapi-generator/VERSION | 2 +- .../php/OpenAPIClient-php/lib/Api/AnotherFakeApi.php | 2 +- .../php/OpenAPIClient-php/lib/Api/DefaultApi.php | 2 +- .../petstore/php/OpenAPIClient-php/lib/Api/FakeApi.php | 2 +- .../lib/Api/FakeClassnameTags123Api.php | 2 +- .../petstore/php/OpenAPIClient-php/lib/Api/PetApi.php | 2 +- .../php/OpenAPIClient-php/lib/Api/StoreApi.php | 2 +- .../petstore/php/OpenAPIClient-php/lib/Api/UserApi.php | 2 +- .../php/OpenAPIClient-php/lib/ApiException.php | 2 +- .../php/OpenAPIClient-php/lib/Configuration.php | 2 +- .../php/OpenAPIClient-php/lib/HeaderSelector.php | 2 +- .../lib/Model/AdditionalPropertiesClass.php | 2 +- .../php/OpenAPIClient-php/lib/Model/Animal.php | 2 +- .../php/OpenAPIClient-php/lib/Model/AnimalFarm.php | 2 +- .../php/OpenAPIClient-php/lib/Model/ApiResponse.php | 2 +- .../lib/Model/ArrayOfArrayOfNumberOnly.php | 2 +- .../OpenAPIClient-php/lib/Model/ArrayOfNumberOnly.php | 2 +- .../php/OpenAPIClient-php/lib/Model/ArrayTest.php | 2 +- .../php/OpenAPIClient-php/lib/Model/Capitalization.php | 2 +- .../petstore/php/OpenAPIClient-php/lib/Model/Cat.php | 2 +- .../php/OpenAPIClient-php/lib/Model/Category.php | 2 +- .../php/OpenAPIClient-php/lib/Model/ClassModel.php | 2 +- .../php/OpenAPIClient-php/lib/Model/Client.php | 2 +- .../petstore/php/OpenAPIClient-php/lib/Model/Dog.php | 2 +- .../php/OpenAPIClient-php/lib/Model/EnumArrays.php | 2 +- .../php/OpenAPIClient-php/lib/Model/EnumClass.php | 2 +- .../php/OpenAPIClient-php/lib/Model/EnumTest.php | 2 +- .../petstore/php/OpenAPIClient-php/lib/Model/File.php | 2 +- .../lib/Model/FileSchemaTestClass.php | 2 +- .../petstore/php/OpenAPIClient-php/lib/Model/Foo.php | 2 +- .../php/OpenAPIClient-php/lib/Model/FormatTest.php | 2 +- .../OpenAPIClient-php/lib/Model/HasOnlyReadOnly.php | 2 +- .../php/OpenAPIClient-php/lib/Model/InlineObject.php | 2 +- .../php/OpenAPIClient-php/lib/Model/InlineObject1.php | 2 +- .../php/OpenAPIClient-php/lib/Model/InlineObject2.php | 2 +- .../php/OpenAPIClient-php/lib/Model/InlineObject3.php | 2 +- .../php/OpenAPIClient-php/lib/Model/InlineObject4.php | 2 +- .../php/OpenAPIClient-php/lib/Model/InlineObject5.php | 2 +- .../lib/Model/InlineResponseDefault.php | 2 +- .../php/OpenAPIClient-php/lib/Model/MapTest.php | 2 +- .../MixedPropertiesAndAdditionalPropertiesClass.php | 2 +- .../OpenAPIClient-php/lib/Model/Model200Response.php | 2 +- .../php/OpenAPIClient-php/lib/Model/ModelInterface.php | 2 +- .../php/OpenAPIClient-php/lib/Model/ModelList.php | 2 +- .../php/OpenAPIClient-php/lib/Model/ModelReturn.php | 2 +- .../petstore/php/OpenAPIClient-php/lib/Model/Name.php | 2 +- .../php/OpenAPIClient-php/lib/Model/NumberOnly.php | 2 +- .../petstore/php/OpenAPIClient-php/lib/Model/Order.php | 2 +- .../php/OpenAPIClient-php/lib/Model/OuterComposite.php | 2 +- .../php/OpenAPIClient-php/lib/Model/OuterEnum.php | 2 +- .../petstore/php/OpenAPIClient-php/lib/Model/Pet.php | 2 +- .../php/OpenAPIClient-php/lib/Model/ReadOnlyFirst.php | 2 +- .../OpenAPIClient-php/lib/Model/SpecialModelName.php | 2 +- .../OpenAPIClient-php/lib/Model/StringBooleanMap.php | 2 +- .../petstore/php/OpenAPIClient-php/lib/Model/Tag.php | 2 +- .../petstore/php/OpenAPIClient-php/lib/Model/User.php | 2 +- .../php/OpenAPIClient-php/lib/ObjectSerializer.php | 2 +- .../OpenAPIClient-php/test/Api/AnotherFakeApiTest.php | 2 +- .../php/OpenAPIClient-php/test/Api/DefaultApiTest.php | 2 +- .../php/OpenAPIClient-php/test/Api/FakeApiTest.php | 2 +- .../test/Api/FakeClassnameTags123ApiTest.php | 2 +- .../php/OpenAPIClient-php/test/Api/PetApiTest.php | 2 +- .../php/OpenAPIClient-php/test/Api/StoreApiTest.php | 2 +- .../php/OpenAPIClient-php/test/Api/UserApiTest.php | 2 +- .../test/Model/AdditionalPropertiesClassTest.php | 2 +- .../OpenAPIClient-php/test/Model/AnimalFarmTest.php | 2 +- .../php/OpenAPIClient-php/test/Model/AnimalTest.php | 2 +- .../OpenAPIClient-php/test/Model/ApiResponseTest.php | 2 +- .../test/Model/ArrayOfArrayOfNumberOnlyTest.php | 2 +- .../test/Model/ArrayOfNumberOnlyTest.php | 2 +- .../php/OpenAPIClient-php/test/Model/ArrayTestTest.php | 2 +- .../test/Model/CapitalizationTest.php | 2 +- .../php/OpenAPIClient-php/test/Model/CatTest.php | 2 +- .../php/OpenAPIClient-php/test/Model/CategoryTest.php | 2 +- .../OpenAPIClient-php/test/Model/ClassModelTest.php | 2 +- .../php/OpenAPIClient-php/test/Model/ClientTest.php | 2 +- .../php/OpenAPIClient-php/test/Model/DogTest.php | 2 +- .../OpenAPIClient-php/test/Model/EnumArraysTest.php | 2 +- .../php/OpenAPIClient-php/test/Model/EnumClassTest.php | 2 +- .../php/OpenAPIClient-php/test/Model/EnumTestTest.php | 2 +- .../test/Model/FileSchemaTestClassTest.php | 2 +- .../php/OpenAPIClient-php/test/Model/FileTest.php | 2 +- .../php/OpenAPIClient-php/test/Model/FooTest.php | 2 +- .../OpenAPIClient-php/test/Model/FormatTestTest.php | 2 +- .../test/Model/HasOnlyReadOnlyTest.php | 2 +- .../OpenAPIClient-php/test/Model/InlineObject1Test.php | 2 +- .../OpenAPIClient-php/test/Model/InlineObject2Test.php | 2 +- .../OpenAPIClient-php/test/Model/InlineObject3Test.php | 2 +- .../OpenAPIClient-php/test/Model/InlineObject4Test.php | 2 +- .../OpenAPIClient-php/test/Model/InlineObject5Test.php | 2 +- .../OpenAPIClient-php/test/Model/InlineObjectTest.php | 2 +- .../test/Model/InlineResponseDefaultTest.php | 2 +- .../php/OpenAPIClient-php/test/Model/MapTestTest.php | 2 +- ...MixedPropertiesAndAdditionalPropertiesClassTest.php | 2 +- .../test/Model/Model200ResponseTest.php | 2 +- .../php/OpenAPIClient-php/test/Model/ModelListTest.php | 2 +- .../OpenAPIClient-php/test/Model/ModelReturnTest.php | 2 +- .../php/OpenAPIClient-php/test/Model/NameTest.php | 2 +- .../OpenAPIClient-php/test/Model/NumberOnlyTest.php | 2 +- .../php/OpenAPIClient-php/test/Model/OrderTest.php | 2 +- .../test/Model/OuterCompositeTest.php | 2 +- .../php/OpenAPIClient-php/test/Model/OuterEnumTest.php | 2 +- .../php/OpenAPIClient-php/test/Model/PetTest.php | 2 +- .../OpenAPIClient-php/test/Model/ReadOnlyFirstTest.php | 2 +- .../test/Model/SpecialModelNameTest.php | 2 +- .../test/Model/StringBooleanMapTest.php | 2 +- .../php/OpenAPIClient-php/test/Model/TagTest.php | 2 +- .../php/OpenAPIClient-php/test/Model/UserTest.php | 2 +- .../schema/petstore/mysql/.openapi-generator/VERSION | 2 +- .../go-gin-api-server/.openapi-generator/VERSION | 2 +- .../.openapi-generator/VERSION | 2 +- .../petstore/jaxrs-cxf-cdi/.openapi-generator/VERSION | 2 +- .../.openapi-generator/VERSION | 2 +- .../petstore/jaxrs-cxf/.openapi-generator/VERSION | 2 +- .../jaxrs-datelib-j8/.openapi-generator/VERSION | 2 +- .../petstore/jaxrs-jersey/.openapi-generator/VERSION | 2 +- .../jaxrs-resteasy/default/.openapi-generator/VERSION | 2 +- .../eap-java8/.openapi-generator/VERSION | 2 +- .../jaxrs-resteasy/eap-joda/.openapi-generator/VERSION | 2 +- .../jaxrs-resteasy/eap/.openapi-generator/VERSION | 2 +- .../jaxrs-resteasy/joda/.openapi-generator/VERSION | 2 +- .../jaxrs-spec-interface/.openapi-generator/VERSION | 2 +- .../petstore/jaxrs-spec/.openapi-generator/VERSION | 2 +- .../jaxrs/jersey1-useTags/.openapi-generator/VERSION | 2 +- .../petstore/jaxrs/jersey1/.openapi-generator/VERSION | 2 +- .../jaxrs/jersey2-useTags/.openapi-generator/VERSION | 2 +- .../petstore/jaxrs/jersey2/.openapi-generator/VERSION | 2 +- .../kotlin-server/ktor/.openapi-generator/VERSION | 2 +- samples/server/petstore/kotlin-server/ktor/README.md | 2 +- .../petstore/php-lumen/.openapi-generator/VERSION | 2 +- .../php-silex/OpenAPIServer/.openapi-generator/VERSION | 2 +- .../petstore/php-slim/.openapi-generator/VERSION | 2 +- .../SymfonyBundle-php/.openapi-generator/VERSION | 2 +- .../petstore/php-ze-ph/.openapi-generator/VERSION | 2 +- .../.openapi-generator/VERSION | 2 +- .../output/rust-server-test/.openapi-generator/VERSION | 2 +- .../spring-mvc-j8-async/.openapi-generator/VERSION | 2 +- .../main/java/org/openapitools/api/AnotherFakeApi.java | 2 +- .../src/main/java/org/openapitools/api/FakeApi.java | 2 +- .../org/openapitools/api/FakeClassnameTestApi.java | 2 +- .../src/main/java/org/openapitools/api/PetApi.java | 2 +- .../src/main/java/org/openapitools/api/StoreApi.java | 2 +- .../src/main/java/org/openapitools/api/UserApi.java | 2 +- .../.openapi-generator/VERSION | 2 +- .../main/java/org/openapitools/api/AnotherFakeApi.java | 2 +- .../src/main/java/org/openapitools/api/FakeApi.java | 2 +- .../org/openapitools/api/FakeClassnameTestApi.java | 2 +- .../src/main/java/org/openapitools/api/PetApi.java | 2 +- .../src/main/java/org/openapitools/api/StoreApi.java | 2 +- .../src/main/java/org/openapitools/api/UserApi.java | 2 +- .../petstore/spring-mvc/.openapi-generator/VERSION | 2 +- .../main/java/org/openapitools/api/AnotherFakeApi.java | 2 +- .../src/main/java/org/openapitools/api/FakeApi.java | 2 +- .../org/openapitools/api/FakeClassnameTestApi.java | 2 +- .../src/main/java/org/openapitools/api/PetApi.java | 2 +- .../src/main/java/org/openapitools/api/StoreApi.java | 2 +- .../src/main/java/org/openapitools/api/UserApi.java | 2 +- .../.openapi-generator/VERSION | 2 +- .../main/java/org/openapitools/api/AnotherFakeApi.java | 2 +- .../src/main/java/org/openapitools/api/FakeApi.java | 2 +- .../org/openapitools/api/FakeClassnameTestApi.java | 2 +- .../src/main/java/org/openapitools/api/PetApi.java | 2 +- .../src/main/java/org/openapitools/api/StoreApi.java | 2 +- .../src/main/java/org/openapitools/api/UserApi.java | 2 +- .../springboot-delegate-j8/.openapi-generator/VERSION | 2 +- .../main/java/org/openapitools/api/AnotherFakeApi.java | 2 +- .../src/main/java/org/openapitools/api/FakeApi.java | 2 +- .../org/openapitools/api/FakeClassnameTestApi.java | 2 +- .../src/main/java/org/openapitools/api/PetApi.java | 2 +- .../src/main/java/org/openapitools/api/StoreApi.java | 2 +- .../src/main/java/org/openapitools/api/UserApi.java | 2 +- .../springboot-delegate/.openapi-generator/VERSION | 2 +- .../main/java/org/openapitools/api/AnotherFakeApi.java | 2 +- .../src/main/java/org/openapitools/api/FakeApi.java | 2 +- .../org/openapitools/api/FakeClassnameTestApi.java | 2 +- .../src/main/java/org/openapitools/api/PetApi.java | 2 +- .../src/main/java/org/openapitools/api/StoreApi.java | 2 +- .../src/main/java/org/openapitools/api/UserApi.java | 2 +- .../.openapi-generator/VERSION | 2 +- .../main/java/org/openapitools/api/AnotherFakeApi.java | 2 +- .../src/main/java/org/openapitools/api/FakeApi.java | 2 +- .../org/openapitools/api/FakeClassnameTestApi.java | 2 +- .../src/main/java/org/openapitools/api/PetApi.java | 2 +- .../src/main/java/org/openapitools/api/StoreApi.java | 2 +- .../src/main/java/org/openapitools/api/UserApi.java | 2 +- .../springboot-reactive/.openapi-generator/VERSION | 2 +- .../main/java/org/openapitools/api/AnotherFakeApi.java | 2 +- .../src/main/java/org/openapitools/api/FakeApi.java | 2 +- .../org/openapitools/api/FakeClassnameTestApi.java | 2 +- .../src/main/java/org/openapitools/api/PetApi.java | 2 +- .../src/main/java/org/openapitools/api/StoreApi.java | 2 +- .../src/main/java/org/openapitools/api/UserApi.java | 2 +- .../springboot-useoptional/.openapi-generator/VERSION | 2 +- .../main/java/org/openapitools/api/AnotherFakeApi.java | 2 +- .../src/main/java/org/openapitools/api/FakeApi.java | 2 +- .../org/openapitools/api/FakeClassnameTestApi.java | 2 +- .../src/main/java/org/openapitools/api/PetApi.java | 2 +- .../src/main/java/org/openapitools/api/StoreApi.java | 2 +- .../src/main/java/org/openapitools/api/UserApi.java | 2 +- .../springboot-virtualan/.openapi-generator/VERSION | 2 +- .../org/openapitools/virtualan/api/AnotherFakeApi.java | 2 +- .../java/org/openapitools/virtualan/api/FakeApi.java | 2 +- .../virtualan/api/FakeClassnameTestApi.java | 2 +- .../java/org/openapitools/virtualan/api/PetApi.java | 2 +- .../java/org/openapitools/virtualan/api/StoreApi.java | 2 +- .../java/org/openapitools/virtualan/api/UserApi.java | 2 +- .../petstore/springboot/.openapi-generator/VERSION | 2 +- .../main/java/org/openapitools/api/AnotherFakeApi.java | 2 +- .../src/main/java/org/openapitools/api/FakeApi.java | 2 +- .../org/openapitools/api/FakeClassnameTestApi.java | 2 +- .../src/main/java/org/openapitools/api/PetApi.java | 2 +- .../src/main/java/org/openapitools/api/StoreApi.java | 2 +- .../src/main/java/org/openapitools/api/UserApi.java | 2 +- 418 files changed, 419 insertions(+), 425 deletions(-) diff --git a/CI/circle_parallel.sh b/CI/circle_parallel.sh index 51d81a2afaf..cda481a62fd 100755 --- a/CI/circle_parallel.sh +++ b/CI/circle_parallel.sh @@ -15,7 +15,7 @@ elif [ "$NODE_INDEX" = "2" ]; then java -version #export GO_POST_PROCESS_FILE="/usr/local/bin/gofmt -w" # not formatting the code as different go versions may format the code a bit different - #./bin/utils/ensure-up-to-date + ./bin/utils/ensure-up-to-date else echo "Running node $NODE_INDEX to test 'samples.circleci.jdk7' defined in pom.xml ..." sudo update-java-alternatives -s java-1.7.0-openjdk-amd64 diff --git a/README.md b/README.md index 6ea3834e63a..d1ff2646d1f 100644 --- a/README.md +++ b/README.md @@ -7,11 +7,6 @@ [![Run Status](https://api.shippable.com/projects/5af6bf74e790f4070084a115/badge?branch=master)](https://app.shippable.com/github/OpenAPITools/openapi-generator) [![Windows Test](https://ci.appveyor.com/api/projects/status/github/openapitools/openapi-generator?branch=master&svg=true&passingText=Windows%20Test%20-%20OK&failingText=Windows%20Test%20-%20Fails)](https://ci.appveyor.com/project/WilliamCheng/openapi-generator-wh2wu) -[`3.4.x`](https://github.com/OpenAPITools/openapi-generator/tree/3.4.x) branch: [![Build Status](https://img.shields.io/travis/OpenAPITools/openapi-generator/3.4.x.svg?label=Integration%20Test)](https://travis-ci.org/OpenAPITools/openapi-generator) -[![Integration Test2](https://circleci.com/gh/OpenAPITools/openapi-generator/tree/3.4.x.svg?style=shield)](https://circleci.com/gh/OpenAPITools/openapi-generator) -[![Run Status](https://api.shippable.com/projects/5af6bf74e790f4070084a115/badge?branch=3.4.x)](https://app.shippable.com/github/OpenAPITools/openapi-generator) -[![Windows Test](https://ci.appveyor.com/api/projects/status/github/openapitools/openapi-generator?branch=3.4.x&svg=true&passingText=Windows%20Test%20-%20OK&failingText=Windows%20Test%20-%20Fails)](https://ci.appveyor.com/project/WilliamCheng/openapi-generator-wh2wu) - [`4.0.x`](https://github.com/OpenAPITools/openapi-generator/tree/4.0.x) branch: [![Build Status](https://img.shields.io/travis/OpenAPITools/openapi-generator/4.0.x.svg?label=Integration%20Test)](https://travis-ci.org/OpenAPITools/openapi-generator) [![Integration Test2](https://circleci.com/gh/OpenAPITools/openapi-generator/tree/4.0.x.svg?style=shield)](https://circleci.com/gh/OpenAPITools/openapi-generator) [![Run Status](https://api.shippable.com/projects/5af6bf74e790f4070084a115/badge?branch=4.0.x)](https://app.shippable.com/github/OpenAPITools/openapi-generator) @@ -88,9 +83,8 @@ The OpenAPI Specification has undergone 3 revisions since initial creation in 20 OpenAPI Generator Version | Release Date | Notes ---------------------------- | ------------ | ----- -4.0.0 (upcoming major release) [SNAPSHOT](https://oss.sonatype.org/content/repositories/snapshots/org/openapitools/openapi-generator-cli/4.0.0-SNAPSHOT/)| TBD | Major release with breaking changes (no fallback) -3.4.0 (upcoming minor release) [SNAPSHOT](https://oss.sonatype.org/content/repositories/snapshots/org/openapitools/openapi-generator-cli/3.4.0-SNAPSHOT/)| 01.11.2018 | Minor release (breaking changes with fallbacks) -3.3.3 (current master, upcoming patch release) [SNAPSHOT](https://oss.sonatype.org/content/repositories/snapshots/org/openapitools/openapi-generator-cli/3.3.3-SNAPSHOT/) | 15.11.2018 | Bugfix release +4.0.0 (upcoming major release) [SNAPSHOT](https://oss.sonatype.org/content/repositories/snapshots/org/openapitools/openapi-generator-cli/4.0.0-SNAPSHOT/)| 20.12.2018 | Major release with breaking changes (with or without fallback) +3.3.4 (current master, upcoming patch release) [SNAPSHOT](https://oss.sonatype.org/content/repositories/snapshots/org/openapitools/openapi-generator-cli/3.3.4-SNAPSHOT/) | 01.12.2018 | Bugfix release [3.3.3](https://github.com/OpenAPITools/openapi-generator/releases/tag/v3.3.3) (latest stable release) | 15.11.2018 | Bugfix release OpenAPI Spec compatibility: 1.0, 1.1, 1.2, 2.0, 3.0 diff --git a/modules/openapi-generator-cli/pom.xml b/modules/openapi-generator-cli/pom.xml index f9e19b77fdf..3d0299c2c54 100644 --- a/modules/openapi-generator-cli/pom.xml +++ b/modules/openapi-generator-cli/pom.xml @@ -3,7 +3,7 @@ org.openapitools openapi-generator-project - 3.3.3 + 3.3.4-SNAPSHOT ../.. 4.0.0 diff --git a/modules/openapi-generator-gradle-plugin/gradle.properties b/modules/openapi-generator-gradle-plugin/gradle.properties index 0adbed9ff11..3fcb0203fe8 100644 --- a/modules/openapi-generator-gradle-plugin/gradle.properties +++ b/modules/openapi-generator-gradle-plugin/gradle.properties @@ -1,4 +1,4 @@ -openApiGeneratorVersion=3.3.3 +openApiGeneratorVersion=3.3.4-SNAPSHOT # BEGIN placeholders # these are just placeholders to allow contributors to build directly diff --git a/modules/openapi-generator-gradle-plugin/pom.xml b/modules/openapi-generator-gradle-plugin/pom.xml index e9218d80daa..b167c909635 100644 --- a/modules/openapi-generator-gradle-plugin/pom.xml +++ b/modules/openapi-generator-gradle-plugin/pom.xml @@ -3,7 +3,7 @@ org.openapitools openapi-generator-project - 3.3.3 + 3.3.4-SNAPSHOT ../.. 4.0.0 diff --git a/modules/openapi-generator-maven-plugin/pom.xml b/modules/openapi-generator-maven-plugin/pom.xml index 1407d9cb599..6dfd717f6d3 100644 --- a/modules/openapi-generator-maven-plugin/pom.xml +++ b/modules/openapi-generator-maven-plugin/pom.xml @@ -4,7 +4,7 @@ org.openapitools openapi-generator-project - 3.3.3 + 3.3.4-SNAPSHOT ../.. openapi-generator-maven-plugin diff --git a/modules/openapi-generator-online/pom.xml b/modules/openapi-generator-online/pom.xml index 1f457f365a8..fafef10cf24 100644 --- a/modules/openapi-generator-online/pom.xml +++ b/modules/openapi-generator-online/pom.xml @@ -3,7 +3,7 @@ org.openapitools openapi-generator-project - 3.3.3 + 3.3.4-SNAPSHOT ../.. openapi-generator-online diff --git a/modules/openapi-generator/pom.xml b/modules/openapi-generator/pom.xml index b745425aa1c..75a58f89ef9 100644 --- a/modules/openapi-generator/pom.xml +++ b/modules/openapi-generator/pom.xml @@ -3,7 +3,7 @@ org.openapitools openapi-generator-project - 3.3.3 + 3.3.4-SNAPSHOT ../.. 4.0.0 diff --git a/pom.xml b/pom.xml index d86d25e0e4e..f9f9128ea0d 100644 --- a/pom.xml +++ b/pom.xml @@ -9,7 +9,7 @@ openapi-generator-project pom openapi-generator-project - 3.3.3 + 3.3.4-SNAPSHOT https://github.com/openapitools/openapi-generator scm:git:git@github.com:openapitools/openapi-generator.git diff --git a/samples/client/petstore/csharp/OpenAPIClient/.openapi-generator/VERSION b/samples/client/petstore/csharp/OpenAPIClient/.openapi-generator/VERSION index e24c1f857e0..d077ffb477a 100644 --- a/samples/client/petstore/csharp/OpenAPIClient/.openapi-generator/VERSION +++ b/samples/client/petstore/csharp/OpenAPIClient/.openapi-generator/VERSION @@ -1 +1 @@ -3.3.3-SNAPSHOT \ No newline at end of file +3.3.4-SNAPSHOT \ No newline at end of file diff --git a/samples/client/petstore/go/go-petstore/.openapi-generator/VERSION b/samples/client/petstore/go/go-petstore/.openapi-generator/VERSION index e24c1f857e0..d077ffb477a 100644 --- a/samples/client/petstore/go/go-petstore/.openapi-generator/VERSION +++ b/samples/client/petstore/go/go-petstore/.openapi-generator/VERSION @@ -1 +1 @@ -3.3.3-SNAPSHOT \ No newline at end of file +3.3.4-SNAPSHOT \ No newline at end of file diff --git a/samples/client/petstore/haskell-http-client/.openapi-generator/VERSION b/samples/client/petstore/haskell-http-client/.openapi-generator/VERSION index e24c1f857e0..d077ffb477a 100644 --- a/samples/client/petstore/haskell-http-client/.openapi-generator/VERSION +++ b/samples/client/petstore/haskell-http-client/.openapi-generator/VERSION @@ -1 +1 @@ -3.3.3-SNAPSHOT \ No newline at end of file +3.3.4-SNAPSHOT \ No newline at end of file diff --git a/samples/client/petstore/java/feign/.openapi-generator/VERSION b/samples/client/petstore/java/feign/.openapi-generator/VERSION index e24c1f857e0..d077ffb477a 100644 --- a/samples/client/petstore/java/feign/.openapi-generator/VERSION +++ b/samples/client/petstore/java/feign/.openapi-generator/VERSION @@ -1 +1 @@ -3.3.3-SNAPSHOT \ No newline at end of file +3.3.4-SNAPSHOT \ No newline at end of file diff --git a/samples/client/petstore/java/feign10x/.openapi-generator/VERSION b/samples/client/petstore/java/feign10x/.openapi-generator/VERSION index e24c1f857e0..d077ffb477a 100644 --- a/samples/client/petstore/java/feign10x/.openapi-generator/VERSION +++ b/samples/client/petstore/java/feign10x/.openapi-generator/VERSION @@ -1 +1 @@ -3.3.3-SNAPSHOT \ No newline at end of file +3.3.4-SNAPSHOT \ No newline at end of file diff --git a/samples/client/petstore/java/google-api-client/.openapi-generator/VERSION b/samples/client/petstore/java/google-api-client/.openapi-generator/VERSION index e24c1f857e0..d077ffb477a 100644 --- a/samples/client/petstore/java/google-api-client/.openapi-generator/VERSION +++ b/samples/client/petstore/java/google-api-client/.openapi-generator/VERSION @@ -1 +1 @@ -3.3.3-SNAPSHOT \ No newline at end of file +3.3.4-SNAPSHOT \ No newline at end of file diff --git a/samples/client/petstore/java/jersey1/.openapi-generator/VERSION b/samples/client/petstore/java/jersey1/.openapi-generator/VERSION index e24c1f857e0..d077ffb477a 100644 --- a/samples/client/petstore/java/jersey1/.openapi-generator/VERSION +++ b/samples/client/petstore/java/jersey1/.openapi-generator/VERSION @@ -1 +1 @@ -3.3.3-SNAPSHOT \ No newline at end of file +3.3.4-SNAPSHOT \ No newline at end of file diff --git a/samples/client/petstore/java/jersey2-java6/.openapi-generator/VERSION b/samples/client/petstore/java/jersey2-java6/.openapi-generator/VERSION index e24c1f857e0..d077ffb477a 100644 --- a/samples/client/petstore/java/jersey2-java6/.openapi-generator/VERSION +++ b/samples/client/petstore/java/jersey2-java6/.openapi-generator/VERSION @@ -1 +1 @@ -3.3.3-SNAPSHOT \ No newline at end of file +3.3.4-SNAPSHOT \ No newline at end of file diff --git a/samples/client/petstore/java/jersey2-java8/.openapi-generator/VERSION b/samples/client/petstore/java/jersey2-java8/.openapi-generator/VERSION index e24c1f857e0..d077ffb477a 100644 --- a/samples/client/petstore/java/jersey2-java8/.openapi-generator/VERSION +++ b/samples/client/petstore/java/jersey2-java8/.openapi-generator/VERSION @@ -1 +1 @@ -3.3.3-SNAPSHOT \ No newline at end of file +3.3.4-SNAPSHOT \ No newline at end of file diff --git a/samples/client/petstore/java/jersey2/.openapi-generator/VERSION b/samples/client/petstore/java/jersey2/.openapi-generator/VERSION index e24c1f857e0..d077ffb477a 100644 --- a/samples/client/petstore/java/jersey2/.openapi-generator/VERSION +++ b/samples/client/petstore/java/jersey2/.openapi-generator/VERSION @@ -1 +1 @@ -3.3.3-SNAPSHOT \ No newline at end of file +3.3.4-SNAPSHOT \ No newline at end of file diff --git a/samples/client/petstore/java/okhttp-gson-parcelableModel/.openapi-generator/VERSION b/samples/client/petstore/java/okhttp-gson-parcelableModel/.openapi-generator/VERSION index e24c1f857e0..d077ffb477a 100644 --- a/samples/client/petstore/java/okhttp-gson-parcelableModel/.openapi-generator/VERSION +++ b/samples/client/petstore/java/okhttp-gson-parcelableModel/.openapi-generator/VERSION @@ -1 +1 @@ -3.3.3-SNAPSHOT \ No newline at end of file +3.3.4-SNAPSHOT \ No newline at end of file diff --git a/samples/client/petstore/java/okhttp-gson/.openapi-generator/VERSION b/samples/client/petstore/java/okhttp-gson/.openapi-generator/VERSION index e24c1f857e0..d077ffb477a 100644 --- a/samples/client/petstore/java/okhttp-gson/.openapi-generator/VERSION +++ b/samples/client/petstore/java/okhttp-gson/.openapi-generator/VERSION @@ -1 +1 @@ -3.3.3-SNAPSHOT \ No newline at end of file +3.3.4-SNAPSHOT \ No newline at end of file diff --git a/samples/client/petstore/java/rest-assured/.openapi-generator/VERSION b/samples/client/petstore/java/rest-assured/.openapi-generator/VERSION index e24c1f857e0..d077ffb477a 100644 --- a/samples/client/petstore/java/rest-assured/.openapi-generator/VERSION +++ b/samples/client/petstore/java/rest-assured/.openapi-generator/VERSION @@ -1 +1 @@ -3.3.3-SNAPSHOT \ No newline at end of file +3.3.4-SNAPSHOT \ No newline at end of file diff --git a/samples/client/petstore/java/resteasy/.openapi-generator/VERSION b/samples/client/petstore/java/resteasy/.openapi-generator/VERSION index e24c1f857e0..d077ffb477a 100644 --- a/samples/client/petstore/java/resteasy/.openapi-generator/VERSION +++ b/samples/client/petstore/java/resteasy/.openapi-generator/VERSION @@ -1 +1 @@ -3.3.3-SNAPSHOT \ No newline at end of file +3.3.4-SNAPSHOT \ No newline at end of file diff --git a/samples/client/petstore/java/resttemplate-withXml/.openapi-generator/VERSION b/samples/client/petstore/java/resttemplate-withXml/.openapi-generator/VERSION index e24c1f857e0..d077ffb477a 100644 --- a/samples/client/petstore/java/resttemplate-withXml/.openapi-generator/VERSION +++ b/samples/client/petstore/java/resttemplate-withXml/.openapi-generator/VERSION @@ -1 +1 @@ -3.3.3-SNAPSHOT \ No newline at end of file +3.3.4-SNAPSHOT \ No newline at end of file diff --git a/samples/client/petstore/java/resttemplate/.openapi-generator/VERSION b/samples/client/petstore/java/resttemplate/.openapi-generator/VERSION index e24c1f857e0..d077ffb477a 100644 --- a/samples/client/petstore/java/resttemplate/.openapi-generator/VERSION +++ b/samples/client/petstore/java/resttemplate/.openapi-generator/VERSION @@ -1 +1 @@ -3.3.3-SNAPSHOT \ No newline at end of file +3.3.4-SNAPSHOT \ No newline at end of file diff --git a/samples/client/petstore/java/retrofit/.openapi-generator/VERSION b/samples/client/petstore/java/retrofit/.openapi-generator/VERSION index e24c1f857e0..d077ffb477a 100644 --- a/samples/client/petstore/java/retrofit/.openapi-generator/VERSION +++ b/samples/client/petstore/java/retrofit/.openapi-generator/VERSION @@ -1 +1 @@ -3.3.3-SNAPSHOT \ No newline at end of file +3.3.4-SNAPSHOT \ No newline at end of file diff --git a/samples/client/petstore/java/retrofit2-play24/.openapi-generator/VERSION b/samples/client/petstore/java/retrofit2-play24/.openapi-generator/VERSION index e24c1f857e0..d077ffb477a 100644 --- a/samples/client/petstore/java/retrofit2-play24/.openapi-generator/VERSION +++ b/samples/client/petstore/java/retrofit2-play24/.openapi-generator/VERSION @@ -1 +1 @@ -3.3.3-SNAPSHOT \ No newline at end of file +3.3.4-SNAPSHOT \ No newline at end of file diff --git a/samples/client/petstore/java/retrofit2-play25/.openapi-generator/VERSION b/samples/client/petstore/java/retrofit2-play25/.openapi-generator/VERSION index e24c1f857e0..d077ffb477a 100644 --- a/samples/client/petstore/java/retrofit2-play25/.openapi-generator/VERSION +++ b/samples/client/petstore/java/retrofit2-play25/.openapi-generator/VERSION @@ -1 +1 @@ -3.3.3-SNAPSHOT \ No newline at end of file +3.3.4-SNAPSHOT \ No newline at end of file diff --git a/samples/client/petstore/java/retrofit2-play26/.openapi-generator/VERSION b/samples/client/petstore/java/retrofit2-play26/.openapi-generator/VERSION index e24c1f857e0..d077ffb477a 100644 --- a/samples/client/petstore/java/retrofit2-play26/.openapi-generator/VERSION +++ b/samples/client/petstore/java/retrofit2-play26/.openapi-generator/VERSION @@ -1 +1 @@ -3.3.3-SNAPSHOT \ No newline at end of file +3.3.4-SNAPSHOT \ No newline at end of file diff --git a/samples/client/petstore/java/retrofit2/.openapi-generator/VERSION b/samples/client/petstore/java/retrofit2/.openapi-generator/VERSION index e24c1f857e0..d077ffb477a 100644 --- a/samples/client/petstore/java/retrofit2/.openapi-generator/VERSION +++ b/samples/client/petstore/java/retrofit2/.openapi-generator/VERSION @@ -1 +1 @@ -3.3.3-SNAPSHOT \ No newline at end of file +3.3.4-SNAPSHOT \ No newline at end of file diff --git a/samples/client/petstore/java/retrofit2rx/.openapi-generator/VERSION b/samples/client/petstore/java/retrofit2rx/.openapi-generator/VERSION index e24c1f857e0..d077ffb477a 100644 --- a/samples/client/petstore/java/retrofit2rx/.openapi-generator/VERSION +++ b/samples/client/petstore/java/retrofit2rx/.openapi-generator/VERSION @@ -1 +1 @@ -3.3.3-SNAPSHOT \ No newline at end of file +3.3.4-SNAPSHOT \ No newline at end of file diff --git a/samples/client/petstore/java/retrofit2rx2/.openapi-generator/VERSION b/samples/client/petstore/java/retrofit2rx2/.openapi-generator/VERSION index e24c1f857e0..d077ffb477a 100644 --- a/samples/client/petstore/java/retrofit2rx2/.openapi-generator/VERSION +++ b/samples/client/petstore/java/retrofit2rx2/.openapi-generator/VERSION @@ -1 +1 @@ -3.3.3-SNAPSHOT \ No newline at end of file +3.3.4-SNAPSHOT \ No newline at end of file diff --git a/samples/client/petstore/java/vertx/.openapi-generator/VERSION b/samples/client/petstore/java/vertx/.openapi-generator/VERSION index e24c1f857e0..d077ffb477a 100644 --- a/samples/client/petstore/java/vertx/.openapi-generator/VERSION +++ b/samples/client/petstore/java/vertx/.openapi-generator/VERSION @@ -1 +1 @@ -3.3.3-SNAPSHOT \ No newline at end of file +3.3.4-SNAPSHOT \ No newline at end of file diff --git a/samples/client/petstore/java/webclient/.openapi-generator/VERSION b/samples/client/petstore/java/webclient/.openapi-generator/VERSION index e24c1f857e0..d077ffb477a 100644 --- a/samples/client/petstore/java/webclient/.openapi-generator/VERSION +++ b/samples/client/petstore/java/webclient/.openapi-generator/VERSION @@ -1 +1 @@ -3.3.3-SNAPSHOT \ No newline at end of file +3.3.4-SNAPSHOT \ No newline at end of file diff --git a/samples/client/petstore/kotlin-string/.openapi-generator/VERSION b/samples/client/petstore/kotlin-string/.openapi-generator/VERSION index e24c1f857e0..d077ffb477a 100644 --- a/samples/client/petstore/kotlin-string/.openapi-generator/VERSION +++ b/samples/client/petstore/kotlin-string/.openapi-generator/VERSION @@ -1 +1 @@ -3.3.3-SNAPSHOT \ No newline at end of file +3.3.4-SNAPSHOT \ No newline at end of file diff --git a/samples/client/petstore/kotlin-threetenbp/.openapi-generator/VERSION b/samples/client/petstore/kotlin-threetenbp/.openapi-generator/VERSION index e24c1f857e0..d077ffb477a 100644 --- a/samples/client/petstore/kotlin-threetenbp/.openapi-generator/VERSION +++ b/samples/client/petstore/kotlin-threetenbp/.openapi-generator/VERSION @@ -1 +1 @@ -3.3.3-SNAPSHOT \ No newline at end of file +3.3.4-SNAPSHOT \ No newline at end of file diff --git a/samples/client/petstore/kotlin/.openapi-generator/VERSION b/samples/client/petstore/kotlin/.openapi-generator/VERSION index e24c1f857e0..d077ffb477a 100644 --- a/samples/client/petstore/kotlin/.openapi-generator/VERSION +++ b/samples/client/petstore/kotlin/.openapi-generator/VERSION @@ -1 +1 @@ -3.3.3-SNAPSHOT \ No newline at end of file +3.3.4-SNAPSHOT \ No newline at end of file diff --git a/samples/client/petstore/php/OpenAPIClient-php/.openapi-generator/VERSION b/samples/client/petstore/php/OpenAPIClient-php/.openapi-generator/VERSION index e24c1f857e0..d077ffb477a 100644 --- a/samples/client/petstore/php/OpenAPIClient-php/.openapi-generator/VERSION +++ b/samples/client/petstore/php/OpenAPIClient-php/.openapi-generator/VERSION @@ -1 +1 @@ -3.3.3-SNAPSHOT \ No newline at end of file +3.3.4-SNAPSHOT \ No newline at end of file diff --git a/samples/client/petstore/php/OpenAPIClient-php/lib/Api/AnotherFakeApi.php b/samples/client/petstore/php/OpenAPIClient-php/lib/Api/AnotherFakeApi.php index 4c23e6c1522..b67ee062cfe 100644 --- a/samples/client/petstore/php/OpenAPIClient-php/lib/Api/AnotherFakeApi.php +++ b/samples/client/petstore/php/OpenAPIClient-php/lib/Api/AnotherFakeApi.php @@ -17,7 +17,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/client/petstore/php/OpenAPIClient-php/lib/Api/FakeApi.php b/samples/client/petstore/php/OpenAPIClient-php/lib/Api/FakeApi.php index f3f1404bd2d..795616133e1 100644 --- a/samples/client/petstore/php/OpenAPIClient-php/lib/Api/FakeApi.php +++ b/samples/client/petstore/php/OpenAPIClient-php/lib/Api/FakeApi.php @@ -17,7 +17,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/client/petstore/php/OpenAPIClient-php/lib/Api/FakeClassnameTags123Api.php b/samples/client/petstore/php/OpenAPIClient-php/lib/Api/FakeClassnameTags123Api.php index b2aad6252e2..451d1f042ca 100644 --- a/samples/client/petstore/php/OpenAPIClient-php/lib/Api/FakeClassnameTags123Api.php +++ b/samples/client/petstore/php/OpenAPIClient-php/lib/Api/FakeClassnameTags123Api.php @@ -17,7 +17,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/client/petstore/php/OpenAPIClient-php/lib/Api/PetApi.php b/samples/client/petstore/php/OpenAPIClient-php/lib/Api/PetApi.php index b3f8a732f13..f385dc8ea71 100644 --- a/samples/client/petstore/php/OpenAPIClient-php/lib/Api/PetApi.php +++ b/samples/client/petstore/php/OpenAPIClient-php/lib/Api/PetApi.php @@ -17,7 +17,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/client/petstore/php/OpenAPIClient-php/lib/Api/StoreApi.php b/samples/client/petstore/php/OpenAPIClient-php/lib/Api/StoreApi.php index 9ea52b83e66..190c86c4926 100644 --- a/samples/client/petstore/php/OpenAPIClient-php/lib/Api/StoreApi.php +++ b/samples/client/petstore/php/OpenAPIClient-php/lib/Api/StoreApi.php @@ -17,7 +17,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/client/petstore/php/OpenAPIClient-php/lib/Api/UserApi.php b/samples/client/petstore/php/OpenAPIClient-php/lib/Api/UserApi.php index 35d83630050..572acff7301 100644 --- a/samples/client/petstore/php/OpenAPIClient-php/lib/Api/UserApi.php +++ b/samples/client/petstore/php/OpenAPIClient-php/lib/Api/UserApi.php @@ -17,7 +17,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/client/petstore/php/OpenAPIClient-php/lib/ApiException.php b/samples/client/petstore/php/OpenAPIClient-php/lib/ApiException.php index 16e6015c73b..8343580b8e3 100644 --- a/samples/client/petstore/php/OpenAPIClient-php/lib/ApiException.php +++ b/samples/client/petstore/php/OpenAPIClient-php/lib/ApiException.php @@ -17,7 +17,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/client/petstore/php/OpenAPIClient-php/lib/Configuration.php b/samples/client/petstore/php/OpenAPIClient-php/lib/Configuration.php index e0ab1902750..1a9da17045e 100644 --- a/samples/client/petstore/php/OpenAPIClient-php/lib/Configuration.php +++ b/samples/client/petstore/php/OpenAPIClient-php/lib/Configuration.php @@ -17,7 +17,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/client/petstore/php/OpenAPIClient-php/lib/HeaderSelector.php b/samples/client/petstore/php/OpenAPIClient-php/lib/HeaderSelector.php index e401e18ab4a..dee265bf47c 100644 --- a/samples/client/petstore/php/OpenAPIClient-php/lib/HeaderSelector.php +++ b/samples/client/petstore/php/OpenAPIClient-php/lib/HeaderSelector.php @@ -17,7 +17,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/client/petstore/php/OpenAPIClient-php/lib/Model/AdditionalPropertiesClass.php b/samples/client/petstore/php/OpenAPIClient-php/lib/Model/AdditionalPropertiesClass.php index 54833c0abd0..01e2e6c86b9 100644 --- a/samples/client/petstore/php/OpenAPIClient-php/lib/Model/AdditionalPropertiesClass.php +++ b/samples/client/petstore/php/OpenAPIClient-php/lib/Model/AdditionalPropertiesClass.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/client/petstore/php/OpenAPIClient-php/lib/Model/Animal.php b/samples/client/petstore/php/OpenAPIClient-php/lib/Model/Animal.php index a177ba0b3fd..823639f2f59 100644 --- a/samples/client/petstore/php/OpenAPIClient-php/lib/Model/Animal.php +++ b/samples/client/petstore/php/OpenAPIClient-php/lib/Model/Animal.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/client/petstore/php/OpenAPIClient-php/lib/Model/AnimalFarm.php b/samples/client/petstore/php/OpenAPIClient-php/lib/Model/AnimalFarm.php index ef1da91249d..968f4168c44 100644 --- a/samples/client/petstore/php/OpenAPIClient-php/lib/Model/AnimalFarm.php +++ b/samples/client/petstore/php/OpenAPIClient-php/lib/Model/AnimalFarm.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/client/petstore/php/OpenAPIClient-php/lib/Model/ApiResponse.php b/samples/client/petstore/php/OpenAPIClient-php/lib/Model/ApiResponse.php index b577ec60879..f2357574899 100644 --- a/samples/client/petstore/php/OpenAPIClient-php/lib/Model/ApiResponse.php +++ b/samples/client/petstore/php/OpenAPIClient-php/lib/Model/ApiResponse.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/client/petstore/php/OpenAPIClient-php/lib/Model/ArrayOfArrayOfNumberOnly.php b/samples/client/petstore/php/OpenAPIClient-php/lib/Model/ArrayOfArrayOfNumberOnly.php index 72b584d5c2f..5f742327e3a 100644 --- a/samples/client/petstore/php/OpenAPIClient-php/lib/Model/ArrayOfArrayOfNumberOnly.php +++ b/samples/client/petstore/php/OpenAPIClient-php/lib/Model/ArrayOfArrayOfNumberOnly.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/client/petstore/php/OpenAPIClient-php/lib/Model/ArrayOfNumberOnly.php b/samples/client/petstore/php/OpenAPIClient-php/lib/Model/ArrayOfNumberOnly.php index d0a9aeb1d49..987788deb27 100644 --- a/samples/client/petstore/php/OpenAPIClient-php/lib/Model/ArrayOfNumberOnly.php +++ b/samples/client/petstore/php/OpenAPIClient-php/lib/Model/ArrayOfNumberOnly.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/client/petstore/php/OpenAPIClient-php/lib/Model/ArrayTest.php b/samples/client/petstore/php/OpenAPIClient-php/lib/Model/ArrayTest.php index ee79f972a4c..0afd5094724 100644 --- a/samples/client/petstore/php/OpenAPIClient-php/lib/Model/ArrayTest.php +++ b/samples/client/petstore/php/OpenAPIClient-php/lib/Model/ArrayTest.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/client/petstore/php/OpenAPIClient-php/lib/Model/Capitalization.php b/samples/client/petstore/php/OpenAPIClient-php/lib/Model/Capitalization.php index ce4ab13c113..1c89ca1d7d5 100644 --- a/samples/client/petstore/php/OpenAPIClient-php/lib/Model/Capitalization.php +++ b/samples/client/petstore/php/OpenAPIClient-php/lib/Model/Capitalization.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/client/petstore/php/OpenAPIClient-php/lib/Model/Cat.php b/samples/client/petstore/php/OpenAPIClient-php/lib/Model/Cat.php index 4fab7da51f9..4270f1f70db 100644 --- a/samples/client/petstore/php/OpenAPIClient-php/lib/Model/Cat.php +++ b/samples/client/petstore/php/OpenAPIClient-php/lib/Model/Cat.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/client/petstore/php/OpenAPIClient-php/lib/Model/Category.php b/samples/client/petstore/php/OpenAPIClient-php/lib/Model/Category.php index 2aef04e5885..0445bb19f70 100644 --- a/samples/client/petstore/php/OpenAPIClient-php/lib/Model/Category.php +++ b/samples/client/petstore/php/OpenAPIClient-php/lib/Model/Category.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/client/petstore/php/OpenAPIClient-php/lib/Model/ClassModel.php b/samples/client/petstore/php/OpenAPIClient-php/lib/Model/ClassModel.php index 1dd17833684..e8dd3341c6f 100644 --- a/samples/client/petstore/php/OpenAPIClient-php/lib/Model/ClassModel.php +++ b/samples/client/petstore/php/OpenAPIClient-php/lib/Model/ClassModel.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/client/petstore/php/OpenAPIClient-php/lib/Model/Client.php b/samples/client/petstore/php/OpenAPIClient-php/lib/Model/Client.php index cb97b431e18..ec2f62ecd2d 100644 --- a/samples/client/petstore/php/OpenAPIClient-php/lib/Model/Client.php +++ b/samples/client/petstore/php/OpenAPIClient-php/lib/Model/Client.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/client/petstore/php/OpenAPIClient-php/lib/Model/Dog.php b/samples/client/petstore/php/OpenAPIClient-php/lib/Model/Dog.php index 78fe83b1b36..d8e2ed57257 100644 --- a/samples/client/petstore/php/OpenAPIClient-php/lib/Model/Dog.php +++ b/samples/client/petstore/php/OpenAPIClient-php/lib/Model/Dog.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/client/petstore/php/OpenAPIClient-php/lib/Model/EnumArrays.php b/samples/client/petstore/php/OpenAPIClient-php/lib/Model/EnumArrays.php index 011df11fea7..4c54e322a8a 100644 --- a/samples/client/petstore/php/OpenAPIClient-php/lib/Model/EnumArrays.php +++ b/samples/client/petstore/php/OpenAPIClient-php/lib/Model/EnumArrays.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/client/petstore/php/OpenAPIClient-php/lib/Model/EnumClass.php b/samples/client/petstore/php/OpenAPIClient-php/lib/Model/EnumClass.php index f7b87a41302..0818aaffbf0 100644 --- a/samples/client/petstore/php/OpenAPIClient-php/lib/Model/EnumClass.php +++ b/samples/client/petstore/php/OpenAPIClient-php/lib/Model/EnumClass.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/client/petstore/php/OpenAPIClient-php/lib/Model/EnumTest.php b/samples/client/petstore/php/OpenAPIClient-php/lib/Model/EnumTest.php index d0bd84745ed..b05c772c9ff 100644 --- a/samples/client/petstore/php/OpenAPIClient-php/lib/Model/EnumTest.php +++ b/samples/client/petstore/php/OpenAPIClient-php/lib/Model/EnumTest.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/client/petstore/php/OpenAPIClient-php/lib/Model/File.php b/samples/client/petstore/php/OpenAPIClient-php/lib/Model/File.php index 4c1da430ad5..4661f4ea009 100644 --- a/samples/client/petstore/php/OpenAPIClient-php/lib/Model/File.php +++ b/samples/client/petstore/php/OpenAPIClient-php/lib/Model/File.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/client/petstore/php/OpenAPIClient-php/lib/Model/FileSchemaTestClass.php b/samples/client/petstore/php/OpenAPIClient-php/lib/Model/FileSchemaTestClass.php index 2e44e414807..80b74dc4ca4 100644 --- a/samples/client/petstore/php/OpenAPIClient-php/lib/Model/FileSchemaTestClass.php +++ b/samples/client/petstore/php/OpenAPIClient-php/lib/Model/FileSchemaTestClass.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/client/petstore/php/OpenAPIClient-php/lib/Model/FormatTest.php b/samples/client/petstore/php/OpenAPIClient-php/lib/Model/FormatTest.php index 8c1ee70299b..12aa86918e8 100644 --- a/samples/client/petstore/php/OpenAPIClient-php/lib/Model/FormatTest.php +++ b/samples/client/petstore/php/OpenAPIClient-php/lib/Model/FormatTest.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/client/petstore/php/OpenAPIClient-php/lib/Model/HasOnlyReadOnly.php b/samples/client/petstore/php/OpenAPIClient-php/lib/Model/HasOnlyReadOnly.php index fa7dc269837..65ee0f4399e 100644 --- a/samples/client/petstore/php/OpenAPIClient-php/lib/Model/HasOnlyReadOnly.php +++ b/samples/client/petstore/php/OpenAPIClient-php/lib/Model/HasOnlyReadOnly.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/client/petstore/php/OpenAPIClient-php/lib/Model/MapTest.php b/samples/client/petstore/php/OpenAPIClient-php/lib/Model/MapTest.php index ded302c8b29..6030880688e 100644 --- a/samples/client/petstore/php/OpenAPIClient-php/lib/Model/MapTest.php +++ b/samples/client/petstore/php/OpenAPIClient-php/lib/Model/MapTest.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/client/petstore/php/OpenAPIClient-php/lib/Model/MixedPropertiesAndAdditionalPropertiesClass.php b/samples/client/petstore/php/OpenAPIClient-php/lib/Model/MixedPropertiesAndAdditionalPropertiesClass.php index eb49dc7a7e8..7a193714100 100644 --- a/samples/client/petstore/php/OpenAPIClient-php/lib/Model/MixedPropertiesAndAdditionalPropertiesClass.php +++ b/samples/client/petstore/php/OpenAPIClient-php/lib/Model/MixedPropertiesAndAdditionalPropertiesClass.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/client/petstore/php/OpenAPIClient-php/lib/Model/Model200Response.php b/samples/client/petstore/php/OpenAPIClient-php/lib/Model/Model200Response.php index 9d0eb4fe6ce..c91849df0e5 100644 --- a/samples/client/petstore/php/OpenAPIClient-php/lib/Model/Model200Response.php +++ b/samples/client/petstore/php/OpenAPIClient-php/lib/Model/Model200Response.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/client/petstore/php/OpenAPIClient-php/lib/Model/ModelInterface.php b/samples/client/petstore/php/OpenAPIClient-php/lib/Model/ModelInterface.php index b6dc03437bd..d06ce3aaf3a 100644 --- a/samples/client/petstore/php/OpenAPIClient-php/lib/Model/ModelInterface.php +++ b/samples/client/petstore/php/OpenAPIClient-php/lib/Model/ModelInterface.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/client/petstore/php/OpenAPIClient-php/lib/Model/ModelList.php b/samples/client/petstore/php/OpenAPIClient-php/lib/Model/ModelList.php index 0f626833f81..9f8f2fdc52d 100644 --- a/samples/client/petstore/php/OpenAPIClient-php/lib/Model/ModelList.php +++ b/samples/client/petstore/php/OpenAPIClient-php/lib/Model/ModelList.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/client/petstore/php/OpenAPIClient-php/lib/Model/ModelReturn.php b/samples/client/petstore/php/OpenAPIClient-php/lib/Model/ModelReturn.php index 9012d5dc161..a1668deec85 100644 --- a/samples/client/petstore/php/OpenAPIClient-php/lib/Model/ModelReturn.php +++ b/samples/client/petstore/php/OpenAPIClient-php/lib/Model/ModelReturn.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/client/petstore/php/OpenAPIClient-php/lib/Model/Name.php b/samples/client/petstore/php/OpenAPIClient-php/lib/Model/Name.php index 4cfdbd8ef86..15ab5b5ba0a 100644 --- a/samples/client/petstore/php/OpenAPIClient-php/lib/Model/Name.php +++ b/samples/client/petstore/php/OpenAPIClient-php/lib/Model/Name.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/client/petstore/php/OpenAPIClient-php/lib/Model/NumberOnly.php b/samples/client/petstore/php/OpenAPIClient-php/lib/Model/NumberOnly.php index 5d958aceaee..623e7ddc4f4 100644 --- a/samples/client/petstore/php/OpenAPIClient-php/lib/Model/NumberOnly.php +++ b/samples/client/petstore/php/OpenAPIClient-php/lib/Model/NumberOnly.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/client/petstore/php/OpenAPIClient-php/lib/Model/Order.php b/samples/client/petstore/php/OpenAPIClient-php/lib/Model/Order.php index 3e094149d12..52f4f59a3ad 100644 --- a/samples/client/petstore/php/OpenAPIClient-php/lib/Model/Order.php +++ b/samples/client/petstore/php/OpenAPIClient-php/lib/Model/Order.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/client/petstore/php/OpenAPIClient-php/lib/Model/OuterComposite.php b/samples/client/petstore/php/OpenAPIClient-php/lib/Model/OuterComposite.php index f151c8979e9..1d04afffa5f 100644 --- a/samples/client/petstore/php/OpenAPIClient-php/lib/Model/OuterComposite.php +++ b/samples/client/petstore/php/OpenAPIClient-php/lib/Model/OuterComposite.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/client/petstore/php/OpenAPIClient-php/lib/Model/OuterEnum.php b/samples/client/petstore/php/OpenAPIClient-php/lib/Model/OuterEnum.php index 2e69bda233a..b660e69a246 100644 --- a/samples/client/petstore/php/OpenAPIClient-php/lib/Model/OuterEnum.php +++ b/samples/client/petstore/php/OpenAPIClient-php/lib/Model/OuterEnum.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/client/petstore/php/OpenAPIClient-php/lib/Model/Pet.php b/samples/client/petstore/php/OpenAPIClient-php/lib/Model/Pet.php index a6ad7fb147f..b078a0b7fe4 100644 --- a/samples/client/petstore/php/OpenAPIClient-php/lib/Model/Pet.php +++ b/samples/client/petstore/php/OpenAPIClient-php/lib/Model/Pet.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/client/petstore/php/OpenAPIClient-php/lib/Model/ReadOnlyFirst.php b/samples/client/petstore/php/OpenAPIClient-php/lib/Model/ReadOnlyFirst.php index 074ae0bd39d..db2d8c8fb6b 100644 --- a/samples/client/petstore/php/OpenAPIClient-php/lib/Model/ReadOnlyFirst.php +++ b/samples/client/petstore/php/OpenAPIClient-php/lib/Model/ReadOnlyFirst.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/client/petstore/php/OpenAPIClient-php/lib/Model/SpecialModelName.php b/samples/client/petstore/php/OpenAPIClient-php/lib/Model/SpecialModelName.php index aeb5e92acc4..4f8980dea52 100644 --- a/samples/client/petstore/php/OpenAPIClient-php/lib/Model/SpecialModelName.php +++ b/samples/client/petstore/php/OpenAPIClient-php/lib/Model/SpecialModelName.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/client/petstore/php/OpenAPIClient-php/lib/Model/StringBooleanMap.php b/samples/client/petstore/php/OpenAPIClient-php/lib/Model/StringBooleanMap.php index 78283328572..253d37eb94e 100644 --- a/samples/client/petstore/php/OpenAPIClient-php/lib/Model/StringBooleanMap.php +++ b/samples/client/petstore/php/OpenAPIClient-php/lib/Model/StringBooleanMap.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/client/petstore/php/OpenAPIClient-php/lib/Model/Tag.php b/samples/client/petstore/php/OpenAPIClient-php/lib/Model/Tag.php index 357d1002256..3610270f712 100644 --- a/samples/client/petstore/php/OpenAPIClient-php/lib/Model/Tag.php +++ b/samples/client/petstore/php/OpenAPIClient-php/lib/Model/Tag.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/client/petstore/php/OpenAPIClient-php/lib/Model/User.php b/samples/client/petstore/php/OpenAPIClient-php/lib/Model/User.php index a49732d42f0..8658eaad336 100644 --- a/samples/client/petstore/php/OpenAPIClient-php/lib/Model/User.php +++ b/samples/client/petstore/php/OpenAPIClient-php/lib/Model/User.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/client/petstore/php/OpenAPIClient-php/lib/ObjectSerializer.php b/samples/client/petstore/php/OpenAPIClient-php/lib/ObjectSerializer.php index 77b1d70cea0..7557d2ff22c 100644 --- a/samples/client/petstore/php/OpenAPIClient-php/lib/ObjectSerializer.php +++ b/samples/client/petstore/php/OpenAPIClient-php/lib/ObjectSerializer.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/client/petstore/php/OpenAPIClient-php/test/Api/AnotherFakeApiTest.php b/samples/client/petstore/php/OpenAPIClient-php/test/Api/AnotherFakeApiTest.php index 2880f5ba9b1..b976a429739 100644 --- a/samples/client/petstore/php/OpenAPIClient-php/test/Api/AnotherFakeApiTest.php +++ b/samples/client/petstore/php/OpenAPIClient-php/test/Api/AnotherFakeApiTest.php @@ -17,7 +17,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/client/petstore/php/OpenAPIClient-php/test/Api/FakeApiTest.php b/samples/client/petstore/php/OpenAPIClient-php/test/Api/FakeApiTest.php index c8a1b219b3a..f4a8b2c3135 100644 --- a/samples/client/petstore/php/OpenAPIClient-php/test/Api/FakeApiTest.php +++ b/samples/client/petstore/php/OpenAPIClient-php/test/Api/FakeApiTest.php @@ -17,7 +17,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/client/petstore/php/OpenAPIClient-php/test/Api/FakeClassnameTags123ApiTest.php b/samples/client/petstore/php/OpenAPIClient-php/test/Api/FakeClassnameTags123ApiTest.php index 718fbcb30e9..cc0c211c69f 100644 --- a/samples/client/petstore/php/OpenAPIClient-php/test/Api/FakeClassnameTags123ApiTest.php +++ b/samples/client/petstore/php/OpenAPIClient-php/test/Api/FakeClassnameTags123ApiTest.php @@ -17,7 +17,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/client/petstore/php/OpenAPIClient-php/test/Api/PetApiTest.php b/samples/client/petstore/php/OpenAPIClient-php/test/Api/PetApiTest.php index 40e20ba9f2f..4453e8e8326 100644 --- a/samples/client/petstore/php/OpenAPIClient-php/test/Api/PetApiTest.php +++ b/samples/client/petstore/php/OpenAPIClient-php/test/Api/PetApiTest.php @@ -17,7 +17,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/client/petstore/php/OpenAPIClient-php/test/Api/StoreApiTest.php b/samples/client/petstore/php/OpenAPIClient-php/test/Api/StoreApiTest.php index fa689746517..b71f90f4fac 100644 --- a/samples/client/petstore/php/OpenAPIClient-php/test/Api/StoreApiTest.php +++ b/samples/client/petstore/php/OpenAPIClient-php/test/Api/StoreApiTest.php @@ -17,7 +17,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/client/petstore/php/OpenAPIClient-php/test/Api/UserApiTest.php b/samples/client/petstore/php/OpenAPIClient-php/test/Api/UserApiTest.php index a904c3bfe06..eaf856dca3f 100644 --- a/samples/client/petstore/php/OpenAPIClient-php/test/Api/UserApiTest.php +++ b/samples/client/petstore/php/OpenAPIClient-php/test/Api/UserApiTest.php @@ -17,7 +17,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/client/petstore/php/OpenAPIClient-php/test/Model/AdditionalPropertiesClassTest.php b/samples/client/petstore/php/OpenAPIClient-php/test/Model/AdditionalPropertiesClassTest.php index dfae0c32c4c..71e281fbbb1 100644 --- a/samples/client/petstore/php/OpenAPIClient-php/test/Model/AdditionalPropertiesClassTest.php +++ b/samples/client/petstore/php/OpenAPIClient-php/test/Model/AdditionalPropertiesClassTest.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/client/petstore/php/OpenAPIClient-php/test/Model/AnimalFarmTest.php b/samples/client/petstore/php/OpenAPIClient-php/test/Model/AnimalFarmTest.php index ac52c8db220..62a7e002c42 100644 --- a/samples/client/petstore/php/OpenAPIClient-php/test/Model/AnimalFarmTest.php +++ b/samples/client/petstore/php/OpenAPIClient-php/test/Model/AnimalFarmTest.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/client/petstore/php/OpenAPIClient-php/test/Model/AnimalTest.php b/samples/client/petstore/php/OpenAPIClient-php/test/Model/AnimalTest.php index b8c08fc9a92..3343b893d2c 100644 --- a/samples/client/petstore/php/OpenAPIClient-php/test/Model/AnimalTest.php +++ b/samples/client/petstore/php/OpenAPIClient-php/test/Model/AnimalTest.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/client/petstore/php/OpenAPIClient-php/test/Model/ApiResponseTest.php b/samples/client/petstore/php/OpenAPIClient-php/test/Model/ApiResponseTest.php index 942391c06b0..363b3855224 100644 --- a/samples/client/petstore/php/OpenAPIClient-php/test/Model/ApiResponseTest.php +++ b/samples/client/petstore/php/OpenAPIClient-php/test/Model/ApiResponseTest.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/client/petstore/php/OpenAPIClient-php/test/Model/ArrayOfArrayOfNumberOnlyTest.php b/samples/client/petstore/php/OpenAPIClient-php/test/Model/ArrayOfArrayOfNumberOnlyTest.php index 2a1ae856c0d..3dc73d40505 100644 --- a/samples/client/petstore/php/OpenAPIClient-php/test/Model/ArrayOfArrayOfNumberOnlyTest.php +++ b/samples/client/petstore/php/OpenAPIClient-php/test/Model/ArrayOfArrayOfNumberOnlyTest.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/client/petstore/php/OpenAPIClient-php/test/Model/ArrayOfNumberOnlyTest.php b/samples/client/petstore/php/OpenAPIClient-php/test/Model/ArrayOfNumberOnlyTest.php index 2728b43e7ab..266d73cf065 100644 --- a/samples/client/petstore/php/OpenAPIClient-php/test/Model/ArrayOfNumberOnlyTest.php +++ b/samples/client/petstore/php/OpenAPIClient-php/test/Model/ArrayOfNumberOnlyTest.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/client/petstore/php/OpenAPIClient-php/test/Model/ArrayTestTest.php b/samples/client/petstore/php/OpenAPIClient-php/test/Model/ArrayTestTest.php index fce5ac1a44a..624e40ac970 100644 --- a/samples/client/petstore/php/OpenAPIClient-php/test/Model/ArrayTestTest.php +++ b/samples/client/petstore/php/OpenAPIClient-php/test/Model/ArrayTestTest.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/client/petstore/php/OpenAPIClient-php/test/Model/CapitalizationTest.php b/samples/client/petstore/php/OpenAPIClient-php/test/Model/CapitalizationTest.php index ded18109da5..258ca37b626 100644 --- a/samples/client/petstore/php/OpenAPIClient-php/test/Model/CapitalizationTest.php +++ b/samples/client/petstore/php/OpenAPIClient-php/test/Model/CapitalizationTest.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/client/petstore/php/OpenAPIClient-php/test/Model/CatTest.php b/samples/client/petstore/php/OpenAPIClient-php/test/Model/CatTest.php index de5fb181c6d..92fe394bcfc 100644 --- a/samples/client/petstore/php/OpenAPIClient-php/test/Model/CatTest.php +++ b/samples/client/petstore/php/OpenAPIClient-php/test/Model/CatTest.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/client/petstore/php/OpenAPIClient-php/test/Model/CategoryTest.php b/samples/client/petstore/php/OpenAPIClient-php/test/Model/CategoryTest.php index 421c8d2fae7..b158c82a21b 100644 --- a/samples/client/petstore/php/OpenAPIClient-php/test/Model/CategoryTest.php +++ b/samples/client/petstore/php/OpenAPIClient-php/test/Model/CategoryTest.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/client/petstore/php/OpenAPIClient-php/test/Model/ClassModelTest.php b/samples/client/petstore/php/OpenAPIClient-php/test/Model/ClassModelTest.php index 02997e5c669..f28b421a16e 100644 --- a/samples/client/petstore/php/OpenAPIClient-php/test/Model/ClassModelTest.php +++ b/samples/client/petstore/php/OpenAPIClient-php/test/Model/ClassModelTest.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/client/petstore/php/OpenAPIClient-php/test/Model/ClientTest.php b/samples/client/petstore/php/OpenAPIClient-php/test/Model/ClientTest.php index 2e02a439db0..cfea0747f05 100644 --- a/samples/client/petstore/php/OpenAPIClient-php/test/Model/ClientTest.php +++ b/samples/client/petstore/php/OpenAPIClient-php/test/Model/ClientTest.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/client/petstore/php/OpenAPIClient-php/test/Model/DogTest.php b/samples/client/petstore/php/OpenAPIClient-php/test/Model/DogTest.php index d39130d1b3a..3271a939e7e 100644 --- a/samples/client/petstore/php/OpenAPIClient-php/test/Model/DogTest.php +++ b/samples/client/petstore/php/OpenAPIClient-php/test/Model/DogTest.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/client/petstore/php/OpenAPIClient-php/test/Model/EnumArraysTest.php b/samples/client/petstore/php/OpenAPIClient-php/test/Model/EnumArraysTest.php index edec02ad0af..1e74285cc58 100644 --- a/samples/client/petstore/php/OpenAPIClient-php/test/Model/EnumArraysTest.php +++ b/samples/client/petstore/php/OpenAPIClient-php/test/Model/EnumArraysTest.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/client/petstore/php/OpenAPIClient-php/test/Model/EnumClassTest.php b/samples/client/petstore/php/OpenAPIClient-php/test/Model/EnumClassTest.php index f0575cdbe96..da112133b2c 100644 --- a/samples/client/petstore/php/OpenAPIClient-php/test/Model/EnumClassTest.php +++ b/samples/client/petstore/php/OpenAPIClient-php/test/Model/EnumClassTest.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/client/petstore/php/OpenAPIClient-php/test/Model/EnumTestTest.php b/samples/client/petstore/php/OpenAPIClient-php/test/Model/EnumTestTest.php index e968f550bde..8fdd0a1c26e 100644 --- a/samples/client/petstore/php/OpenAPIClient-php/test/Model/EnumTestTest.php +++ b/samples/client/petstore/php/OpenAPIClient-php/test/Model/EnumTestTest.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/client/petstore/php/OpenAPIClient-php/test/Model/FileSchemaTestClassTest.php b/samples/client/petstore/php/OpenAPIClient-php/test/Model/FileSchemaTestClassTest.php index 68b2bb73f16..e9a183be758 100644 --- a/samples/client/petstore/php/OpenAPIClient-php/test/Model/FileSchemaTestClassTest.php +++ b/samples/client/petstore/php/OpenAPIClient-php/test/Model/FileSchemaTestClassTest.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/client/petstore/php/OpenAPIClient-php/test/Model/FileTest.php b/samples/client/petstore/php/OpenAPIClient-php/test/Model/FileTest.php index ee9aab52173..c23b01bb40f 100644 --- a/samples/client/petstore/php/OpenAPIClient-php/test/Model/FileTest.php +++ b/samples/client/petstore/php/OpenAPIClient-php/test/Model/FileTest.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/client/petstore/php/OpenAPIClient-php/test/Model/FormatTestTest.php b/samples/client/petstore/php/OpenAPIClient-php/test/Model/FormatTestTest.php index bb4992a126b..5e65cd7f5c3 100644 --- a/samples/client/petstore/php/OpenAPIClient-php/test/Model/FormatTestTest.php +++ b/samples/client/petstore/php/OpenAPIClient-php/test/Model/FormatTestTest.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/client/petstore/php/OpenAPIClient-php/test/Model/HasOnlyReadOnlyTest.php b/samples/client/petstore/php/OpenAPIClient-php/test/Model/HasOnlyReadOnlyTest.php index 552ebf8b435..741cb5ae73b 100644 --- a/samples/client/petstore/php/OpenAPIClient-php/test/Model/HasOnlyReadOnlyTest.php +++ b/samples/client/petstore/php/OpenAPIClient-php/test/Model/HasOnlyReadOnlyTest.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/client/petstore/php/OpenAPIClient-php/test/Model/MapTestTest.php b/samples/client/petstore/php/OpenAPIClient-php/test/Model/MapTestTest.php index cdf7cbbce51..31aa27e4bb4 100644 --- a/samples/client/petstore/php/OpenAPIClient-php/test/Model/MapTestTest.php +++ b/samples/client/petstore/php/OpenAPIClient-php/test/Model/MapTestTest.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/client/petstore/php/OpenAPIClient-php/test/Model/MixedPropertiesAndAdditionalPropertiesClassTest.php b/samples/client/petstore/php/OpenAPIClient-php/test/Model/MixedPropertiesAndAdditionalPropertiesClassTest.php index 2830f1165f9..084b8bfcf1d 100644 --- a/samples/client/petstore/php/OpenAPIClient-php/test/Model/MixedPropertiesAndAdditionalPropertiesClassTest.php +++ b/samples/client/petstore/php/OpenAPIClient-php/test/Model/MixedPropertiesAndAdditionalPropertiesClassTest.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/client/petstore/php/OpenAPIClient-php/test/Model/Model200ResponseTest.php b/samples/client/petstore/php/OpenAPIClient-php/test/Model/Model200ResponseTest.php index ee972620fc1..15780b5a9ef 100644 --- a/samples/client/petstore/php/OpenAPIClient-php/test/Model/Model200ResponseTest.php +++ b/samples/client/petstore/php/OpenAPIClient-php/test/Model/Model200ResponseTest.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/client/petstore/php/OpenAPIClient-php/test/Model/ModelListTest.php b/samples/client/petstore/php/OpenAPIClient-php/test/Model/ModelListTest.php index 9786a3f7dae..4a02c9b1b2f 100644 --- a/samples/client/petstore/php/OpenAPIClient-php/test/Model/ModelListTest.php +++ b/samples/client/petstore/php/OpenAPIClient-php/test/Model/ModelListTest.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/client/petstore/php/OpenAPIClient-php/test/Model/ModelReturnTest.php b/samples/client/petstore/php/OpenAPIClient-php/test/Model/ModelReturnTest.php index fc7147e7265..bf6fd31361d 100644 --- a/samples/client/petstore/php/OpenAPIClient-php/test/Model/ModelReturnTest.php +++ b/samples/client/petstore/php/OpenAPIClient-php/test/Model/ModelReturnTest.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/client/petstore/php/OpenAPIClient-php/test/Model/NameTest.php b/samples/client/petstore/php/OpenAPIClient-php/test/Model/NameTest.php index 39045f66a0b..0057765b6fa 100644 --- a/samples/client/petstore/php/OpenAPIClient-php/test/Model/NameTest.php +++ b/samples/client/petstore/php/OpenAPIClient-php/test/Model/NameTest.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/client/petstore/php/OpenAPIClient-php/test/Model/NumberOnlyTest.php b/samples/client/petstore/php/OpenAPIClient-php/test/Model/NumberOnlyTest.php index 2d0f99e11e2..3082fb02f02 100644 --- a/samples/client/petstore/php/OpenAPIClient-php/test/Model/NumberOnlyTest.php +++ b/samples/client/petstore/php/OpenAPIClient-php/test/Model/NumberOnlyTest.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/client/petstore/php/OpenAPIClient-php/test/Model/OrderTest.php b/samples/client/petstore/php/OpenAPIClient-php/test/Model/OrderTest.php index 33e14de9e05..2b1364a3772 100644 --- a/samples/client/petstore/php/OpenAPIClient-php/test/Model/OrderTest.php +++ b/samples/client/petstore/php/OpenAPIClient-php/test/Model/OrderTest.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/client/petstore/php/OpenAPIClient-php/test/Model/OuterCompositeTest.php b/samples/client/petstore/php/OpenAPIClient-php/test/Model/OuterCompositeTest.php index 9735a5612bf..6af73098ff2 100644 --- a/samples/client/petstore/php/OpenAPIClient-php/test/Model/OuterCompositeTest.php +++ b/samples/client/petstore/php/OpenAPIClient-php/test/Model/OuterCompositeTest.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/client/petstore/php/OpenAPIClient-php/test/Model/OuterEnumTest.php b/samples/client/petstore/php/OpenAPIClient-php/test/Model/OuterEnumTest.php index be04ee705cf..41093069236 100644 --- a/samples/client/petstore/php/OpenAPIClient-php/test/Model/OuterEnumTest.php +++ b/samples/client/petstore/php/OpenAPIClient-php/test/Model/OuterEnumTest.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/client/petstore/php/OpenAPIClient-php/test/Model/PetTest.php b/samples/client/petstore/php/OpenAPIClient-php/test/Model/PetTest.php index ce886a65f60..3f9a02e057e 100644 --- a/samples/client/petstore/php/OpenAPIClient-php/test/Model/PetTest.php +++ b/samples/client/petstore/php/OpenAPIClient-php/test/Model/PetTest.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/client/petstore/php/OpenAPIClient-php/test/Model/ReadOnlyFirstTest.php b/samples/client/petstore/php/OpenAPIClient-php/test/Model/ReadOnlyFirstTest.php index 35128f76798..02ae274f056 100644 --- a/samples/client/petstore/php/OpenAPIClient-php/test/Model/ReadOnlyFirstTest.php +++ b/samples/client/petstore/php/OpenAPIClient-php/test/Model/ReadOnlyFirstTest.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/client/petstore/php/OpenAPIClient-php/test/Model/SpecialModelNameTest.php b/samples/client/petstore/php/OpenAPIClient-php/test/Model/SpecialModelNameTest.php index 0d7fb2d540e..81c89029dbd 100644 --- a/samples/client/petstore/php/OpenAPIClient-php/test/Model/SpecialModelNameTest.php +++ b/samples/client/petstore/php/OpenAPIClient-php/test/Model/SpecialModelNameTest.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/client/petstore/php/OpenAPIClient-php/test/Model/StringBooleanMapTest.php b/samples/client/petstore/php/OpenAPIClient-php/test/Model/StringBooleanMapTest.php index 990cf5d8e3c..7acd27d144e 100644 --- a/samples/client/petstore/php/OpenAPIClient-php/test/Model/StringBooleanMapTest.php +++ b/samples/client/petstore/php/OpenAPIClient-php/test/Model/StringBooleanMapTest.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/client/petstore/php/OpenAPIClient-php/test/Model/TagTest.php b/samples/client/petstore/php/OpenAPIClient-php/test/Model/TagTest.php index 72ed9d787f4..f7de7efb83e 100644 --- a/samples/client/petstore/php/OpenAPIClient-php/test/Model/TagTest.php +++ b/samples/client/petstore/php/OpenAPIClient-php/test/Model/TagTest.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/client/petstore/php/OpenAPIClient-php/test/Model/UserTest.php b/samples/client/petstore/php/OpenAPIClient-php/test/Model/UserTest.php index 28ea7bc47c3..56d63efb1a6 100644 --- a/samples/client/petstore/php/OpenAPIClient-php/test/Model/UserTest.php +++ b/samples/client/petstore/php/OpenAPIClient-php/test/Model/UserTest.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/client/petstore/ruby/.openapi-generator/VERSION b/samples/client/petstore/ruby/.openapi-generator/VERSION index e24c1f857e0..d077ffb477a 100644 --- a/samples/client/petstore/ruby/.openapi-generator/VERSION +++ b/samples/client/petstore/ruby/.openapi-generator/VERSION @@ -1 +1 @@ -3.3.3-SNAPSHOT \ No newline at end of file +3.3.4-SNAPSHOT \ No newline at end of file diff --git a/samples/client/petstore/ruby/lib/petstore.rb b/samples/client/petstore/ruby/lib/petstore.rb index 2bab01e6cde..109971ea30e 100644 --- a/samples/client/petstore/ruby/lib/petstore.rb +++ b/samples/client/petstore/ruby/lib/petstore.rb @@ -6,7 +6,7 @@ OpenAPI spec version: 1.0.0 Generated by: https://openapi-generator.tech -OpenAPI Generator version: 3.3.3-SNAPSHOT +OpenAPI Generator version: 3.3.4-SNAPSHOT =end diff --git a/samples/client/petstore/ruby/lib/petstore/api/another_fake_api.rb b/samples/client/petstore/ruby/lib/petstore/api/another_fake_api.rb index 71fb17eeb8a..7eada287ab3 100644 --- a/samples/client/petstore/ruby/lib/petstore/api/another_fake_api.rb +++ b/samples/client/petstore/ruby/lib/petstore/api/another_fake_api.rb @@ -6,7 +6,7 @@ OpenAPI spec version: 1.0.0 Generated by: https://openapi-generator.tech -OpenAPI Generator version: 3.3.3-SNAPSHOT +OpenAPI Generator version: 3.3.4-SNAPSHOT =end diff --git a/samples/client/petstore/ruby/lib/petstore/api/default_api.rb b/samples/client/petstore/ruby/lib/petstore/api/default_api.rb index 2ba97bd3c6f..cb0020d9e03 100644 --- a/samples/client/petstore/ruby/lib/petstore/api/default_api.rb +++ b/samples/client/petstore/ruby/lib/petstore/api/default_api.rb @@ -6,7 +6,7 @@ OpenAPI spec version: 1.0.0 Generated by: https://openapi-generator.tech -OpenAPI Generator version: 3.3.3-SNAPSHOT +OpenAPI Generator version: 3.3.4-SNAPSHOT =end diff --git a/samples/client/petstore/ruby/lib/petstore/api/fake_api.rb b/samples/client/petstore/ruby/lib/petstore/api/fake_api.rb index dd13c6540fe..6ddf4371a96 100644 --- a/samples/client/petstore/ruby/lib/petstore/api/fake_api.rb +++ b/samples/client/petstore/ruby/lib/petstore/api/fake_api.rb @@ -6,7 +6,7 @@ OpenAPI spec version: 1.0.0 Generated by: https://openapi-generator.tech -OpenAPI Generator version: 3.3.3-SNAPSHOT +OpenAPI Generator version: 3.3.4-SNAPSHOT =end diff --git a/samples/client/petstore/ruby/lib/petstore/api/fake_classname_tags123_api.rb b/samples/client/petstore/ruby/lib/petstore/api/fake_classname_tags123_api.rb index e9aff0ba146..4f804e0676d 100644 --- a/samples/client/petstore/ruby/lib/petstore/api/fake_classname_tags123_api.rb +++ b/samples/client/petstore/ruby/lib/petstore/api/fake_classname_tags123_api.rb @@ -6,7 +6,7 @@ OpenAPI spec version: 1.0.0 Generated by: https://openapi-generator.tech -OpenAPI Generator version: 3.3.3-SNAPSHOT +OpenAPI Generator version: 3.3.4-SNAPSHOT =end diff --git a/samples/client/petstore/ruby/lib/petstore/api/pet_api.rb b/samples/client/petstore/ruby/lib/petstore/api/pet_api.rb index 0dc4ac1f3c5..5cad4799abb 100644 --- a/samples/client/petstore/ruby/lib/petstore/api/pet_api.rb +++ b/samples/client/petstore/ruby/lib/petstore/api/pet_api.rb @@ -6,7 +6,7 @@ OpenAPI spec version: 1.0.0 Generated by: https://openapi-generator.tech -OpenAPI Generator version: 3.3.3-SNAPSHOT +OpenAPI Generator version: 3.3.4-SNAPSHOT =end diff --git a/samples/client/petstore/ruby/lib/petstore/api/store_api.rb b/samples/client/petstore/ruby/lib/petstore/api/store_api.rb index 5f7abec2adc..63c02b8e264 100644 --- a/samples/client/petstore/ruby/lib/petstore/api/store_api.rb +++ b/samples/client/petstore/ruby/lib/petstore/api/store_api.rb @@ -6,7 +6,7 @@ OpenAPI spec version: 1.0.0 Generated by: https://openapi-generator.tech -OpenAPI Generator version: 3.3.3-SNAPSHOT +OpenAPI Generator version: 3.3.4-SNAPSHOT =end diff --git a/samples/client/petstore/ruby/lib/petstore/api/user_api.rb b/samples/client/petstore/ruby/lib/petstore/api/user_api.rb index e47dc0a716a..66506429348 100644 --- a/samples/client/petstore/ruby/lib/petstore/api/user_api.rb +++ b/samples/client/petstore/ruby/lib/petstore/api/user_api.rb @@ -6,7 +6,7 @@ OpenAPI spec version: 1.0.0 Generated by: https://openapi-generator.tech -OpenAPI Generator version: 3.3.3-SNAPSHOT +OpenAPI Generator version: 3.3.4-SNAPSHOT =end diff --git a/samples/client/petstore/ruby/lib/petstore/api_client.rb b/samples/client/petstore/ruby/lib/petstore/api_client.rb index 36d559cdd03..4626441c6ea 100644 --- a/samples/client/petstore/ruby/lib/petstore/api_client.rb +++ b/samples/client/petstore/ruby/lib/petstore/api_client.rb @@ -6,7 +6,7 @@ OpenAPI spec version: 1.0.0 Generated by: https://openapi-generator.tech -OpenAPI Generator version: 3.3.3-SNAPSHOT +OpenAPI Generator version: 3.3.4-SNAPSHOT =end diff --git a/samples/client/petstore/ruby/lib/petstore/api_error.rb b/samples/client/petstore/ruby/lib/petstore/api_error.rb index 629ad384a77..3b462a22142 100644 --- a/samples/client/petstore/ruby/lib/petstore/api_error.rb +++ b/samples/client/petstore/ruby/lib/petstore/api_error.rb @@ -6,7 +6,7 @@ OpenAPI spec version: 1.0.0 Generated by: https://openapi-generator.tech -OpenAPI Generator version: 3.3.3-SNAPSHOT +OpenAPI Generator version: 3.3.4-SNAPSHOT =end diff --git a/samples/client/petstore/ruby/lib/petstore/configuration.rb b/samples/client/petstore/ruby/lib/petstore/configuration.rb index 04096cd3af6..20bfc4d720f 100644 --- a/samples/client/petstore/ruby/lib/petstore/configuration.rb +++ b/samples/client/petstore/ruby/lib/petstore/configuration.rb @@ -6,7 +6,7 @@ OpenAPI spec version: 1.0.0 Generated by: https://openapi-generator.tech -OpenAPI Generator version: 3.3.3-SNAPSHOT +OpenAPI Generator version: 3.3.4-SNAPSHOT =end diff --git a/samples/client/petstore/ruby/lib/petstore/models/additional_properties_class.rb b/samples/client/petstore/ruby/lib/petstore/models/additional_properties_class.rb index 86bd37cba1f..05a29dc1e89 100644 --- a/samples/client/petstore/ruby/lib/petstore/models/additional_properties_class.rb +++ b/samples/client/petstore/ruby/lib/petstore/models/additional_properties_class.rb @@ -6,7 +6,7 @@ OpenAPI spec version: 1.0.0 Generated by: https://openapi-generator.tech -OpenAPI Generator version: 3.3.3-SNAPSHOT +OpenAPI Generator version: 3.3.4-SNAPSHOT =end diff --git a/samples/client/petstore/ruby/lib/petstore/models/animal.rb b/samples/client/petstore/ruby/lib/petstore/models/animal.rb index 7fe8f2a2efc..e0886f81c3d 100644 --- a/samples/client/petstore/ruby/lib/petstore/models/animal.rb +++ b/samples/client/petstore/ruby/lib/petstore/models/animal.rb @@ -6,7 +6,7 @@ OpenAPI spec version: 1.0.0 Generated by: https://openapi-generator.tech -OpenAPI Generator version: 3.3.3-SNAPSHOT +OpenAPI Generator version: 3.3.4-SNAPSHOT =end diff --git a/samples/client/petstore/ruby/lib/petstore/models/animal_farm.rb b/samples/client/petstore/ruby/lib/petstore/models/animal_farm.rb index c9db67d4a92..00e5f58a7a6 100644 --- a/samples/client/petstore/ruby/lib/petstore/models/animal_farm.rb +++ b/samples/client/petstore/ruby/lib/petstore/models/animal_farm.rb @@ -6,7 +6,7 @@ OpenAPI spec version: 1.0.0 Generated by: https://openapi-generator.tech -OpenAPI Generator version: 3.3.3-SNAPSHOT +OpenAPI Generator version: 3.3.4-SNAPSHOT =end diff --git a/samples/client/petstore/ruby/lib/petstore/models/api_response.rb b/samples/client/petstore/ruby/lib/petstore/models/api_response.rb index 03eb6f3cb81..0535042e220 100644 --- a/samples/client/petstore/ruby/lib/petstore/models/api_response.rb +++ b/samples/client/petstore/ruby/lib/petstore/models/api_response.rb @@ -6,7 +6,7 @@ OpenAPI spec version: 1.0.0 Generated by: https://openapi-generator.tech -OpenAPI Generator version: 3.3.3-SNAPSHOT +OpenAPI Generator version: 3.3.4-SNAPSHOT =end diff --git a/samples/client/petstore/ruby/lib/petstore/models/array_of_array_of_number_only.rb b/samples/client/petstore/ruby/lib/petstore/models/array_of_array_of_number_only.rb index b13489a7903..a32087c5295 100644 --- a/samples/client/petstore/ruby/lib/petstore/models/array_of_array_of_number_only.rb +++ b/samples/client/petstore/ruby/lib/petstore/models/array_of_array_of_number_only.rb @@ -6,7 +6,7 @@ OpenAPI spec version: 1.0.0 Generated by: https://openapi-generator.tech -OpenAPI Generator version: 3.3.3-SNAPSHOT +OpenAPI Generator version: 3.3.4-SNAPSHOT =end diff --git a/samples/client/petstore/ruby/lib/petstore/models/array_of_number_only.rb b/samples/client/petstore/ruby/lib/petstore/models/array_of_number_only.rb index cb0670d2830..4049a385302 100644 --- a/samples/client/petstore/ruby/lib/petstore/models/array_of_number_only.rb +++ b/samples/client/petstore/ruby/lib/petstore/models/array_of_number_only.rb @@ -6,7 +6,7 @@ OpenAPI spec version: 1.0.0 Generated by: https://openapi-generator.tech -OpenAPI Generator version: 3.3.3-SNAPSHOT +OpenAPI Generator version: 3.3.4-SNAPSHOT =end diff --git a/samples/client/petstore/ruby/lib/petstore/models/array_test.rb b/samples/client/petstore/ruby/lib/petstore/models/array_test.rb index 858b6b177c1..6c8385a1d9e 100644 --- a/samples/client/petstore/ruby/lib/petstore/models/array_test.rb +++ b/samples/client/petstore/ruby/lib/petstore/models/array_test.rb @@ -6,7 +6,7 @@ OpenAPI spec version: 1.0.0 Generated by: https://openapi-generator.tech -OpenAPI Generator version: 3.3.3-SNAPSHOT +OpenAPI Generator version: 3.3.4-SNAPSHOT =end diff --git a/samples/client/petstore/ruby/lib/petstore/models/capitalization.rb b/samples/client/petstore/ruby/lib/petstore/models/capitalization.rb index 5991e98aabb..e16b47a688f 100644 --- a/samples/client/petstore/ruby/lib/petstore/models/capitalization.rb +++ b/samples/client/petstore/ruby/lib/petstore/models/capitalization.rb @@ -6,7 +6,7 @@ OpenAPI spec version: 1.0.0 Generated by: https://openapi-generator.tech -OpenAPI Generator version: 3.3.3-SNAPSHOT +OpenAPI Generator version: 3.3.4-SNAPSHOT =end diff --git a/samples/client/petstore/ruby/lib/petstore/models/cat.rb b/samples/client/petstore/ruby/lib/petstore/models/cat.rb index ab83695cbc4..5fbf20468bc 100644 --- a/samples/client/petstore/ruby/lib/petstore/models/cat.rb +++ b/samples/client/petstore/ruby/lib/petstore/models/cat.rb @@ -6,7 +6,7 @@ OpenAPI spec version: 1.0.0 Generated by: https://openapi-generator.tech -OpenAPI Generator version: 3.3.3-SNAPSHOT +OpenAPI Generator version: 3.3.4-SNAPSHOT =end diff --git a/samples/client/petstore/ruby/lib/petstore/models/category.rb b/samples/client/petstore/ruby/lib/petstore/models/category.rb index 4517cc7ea3f..881623cbe0e 100644 --- a/samples/client/petstore/ruby/lib/petstore/models/category.rb +++ b/samples/client/petstore/ruby/lib/petstore/models/category.rb @@ -6,7 +6,7 @@ OpenAPI spec version: 1.0.0 Generated by: https://openapi-generator.tech -OpenAPI Generator version: 3.3.3-SNAPSHOT +OpenAPI Generator version: 3.3.4-SNAPSHOT =end diff --git a/samples/client/petstore/ruby/lib/petstore/models/class_model.rb b/samples/client/petstore/ruby/lib/petstore/models/class_model.rb index 8287046f2e0..d326e8b5f1a 100644 --- a/samples/client/petstore/ruby/lib/petstore/models/class_model.rb +++ b/samples/client/petstore/ruby/lib/petstore/models/class_model.rb @@ -6,7 +6,7 @@ OpenAPI spec version: 1.0.0 Generated by: https://openapi-generator.tech -OpenAPI Generator version: 3.3.3-SNAPSHOT +OpenAPI Generator version: 3.3.4-SNAPSHOT =end diff --git a/samples/client/petstore/ruby/lib/petstore/models/client.rb b/samples/client/petstore/ruby/lib/petstore/models/client.rb index a4b6090829e..d33a0f3d7a3 100644 --- a/samples/client/petstore/ruby/lib/petstore/models/client.rb +++ b/samples/client/petstore/ruby/lib/petstore/models/client.rb @@ -6,7 +6,7 @@ OpenAPI spec version: 1.0.0 Generated by: https://openapi-generator.tech -OpenAPI Generator version: 3.3.3-SNAPSHOT +OpenAPI Generator version: 3.3.4-SNAPSHOT =end diff --git a/samples/client/petstore/ruby/lib/petstore/models/dog.rb b/samples/client/petstore/ruby/lib/petstore/models/dog.rb index 72213047998..45736e22486 100644 --- a/samples/client/petstore/ruby/lib/petstore/models/dog.rb +++ b/samples/client/petstore/ruby/lib/petstore/models/dog.rb @@ -6,7 +6,7 @@ OpenAPI spec version: 1.0.0 Generated by: https://openapi-generator.tech -OpenAPI Generator version: 3.3.3-SNAPSHOT +OpenAPI Generator version: 3.3.4-SNAPSHOT =end diff --git a/samples/client/petstore/ruby/lib/petstore/models/enum_arrays.rb b/samples/client/petstore/ruby/lib/petstore/models/enum_arrays.rb index b74014bee3b..8cdc7099379 100644 --- a/samples/client/petstore/ruby/lib/petstore/models/enum_arrays.rb +++ b/samples/client/petstore/ruby/lib/petstore/models/enum_arrays.rb @@ -6,7 +6,7 @@ OpenAPI spec version: 1.0.0 Generated by: https://openapi-generator.tech -OpenAPI Generator version: 3.3.3-SNAPSHOT +OpenAPI Generator version: 3.3.4-SNAPSHOT =end diff --git a/samples/client/petstore/ruby/lib/petstore/models/enum_class.rb b/samples/client/petstore/ruby/lib/petstore/models/enum_class.rb index c8a20442268..95e58d897c4 100644 --- a/samples/client/petstore/ruby/lib/petstore/models/enum_class.rb +++ b/samples/client/petstore/ruby/lib/petstore/models/enum_class.rb @@ -6,7 +6,7 @@ OpenAPI spec version: 1.0.0 Generated by: https://openapi-generator.tech -OpenAPI Generator version: 3.3.3-SNAPSHOT +OpenAPI Generator version: 3.3.4-SNAPSHOT =end diff --git a/samples/client/petstore/ruby/lib/petstore/models/enum_test.rb b/samples/client/petstore/ruby/lib/petstore/models/enum_test.rb index 4fdd1016bb9..f389136d168 100644 --- a/samples/client/petstore/ruby/lib/petstore/models/enum_test.rb +++ b/samples/client/petstore/ruby/lib/petstore/models/enum_test.rb @@ -6,7 +6,7 @@ OpenAPI spec version: 1.0.0 Generated by: https://openapi-generator.tech -OpenAPI Generator version: 3.3.3-SNAPSHOT +OpenAPI Generator version: 3.3.4-SNAPSHOT =end diff --git a/samples/client/petstore/ruby/lib/petstore/models/file.rb b/samples/client/petstore/ruby/lib/petstore/models/file.rb index 6045b5e7842..fddf06f6386 100644 --- a/samples/client/petstore/ruby/lib/petstore/models/file.rb +++ b/samples/client/petstore/ruby/lib/petstore/models/file.rb @@ -6,7 +6,7 @@ OpenAPI spec version: 1.0.0 Generated by: https://openapi-generator.tech -OpenAPI Generator version: 3.3.3-SNAPSHOT +OpenAPI Generator version: 3.3.4-SNAPSHOT =end diff --git a/samples/client/petstore/ruby/lib/petstore/models/file_schema_test_class.rb b/samples/client/petstore/ruby/lib/petstore/models/file_schema_test_class.rb index b207e13cf8f..3c8a2f0bf15 100644 --- a/samples/client/petstore/ruby/lib/petstore/models/file_schema_test_class.rb +++ b/samples/client/petstore/ruby/lib/petstore/models/file_schema_test_class.rb @@ -6,7 +6,7 @@ OpenAPI spec version: 1.0.0 Generated by: https://openapi-generator.tech -OpenAPI Generator version: 3.3.3-SNAPSHOT +OpenAPI Generator version: 3.3.4-SNAPSHOT =end diff --git a/samples/client/petstore/ruby/lib/petstore/models/foo.rb b/samples/client/petstore/ruby/lib/petstore/models/foo.rb index 01701591803..50ea0dec7c8 100644 --- a/samples/client/petstore/ruby/lib/petstore/models/foo.rb +++ b/samples/client/petstore/ruby/lib/petstore/models/foo.rb @@ -6,7 +6,7 @@ OpenAPI spec version: 1.0.0 Generated by: https://openapi-generator.tech -OpenAPI Generator version: 3.3.3-SNAPSHOT +OpenAPI Generator version: 3.3.4-SNAPSHOT =end diff --git a/samples/client/petstore/ruby/lib/petstore/models/format_test.rb b/samples/client/petstore/ruby/lib/petstore/models/format_test.rb index 9a5dbb7671d..be1927e8e7f 100644 --- a/samples/client/petstore/ruby/lib/petstore/models/format_test.rb +++ b/samples/client/petstore/ruby/lib/petstore/models/format_test.rb @@ -6,7 +6,7 @@ OpenAPI spec version: 1.0.0 Generated by: https://openapi-generator.tech -OpenAPI Generator version: 3.3.3-SNAPSHOT +OpenAPI Generator version: 3.3.4-SNAPSHOT =end diff --git a/samples/client/petstore/ruby/lib/petstore/models/has_only_read_only.rb b/samples/client/petstore/ruby/lib/petstore/models/has_only_read_only.rb index 1071f8736ad..1bdb32d0017 100644 --- a/samples/client/petstore/ruby/lib/petstore/models/has_only_read_only.rb +++ b/samples/client/petstore/ruby/lib/petstore/models/has_only_read_only.rb @@ -6,7 +6,7 @@ OpenAPI spec version: 1.0.0 Generated by: https://openapi-generator.tech -OpenAPI Generator version: 3.3.3-SNAPSHOT +OpenAPI Generator version: 3.3.4-SNAPSHOT =end diff --git a/samples/client/petstore/ruby/lib/petstore/models/inline_response_default.rb b/samples/client/petstore/ruby/lib/petstore/models/inline_response_default.rb index 50ecbb01793..7cd36c052c4 100644 --- a/samples/client/petstore/ruby/lib/petstore/models/inline_response_default.rb +++ b/samples/client/petstore/ruby/lib/petstore/models/inline_response_default.rb @@ -6,7 +6,7 @@ OpenAPI spec version: 1.0.0 Generated by: https://openapi-generator.tech -OpenAPI Generator version: 3.3.3-SNAPSHOT +OpenAPI Generator version: 3.3.4-SNAPSHOT =end diff --git a/samples/client/petstore/ruby/lib/petstore/models/list.rb b/samples/client/petstore/ruby/lib/petstore/models/list.rb index 366669b4c69..2b9e4e52238 100644 --- a/samples/client/petstore/ruby/lib/petstore/models/list.rb +++ b/samples/client/petstore/ruby/lib/petstore/models/list.rb @@ -6,7 +6,7 @@ OpenAPI spec version: 1.0.0 Generated by: https://openapi-generator.tech -OpenAPI Generator version: 3.3.3-SNAPSHOT +OpenAPI Generator version: 3.3.4-SNAPSHOT =end diff --git a/samples/client/petstore/ruby/lib/petstore/models/map_test.rb b/samples/client/petstore/ruby/lib/petstore/models/map_test.rb index cfc30bc635d..3cee0eb699e 100644 --- a/samples/client/petstore/ruby/lib/petstore/models/map_test.rb +++ b/samples/client/petstore/ruby/lib/petstore/models/map_test.rb @@ -6,7 +6,7 @@ OpenAPI spec version: 1.0.0 Generated by: https://openapi-generator.tech -OpenAPI Generator version: 3.3.3-SNAPSHOT +OpenAPI Generator version: 3.3.4-SNAPSHOT =end diff --git a/samples/client/petstore/ruby/lib/petstore/models/mixed_properties_and_additional_properties_class.rb b/samples/client/petstore/ruby/lib/petstore/models/mixed_properties_and_additional_properties_class.rb index 729418423c9..7fe02e0ba3d 100644 --- a/samples/client/petstore/ruby/lib/petstore/models/mixed_properties_and_additional_properties_class.rb +++ b/samples/client/petstore/ruby/lib/petstore/models/mixed_properties_and_additional_properties_class.rb @@ -6,7 +6,7 @@ OpenAPI spec version: 1.0.0 Generated by: https://openapi-generator.tech -OpenAPI Generator version: 3.3.3-SNAPSHOT +OpenAPI Generator version: 3.3.4-SNAPSHOT =end diff --git a/samples/client/petstore/ruby/lib/petstore/models/model200_response.rb b/samples/client/petstore/ruby/lib/petstore/models/model200_response.rb index b896ec31497..1f911b68828 100644 --- a/samples/client/petstore/ruby/lib/petstore/models/model200_response.rb +++ b/samples/client/petstore/ruby/lib/petstore/models/model200_response.rb @@ -6,7 +6,7 @@ OpenAPI spec version: 1.0.0 Generated by: https://openapi-generator.tech -OpenAPI Generator version: 3.3.3-SNAPSHOT +OpenAPI Generator version: 3.3.4-SNAPSHOT =end diff --git a/samples/client/petstore/ruby/lib/petstore/models/model_return.rb b/samples/client/petstore/ruby/lib/petstore/models/model_return.rb index dd13ff9effe..131ca9fa230 100644 --- a/samples/client/petstore/ruby/lib/petstore/models/model_return.rb +++ b/samples/client/petstore/ruby/lib/petstore/models/model_return.rb @@ -6,7 +6,7 @@ OpenAPI spec version: 1.0.0 Generated by: https://openapi-generator.tech -OpenAPI Generator version: 3.3.3-SNAPSHOT +OpenAPI Generator version: 3.3.4-SNAPSHOT =end diff --git a/samples/client/petstore/ruby/lib/petstore/models/name.rb b/samples/client/petstore/ruby/lib/petstore/models/name.rb index 5ef4c859926..3a35660bde8 100644 --- a/samples/client/petstore/ruby/lib/petstore/models/name.rb +++ b/samples/client/petstore/ruby/lib/petstore/models/name.rb @@ -6,7 +6,7 @@ OpenAPI spec version: 1.0.0 Generated by: https://openapi-generator.tech -OpenAPI Generator version: 3.3.3-SNAPSHOT +OpenAPI Generator version: 3.3.4-SNAPSHOT =end diff --git a/samples/client/petstore/ruby/lib/petstore/models/number_only.rb b/samples/client/petstore/ruby/lib/petstore/models/number_only.rb index f900b2556a5..01f7c59da3b 100644 --- a/samples/client/petstore/ruby/lib/petstore/models/number_only.rb +++ b/samples/client/petstore/ruby/lib/petstore/models/number_only.rb @@ -6,7 +6,7 @@ OpenAPI spec version: 1.0.0 Generated by: https://openapi-generator.tech -OpenAPI Generator version: 3.3.3-SNAPSHOT +OpenAPI Generator version: 3.3.4-SNAPSHOT =end diff --git a/samples/client/petstore/ruby/lib/petstore/models/order.rb b/samples/client/petstore/ruby/lib/petstore/models/order.rb index 3f42f9ac82c..13d62352de0 100644 --- a/samples/client/petstore/ruby/lib/petstore/models/order.rb +++ b/samples/client/petstore/ruby/lib/petstore/models/order.rb @@ -6,7 +6,7 @@ OpenAPI spec version: 1.0.0 Generated by: https://openapi-generator.tech -OpenAPI Generator version: 3.3.3-SNAPSHOT +OpenAPI Generator version: 3.3.4-SNAPSHOT =end diff --git a/samples/client/petstore/ruby/lib/petstore/models/outer_composite.rb b/samples/client/petstore/ruby/lib/petstore/models/outer_composite.rb index f6becc74ec3..50a5ac92d02 100644 --- a/samples/client/petstore/ruby/lib/petstore/models/outer_composite.rb +++ b/samples/client/petstore/ruby/lib/petstore/models/outer_composite.rb @@ -6,7 +6,7 @@ OpenAPI spec version: 1.0.0 Generated by: https://openapi-generator.tech -OpenAPI Generator version: 3.3.3-SNAPSHOT +OpenAPI Generator version: 3.3.4-SNAPSHOT =end diff --git a/samples/client/petstore/ruby/lib/petstore/models/outer_enum.rb b/samples/client/petstore/ruby/lib/petstore/models/outer_enum.rb index b63876234a2..a97b2107538 100644 --- a/samples/client/petstore/ruby/lib/petstore/models/outer_enum.rb +++ b/samples/client/petstore/ruby/lib/petstore/models/outer_enum.rb @@ -6,7 +6,7 @@ OpenAPI spec version: 1.0.0 Generated by: https://openapi-generator.tech -OpenAPI Generator version: 3.3.3-SNAPSHOT +OpenAPI Generator version: 3.3.4-SNAPSHOT =end diff --git a/samples/client/petstore/ruby/lib/petstore/models/pet.rb b/samples/client/petstore/ruby/lib/petstore/models/pet.rb index e53f01becc5..ea8d7ed6549 100644 --- a/samples/client/petstore/ruby/lib/petstore/models/pet.rb +++ b/samples/client/petstore/ruby/lib/petstore/models/pet.rb @@ -6,7 +6,7 @@ OpenAPI spec version: 1.0.0 Generated by: https://openapi-generator.tech -OpenAPI Generator version: 3.3.3-SNAPSHOT +OpenAPI Generator version: 3.3.4-SNAPSHOT =end diff --git a/samples/client/petstore/ruby/lib/petstore/models/read_only_first.rb b/samples/client/petstore/ruby/lib/petstore/models/read_only_first.rb index d1a7db8f63f..2e3cba6fd06 100644 --- a/samples/client/petstore/ruby/lib/petstore/models/read_only_first.rb +++ b/samples/client/petstore/ruby/lib/petstore/models/read_only_first.rb @@ -6,7 +6,7 @@ OpenAPI spec version: 1.0.0 Generated by: https://openapi-generator.tech -OpenAPI Generator version: 3.3.3-SNAPSHOT +OpenAPI Generator version: 3.3.4-SNAPSHOT =end diff --git a/samples/client/petstore/ruby/lib/petstore/models/special_model_name.rb b/samples/client/petstore/ruby/lib/petstore/models/special_model_name.rb index 51143fe4d21..d8cdfdafec7 100644 --- a/samples/client/petstore/ruby/lib/petstore/models/special_model_name.rb +++ b/samples/client/petstore/ruby/lib/petstore/models/special_model_name.rb @@ -6,7 +6,7 @@ OpenAPI spec version: 1.0.0 Generated by: https://openapi-generator.tech -OpenAPI Generator version: 3.3.3-SNAPSHOT +OpenAPI Generator version: 3.3.4-SNAPSHOT =end diff --git a/samples/client/petstore/ruby/lib/petstore/models/string_boolean_map.rb b/samples/client/petstore/ruby/lib/petstore/models/string_boolean_map.rb index bf4b4c4b64e..692d306720d 100644 --- a/samples/client/petstore/ruby/lib/petstore/models/string_boolean_map.rb +++ b/samples/client/petstore/ruby/lib/petstore/models/string_boolean_map.rb @@ -6,7 +6,7 @@ OpenAPI spec version: 1.0.0 Generated by: https://openapi-generator.tech -OpenAPI Generator version: 3.3.3-SNAPSHOT +OpenAPI Generator version: 3.3.4-SNAPSHOT =end diff --git a/samples/client/petstore/ruby/lib/petstore/models/tag.rb b/samples/client/petstore/ruby/lib/petstore/models/tag.rb index d83971dc4e2..d419df35bd7 100644 --- a/samples/client/petstore/ruby/lib/petstore/models/tag.rb +++ b/samples/client/petstore/ruby/lib/petstore/models/tag.rb @@ -6,7 +6,7 @@ OpenAPI spec version: 1.0.0 Generated by: https://openapi-generator.tech -OpenAPI Generator version: 3.3.3-SNAPSHOT +OpenAPI Generator version: 3.3.4-SNAPSHOT =end diff --git a/samples/client/petstore/ruby/lib/petstore/models/user.rb b/samples/client/petstore/ruby/lib/petstore/models/user.rb index db6c7964f2e..6a621582b32 100644 --- a/samples/client/petstore/ruby/lib/petstore/models/user.rb +++ b/samples/client/petstore/ruby/lib/petstore/models/user.rb @@ -6,7 +6,7 @@ OpenAPI spec version: 1.0.0 Generated by: https://openapi-generator.tech -OpenAPI Generator version: 3.3.3-SNAPSHOT +OpenAPI Generator version: 3.3.4-SNAPSHOT =end diff --git a/samples/client/petstore/ruby/lib/petstore/version.rb b/samples/client/petstore/ruby/lib/petstore/version.rb index 7f71ec18157..170eb25c672 100644 --- a/samples/client/petstore/ruby/lib/petstore/version.rb +++ b/samples/client/petstore/ruby/lib/petstore/version.rb @@ -6,7 +6,7 @@ OpenAPI spec version: 1.0.0 Generated by: https://openapi-generator.tech -OpenAPI Generator version: 3.3.3-SNAPSHOT +OpenAPI Generator version: 3.3.4-SNAPSHOT =end diff --git a/samples/client/petstore/ruby/petstore.gemspec b/samples/client/petstore/ruby/petstore.gemspec index 69586d975d4..6f2cc350b42 100644 --- a/samples/client/petstore/ruby/petstore.gemspec +++ b/samples/client/petstore/ruby/petstore.gemspec @@ -8,7 +8,7 @@ OpenAPI spec version: 1.0.0 Generated by: https://openapi-generator.tech -OpenAPI Generator version: 3.3.3-SNAPSHOT +OpenAPI Generator version: 3.3.4-SNAPSHOT =end diff --git a/samples/client/petstore/spring-cloud/.openapi-generator/VERSION b/samples/client/petstore/spring-cloud/.openapi-generator/VERSION index e24c1f857e0..d077ffb477a 100644 --- a/samples/client/petstore/spring-cloud/.openapi-generator/VERSION +++ b/samples/client/petstore/spring-cloud/.openapi-generator/VERSION @@ -1 +1 @@ -3.3.3-SNAPSHOT \ No newline at end of file +3.3.4-SNAPSHOT \ No newline at end of file diff --git a/samples/client/petstore/spring-cloud/src/main/java/org/openapitools/api/PetApi.java b/samples/client/petstore/spring-cloud/src/main/java/org/openapitools/api/PetApi.java index 02b8ace3632..6d65254cbe5 100644 --- a/samples/client/petstore/spring-cloud/src/main/java/org/openapitools/api/PetApi.java +++ b/samples/client/petstore/spring-cloud/src/main/java/org/openapitools/api/PetApi.java @@ -1,5 +1,5 @@ /** - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.3-SNAPSHOT). + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.4-SNAPSHOT). * https://openapi-generator.tech * Do not edit the class manually. */ diff --git a/samples/client/petstore/spring-cloud/src/main/java/org/openapitools/api/StoreApi.java b/samples/client/petstore/spring-cloud/src/main/java/org/openapitools/api/StoreApi.java index 28479b28929..2da1432dc7d 100644 --- a/samples/client/petstore/spring-cloud/src/main/java/org/openapitools/api/StoreApi.java +++ b/samples/client/petstore/spring-cloud/src/main/java/org/openapitools/api/StoreApi.java @@ -1,5 +1,5 @@ /** - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.3-SNAPSHOT). + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.4-SNAPSHOT). * https://openapi-generator.tech * Do not edit the class manually. */ diff --git a/samples/client/petstore/spring-cloud/src/main/java/org/openapitools/api/UserApi.java b/samples/client/petstore/spring-cloud/src/main/java/org/openapitools/api/UserApi.java index ce43df794f0..4a12db2ecb9 100644 --- a/samples/client/petstore/spring-cloud/src/main/java/org/openapitools/api/UserApi.java +++ b/samples/client/petstore/spring-cloud/src/main/java/org/openapitools/api/UserApi.java @@ -1,5 +1,5 @@ /** - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.3-SNAPSHOT). + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.4-SNAPSHOT). * https://openapi-generator.tech * Do not edit the class manually. */ diff --git a/samples/client/petstore/spring-stubs/.openapi-generator/VERSION b/samples/client/petstore/spring-stubs/.openapi-generator/VERSION index e24c1f857e0..d077ffb477a 100644 --- a/samples/client/petstore/spring-stubs/.openapi-generator/VERSION +++ b/samples/client/petstore/spring-stubs/.openapi-generator/VERSION @@ -1 +1 @@ -3.3.3-SNAPSHOT \ No newline at end of file +3.3.4-SNAPSHOT \ No newline at end of file diff --git a/samples/client/petstore/spring-stubs/src/main/java/org/openapitools/api/PetApi.java b/samples/client/petstore/spring-stubs/src/main/java/org/openapitools/api/PetApi.java index 74222abada1..497bc48f5ad 100644 --- a/samples/client/petstore/spring-stubs/src/main/java/org/openapitools/api/PetApi.java +++ b/samples/client/petstore/spring-stubs/src/main/java/org/openapitools/api/PetApi.java @@ -1,5 +1,5 @@ /** - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.3-SNAPSHOT). + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.4-SNAPSHOT). * https://openapi-generator.tech * Do not edit the class manually. */ diff --git a/samples/client/petstore/spring-stubs/src/main/java/org/openapitools/api/StoreApi.java b/samples/client/petstore/spring-stubs/src/main/java/org/openapitools/api/StoreApi.java index 3d6747a2e8b..339cdd28b79 100644 --- a/samples/client/petstore/spring-stubs/src/main/java/org/openapitools/api/StoreApi.java +++ b/samples/client/petstore/spring-stubs/src/main/java/org/openapitools/api/StoreApi.java @@ -1,5 +1,5 @@ /** - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.3-SNAPSHOT). + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.4-SNAPSHOT). * https://openapi-generator.tech * Do not edit the class manually. */ diff --git a/samples/client/petstore/spring-stubs/src/main/java/org/openapitools/api/UserApi.java b/samples/client/petstore/spring-stubs/src/main/java/org/openapitools/api/UserApi.java index d8b1a530280..addfcbd387c 100644 --- a/samples/client/petstore/spring-stubs/src/main/java/org/openapitools/api/UserApi.java +++ b/samples/client/petstore/spring-stubs/src/main/java/org/openapitools/api/UserApi.java @@ -1,5 +1,5 @@ /** - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.3-SNAPSHOT). + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.4-SNAPSHOT). * https://openapi-generator.tech * Do not edit the class manually. */ diff --git a/samples/client/petstore/typescript-angular-v2/default/.openapi-generator/VERSION b/samples/client/petstore/typescript-angular-v2/default/.openapi-generator/VERSION index e24c1f857e0..d077ffb477a 100644 --- a/samples/client/petstore/typescript-angular-v2/default/.openapi-generator/VERSION +++ b/samples/client/petstore/typescript-angular-v2/default/.openapi-generator/VERSION @@ -1 +1 @@ -3.3.3-SNAPSHOT \ No newline at end of file +3.3.4-SNAPSHOT \ No newline at end of file diff --git a/samples/client/petstore/typescript-angular-v2/npm/.openapi-generator/VERSION b/samples/client/petstore/typescript-angular-v2/npm/.openapi-generator/VERSION index e24c1f857e0..d077ffb477a 100644 --- a/samples/client/petstore/typescript-angular-v2/npm/.openapi-generator/VERSION +++ b/samples/client/petstore/typescript-angular-v2/npm/.openapi-generator/VERSION @@ -1 +1 @@ -3.3.3-SNAPSHOT \ No newline at end of file +3.3.4-SNAPSHOT \ No newline at end of file diff --git a/samples/client/petstore/typescript-angular-v2/with-interfaces/.openapi-generator/VERSION b/samples/client/petstore/typescript-angular-v2/with-interfaces/.openapi-generator/VERSION index e24c1f857e0..d077ffb477a 100644 --- a/samples/client/petstore/typescript-angular-v2/with-interfaces/.openapi-generator/VERSION +++ b/samples/client/petstore/typescript-angular-v2/with-interfaces/.openapi-generator/VERSION @@ -1 +1 @@ -3.3.3-SNAPSHOT \ No newline at end of file +3.3.4-SNAPSHOT \ No newline at end of file diff --git a/samples/client/petstore/typescript-angular-v4.3/npm/.openapi-generator/VERSION b/samples/client/petstore/typescript-angular-v4.3/npm/.openapi-generator/VERSION index e24c1f857e0..d077ffb477a 100644 --- a/samples/client/petstore/typescript-angular-v4.3/npm/.openapi-generator/VERSION +++ b/samples/client/petstore/typescript-angular-v4.3/npm/.openapi-generator/VERSION @@ -1 +1 @@ -3.3.3-SNAPSHOT \ No newline at end of file +3.3.4-SNAPSHOT \ No newline at end of file diff --git a/samples/client/petstore/typescript-angular-v4/npm/.openapi-generator/VERSION b/samples/client/petstore/typescript-angular-v4/npm/.openapi-generator/VERSION index e24c1f857e0..d077ffb477a 100644 --- a/samples/client/petstore/typescript-angular-v4/npm/.openapi-generator/VERSION +++ b/samples/client/petstore/typescript-angular-v4/npm/.openapi-generator/VERSION @@ -1 +1 @@ -3.3.3-SNAPSHOT \ No newline at end of file +3.3.4-SNAPSHOT \ No newline at end of file diff --git a/samples/client/petstore/typescript-angular-v6-not-provided-in-root/builds/default/.openapi-generator/VERSION b/samples/client/petstore/typescript-angular-v6-not-provided-in-root/builds/default/.openapi-generator/VERSION index e24c1f857e0..d077ffb477a 100644 --- a/samples/client/petstore/typescript-angular-v6-not-provided-in-root/builds/default/.openapi-generator/VERSION +++ b/samples/client/petstore/typescript-angular-v6-not-provided-in-root/builds/default/.openapi-generator/VERSION @@ -1 +1 @@ -3.3.3-SNAPSHOT \ No newline at end of file +3.3.4-SNAPSHOT \ No newline at end of file diff --git a/samples/client/petstore/typescript-angular-v6-not-provided-in-root/builds/with-npm/.openapi-generator/VERSION b/samples/client/petstore/typescript-angular-v6-not-provided-in-root/builds/with-npm/.openapi-generator/VERSION index e24c1f857e0..d077ffb477a 100644 --- a/samples/client/petstore/typescript-angular-v6-not-provided-in-root/builds/with-npm/.openapi-generator/VERSION +++ b/samples/client/petstore/typescript-angular-v6-not-provided-in-root/builds/with-npm/.openapi-generator/VERSION @@ -1 +1 @@ -3.3.3-SNAPSHOT \ No newline at end of file +3.3.4-SNAPSHOT \ No newline at end of file diff --git a/samples/client/petstore/typescript-angular-v6-provided-in-root/builds/default/.openapi-generator/VERSION b/samples/client/petstore/typescript-angular-v6-provided-in-root/builds/default/.openapi-generator/VERSION index e24c1f857e0..d077ffb477a 100644 --- a/samples/client/petstore/typescript-angular-v6-provided-in-root/builds/default/.openapi-generator/VERSION +++ b/samples/client/petstore/typescript-angular-v6-provided-in-root/builds/default/.openapi-generator/VERSION @@ -1 +1 @@ -3.3.3-SNAPSHOT \ No newline at end of file +3.3.4-SNAPSHOT \ No newline at end of file diff --git a/samples/client/petstore/typescript-angular-v6-provided-in-root/builds/with-npm/.openapi-generator/VERSION b/samples/client/petstore/typescript-angular-v6-provided-in-root/builds/with-npm/.openapi-generator/VERSION index e24c1f857e0..d077ffb477a 100644 --- a/samples/client/petstore/typescript-angular-v6-provided-in-root/builds/with-npm/.openapi-generator/VERSION +++ b/samples/client/petstore/typescript-angular-v6-provided-in-root/builds/with-npm/.openapi-generator/VERSION @@ -1 +1 @@ -3.3.3-SNAPSHOT \ No newline at end of file +3.3.4-SNAPSHOT \ No newline at end of file diff --git a/samples/client/petstore/typescript-fetch/builds/default/.openapi-generator/VERSION b/samples/client/petstore/typescript-fetch/builds/default/.openapi-generator/VERSION index e24c1f857e0..d077ffb477a 100644 --- a/samples/client/petstore/typescript-fetch/builds/default/.openapi-generator/VERSION +++ b/samples/client/petstore/typescript-fetch/builds/default/.openapi-generator/VERSION @@ -1 +1 @@ -3.3.3-SNAPSHOT \ No newline at end of file +3.3.4-SNAPSHOT \ No newline at end of file diff --git a/samples/client/petstore/typescript-fetch/builds/es6-target/.openapi-generator/VERSION b/samples/client/petstore/typescript-fetch/builds/es6-target/.openapi-generator/VERSION index e24c1f857e0..d077ffb477a 100644 --- a/samples/client/petstore/typescript-fetch/builds/es6-target/.openapi-generator/VERSION +++ b/samples/client/petstore/typescript-fetch/builds/es6-target/.openapi-generator/VERSION @@ -1 +1 @@ -3.3.3-SNAPSHOT \ No newline at end of file +3.3.4-SNAPSHOT \ No newline at end of file diff --git a/samples/client/petstore/typescript-fetch/builds/with-interfaces/.openapi-generator/VERSION b/samples/client/petstore/typescript-fetch/builds/with-interfaces/.openapi-generator/VERSION index e24c1f857e0..d077ffb477a 100644 --- a/samples/client/petstore/typescript-fetch/builds/with-interfaces/.openapi-generator/VERSION +++ b/samples/client/petstore/typescript-fetch/builds/with-interfaces/.openapi-generator/VERSION @@ -1 +1 @@ -3.3.3-SNAPSHOT \ No newline at end of file +3.3.4-SNAPSHOT \ No newline at end of file diff --git a/samples/client/petstore/typescript-fetch/builds/with-npm-version/.openapi-generator/VERSION b/samples/client/petstore/typescript-fetch/builds/with-npm-version/.openapi-generator/VERSION index e24c1f857e0..d077ffb477a 100644 --- a/samples/client/petstore/typescript-fetch/builds/with-npm-version/.openapi-generator/VERSION +++ b/samples/client/petstore/typescript-fetch/builds/with-npm-version/.openapi-generator/VERSION @@ -1 +1 @@ -3.3.3-SNAPSHOT \ No newline at end of file +3.3.4-SNAPSHOT \ No newline at end of file diff --git a/samples/client/petstore/typescript-inversify/.openapi-generator/VERSION b/samples/client/petstore/typescript-inversify/.openapi-generator/VERSION index e24c1f857e0..d077ffb477a 100644 --- a/samples/client/petstore/typescript-inversify/.openapi-generator/VERSION +++ b/samples/client/petstore/typescript-inversify/.openapi-generator/VERSION @@ -1 +1 @@ -3.3.3-SNAPSHOT \ No newline at end of file +3.3.4-SNAPSHOT \ No newline at end of file diff --git a/samples/client/petstore/typescript-node/default/.openapi-generator/VERSION b/samples/client/petstore/typescript-node/default/.openapi-generator/VERSION index e24c1f857e0..d077ffb477a 100644 --- a/samples/client/petstore/typescript-node/default/.openapi-generator/VERSION +++ b/samples/client/petstore/typescript-node/default/.openapi-generator/VERSION @@ -1 +1 @@ -3.3.3-SNAPSHOT \ No newline at end of file +3.3.4-SNAPSHOT \ No newline at end of file diff --git a/samples/client/petstore/typescript-node/npm/.openapi-generator/VERSION b/samples/client/petstore/typescript-node/npm/.openapi-generator/VERSION index e24c1f857e0..d077ffb477a 100644 --- a/samples/client/petstore/typescript-node/npm/.openapi-generator/VERSION +++ b/samples/client/petstore/typescript-node/npm/.openapi-generator/VERSION @@ -1 +1 @@ -3.3.3-SNAPSHOT \ No newline at end of file +3.3.4-SNAPSHOT \ No newline at end of file diff --git a/samples/meta-codegen/lib/pom.xml b/samples/meta-codegen/lib/pom.xml index 57195b534d4..b709cce2133 100644 --- a/samples/meta-codegen/lib/pom.xml +++ b/samples/meta-codegen/lib/pom.xml @@ -116,7 +116,7 @@ UTF-8 - 3.3.3 + 3.3.4-SNAPSHOT 1.0.0 4.8.1 diff --git a/samples/meta-codegen/usage/.openapi-generator/VERSION b/samples/meta-codegen/usage/.openapi-generator/VERSION index e24c1f857e0..d077ffb477a 100644 --- a/samples/meta-codegen/usage/.openapi-generator/VERSION +++ b/samples/meta-codegen/usage/.openapi-generator/VERSION @@ -1 +1 @@ -3.3.3-SNAPSHOT \ No newline at end of file +3.3.4-SNAPSHOT \ No newline at end of file diff --git a/samples/openapi3/client/petstore/php/OpenAPIClient-php/.openapi-generator/VERSION b/samples/openapi3/client/petstore/php/OpenAPIClient-php/.openapi-generator/VERSION index e24c1f857e0..d077ffb477a 100644 --- a/samples/openapi3/client/petstore/php/OpenAPIClient-php/.openapi-generator/VERSION +++ b/samples/openapi3/client/petstore/php/OpenAPIClient-php/.openapi-generator/VERSION @@ -1 +1 @@ -3.3.3-SNAPSHOT \ No newline at end of file +3.3.4-SNAPSHOT \ No newline at end of file diff --git a/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Api/AnotherFakeApi.php b/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Api/AnotherFakeApi.php index 4c23e6c1522..b67ee062cfe 100644 --- a/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Api/AnotherFakeApi.php +++ b/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Api/AnotherFakeApi.php @@ -17,7 +17,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Api/DefaultApi.php b/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Api/DefaultApi.php index 62ca3e8f658..f2e1cc8cd0f 100644 --- a/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Api/DefaultApi.php +++ b/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Api/DefaultApi.php @@ -17,7 +17,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Api/FakeApi.php b/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Api/FakeApi.php index 3b2a198a771..fb655f98b5e 100644 --- a/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Api/FakeApi.php +++ b/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Api/FakeApi.php @@ -17,7 +17,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Api/FakeClassnameTags123Api.php b/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Api/FakeClassnameTags123Api.php index b2aad6252e2..451d1f042ca 100644 --- a/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Api/FakeClassnameTags123Api.php +++ b/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Api/FakeClassnameTags123Api.php @@ -17,7 +17,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Api/PetApi.php b/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Api/PetApi.php index b3f8a732f13..f385dc8ea71 100644 --- a/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Api/PetApi.php +++ b/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Api/PetApi.php @@ -17,7 +17,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Api/StoreApi.php b/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Api/StoreApi.php index bc5208d2071..a90ba04e447 100644 --- a/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Api/StoreApi.php +++ b/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Api/StoreApi.php @@ -17,7 +17,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Api/UserApi.php b/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Api/UserApi.php index bc43ff1cca3..2664bbe010b 100644 --- a/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Api/UserApi.php +++ b/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Api/UserApi.php @@ -17,7 +17,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/ApiException.php b/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/ApiException.php index 16e6015c73b..8343580b8e3 100644 --- a/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/ApiException.php +++ b/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/ApiException.php @@ -17,7 +17,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Configuration.php b/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Configuration.php index e0ab1902750..1a9da17045e 100644 --- a/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Configuration.php +++ b/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Configuration.php @@ -17,7 +17,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/HeaderSelector.php b/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/HeaderSelector.php index e401e18ab4a..dee265bf47c 100644 --- a/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/HeaderSelector.php +++ b/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/HeaderSelector.php @@ -17,7 +17,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/AdditionalPropertiesClass.php b/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/AdditionalPropertiesClass.php index 54833c0abd0..01e2e6c86b9 100644 --- a/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/AdditionalPropertiesClass.php +++ b/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/AdditionalPropertiesClass.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/Animal.php b/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/Animal.php index a177ba0b3fd..823639f2f59 100644 --- a/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/Animal.php +++ b/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/Animal.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/AnimalFarm.php b/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/AnimalFarm.php index ef1da91249d..968f4168c44 100644 --- a/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/AnimalFarm.php +++ b/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/AnimalFarm.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/ApiResponse.php b/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/ApiResponse.php index b577ec60879..f2357574899 100644 --- a/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/ApiResponse.php +++ b/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/ApiResponse.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/ArrayOfArrayOfNumberOnly.php b/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/ArrayOfArrayOfNumberOnly.php index 72b584d5c2f..5f742327e3a 100644 --- a/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/ArrayOfArrayOfNumberOnly.php +++ b/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/ArrayOfArrayOfNumberOnly.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/ArrayOfNumberOnly.php b/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/ArrayOfNumberOnly.php index d0a9aeb1d49..987788deb27 100644 --- a/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/ArrayOfNumberOnly.php +++ b/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/ArrayOfNumberOnly.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/ArrayTest.php b/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/ArrayTest.php index ee79f972a4c..0afd5094724 100644 --- a/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/ArrayTest.php +++ b/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/ArrayTest.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/Capitalization.php b/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/Capitalization.php index ce4ab13c113..1c89ca1d7d5 100644 --- a/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/Capitalization.php +++ b/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/Capitalization.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/Cat.php b/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/Cat.php index 4fab7da51f9..4270f1f70db 100644 --- a/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/Cat.php +++ b/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/Cat.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/Category.php b/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/Category.php index 2aef04e5885..0445bb19f70 100644 --- a/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/Category.php +++ b/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/Category.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/ClassModel.php b/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/ClassModel.php index 1dd17833684..e8dd3341c6f 100644 --- a/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/ClassModel.php +++ b/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/ClassModel.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/Client.php b/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/Client.php index cb97b431e18..ec2f62ecd2d 100644 --- a/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/Client.php +++ b/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/Client.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/Dog.php b/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/Dog.php index 78fe83b1b36..d8e2ed57257 100644 --- a/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/Dog.php +++ b/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/Dog.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/EnumArrays.php b/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/EnumArrays.php index 011df11fea7..4c54e322a8a 100644 --- a/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/EnumArrays.php +++ b/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/EnumArrays.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/EnumClass.php b/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/EnumClass.php index f7b87a41302..0818aaffbf0 100644 --- a/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/EnumClass.php +++ b/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/EnumClass.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/EnumTest.php b/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/EnumTest.php index d0bd84745ed..b05c772c9ff 100644 --- a/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/EnumTest.php +++ b/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/EnumTest.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/File.php b/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/File.php index 4c1da430ad5..4661f4ea009 100644 --- a/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/File.php +++ b/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/File.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/FileSchemaTestClass.php b/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/FileSchemaTestClass.php index 2e44e414807..80b74dc4ca4 100644 --- a/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/FileSchemaTestClass.php +++ b/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/FileSchemaTestClass.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/Foo.php b/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/Foo.php index 0f1d2cab47a..f9305eea97c 100644 --- a/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/Foo.php +++ b/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/Foo.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/FormatTest.php b/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/FormatTest.php index 508e7923171..9491f047651 100644 --- a/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/FormatTest.php +++ b/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/FormatTest.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/HasOnlyReadOnly.php b/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/HasOnlyReadOnly.php index fa7dc269837..65ee0f4399e 100644 --- a/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/HasOnlyReadOnly.php +++ b/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/HasOnlyReadOnly.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/InlineObject.php b/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/InlineObject.php index d50b549ead2..4471008fad7 100644 --- a/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/InlineObject.php +++ b/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/InlineObject.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/InlineObject1.php b/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/InlineObject1.php index 82294151841..427d9c23d12 100644 --- a/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/InlineObject1.php +++ b/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/InlineObject1.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/InlineObject2.php b/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/InlineObject2.php index 40c97198ef4..1ecd672ca02 100644 --- a/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/InlineObject2.php +++ b/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/InlineObject2.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/InlineObject3.php b/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/InlineObject3.php index 13600961d80..0941ae0cfca 100644 --- a/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/InlineObject3.php +++ b/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/InlineObject3.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/InlineObject4.php b/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/InlineObject4.php index 8619e8b96d8..93be8d910ac 100644 --- a/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/InlineObject4.php +++ b/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/InlineObject4.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/InlineObject5.php b/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/InlineObject5.php index 86ae5f5ae46..305f4522e5f 100644 --- a/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/InlineObject5.php +++ b/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/InlineObject5.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/InlineResponseDefault.php b/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/InlineResponseDefault.php index f195efde0bc..d521eadbb70 100644 --- a/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/InlineResponseDefault.php +++ b/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/InlineResponseDefault.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/MapTest.php b/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/MapTest.php index ded302c8b29..6030880688e 100644 --- a/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/MapTest.php +++ b/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/MapTest.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/MixedPropertiesAndAdditionalPropertiesClass.php b/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/MixedPropertiesAndAdditionalPropertiesClass.php index eb49dc7a7e8..7a193714100 100644 --- a/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/MixedPropertiesAndAdditionalPropertiesClass.php +++ b/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/MixedPropertiesAndAdditionalPropertiesClass.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/Model200Response.php b/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/Model200Response.php index 9d0eb4fe6ce..c91849df0e5 100644 --- a/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/Model200Response.php +++ b/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/Model200Response.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/ModelInterface.php b/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/ModelInterface.php index b6dc03437bd..d06ce3aaf3a 100644 --- a/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/ModelInterface.php +++ b/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/ModelInterface.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/ModelList.php b/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/ModelList.php index 0f626833f81..9f8f2fdc52d 100644 --- a/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/ModelList.php +++ b/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/ModelList.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/ModelReturn.php b/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/ModelReturn.php index 9012d5dc161..a1668deec85 100644 --- a/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/ModelReturn.php +++ b/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/ModelReturn.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/Name.php b/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/Name.php index f69ec1bde19..17c248801de 100644 --- a/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/Name.php +++ b/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/Name.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/NumberOnly.php b/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/NumberOnly.php index 5d958aceaee..623e7ddc4f4 100644 --- a/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/NumberOnly.php +++ b/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/NumberOnly.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/Order.php b/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/Order.php index 3e094149d12..52f4f59a3ad 100644 --- a/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/Order.php +++ b/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/Order.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/OuterComposite.php b/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/OuterComposite.php index f151c8979e9..1d04afffa5f 100644 --- a/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/OuterComposite.php +++ b/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/OuterComposite.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/OuterEnum.php b/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/OuterEnum.php index 2e69bda233a..b660e69a246 100644 --- a/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/OuterEnum.php +++ b/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/OuterEnum.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/Pet.php b/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/Pet.php index a6ad7fb147f..b078a0b7fe4 100644 --- a/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/Pet.php +++ b/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/Pet.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/ReadOnlyFirst.php b/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/ReadOnlyFirst.php index 074ae0bd39d..db2d8c8fb6b 100644 --- a/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/ReadOnlyFirst.php +++ b/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/ReadOnlyFirst.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/SpecialModelName.php b/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/SpecialModelName.php index ec9c77f758f..dde267c318e 100644 --- a/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/SpecialModelName.php +++ b/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/SpecialModelName.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/StringBooleanMap.php b/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/StringBooleanMap.php index 78283328572..253d37eb94e 100644 --- a/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/StringBooleanMap.php +++ b/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/StringBooleanMap.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/Tag.php b/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/Tag.php index 357d1002256..3610270f712 100644 --- a/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/Tag.php +++ b/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/Tag.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/User.php b/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/User.php index a49732d42f0..8658eaad336 100644 --- a/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/User.php +++ b/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/Model/User.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/ObjectSerializer.php b/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/ObjectSerializer.php index 77b1d70cea0..7557d2ff22c 100644 --- a/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/ObjectSerializer.php +++ b/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/ObjectSerializer.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Api/AnotherFakeApiTest.php b/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Api/AnotherFakeApiTest.php index 2880f5ba9b1..b976a429739 100644 --- a/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Api/AnotherFakeApiTest.php +++ b/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Api/AnotherFakeApiTest.php @@ -17,7 +17,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Api/DefaultApiTest.php b/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Api/DefaultApiTest.php index f420ac59db7..adc91b7ef93 100644 --- a/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Api/DefaultApiTest.php +++ b/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Api/DefaultApiTest.php @@ -17,7 +17,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Api/FakeApiTest.php b/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Api/FakeApiTest.php index c8a1b219b3a..f4a8b2c3135 100644 --- a/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Api/FakeApiTest.php +++ b/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Api/FakeApiTest.php @@ -17,7 +17,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Api/FakeClassnameTags123ApiTest.php b/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Api/FakeClassnameTags123ApiTest.php index 718fbcb30e9..cc0c211c69f 100644 --- a/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Api/FakeClassnameTags123ApiTest.php +++ b/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Api/FakeClassnameTags123ApiTest.php @@ -17,7 +17,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Api/PetApiTest.php b/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Api/PetApiTest.php index 40e20ba9f2f..4453e8e8326 100644 --- a/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Api/PetApiTest.php +++ b/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Api/PetApiTest.php @@ -17,7 +17,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Api/StoreApiTest.php b/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Api/StoreApiTest.php index fa689746517..b71f90f4fac 100644 --- a/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Api/StoreApiTest.php +++ b/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Api/StoreApiTest.php @@ -17,7 +17,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Api/UserApiTest.php b/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Api/UserApiTest.php index a904c3bfe06..eaf856dca3f 100644 --- a/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Api/UserApiTest.php +++ b/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Api/UserApiTest.php @@ -17,7 +17,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/AdditionalPropertiesClassTest.php b/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/AdditionalPropertiesClassTest.php index dfae0c32c4c..71e281fbbb1 100644 --- a/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/AdditionalPropertiesClassTest.php +++ b/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/AdditionalPropertiesClassTest.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/AnimalFarmTest.php b/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/AnimalFarmTest.php index ac52c8db220..62a7e002c42 100644 --- a/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/AnimalFarmTest.php +++ b/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/AnimalFarmTest.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/AnimalTest.php b/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/AnimalTest.php index b8c08fc9a92..3343b893d2c 100644 --- a/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/AnimalTest.php +++ b/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/AnimalTest.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/ApiResponseTest.php b/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/ApiResponseTest.php index 942391c06b0..363b3855224 100644 --- a/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/ApiResponseTest.php +++ b/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/ApiResponseTest.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/ArrayOfArrayOfNumberOnlyTest.php b/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/ArrayOfArrayOfNumberOnlyTest.php index 2a1ae856c0d..3dc73d40505 100644 --- a/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/ArrayOfArrayOfNumberOnlyTest.php +++ b/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/ArrayOfArrayOfNumberOnlyTest.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/ArrayOfNumberOnlyTest.php b/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/ArrayOfNumberOnlyTest.php index 2728b43e7ab..266d73cf065 100644 --- a/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/ArrayOfNumberOnlyTest.php +++ b/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/ArrayOfNumberOnlyTest.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/ArrayTestTest.php b/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/ArrayTestTest.php index fce5ac1a44a..624e40ac970 100644 --- a/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/ArrayTestTest.php +++ b/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/ArrayTestTest.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/CapitalizationTest.php b/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/CapitalizationTest.php index ded18109da5..258ca37b626 100644 --- a/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/CapitalizationTest.php +++ b/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/CapitalizationTest.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/CatTest.php b/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/CatTest.php index de5fb181c6d..92fe394bcfc 100644 --- a/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/CatTest.php +++ b/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/CatTest.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/CategoryTest.php b/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/CategoryTest.php index 421c8d2fae7..b158c82a21b 100644 --- a/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/CategoryTest.php +++ b/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/CategoryTest.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/ClassModelTest.php b/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/ClassModelTest.php index 02997e5c669..f28b421a16e 100644 --- a/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/ClassModelTest.php +++ b/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/ClassModelTest.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/ClientTest.php b/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/ClientTest.php index 2e02a439db0..cfea0747f05 100644 --- a/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/ClientTest.php +++ b/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/ClientTest.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/DogTest.php b/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/DogTest.php index d39130d1b3a..3271a939e7e 100644 --- a/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/DogTest.php +++ b/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/DogTest.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/EnumArraysTest.php b/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/EnumArraysTest.php index edec02ad0af..1e74285cc58 100644 --- a/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/EnumArraysTest.php +++ b/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/EnumArraysTest.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/EnumClassTest.php b/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/EnumClassTest.php index f0575cdbe96..da112133b2c 100644 --- a/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/EnumClassTest.php +++ b/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/EnumClassTest.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/EnumTestTest.php b/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/EnumTestTest.php index e968f550bde..8fdd0a1c26e 100644 --- a/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/EnumTestTest.php +++ b/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/EnumTestTest.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/FileSchemaTestClassTest.php b/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/FileSchemaTestClassTest.php index 68b2bb73f16..e9a183be758 100644 --- a/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/FileSchemaTestClassTest.php +++ b/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/FileSchemaTestClassTest.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/FileTest.php b/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/FileTest.php index ee9aab52173..c23b01bb40f 100644 --- a/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/FileTest.php +++ b/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/FileTest.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/FooTest.php b/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/FooTest.php index 59dc0a408cc..2f334dd3101 100644 --- a/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/FooTest.php +++ b/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/FooTest.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/FormatTestTest.php b/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/FormatTestTest.php index ffc01b4eb80..fe2b06bbdd9 100644 --- a/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/FormatTestTest.php +++ b/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/FormatTestTest.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/HasOnlyReadOnlyTest.php b/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/HasOnlyReadOnlyTest.php index 552ebf8b435..741cb5ae73b 100644 --- a/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/HasOnlyReadOnlyTest.php +++ b/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/HasOnlyReadOnlyTest.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/InlineObject1Test.php b/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/InlineObject1Test.php index c67cb80f712..4f325a6632e 100644 --- a/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/InlineObject1Test.php +++ b/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/InlineObject1Test.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/InlineObject2Test.php b/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/InlineObject2Test.php index 9c33e8615ed..35889ef9e82 100644 --- a/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/InlineObject2Test.php +++ b/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/InlineObject2Test.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/InlineObject3Test.php b/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/InlineObject3Test.php index c93ce96f6d3..976010f5e8a 100644 --- a/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/InlineObject3Test.php +++ b/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/InlineObject3Test.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/InlineObject4Test.php b/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/InlineObject4Test.php index a9038f5478e..aa469ae8655 100644 --- a/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/InlineObject4Test.php +++ b/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/InlineObject4Test.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/InlineObject5Test.php b/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/InlineObject5Test.php index 65834e6a5a9..f1ebad9186b 100644 --- a/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/InlineObject5Test.php +++ b/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/InlineObject5Test.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/InlineObjectTest.php b/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/InlineObjectTest.php index 2de068c12ac..a438fa1a655 100644 --- a/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/InlineObjectTest.php +++ b/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/InlineObjectTest.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/InlineResponseDefaultTest.php b/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/InlineResponseDefaultTest.php index db74078031d..eb1f912f9cd 100644 --- a/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/InlineResponseDefaultTest.php +++ b/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/InlineResponseDefaultTest.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/MapTestTest.php b/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/MapTestTest.php index cdf7cbbce51..31aa27e4bb4 100644 --- a/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/MapTestTest.php +++ b/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/MapTestTest.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/MixedPropertiesAndAdditionalPropertiesClassTest.php b/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/MixedPropertiesAndAdditionalPropertiesClassTest.php index 2830f1165f9..084b8bfcf1d 100644 --- a/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/MixedPropertiesAndAdditionalPropertiesClassTest.php +++ b/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/MixedPropertiesAndAdditionalPropertiesClassTest.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/Model200ResponseTest.php b/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/Model200ResponseTest.php index ee972620fc1..15780b5a9ef 100644 --- a/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/Model200ResponseTest.php +++ b/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/Model200ResponseTest.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/ModelListTest.php b/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/ModelListTest.php index 9786a3f7dae..4a02c9b1b2f 100644 --- a/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/ModelListTest.php +++ b/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/ModelListTest.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/ModelReturnTest.php b/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/ModelReturnTest.php index fc7147e7265..bf6fd31361d 100644 --- a/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/ModelReturnTest.php +++ b/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/ModelReturnTest.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/NameTest.php b/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/NameTest.php index 39045f66a0b..0057765b6fa 100644 --- a/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/NameTest.php +++ b/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/NameTest.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/NumberOnlyTest.php b/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/NumberOnlyTest.php index 2d0f99e11e2..3082fb02f02 100644 --- a/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/NumberOnlyTest.php +++ b/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/NumberOnlyTest.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/OrderTest.php b/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/OrderTest.php index 33e14de9e05..2b1364a3772 100644 --- a/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/OrderTest.php +++ b/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/OrderTest.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/OuterCompositeTest.php b/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/OuterCompositeTest.php index 9735a5612bf..6af73098ff2 100644 --- a/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/OuterCompositeTest.php +++ b/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/OuterCompositeTest.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/OuterEnumTest.php b/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/OuterEnumTest.php index be04ee705cf..41093069236 100644 --- a/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/OuterEnumTest.php +++ b/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/OuterEnumTest.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/PetTest.php b/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/PetTest.php index ce886a65f60..3f9a02e057e 100644 --- a/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/PetTest.php +++ b/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/PetTest.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/ReadOnlyFirstTest.php b/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/ReadOnlyFirstTest.php index 35128f76798..02ae274f056 100644 --- a/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/ReadOnlyFirstTest.php +++ b/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/ReadOnlyFirstTest.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/SpecialModelNameTest.php b/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/SpecialModelNameTest.php index 0d7fb2d540e..81c89029dbd 100644 --- a/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/SpecialModelNameTest.php +++ b/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/SpecialModelNameTest.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/StringBooleanMapTest.php b/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/StringBooleanMapTest.php index 990cf5d8e3c..7acd27d144e 100644 --- a/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/StringBooleanMapTest.php +++ b/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/StringBooleanMapTest.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/TagTest.php b/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/TagTest.php index 72ed9d787f4..f7de7efb83e 100644 --- a/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/TagTest.php +++ b/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/TagTest.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/UserTest.php b/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/UserTest.php index 28ea7bc47c3..56d63efb1a6 100644 --- a/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/UserTest.php +++ b/samples/openapi3/client/petstore/php/OpenAPIClient-php/test/Model/UserTest.php @@ -18,7 +18,7 @@ * OpenAPI spec version: 1.0.0 * * Generated by: https://openapi-generator.tech - * OpenAPI Generator version: 3.3.3-SNAPSHOT + * OpenAPI Generator version: 3.3.4-SNAPSHOT */ /** diff --git a/samples/schema/petstore/mysql/.openapi-generator/VERSION b/samples/schema/petstore/mysql/.openapi-generator/VERSION index e24c1f857e0..d077ffb477a 100644 --- a/samples/schema/petstore/mysql/.openapi-generator/VERSION +++ b/samples/schema/petstore/mysql/.openapi-generator/VERSION @@ -1 +1 @@ -3.3.3-SNAPSHOT \ No newline at end of file +3.3.4-SNAPSHOT \ No newline at end of file diff --git a/samples/server/petstore/go-gin-api-server/.openapi-generator/VERSION b/samples/server/petstore/go-gin-api-server/.openapi-generator/VERSION index e24c1f857e0..d077ffb477a 100644 --- a/samples/server/petstore/go-gin-api-server/.openapi-generator/VERSION +++ b/samples/server/petstore/go-gin-api-server/.openapi-generator/VERSION @@ -1 +1 @@ -3.3.3-SNAPSHOT \ No newline at end of file +3.3.4-SNAPSHOT \ No newline at end of file diff --git a/samples/server/petstore/jaxrs-cxf-annotated-base-path/.openapi-generator/VERSION b/samples/server/petstore/jaxrs-cxf-annotated-base-path/.openapi-generator/VERSION index e24c1f857e0..d077ffb477a 100644 --- a/samples/server/petstore/jaxrs-cxf-annotated-base-path/.openapi-generator/VERSION +++ b/samples/server/petstore/jaxrs-cxf-annotated-base-path/.openapi-generator/VERSION @@ -1 +1 @@ -3.3.3-SNAPSHOT \ No newline at end of file +3.3.4-SNAPSHOT \ No newline at end of file diff --git a/samples/server/petstore/jaxrs-cxf-cdi/.openapi-generator/VERSION b/samples/server/petstore/jaxrs-cxf-cdi/.openapi-generator/VERSION index e24c1f857e0..d077ffb477a 100644 --- a/samples/server/petstore/jaxrs-cxf-cdi/.openapi-generator/VERSION +++ b/samples/server/petstore/jaxrs-cxf-cdi/.openapi-generator/VERSION @@ -1 +1 @@ -3.3.3-SNAPSHOT \ No newline at end of file +3.3.4-SNAPSHOT \ No newline at end of file diff --git a/samples/server/petstore/jaxrs-cxf-non-spring-app/.openapi-generator/VERSION b/samples/server/petstore/jaxrs-cxf-non-spring-app/.openapi-generator/VERSION index e24c1f857e0..d077ffb477a 100644 --- a/samples/server/petstore/jaxrs-cxf-non-spring-app/.openapi-generator/VERSION +++ b/samples/server/petstore/jaxrs-cxf-non-spring-app/.openapi-generator/VERSION @@ -1 +1 @@ -3.3.3-SNAPSHOT \ No newline at end of file +3.3.4-SNAPSHOT \ No newline at end of file diff --git a/samples/server/petstore/jaxrs-cxf/.openapi-generator/VERSION b/samples/server/petstore/jaxrs-cxf/.openapi-generator/VERSION index e24c1f857e0..d077ffb477a 100644 --- a/samples/server/petstore/jaxrs-cxf/.openapi-generator/VERSION +++ b/samples/server/petstore/jaxrs-cxf/.openapi-generator/VERSION @@ -1 +1 @@ -3.3.3-SNAPSHOT \ No newline at end of file +3.3.4-SNAPSHOT \ No newline at end of file diff --git a/samples/server/petstore/jaxrs-datelib-j8/.openapi-generator/VERSION b/samples/server/petstore/jaxrs-datelib-j8/.openapi-generator/VERSION index e24c1f857e0..d077ffb477a 100644 --- a/samples/server/petstore/jaxrs-datelib-j8/.openapi-generator/VERSION +++ b/samples/server/petstore/jaxrs-datelib-j8/.openapi-generator/VERSION @@ -1 +1 @@ -3.3.3-SNAPSHOT \ No newline at end of file +3.3.4-SNAPSHOT \ No newline at end of file diff --git a/samples/server/petstore/jaxrs-jersey/.openapi-generator/VERSION b/samples/server/petstore/jaxrs-jersey/.openapi-generator/VERSION index e24c1f857e0..d077ffb477a 100644 --- a/samples/server/petstore/jaxrs-jersey/.openapi-generator/VERSION +++ b/samples/server/petstore/jaxrs-jersey/.openapi-generator/VERSION @@ -1 +1 @@ -3.3.3-SNAPSHOT \ No newline at end of file +3.3.4-SNAPSHOT \ No newline at end of file diff --git a/samples/server/petstore/jaxrs-resteasy/default/.openapi-generator/VERSION b/samples/server/petstore/jaxrs-resteasy/default/.openapi-generator/VERSION index e24c1f857e0..d077ffb477a 100644 --- a/samples/server/petstore/jaxrs-resteasy/default/.openapi-generator/VERSION +++ b/samples/server/petstore/jaxrs-resteasy/default/.openapi-generator/VERSION @@ -1 +1 @@ -3.3.3-SNAPSHOT \ No newline at end of file +3.3.4-SNAPSHOT \ No newline at end of file diff --git a/samples/server/petstore/jaxrs-resteasy/eap-java8/.openapi-generator/VERSION b/samples/server/petstore/jaxrs-resteasy/eap-java8/.openapi-generator/VERSION index e24c1f857e0..d077ffb477a 100644 --- a/samples/server/petstore/jaxrs-resteasy/eap-java8/.openapi-generator/VERSION +++ b/samples/server/petstore/jaxrs-resteasy/eap-java8/.openapi-generator/VERSION @@ -1 +1 @@ -3.3.3-SNAPSHOT \ No newline at end of file +3.3.4-SNAPSHOT \ No newline at end of file diff --git a/samples/server/petstore/jaxrs-resteasy/eap-joda/.openapi-generator/VERSION b/samples/server/petstore/jaxrs-resteasy/eap-joda/.openapi-generator/VERSION index e24c1f857e0..d077ffb477a 100644 --- a/samples/server/petstore/jaxrs-resteasy/eap-joda/.openapi-generator/VERSION +++ b/samples/server/petstore/jaxrs-resteasy/eap-joda/.openapi-generator/VERSION @@ -1 +1 @@ -3.3.3-SNAPSHOT \ No newline at end of file +3.3.4-SNAPSHOT \ No newline at end of file diff --git a/samples/server/petstore/jaxrs-resteasy/eap/.openapi-generator/VERSION b/samples/server/petstore/jaxrs-resteasy/eap/.openapi-generator/VERSION index e24c1f857e0..d077ffb477a 100644 --- a/samples/server/petstore/jaxrs-resteasy/eap/.openapi-generator/VERSION +++ b/samples/server/petstore/jaxrs-resteasy/eap/.openapi-generator/VERSION @@ -1 +1 @@ -3.3.3-SNAPSHOT \ No newline at end of file +3.3.4-SNAPSHOT \ No newline at end of file diff --git a/samples/server/petstore/jaxrs-resteasy/joda/.openapi-generator/VERSION b/samples/server/petstore/jaxrs-resteasy/joda/.openapi-generator/VERSION index e24c1f857e0..d077ffb477a 100644 --- a/samples/server/petstore/jaxrs-resteasy/joda/.openapi-generator/VERSION +++ b/samples/server/petstore/jaxrs-resteasy/joda/.openapi-generator/VERSION @@ -1 +1 @@ -3.3.3-SNAPSHOT \ No newline at end of file +3.3.4-SNAPSHOT \ No newline at end of file diff --git a/samples/server/petstore/jaxrs-spec-interface/.openapi-generator/VERSION b/samples/server/petstore/jaxrs-spec-interface/.openapi-generator/VERSION index e24c1f857e0..d077ffb477a 100644 --- a/samples/server/petstore/jaxrs-spec-interface/.openapi-generator/VERSION +++ b/samples/server/petstore/jaxrs-spec-interface/.openapi-generator/VERSION @@ -1 +1 @@ -3.3.3-SNAPSHOT \ No newline at end of file +3.3.4-SNAPSHOT \ No newline at end of file diff --git a/samples/server/petstore/jaxrs-spec/.openapi-generator/VERSION b/samples/server/petstore/jaxrs-spec/.openapi-generator/VERSION index e24c1f857e0..d077ffb477a 100644 --- a/samples/server/petstore/jaxrs-spec/.openapi-generator/VERSION +++ b/samples/server/petstore/jaxrs-spec/.openapi-generator/VERSION @@ -1 +1 @@ -3.3.3-SNAPSHOT \ No newline at end of file +3.3.4-SNAPSHOT \ No newline at end of file diff --git a/samples/server/petstore/jaxrs/jersey1-useTags/.openapi-generator/VERSION b/samples/server/petstore/jaxrs/jersey1-useTags/.openapi-generator/VERSION index e24c1f857e0..d077ffb477a 100644 --- a/samples/server/petstore/jaxrs/jersey1-useTags/.openapi-generator/VERSION +++ b/samples/server/petstore/jaxrs/jersey1-useTags/.openapi-generator/VERSION @@ -1 +1 @@ -3.3.3-SNAPSHOT \ No newline at end of file +3.3.4-SNAPSHOT \ No newline at end of file diff --git a/samples/server/petstore/jaxrs/jersey1/.openapi-generator/VERSION b/samples/server/petstore/jaxrs/jersey1/.openapi-generator/VERSION index e24c1f857e0..d077ffb477a 100644 --- a/samples/server/petstore/jaxrs/jersey1/.openapi-generator/VERSION +++ b/samples/server/petstore/jaxrs/jersey1/.openapi-generator/VERSION @@ -1 +1 @@ -3.3.3-SNAPSHOT \ No newline at end of file +3.3.4-SNAPSHOT \ No newline at end of file diff --git a/samples/server/petstore/jaxrs/jersey2-useTags/.openapi-generator/VERSION b/samples/server/petstore/jaxrs/jersey2-useTags/.openapi-generator/VERSION index e24c1f857e0..d077ffb477a 100644 --- a/samples/server/petstore/jaxrs/jersey2-useTags/.openapi-generator/VERSION +++ b/samples/server/petstore/jaxrs/jersey2-useTags/.openapi-generator/VERSION @@ -1 +1 @@ -3.3.3-SNAPSHOT \ No newline at end of file +3.3.4-SNAPSHOT \ No newline at end of file diff --git a/samples/server/petstore/jaxrs/jersey2/.openapi-generator/VERSION b/samples/server/petstore/jaxrs/jersey2/.openapi-generator/VERSION index e24c1f857e0..d077ffb477a 100644 --- a/samples/server/petstore/jaxrs/jersey2/.openapi-generator/VERSION +++ b/samples/server/petstore/jaxrs/jersey2/.openapi-generator/VERSION @@ -1 +1 @@ -3.3.3-SNAPSHOT \ No newline at end of file +3.3.4-SNAPSHOT \ No newline at end of file diff --git a/samples/server/petstore/kotlin-server/ktor/.openapi-generator/VERSION b/samples/server/petstore/kotlin-server/ktor/.openapi-generator/VERSION index e24c1f857e0..d077ffb477a 100644 --- a/samples/server/petstore/kotlin-server/ktor/.openapi-generator/VERSION +++ b/samples/server/petstore/kotlin-server/ktor/.openapi-generator/VERSION @@ -1 +1 @@ -3.3.3-SNAPSHOT \ No newline at end of file +3.3.4-SNAPSHOT \ No newline at end of file diff --git a/samples/server/petstore/kotlin-server/ktor/README.md b/samples/server/petstore/kotlin-server/ktor/README.md index c2ef89f45e6..ebeb066d674 100644 --- a/samples/server/petstore/kotlin-server/ktor/README.md +++ b/samples/server/petstore/kotlin-server/ktor/README.md @@ -2,7 +2,7 @@ This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters. -Generated by OpenAPI Generator 3.3.3-SNAPSHOT. +Generated by OpenAPI Generator 3.3.4-SNAPSHOT. ## Requires diff --git a/samples/server/petstore/php-lumen/.openapi-generator/VERSION b/samples/server/petstore/php-lumen/.openapi-generator/VERSION index e24c1f857e0..d077ffb477a 100644 --- a/samples/server/petstore/php-lumen/.openapi-generator/VERSION +++ b/samples/server/petstore/php-lumen/.openapi-generator/VERSION @@ -1 +1 @@ -3.3.3-SNAPSHOT \ No newline at end of file +3.3.4-SNAPSHOT \ No newline at end of file diff --git a/samples/server/petstore/php-silex/OpenAPIServer/.openapi-generator/VERSION b/samples/server/petstore/php-silex/OpenAPIServer/.openapi-generator/VERSION index e24c1f857e0..d077ffb477a 100644 --- a/samples/server/petstore/php-silex/OpenAPIServer/.openapi-generator/VERSION +++ b/samples/server/petstore/php-silex/OpenAPIServer/.openapi-generator/VERSION @@ -1 +1 @@ -3.3.3-SNAPSHOT \ No newline at end of file +3.3.4-SNAPSHOT \ No newline at end of file diff --git a/samples/server/petstore/php-slim/.openapi-generator/VERSION b/samples/server/petstore/php-slim/.openapi-generator/VERSION index e24c1f857e0..d077ffb477a 100644 --- a/samples/server/petstore/php-slim/.openapi-generator/VERSION +++ b/samples/server/petstore/php-slim/.openapi-generator/VERSION @@ -1 +1 @@ -3.3.3-SNAPSHOT \ No newline at end of file +3.3.4-SNAPSHOT \ No newline at end of file diff --git a/samples/server/petstore/php-symfony/SymfonyBundle-php/.openapi-generator/VERSION b/samples/server/petstore/php-symfony/SymfonyBundle-php/.openapi-generator/VERSION index e24c1f857e0..d077ffb477a 100644 --- a/samples/server/petstore/php-symfony/SymfonyBundle-php/.openapi-generator/VERSION +++ b/samples/server/petstore/php-symfony/SymfonyBundle-php/.openapi-generator/VERSION @@ -1 +1 @@ -3.3.3-SNAPSHOT \ No newline at end of file +3.3.4-SNAPSHOT \ No newline at end of file diff --git a/samples/server/petstore/php-ze-ph/.openapi-generator/VERSION b/samples/server/petstore/php-ze-ph/.openapi-generator/VERSION index e24c1f857e0..d077ffb477a 100644 --- a/samples/server/petstore/php-ze-ph/.openapi-generator/VERSION +++ b/samples/server/petstore/php-ze-ph/.openapi-generator/VERSION @@ -1 +1 @@ -3.3.3-SNAPSHOT \ No newline at end of file +3.3.4-SNAPSHOT \ No newline at end of file diff --git a/samples/server/petstore/rust-server/output/petstore-with-fake-endpoints-models-for-testing/.openapi-generator/VERSION b/samples/server/petstore/rust-server/output/petstore-with-fake-endpoints-models-for-testing/.openapi-generator/VERSION index e24c1f857e0..d077ffb477a 100644 --- a/samples/server/petstore/rust-server/output/petstore-with-fake-endpoints-models-for-testing/.openapi-generator/VERSION +++ b/samples/server/petstore/rust-server/output/petstore-with-fake-endpoints-models-for-testing/.openapi-generator/VERSION @@ -1 +1 @@ -3.3.3-SNAPSHOT \ No newline at end of file +3.3.4-SNAPSHOT \ No newline at end of file diff --git a/samples/server/petstore/rust-server/output/rust-server-test/.openapi-generator/VERSION b/samples/server/petstore/rust-server/output/rust-server-test/.openapi-generator/VERSION index e24c1f857e0..d077ffb477a 100644 --- a/samples/server/petstore/rust-server/output/rust-server-test/.openapi-generator/VERSION +++ b/samples/server/petstore/rust-server/output/rust-server-test/.openapi-generator/VERSION @@ -1 +1 @@ -3.3.3-SNAPSHOT \ No newline at end of file +3.3.4-SNAPSHOT \ No newline at end of file diff --git a/samples/server/petstore/spring-mvc-j8-async/.openapi-generator/VERSION b/samples/server/petstore/spring-mvc-j8-async/.openapi-generator/VERSION index e24c1f857e0..d077ffb477a 100644 --- a/samples/server/petstore/spring-mvc-j8-async/.openapi-generator/VERSION +++ b/samples/server/petstore/spring-mvc-j8-async/.openapi-generator/VERSION @@ -1 +1 @@ -3.3.3-SNAPSHOT \ No newline at end of file +3.3.4-SNAPSHOT \ No newline at end of file diff --git a/samples/server/petstore/spring-mvc-j8-async/src/main/java/org/openapitools/api/AnotherFakeApi.java b/samples/server/petstore/spring-mvc-j8-async/src/main/java/org/openapitools/api/AnotherFakeApi.java index 2543e8256ff..76b5d34addf 100644 --- a/samples/server/petstore/spring-mvc-j8-async/src/main/java/org/openapitools/api/AnotherFakeApi.java +++ b/samples/server/petstore/spring-mvc-j8-async/src/main/java/org/openapitools/api/AnotherFakeApi.java @@ -1,5 +1,5 @@ /** - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.3-SNAPSHOT). + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.4-SNAPSHOT). * https://openapi-generator.tech * Do not edit the class manually. */ diff --git a/samples/server/petstore/spring-mvc-j8-async/src/main/java/org/openapitools/api/FakeApi.java b/samples/server/petstore/spring-mvc-j8-async/src/main/java/org/openapitools/api/FakeApi.java index 3d2219c1a40..d7845de82a8 100644 --- a/samples/server/petstore/spring-mvc-j8-async/src/main/java/org/openapitools/api/FakeApi.java +++ b/samples/server/petstore/spring-mvc-j8-async/src/main/java/org/openapitools/api/FakeApi.java @@ -1,5 +1,5 @@ /** - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.3-SNAPSHOT). + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.4-SNAPSHOT). * https://openapi-generator.tech * Do not edit the class manually. */ diff --git a/samples/server/petstore/spring-mvc-j8-async/src/main/java/org/openapitools/api/FakeClassnameTestApi.java b/samples/server/petstore/spring-mvc-j8-async/src/main/java/org/openapitools/api/FakeClassnameTestApi.java index f6befccbe24..91eac3811ea 100644 --- a/samples/server/petstore/spring-mvc-j8-async/src/main/java/org/openapitools/api/FakeClassnameTestApi.java +++ b/samples/server/petstore/spring-mvc-j8-async/src/main/java/org/openapitools/api/FakeClassnameTestApi.java @@ -1,5 +1,5 @@ /** - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.3-SNAPSHOT). + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.4-SNAPSHOT). * https://openapi-generator.tech * Do not edit the class manually. */ diff --git a/samples/server/petstore/spring-mvc-j8-async/src/main/java/org/openapitools/api/PetApi.java b/samples/server/petstore/spring-mvc-j8-async/src/main/java/org/openapitools/api/PetApi.java index 360dbc00cd9..68333ca7fdf 100644 --- a/samples/server/petstore/spring-mvc-j8-async/src/main/java/org/openapitools/api/PetApi.java +++ b/samples/server/petstore/spring-mvc-j8-async/src/main/java/org/openapitools/api/PetApi.java @@ -1,5 +1,5 @@ /** - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.3-SNAPSHOT). + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.4-SNAPSHOT). * https://openapi-generator.tech * Do not edit the class manually. */ diff --git a/samples/server/petstore/spring-mvc-j8-async/src/main/java/org/openapitools/api/StoreApi.java b/samples/server/petstore/spring-mvc-j8-async/src/main/java/org/openapitools/api/StoreApi.java index 3db8b08b0e6..60748dfb460 100644 --- a/samples/server/petstore/spring-mvc-j8-async/src/main/java/org/openapitools/api/StoreApi.java +++ b/samples/server/petstore/spring-mvc-j8-async/src/main/java/org/openapitools/api/StoreApi.java @@ -1,5 +1,5 @@ /** - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.3-SNAPSHOT). + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.4-SNAPSHOT). * https://openapi-generator.tech * Do not edit the class manually. */ diff --git a/samples/server/petstore/spring-mvc-j8-async/src/main/java/org/openapitools/api/UserApi.java b/samples/server/petstore/spring-mvc-j8-async/src/main/java/org/openapitools/api/UserApi.java index c04f0610706..07624e8f823 100644 --- a/samples/server/petstore/spring-mvc-j8-async/src/main/java/org/openapitools/api/UserApi.java +++ b/samples/server/petstore/spring-mvc-j8-async/src/main/java/org/openapitools/api/UserApi.java @@ -1,5 +1,5 @@ /** - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.3-SNAPSHOT). + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.4-SNAPSHOT). * https://openapi-generator.tech * Do not edit the class manually. */ diff --git a/samples/server/petstore/spring-mvc-j8-localdatetime/.openapi-generator/VERSION b/samples/server/petstore/spring-mvc-j8-localdatetime/.openapi-generator/VERSION index e24c1f857e0..d077ffb477a 100644 --- a/samples/server/petstore/spring-mvc-j8-localdatetime/.openapi-generator/VERSION +++ b/samples/server/petstore/spring-mvc-j8-localdatetime/.openapi-generator/VERSION @@ -1 +1 @@ -3.3.3-SNAPSHOT \ No newline at end of file +3.3.4-SNAPSHOT \ No newline at end of file diff --git a/samples/server/petstore/spring-mvc-j8-localdatetime/src/main/java/org/openapitools/api/AnotherFakeApi.java b/samples/server/petstore/spring-mvc-j8-localdatetime/src/main/java/org/openapitools/api/AnotherFakeApi.java index 5c23608ec6d..8cf360d0c45 100644 --- a/samples/server/petstore/spring-mvc-j8-localdatetime/src/main/java/org/openapitools/api/AnotherFakeApi.java +++ b/samples/server/petstore/spring-mvc-j8-localdatetime/src/main/java/org/openapitools/api/AnotherFakeApi.java @@ -1,5 +1,5 @@ /** - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.3-SNAPSHOT). + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.4-SNAPSHOT). * https://openapi-generator.tech * Do not edit the class manually. */ diff --git a/samples/server/petstore/spring-mvc-j8-localdatetime/src/main/java/org/openapitools/api/FakeApi.java b/samples/server/petstore/spring-mvc-j8-localdatetime/src/main/java/org/openapitools/api/FakeApi.java index 73d426743f9..eddefb72f29 100644 --- a/samples/server/petstore/spring-mvc-j8-localdatetime/src/main/java/org/openapitools/api/FakeApi.java +++ b/samples/server/petstore/spring-mvc-j8-localdatetime/src/main/java/org/openapitools/api/FakeApi.java @@ -1,5 +1,5 @@ /** - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.3-SNAPSHOT). + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.4-SNAPSHOT). * https://openapi-generator.tech * Do not edit the class manually. */ diff --git a/samples/server/petstore/spring-mvc-j8-localdatetime/src/main/java/org/openapitools/api/FakeClassnameTestApi.java b/samples/server/petstore/spring-mvc-j8-localdatetime/src/main/java/org/openapitools/api/FakeClassnameTestApi.java index d5360c5c34b..cc481a78446 100644 --- a/samples/server/petstore/spring-mvc-j8-localdatetime/src/main/java/org/openapitools/api/FakeClassnameTestApi.java +++ b/samples/server/petstore/spring-mvc-j8-localdatetime/src/main/java/org/openapitools/api/FakeClassnameTestApi.java @@ -1,5 +1,5 @@ /** - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.3-SNAPSHOT). + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.4-SNAPSHOT). * https://openapi-generator.tech * Do not edit the class manually. */ diff --git a/samples/server/petstore/spring-mvc-j8-localdatetime/src/main/java/org/openapitools/api/PetApi.java b/samples/server/petstore/spring-mvc-j8-localdatetime/src/main/java/org/openapitools/api/PetApi.java index afdc074cdc6..2bb693ea690 100644 --- a/samples/server/petstore/spring-mvc-j8-localdatetime/src/main/java/org/openapitools/api/PetApi.java +++ b/samples/server/petstore/spring-mvc-j8-localdatetime/src/main/java/org/openapitools/api/PetApi.java @@ -1,5 +1,5 @@ /** - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.3-SNAPSHOT). + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.4-SNAPSHOT). * https://openapi-generator.tech * Do not edit the class manually. */ diff --git a/samples/server/petstore/spring-mvc-j8-localdatetime/src/main/java/org/openapitools/api/StoreApi.java b/samples/server/petstore/spring-mvc-j8-localdatetime/src/main/java/org/openapitools/api/StoreApi.java index 4b38406bcf7..5e4363ab606 100644 --- a/samples/server/petstore/spring-mvc-j8-localdatetime/src/main/java/org/openapitools/api/StoreApi.java +++ b/samples/server/petstore/spring-mvc-j8-localdatetime/src/main/java/org/openapitools/api/StoreApi.java @@ -1,5 +1,5 @@ /** - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.3-SNAPSHOT). + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.4-SNAPSHOT). * https://openapi-generator.tech * Do not edit the class manually. */ diff --git a/samples/server/petstore/spring-mvc-j8-localdatetime/src/main/java/org/openapitools/api/UserApi.java b/samples/server/petstore/spring-mvc-j8-localdatetime/src/main/java/org/openapitools/api/UserApi.java index 762f0b81aca..41cebe13ca6 100644 --- a/samples/server/petstore/spring-mvc-j8-localdatetime/src/main/java/org/openapitools/api/UserApi.java +++ b/samples/server/petstore/spring-mvc-j8-localdatetime/src/main/java/org/openapitools/api/UserApi.java @@ -1,5 +1,5 @@ /** - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.3-SNAPSHOT). + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.4-SNAPSHOT). * https://openapi-generator.tech * Do not edit the class manually. */ diff --git a/samples/server/petstore/spring-mvc/.openapi-generator/VERSION b/samples/server/petstore/spring-mvc/.openapi-generator/VERSION index e24c1f857e0..d077ffb477a 100644 --- a/samples/server/petstore/spring-mvc/.openapi-generator/VERSION +++ b/samples/server/petstore/spring-mvc/.openapi-generator/VERSION @@ -1 +1 @@ -3.3.3-SNAPSHOT \ No newline at end of file +3.3.4-SNAPSHOT \ No newline at end of file diff --git a/samples/server/petstore/spring-mvc/src/main/java/org/openapitools/api/AnotherFakeApi.java b/samples/server/petstore/spring-mvc/src/main/java/org/openapitools/api/AnotherFakeApi.java index 7342851081c..72f76d30412 100644 --- a/samples/server/petstore/spring-mvc/src/main/java/org/openapitools/api/AnotherFakeApi.java +++ b/samples/server/petstore/spring-mvc/src/main/java/org/openapitools/api/AnotherFakeApi.java @@ -1,5 +1,5 @@ /** - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.3-SNAPSHOT). + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.4-SNAPSHOT). * https://openapi-generator.tech * Do not edit the class manually. */ diff --git a/samples/server/petstore/spring-mvc/src/main/java/org/openapitools/api/FakeApi.java b/samples/server/petstore/spring-mvc/src/main/java/org/openapitools/api/FakeApi.java index c24a3440068..e150d23c0c8 100644 --- a/samples/server/petstore/spring-mvc/src/main/java/org/openapitools/api/FakeApi.java +++ b/samples/server/petstore/spring-mvc/src/main/java/org/openapitools/api/FakeApi.java @@ -1,5 +1,5 @@ /** - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.3-SNAPSHOT). + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.4-SNAPSHOT). * https://openapi-generator.tech * Do not edit the class manually. */ diff --git a/samples/server/petstore/spring-mvc/src/main/java/org/openapitools/api/FakeClassnameTestApi.java b/samples/server/petstore/spring-mvc/src/main/java/org/openapitools/api/FakeClassnameTestApi.java index a3e9be058f2..eb3f4863cbc 100644 --- a/samples/server/petstore/spring-mvc/src/main/java/org/openapitools/api/FakeClassnameTestApi.java +++ b/samples/server/petstore/spring-mvc/src/main/java/org/openapitools/api/FakeClassnameTestApi.java @@ -1,5 +1,5 @@ /** - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.3-SNAPSHOT). + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.4-SNAPSHOT). * https://openapi-generator.tech * Do not edit the class manually. */ diff --git a/samples/server/petstore/spring-mvc/src/main/java/org/openapitools/api/PetApi.java b/samples/server/petstore/spring-mvc/src/main/java/org/openapitools/api/PetApi.java index 8a246da72e9..de284afb09e 100644 --- a/samples/server/petstore/spring-mvc/src/main/java/org/openapitools/api/PetApi.java +++ b/samples/server/petstore/spring-mvc/src/main/java/org/openapitools/api/PetApi.java @@ -1,5 +1,5 @@ /** - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.3-SNAPSHOT). + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.4-SNAPSHOT). * https://openapi-generator.tech * Do not edit the class manually. */ diff --git a/samples/server/petstore/spring-mvc/src/main/java/org/openapitools/api/StoreApi.java b/samples/server/petstore/spring-mvc/src/main/java/org/openapitools/api/StoreApi.java index c9417a0dc45..eb312c8da26 100644 --- a/samples/server/petstore/spring-mvc/src/main/java/org/openapitools/api/StoreApi.java +++ b/samples/server/petstore/spring-mvc/src/main/java/org/openapitools/api/StoreApi.java @@ -1,5 +1,5 @@ /** - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.3-SNAPSHOT). + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.4-SNAPSHOT). * https://openapi-generator.tech * Do not edit the class manually. */ diff --git a/samples/server/petstore/spring-mvc/src/main/java/org/openapitools/api/UserApi.java b/samples/server/petstore/spring-mvc/src/main/java/org/openapitools/api/UserApi.java index 02f9e1cefb4..d615271e610 100644 --- a/samples/server/petstore/spring-mvc/src/main/java/org/openapitools/api/UserApi.java +++ b/samples/server/petstore/spring-mvc/src/main/java/org/openapitools/api/UserApi.java @@ -1,5 +1,5 @@ /** - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.3-SNAPSHOT). + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.4-SNAPSHOT). * https://openapi-generator.tech * Do not edit the class manually. */ diff --git a/samples/server/petstore/springboot-beanvalidation/.openapi-generator/VERSION b/samples/server/petstore/springboot-beanvalidation/.openapi-generator/VERSION index e24c1f857e0..d077ffb477a 100644 --- a/samples/server/petstore/springboot-beanvalidation/.openapi-generator/VERSION +++ b/samples/server/petstore/springboot-beanvalidation/.openapi-generator/VERSION @@ -1 +1 @@ -3.3.3-SNAPSHOT \ No newline at end of file +3.3.4-SNAPSHOT \ No newline at end of file diff --git a/samples/server/petstore/springboot-beanvalidation/src/main/java/org/openapitools/api/AnotherFakeApi.java b/samples/server/petstore/springboot-beanvalidation/src/main/java/org/openapitools/api/AnotherFakeApi.java index 7342851081c..72f76d30412 100644 --- a/samples/server/petstore/springboot-beanvalidation/src/main/java/org/openapitools/api/AnotherFakeApi.java +++ b/samples/server/petstore/springboot-beanvalidation/src/main/java/org/openapitools/api/AnotherFakeApi.java @@ -1,5 +1,5 @@ /** - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.3-SNAPSHOT). + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.4-SNAPSHOT). * https://openapi-generator.tech * Do not edit the class manually. */ diff --git a/samples/server/petstore/springboot-beanvalidation/src/main/java/org/openapitools/api/FakeApi.java b/samples/server/petstore/springboot-beanvalidation/src/main/java/org/openapitools/api/FakeApi.java index c24a3440068..e150d23c0c8 100644 --- a/samples/server/petstore/springboot-beanvalidation/src/main/java/org/openapitools/api/FakeApi.java +++ b/samples/server/petstore/springboot-beanvalidation/src/main/java/org/openapitools/api/FakeApi.java @@ -1,5 +1,5 @@ /** - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.3-SNAPSHOT). + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.4-SNAPSHOT). * https://openapi-generator.tech * Do not edit the class manually. */ diff --git a/samples/server/petstore/springboot-beanvalidation/src/main/java/org/openapitools/api/FakeClassnameTestApi.java b/samples/server/petstore/springboot-beanvalidation/src/main/java/org/openapitools/api/FakeClassnameTestApi.java index a3e9be058f2..eb3f4863cbc 100644 --- a/samples/server/petstore/springboot-beanvalidation/src/main/java/org/openapitools/api/FakeClassnameTestApi.java +++ b/samples/server/petstore/springboot-beanvalidation/src/main/java/org/openapitools/api/FakeClassnameTestApi.java @@ -1,5 +1,5 @@ /** - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.3-SNAPSHOT). + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.4-SNAPSHOT). * https://openapi-generator.tech * Do not edit the class manually. */ diff --git a/samples/server/petstore/springboot-beanvalidation/src/main/java/org/openapitools/api/PetApi.java b/samples/server/petstore/springboot-beanvalidation/src/main/java/org/openapitools/api/PetApi.java index 8a246da72e9..de284afb09e 100644 --- a/samples/server/petstore/springboot-beanvalidation/src/main/java/org/openapitools/api/PetApi.java +++ b/samples/server/petstore/springboot-beanvalidation/src/main/java/org/openapitools/api/PetApi.java @@ -1,5 +1,5 @@ /** - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.3-SNAPSHOT). + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.4-SNAPSHOT). * https://openapi-generator.tech * Do not edit the class manually. */ diff --git a/samples/server/petstore/springboot-beanvalidation/src/main/java/org/openapitools/api/StoreApi.java b/samples/server/petstore/springboot-beanvalidation/src/main/java/org/openapitools/api/StoreApi.java index c9417a0dc45..eb312c8da26 100644 --- a/samples/server/petstore/springboot-beanvalidation/src/main/java/org/openapitools/api/StoreApi.java +++ b/samples/server/petstore/springboot-beanvalidation/src/main/java/org/openapitools/api/StoreApi.java @@ -1,5 +1,5 @@ /** - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.3-SNAPSHOT). + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.4-SNAPSHOT). * https://openapi-generator.tech * Do not edit the class manually. */ diff --git a/samples/server/petstore/springboot-beanvalidation/src/main/java/org/openapitools/api/UserApi.java b/samples/server/petstore/springboot-beanvalidation/src/main/java/org/openapitools/api/UserApi.java index 02f9e1cefb4..d615271e610 100644 --- a/samples/server/petstore/springboot-beanvalidation/src/main/java/org/openapitools/api/UserApi.java +++ b/samples/server/petstore/springboot-beanvalidation/src/main/java/org/openapitools/api/UserApi.java @@ -1,5 +1,5 @@ /** - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.3-SNAPSHOT). + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.4-SNAPSHOT). * https://openapi-generator.tech * Do not edit the class manually. */ diff --git a/samples/server/petstore/springboot-delegate-j8/.openapi-generator/VERSION b/samples/server/petstore/springboot-delegate-j8/.openapi-generator/VERSION index e24c1f857e0..d077ffb477a 100644 --- a/samples/server/petstore/springboot-delegate-j8/.openapi-generator/VERSION +++ b/samples/server/petstore/springboot-delegate-j8/.openapi-generator/VERSION @@ -1 +1 @@ -3.3.3-SNAPSHOT \ No newline at end of file +3.3.4-SNAPSHOT \ No newline at end of file diff --git a/samples/server/petstore/springboot-delegate-j8/src/main/java/org/openapitools/api/AnotherFakeApi.java b/samples/server/petstore/springboot-delegate-j8/src/main/java/org/openapitools/api/AnotherFakeApi.java index 79f3a2274df..7c91cb02277 100644 --- a/samples/server/petstore/springboot-delegate-j8/src/main/java/org/openapitools/api/AnotherFakeApi.java +++ b/samples/server/petstore/springboot-delegate-j8/src/main/java/org/openapitools/api/AnotherFakeApi.java @@ -1,5 +1,5 @@ /** - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.3-SNAPSHOT). + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.4-SNAPSHOT). * https://openapi-generator.tech * Do not edit the class manually. */ diff --git a/samples/server/petstore/springboot-delegate-j8/src/main/java/org/openapitools/api/FakeApi.java b/samples/server/petstore/springboot-delegate-j8/src/main/java/org/openapitools/api/FakeApi.java index 0dbb0526a53..e321b4b9f58 100644 --- a/samples/server/petstore/springboot-delegate-j8/src/main/java/org/openapitools/api/FakeApi.java +++ b/samples/server/petstore/springboot-delegate-j8/src/main/java/org/openapitools/api/FakeApi.java @@ -1,5 +1,5 @@ /** - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.3-SNAPSHOT). + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.4-SNAPSHOT). * https://openapi-generator.tech * Do not edit the class manually. */ diff --git a/samples/server/petstore/springboot-delegate-j8/src/main/java/org/openapitools/api/FakeClassnameTestApi.java b/samples/server/petstore/springboot-delegate-j8/src/main/java/org/openapitools/api/FakeClassnameTestApi.java index f07a6ddb348..3dc022ed566 100644 --- a/samples/server/petstore/springboot-delegate-j8/src/main/java/org/openapitools/api/FakeClassnameTestApi.java +++ b/samples/server/petstore/springboot-delegate-j8/src/main/java/org/openapitools/api/FakeClassnameTestApi.java @@ -1,5 +1,5 @@ /** - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.3-SNAPSHOT). + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.4-SNAPSHOT). * https://openapi-generator.tech * Do not edit the class manually. */ diff --git a/samples/server/petstore/springboot-delegate-j8/src/main/java/org/openapitools/api/PetApi.java b/samples/server/petstore/springboot-delegate-j8/src/main/java/org/openapitools/api/PetApi.java index c3ee7dda611..c5194bd85ac 100644 --- a/samples/server/petstore/springboot-delegate-j8/src/main/java/org/openapitools/api/PetApi.java +++ b/samples/server/petstore/springboot-delegate-j8/src/main/java/org/openapitools/api/PetApi.java @@ -1,5 +1,5 @@ /** - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.3-SNAPSHOT). + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.4-SNAPSHOT). * https://openapi-generator.tech * Do not edit the class manually. */ diff --git a/samples/server/petstore/springboot-delegate-j8/src/main/java/org/openapitools/api/StoreApi.java b/samples/server/petstore/springboot-delegate-j8/src/main/java/org/openapitools/api/StoreApi.java index 7875ac92487..600cb02271a 100644 --- a/samples/server/petstore/springboot-delegate-j8/src/main/java/org/openapitools/api/StoreApi.java +++ b/samples/server/petstore/springboot-delegate-j8/src/main/java/org/openapitools/api/StoreApi.java @@ -1,5 +1,5 @@ /** - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.3-SNAPSHOT). + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.4-SNAPSHOT). * https://openapi-generator.tech * Do not edit the class manually. */ diff --git a/samples/server/petstore/springboot-delegate-j8/src/main/java/org/openapitools/api/UserApi.java b/samples/server/petstore/springboot-delegate-j8/src/main/java/org/openapitools/api/UserApi.java index 5f3512983c3..7dc2dc622e5 100644 --- a/samples/server/petstore/springboot-delegate-j8/src/main/java/org/openapitools/api/UserApi.java +++ b/samples/server/petstore/springboot-delegate-j8/src/main/java/org/openapitools/api/UserApi.java @@ -1,5 +1,5 @@ /** - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.3-SNAPSHOT). + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.4-SNAPSHOT). * https://openapi-generator.tech * Do not edit the class manually. */ diff --git a/samples/server/petstore/springboot-delegate/.openapi-generator/VERSION b/samples/server/petstore/springboot-delegate/.openapi-generator/VERSION index e24c1f857e0..d077ffb477a 100644 --- a/samples/server/petstore/springboot-delegate/.openapi-generator/VERSION +++ b/samples/server/petstore/springboot-delegate/.openapi-generator/VERSION @@ -1 +1 @@ -3.3.3-SNAPSHOT \ No newline at end of file +3.3.4-SNAPSHOT \ No newline at end of file diff --git a/samples/server/petstore/springboot-delegate/src/main/java/org/openapitools/api/AnotherFakeApi.java b/samples/server/petstore/springboot-delegate/src/main/java/org/openapitools/api/AnotherFakeApi.java index 7342851081c..72f76d30412 100644 --- a/samples/server/petstore/springboot-delegate/src/main/java/org/openapitools/api/AnotherFakeApi.java +++ b/samples/server/petstore/springboot-delegate/src/main/java/org/openapitools/api/AnotherFakeApi.java @@ -1,5 +1,5 @@ /** - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.3-SNAPSHOT). + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.4-SNAPSHOT). * https://openapi-generator.tech * Do not edit the class manually. */ diff --git a/samples/server/petstore/springboot-delegate/src/main/java/org/openapitools/api/FakeApi.java b/samples/server/petstore/springboot-delegate/src/main/java/org/openapitools/api/FakeApi.java index c24a3440068..e150d23c0c8 100644 --- a/samples/server/petstore/springboot-delegate/src/main/java/org/openapitools/api/FakeApi.java +++ b/samples/server/petstore/springboot-delegate/src/main/java/org/openapitools/api/FakeApi.java @@ -1,5 +1,5 @@ /** - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.3-SNAPSHOT). + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.4-SNAPSHOT). * https://openapi-generator.tech * Do not edit the class manually. */ diff --git a/samples/server/petstore/springboot-delegate/src/main/java/org/openapitools/api/FakeClassnameTestApi.java b/samples/server/petstore/springboot-delegate/src/main/java/org/openapitools/api/FakeClassnameTestApi.java index a3e9be058f2..eb3f4863cbc 100644 --- a/samples/server/petstore/springboot-delegate/src/main/java/org/openapitools/api/FakeClassnameTestApi.java +++ b/samples/server/petstore/springboot-delegate/src/main/java/org/openapitools/api/FakeClassnameTestApi.java @@ -1,5 +1,5 @@ /** - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.3-SNAPSHOT). + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.4-SNAPSHOT). * https://openapi-generator.tech * Do not edit the class manually. */ diff --git a/samples/server/petstore/springboot-delegate/src/main/java/org/openapitools/api/PetApi.java b/samples/server/petstore/springboot-delegate/src/main/java/org/openapitools/api/PetApi.java index 8a246da72e9..de284afb09e 100644 --- a/samples/server/petstore/springboot-delegate/src/main/java/org/openapitools/api/PetApi.java +++ b/samples/server/petstore/springboot-delegate/src/main/java/org/openapitools/api/PetApi.java @@ -1,5 +1,5 @@ /** - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.3-SNAPSHOT). + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.4-SNAPSHOT). * https://openapi-generator.tech * Do not edit the class manually. */ diff --git a/samples/server/petstore/springboot-delegate/src/main/java/org/openapitools/api/StoreApi.java b/samples/server/petstore/springboot-delegate/src/main/java/org/openapitools/api/StoreApi.java index c9417a0dc45..eb312c8da26 100644 --- a/samples/server/petstore/springboot-delegate/src/main/java/org/openapitools/api/StoreApi.java +++ b/samples/server/petstore/springboot-delegate/src/main/java/org/openapitools/api/StoreApi.java @@ -1,5 +1,5 @@ /** - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.3-SNAPSHOT). + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.4-SNAPSHOT). * https://openapi-generator.tech * Do not edit the class manually. */ diff --git a/samples/server/petstore/springboot-delegate/src/main/java/org/openapitools/api/UserApi.java b/samples/server/petstore/springboot-delegate/src/main/java/org/openapitools/api/UserApi.java index 02f9e1cefb4..d615271e610 100644 --- a/samples/server/petstore/springboot-delegate/src/main/java/org/openapitools/api/UserApi.java +++ b/samples/server/petstore/springboot-delegate/src/main/java/org/openapitools/api/UserApi.java @@ -1,5 +1,5 @@ /** - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.3-SNAPSHOT). + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.4-SNAPSHOT). * https://openapi-generator.tech * Do not edit the class manually. */ diff --git a/samples/server/petstore/springboot-implicitHeaders/.openapi-generator/VERSION b/samples/server/petstore/springboot-implicitHeaders/.openapi-generator/VERSION index e24c1f857e0..d077ffb477a 100644 --- a/samples/server/petstore/springboot-implicitHeaders/.openapi-generator/VERSION +++ b/samples/server/petstore/springboot-implicitHeaders/.openapi-generator/VERSION @@ -1 +1 @@ -3.3.3-SNAPSHOT \ No newline at end of file +3.3.4-SNAPSHOT \ No newline at end of file diff --git a/samples/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/api/AnotherFakeApi.java b/samples/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/api/AnotherFakeApi.java index c559468d00c..cd63ad3a54d 100644 --- a/samples/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/api/AnotherFakeApi.java +++ b/samples/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/api/AnotherFakeApi.java @@ -1,5 +1,5 @@ /** - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.3-SNAPSHOT). + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.4-SNAPSHOT). * https://openapi-generator.tech * Do not edit the class manually. */ diff --git a/samples/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/api/FakeApi.java b/samples/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/api/FakeApi.java index 509cf98165a..03a894497ab 100644 --- a/samples/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/api/FakeApi.java +++ b/samples/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/api/FakeApi.java @@ -1,5 +1,5 @@ /** - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.3-SNAPSHOT). + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.4-SNAPSHOT). * https://openapi-generator.tech * Do not edit the class manually. */ diff --git a/samples/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/api/FakeClassnameTestApi.java b/samples/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/api/FakeClassnameTestApi.java index ae6ca555d44..0f717553b1f 100644 --- a/samples/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/api/FakeClassnameTestApi.java +++ b/samples/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/api/FakeClassnameTestApi.java @@ -1,5 +1,5 @@ /** - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.3-SNAPSHOT). + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.4-SNAPSHOT). * https://openapi-generator.tech * Do not edit the class manually. */ diff --git a/samples/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/api/PetApi.java b/samples/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/api/PetApi.java index d8f7786d18f..f556dc7bef2 100644 --- a/samples/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/api/PetApi.java +++ b/samples/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/api/PetApi.java @@ -1,5 +1,5 @@ /** - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.3-SNAPSHOT). + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.4-SNAPSHOT). * https://openapi-generator.tech * Do not edit the class manually. */ diff --git a/samples/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/api/StoreApi.java b/samples/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/api/StoreApi.java index bcdb7328850..feabaf8ac73 100644 --- a/samples/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/api/StoreApi.java +++ b/samples/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/api/StoreApi.java @@ -1,5 +1,5 @@ /** - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.3-SNAPSHOT). + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.4-SNAPSHOT). * https://openapi-generator.tech * Do not edit the class manually. */ diff --git a/samples/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/api/UserApi.java b/samples/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/api/UserApi.java index 9328c3c821d..4e499061164 100644 --- a/samples/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/api/UserApi.java +++ b/samples/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/api/UserApi.java @@ -1,5 +1,5 @@ /** - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.3-SNAPSHOT). + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.4-SNAPSHOT). * https://openapi-generator.tech * Do not edit the class manually. */ diff --git a/samples/server/petstore/springboot-reactive/.openapi-generator/VERSION b/samples/server/petstore/springboot-reactive/.openapi-generator/VERSION index e24c1f857e0..d077ffb477a 100644 --- a/samples/server/petstore/springboot-reactive/.openapi-generator/VERSION +++ b/samples/server/petstore/springboot-reactive/.openapi-generator/VERSION @@ -1 +1 @@ -3.3.3-SNAPSHOT \ No newline at end of file +3.3.4-SNAPSHOT \ No newline at end of file diff --git a/samples/server/petstore/springboot-reactive/src/main/java/org/openapitools/api/AnotherFakeApi.java b/samples/server/petstore/springboot-reactive/src/main/java/org/openapitools/api/AnotherFakeApi.java index 5f4f78fa7a9..a77f8ec5d98 100644 --- a/samples/server/petstore/springboot-reactive/src/main/java/org/openapitools/api/AnotherFakeApi.java +++ b/samples/server/petstore/springboot-reactive/src/main/java/org/openapitools/api/AnotherFakeApi.java @@ -1,5 +1,5 @@ /** - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.3-SNAPSHOT). + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.4-SNAPSHOT). * https://openapi-generator.tech * Do not edit the class manually. */ diff --git a/samples/server/petstore/springboot-reactive/src/main/java/org/openapitools/api/FakeApi.java b/samples/server/petstore/springboot-reactive/src/main/java/org/openapitools/api/FakeApi.java index a027b932a3c..ad816f0dfff 100644 --- a/samples/server/petstore/springboot-reactive/src/main/java/org/openapitools/api/FakeApi.java +++ b/samples/server/petstore/springboot-reactive/src/main/java/org/openapitools/api/FakeApi.java @@ -1,5 +1,5 @@ /** - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.3-SNAPSHOT). + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.4-SNAPSHOT). * https://openapi-generator.tech * Do not edit the class manually. */ diff --git a/samples/server/petstore/springboot-reactive/src/main/java/org/openapitools/api/FakeClassnameTestApi.java b/samples/server/petstore/springboot-reactive/src/main/java/org/openapitools/api/FakeClassnameTestApi.java index 530524535aa..f46a565427f 100644 --- a/samples/server/petstore/springboot-reactive/src/main/java/org/openapitools/api/FakeClassnameTestApi.java +++ b/samples/server/petstore/springboot-reactive/src/main/java/org/openapitools/api/FakeClassnameTestApi.java @@ -1,5 +1,5 @@ /** - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.3-SNAPSHOT). + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.4-SNAPSHOT). * https://openapi-generator.tech * Do not edit the class manually. */ diff --git a/samples/server/petstore/springboot-reactive/src/main/java/org/openapitools/api/PetApi.java b/samples/server/petstore/springboot-reactive/src/main/java/org/openapitools/api/PetApi.java index c68867ee17f..c5e171ea0ec 100644 --- a/samples/server/petstore/springboot-reactive/src/main/java/org/openapitools/api/PetApi.java +++ b/samples/server/petstore/springboot-reactive/src/main/java/org/openapitools/api/PetApi.java @@ -1,5 +1,5 @@ /** - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.3-SNAPSHOT). + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.4-SNAPSHOT). * https://openapi-generator.tech * Do not edit the class manually. */ diff --git a/samples/server/petstore/springboot-reactive/src/main/java/org/openapitools/api/StoreApi.java b/samples/server/petstore/springboot-reactive/src/main/java/org/openapitools/api/StoreApi.java index 7584fe403fa..abe25e164a4 100644 --- a/samples/server/petstore/springboot-reactive/src/main/java/org/openapitools/api/StoreApi.java +++ b/samples/server/petstore/springboot-reactive/src/main/java/org/openapitools/api/StoreApi.java @@ -1,5 +1,5 @@ /** - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.3-SNAPSHOT). + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.4-SNAPSHOT). * https://openapi-generator.tech * Do not edit the class manually. */ diff --git a/samples/server/petstore/springboot-reactive/src/main/java/org/openapitools/api/UserApi.java b/samples/server/petstore/springboot-reactive/src/main/java/org/openapitools/api/UserApi.java index 560ad79ff6c..128ec327478 100644 --- a/samples/server/petstore/springboot-reactive/src/main/java/org/openapitools/api/UserApi.java +++ b/samples/server/petstore/springboot-reactive/src/main/java/org/openapitools/api/UserApi.java @@ -1,5 +1,5 @@ /** - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.3-SNAPSHOT). + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.4-SNAPSHOT). * https://openapi-generator.tech * Do not edit the class manually. */ diff --git a/samples/server/petstore/springboot-useoptional/.openapi-generator/VERSION b/samples/server/petstore/springboot-useoptional/.openapi-generator/VERSION index e24c1f857e0..d077ffb477a 100644 --- a/samples/server/petstore/springboot-useoptional/.openapi-generator/VERSION +++ b/samples/server/petstore/springboot-useoptional/.openapi-generator/VERSION @@ -1 +1 @@ -3.3.3-SNAPSHOT \ No newline at end of file +3.3.4-SNAPSHOT \ No newline at end of file diff --git a/samples/server/petstore/springboot-useoptional/src/main/java/org/openapitools/api/AnotherFakeApi.java b/samples/server/petstore/springboot-useoptional/src/main/java/org/openapitools/api/AnotherFakeApi.java index 5c23608ec6d..8cf360d0c45 100644 --- a/samples/server/petstore/springboot-useoptional/src/main/java/org/openapitools/api/AnotherFakeApi.java +++ b/samples/server/petstore/springboot-useoptional/src/main/java/org/openapitools/api/AnotherFakeApi.java @@ -1,5 +1,5 @@ /** - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.3-SNAPSHOT). + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.4-SNAPSHOT). * https://openapi-generator.tech * Do not edit the class manually. */ diff --git a/samples/server/petstore/springboot-useoptional/src/main/java/org/openapitools/api/FakeApi.java b/samples/server/petstore/springboot-useoptional/src/main/java/org/openapitools/api/FakeApi.java index 5885a85911f..dde4273b9af 100644 --- a/samples/server/petstore/springboot-useoptional/src/main/java/org/openapitools/api/FakeApi.java +++ b/samples/server/petstore/springboot-useoptional/src/main/java/org/openapitools/api/FakeApi.java @@ -1,5 +1,5 @@ /** - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.3-SNAPSHOT). + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.4-SNAPSHOT). * https://openapi-generator.tech * Do not edit the class manually. */ diff --git a/samples/server/petstore/springboot-useoptional/src/main/java/org/openapitools/api/FakeClassnameTestApi.java b/samples/server/petstore/springboot-useoptional/src/main/java/org/openapitools/api/FakeClassnameTestApi.java index d5360c5c34b..cc481a78446 100644 --- a/samples/server/petstore/springboot-useoptional/src/main/java/org/openapitools/api/FakeClassnameTestApi.java +++ b/samples/server/petstore/springboot-useoptional/src/main/java/org/openapitools/api/FakeClassnameTestApi.java @@ -1,5 +1,5 @@ /** - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.3-SNAPSHOT). + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.4-SNAPSHOT). * https://openapi-generator.tech * Do not edit the class manually. */ diff --git a/samples/server/petstore/springboot-useoptional/src/main/java/org/openapitools/api/PetApi.java b/samples/server/petstore/springboot-useoptional/src/main/java/org/openapitools/api/PetApi.java index b83bb767bda..8bafc90157e 100644 --- a/samples/server/petstore/springboot-useoptional/src/main/java/org/openapitools/api/PetApi.java +++ b/samples/server/petstore/springboot-useoptional/src/main/java/org/openapitools/api/PetApi.java @@ -1,5 +1,5 @@ /** - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.3-SNAPSHOT). + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.4-SNAPSHOT). * https://openapi-generator.tech * Do not edit the class manually. */ diff --git a/samples/server/petstore/springboot-useoptional/src/main/java/org/openapitools/api/StoreApi.java b/samples/server/petstore/springboot-useoptional/src/main/java/org/openapitools/api/StoreApi.java index 4b38406bcf7..5e4363ab606 100644 --- a/samples/server/petstore/springboot-useoptional/src/main/java/org/openapitools/api/StoreApi.java +++ b/samples/server/petstore/springboot-useoptional/src/main/java/org/openapitools/api/StoreApi.java @@ -1,5 +1,5 @@ /** - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.3-SNAPSHOT). + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.4-SNAPSHOT). * https://openapi-generator.tech * Do not edit the class manually. */ diff --git a/samples/server/petstore/springboot-useoptional/src/main/java/org/openapitools/api/UserApi.java b/samples/server/petstore/springboot-useoptional/src/main/java/org/openapitools/api/UserApi.java index 762f0b81aca..41cebe13ca6 100644 --- a/samples/server/petstore/springboot-useoptional/src/main/java/org/openapitools/api/UserApi.java +++ b/samples/server/petstore/springboot-useoptional/src/main/java/org/openapitools/api/UserApi.java @@ -1,5 +1,5 @@ /** - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.3-SNAPSHOT). + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.4-SNAPSHOT). * https://openapi-generator.tech * Do not edit the class manually. */ diff --git a/samples/server/petstore/springboot-virtualan/.openapi-generator/VERSION b/samples/server/petstore/springboot-virtualan/.openapi-generator/VERSION index e24c1f857e0..d077ffb477a 100644 --- a/samples/server/petstore/springboot-virtualan/.openapi-generator/VERSION +++ b/samples/server/petstore/springboot-virtualan/.openapi-generator/VERSION @@ -1 +1 @@ -3.3.3-SNAPSHOT \ No newline at end of file +3.3.4-SNAPSHOT \ No newline at end of file diff --git a/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/api/AnotherFakeApi.java b/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/api/AnotherFakeApi.java index 2644b9cf934..0e282972abe 100644 --- a/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/api/AnotherFakeApi.java +++ b/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/api/AnotherFakeApi.java @@ -1,5 +1,5 @@ /** - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.3-SNAPSHOT). + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.4-SNAPSHOT). * https://openapi-generator.tech * Do not edit the class manually. */ diff --git a/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/api/FakeApi.java b/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/api/FakeApi.java index d6095b486e5..a2ea714840a 100644 --- a/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/api/FakeApi.java +++ b/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/api/FakeApi.java @@ -1,5 +1,5 @@ /** - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.3-SNAPSHOT). + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.4-SNAPSHOT). * https://openapi-generator.tech * Do not edit the class manually. */ diff --git a/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/api/FakeClassnameTestApi.java b/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/api/FakeClassnameTestApi.java index ef000d88f83..c050c0356b9 100644 --- a/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/api/FakeClassnameTestApi.java +++ b/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/api/FakeClassnameTestApi.java @@ -1,5 +1,5 @@ /** - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.3-SNAPSHOT). + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.4-SNAPSHOT). * https://openapi-generator.tech * Do not edit the class manually. */ diff --git a/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/api/PetApi.java b/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/api/PetApi.java index 7dae1250ab2..22083b51895 100644 --- a/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/api/PetApi.java +++ b/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/api/PetApi.java @@ -1,5 +1,5 @@ /** - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.3-SNAPSHOT). + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.4-SNAPSHOT). * https://openapi-generator.tech * Do not edit the class manually. */ diff --git a/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/api/StoreApi.java b/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/api/StoreApi.java index ea993e41204..c7d549c96cb 100644 --- a/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/api/StoreApi.java +++ b/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/api/StoreApi.java @@ -1,5 +1,5 @@ /** - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.3-SNAPSHOT). + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.4-SNAPSHOT). * https://openapi-generator.tech * Do not edit the class manually. */ diff --git a/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/api/UserApi.java b/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/api/UserApi.java index cc6ca7852dc..6e39fe3e36d 100644 --- a/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/api/UserApi.java +++ b/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/api/UserApi.java @@ -1,5 +1,5 @@ /** - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.3-SNAPSHOT). + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.4-SNAPSHOT). * https://openapi-generator.tech * Do not edit the class manually. */ diff --git a/samples/server/petstore/springboot/.openapi-generator/VERSION b/samples/server/petstore/springboot/.openapi-generator/VERSION index e24c1f857e0..d077ffb477a 100644 --- a/samples/server/petstore/springboot/.openapi-generator/VERSION +++ b/samples/server/petstore/springboot/.openapi-generator/VERSION @@ -1 +1 @@ -3.3.3-SNAPSHOT \ No newline at end of file +3.3.4-SNAPSHOT \ No newline at end of file diff --git a/samples/server/petstore/springboot/src/main/java/org/openapitools/api/AnotherFakeApi.java b/samples/server/petstore/springboot/src/main/java/org/openapitools/api/AnotherFakeApi.java index 5c23608ec6d..8cf360d0c45 100644 --- a/samples/server/petstore/springboot/src/main/java/org/openapitools/api/AnotherFakeApi.java +++ b/samples/server/petstore/springboot/src/main/java/org/openapitools/api/AnotherFakeApi.java @@ -1,5 +1,5 @@ /** - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.3-SNAPSHOT). + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.4-SNAPSHOT). * https://openapi-generator.tech * Do not edit the class manually. */ diff --git a/samples/server/petstore/springboot/src/main/java/org/openapitools/api/FakeApi.java b/samples/server/petstore/springboot/src/main/java/org/openapitools/api/FakeApi.java index 5ec7e4c7052..8290150596a 100644 --- a/samples/server/petstore/springboot/src/main/java/org/openapitools/api/FakeApi.java +++ b/samples/server/petstore/springboot/src/main/java/org/openapitools/api/FakeApi.java @@ -1,5 +1,5 @@ /** - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.3-SNAPSHOT). + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.4-SNAPSHOT). * https://openapi-generator.tech * Do not edit the class manually. */ diff --git a/samples/server/petstore/springboot/src/main/java/org/openapitools/api/FakeClassnameTestApi.java b/samples/server/petstore/springboot/src/main/java/org/openapitools/api/FakeClassnameTestApi.java index d5360c5c34b..cc481a78446 100644 --- a/samples/server/petstore/springboot/src/main/java/org/openapitools/api/FakeClassnameTestApi.java +++ b/samples/server/petstore/springboot/src/main/java/org/openapitools/api/FakeClassnameTestApi.java @@ -1,5 +1,5 @@ /** - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.3-SNAPSHOT). + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.4-SNAPSHOT). * https://openapi-generator.tech * Do not edit the class manually. */ diff --git a/samples/server/petstore/springboot/src/main/java/org/openapitools/api/PetApi.java b/samples/server/petstore/springboot/src/main/java/org/openapitools/api/PetApi.java index afdc074cdc6..2bb693ea690 100644 --- a/samples/server/petstore/springboot/src/main/java/org/openapitools/api/PetApi.java +++ b/samples/server/petstore/springboot/src/main/java/org/openapitools/api/PetApi.java @@ -1,5 +1,5 @@ /** - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.3-SNAPSHOT). + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.4-SNAPSHOT). * https://openapi-generator.tech * Do not edit the class manually. */ diff --git a/samples/server/petstore/springboot/src/main/java/org/openapitools/api/StoreApi.java b/samples/server/petstore/springboot/src/main/java/org/openapitools/api/StoreApi.java index 4b38406bcf7..5e4363ab606 100644 --- a/samples/server/petstore/springboot/src/main/java/org/openapitools/api/StoreApi.java +++ b/samples/server/petstore/springboot/src/main/java/org/openapitools/api/StoreApi.java @@ -1,5 +1,5 @@ /** - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.3-SNAPSHOT). + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.4-SNAPSHOT). * https://openapi-generator.tech * Do not edit the class manually. */ diff --git a/samples/server/petstore/springboot/src/main/java/org/openapitools/api/UserApi.java b/samples/server/petstore/springboot/src/main/java/org/openapitools/api/UserApi.java index 762f0b81aca..41cebe13ca6 100644 --- a/samples/server/petstore/springboot/src/main/java/org/openapitools/api/UserApi.java +++ b/samples/server/petstore/springboot/src/main/java/org/openapitools/api/UserApi.java @@ -1,5 +1,5 @@ /** - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.3-SNAPSHOT). + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (3.3.4-SNAPSHOT). * https://openapi-generator.tech * Do not edit the class manually. */

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